Come faccio a verificare che i miei test non siano stati rimossi da altri sviluppatori?

8

Mi sono appena imbattuto in un interessante problema di codifica collaborativa al lavoro.

Ho scritto alcuni test di unità / funzionali / di integrazione e implementato nuove funzionalità nell'applicazione che ha circa 20 sviluppatori che lavorano su di esso. Tutti i test sono passati e ho controllato il codice. Il giorno dopo ho aggiornato il mio progetto e ho notato (per caso) che alcuni dei miei metodi di test sono stati cancellati da altri sviluppatori (problemi di fusione sulla loro estremità). Il nuovo codice dell'applicazione non è stato toccato.

Come posso rilevare automaticamente questo problema? Voglio dire, scrivo test per verificare automaticamente che il mio codice funzioni ancora (o che non sia stato cancellato), come faccio a fare lo stesso per i test?

Usiamo Java, JUnit, Selenium, SVN e Hudson CI se è importante.

    
posta parxier 04.02.2011 - 03:56
fonte

5 risposte

4

Non ho molta familiarità con Hudson per CI, ma il mio strumento CI può anche calcolare la copertura del codice. Se riesci a scrivere un processo che ti avviserà quando la copertura del codice diminuirà, sarebbe un buon indicatore che un test sia stato rimosso. Ti direbbe anche se è stato aggiunto un nuovo codice senza test. Non è quello che stavi chiedendo, ma è bello sapere.

    
risposta data 04.02.2011 - 04:17
fonte
12

Si applicano le dichiarazioni di non responsabilità standard: stiamo creando una soluzione ingegneristica per un problema sociale. Tuttavia, questo è un problema di igiene del progetto, quindi è un po 'come dire che i bagni sono una soluzione ingegneristica per un problema sociale.

Avere una mano di lavoro fuori dal feed RSS di Hudson. Conta il numero di test nel rapporto Hudson. Se diminuisce, attiva un allarme. Avere un auto-da-fe 'quando suona la sveglia.

La colpa del commit può essere identificata e punita. Il tuo problema andrà via.

Potresti causare altri problemi come risultato di questa soluzione. Se il capogiro persiste, consultare il medico.

    
risposta data 04.02.2011 - 04:14
fonte
2

Approccio organizzativo

Avere una politica in atto che richiederebbe che la persona che elimina i test parlasse con il creatore del test. Normalmente si eliminano i test solo quando si esegue il deprezzamento di alcune funzionalità in fase di test e ciò non accade molto spesso.

Approccio tecnico

Questo è più un approccio da maniaco del controllo ma puoi avere un test separato, che analizza il codice sorgente per verificare la presenza di tutti i test che vuoi controllare. Forse potresti anche interfacciare Hudson e ottenere l'elenco dei test eseguiti.

    
risposta data 04.02.2011 - 04:04
fonte
0

Simile alla risposta di Art ..

Commenti Inizia usando commentando bene. Per ogni metodo; non dimenticare di inserire input e output previsti, una breve descrizione per funzioni più complesse e il tuo nome.

Linee guida Ma questo mette in evidenza che c'è bisogno di più comunicazione tra gli sviluppatori. squadra. Ci dovrebbero essere delle linee guida per lavorare insieme ... o almeno parlare al tuo proj. manager e chiedergli di chiarire questo in mezzo alla squadra.

Corretto utilizzo SVN Potresti anche scrivere le tue classi e i tuoi metodi e tenerne traccia .. anche se stai usando SVN, spero sinceramente che queste delezioni vengano tracciate come modifiche, annotate separatamente e abbiano BUONE ragioni.

A meno di scrivere un programma speciale, potresti anche confrontare la differenza. file in SVN per tenere traccia delle modifiche ai tuoi metodi.

    
risposta data 04.02.2011 - 04:07
fonte
0

Lo stesso potrebbe accadere anche per il codice vero e non lo saprai fino a quando non noti che la tua modifica non esiste più.

Detto questo, è difficile identificare il codice che viene rimosso come una cosa negativa, poiché molto spesso si rimuovono manualmente codice / caratteristiche, ecc., e a causa di quel conteggio dei test che può andare giù così come qualcun altro ha menzionato.

    
risposta data 04.02.2011 - 14:35
fonte

Leggi altre domande sui tag