Aggiungi un test unitario per ogni nuovo bug

29

Nel mio lavoro tutti gli sviluppatori che risolvono un bug devono aggiungere un nuovo test unitario che avvisi su questo tipo di bug (nel caso si verifichi di nuovo). Se un test unitario non è possibile (ad esempio, un problema di progettazione di pagine Web), il reparto QA deve creare un caso di test per controllarlo manualmente.

L'idea alla base di questo è che se un difetto non è stato rilevato prima della release del prodotto è perché non c'è un test unitario appropriato per rilevarlo. Quindi lo sviluppatore deve aggiungerlo.

La domanda è: è comune in qualsiasi metodologia di sviluppo del software? Questa tecnica ha un nome? Mi piacerebbe saperne di più, ma ho bisogno di alcune informazioni per iniziare.

    
posta Ivan 29.02.2012 - 17:27
fonte

3 risposte

23

Questo è abbastanza comune. Lo usiamo nel nostro team. Per ogni difetto di produzione, lo sviluppatore deve aggiungere una nota sulla causa principale del problema, aggiungere un test dell'unità in errore e aggiungere un'analisi dell'impatto del test prima che il ticket possa essere trasferito allo stato di sviluppo per verificare il codice.

Il test dell'unità guasta deve passare prima che possiamo spingere il codice in produzione.

Non penso che questo abbia un nome specifico tranne quel generale "test di regressione". Questo è molto utile e abbiamo iniziato a vedere un aumento della qualità del prodotto dopo che abbiamo iniziato a seguire questo processo.

    
risposta data 29.02.2012 - 17:37
fonte
14

Assolutamente!

Se puoi essere d'accordo sul fatto che i test unitari sono una buona cosa, allora ti renderai conto che se c'è un bug c'è un test unitario mancante che copre quel percorso di codice.

Quindi, ciò che dovrebbe accadere è scrivere un test unitario che mostri il bug esistente, correggere il bug effettivo, quindi il test unitario passerà.

Se non hai affatto test unitari, allora questo può essere un buon modo per iniziare a introdurre i test unitari a un progetto.

    
risposta data 29.02.2012 - 17:36
fonte
9

La tecnica è uno sviluppo basato sui test. La prossima volta non sarà in grado di individuare un bug simile, sebbene la suite di test ripetibili sia sempre utile. Il punto è che puoi dimostrare di aver isolato ciò che è sbagliato nel codice, di averlo dimostrato che è sbagliato, risolto, provato che la correzione è corretta.

C'è una citazione che non riesco a ricordare o trovare, ma grosso modo è: "Ogni bug è un test non ancora scritto."

Cercare di venderlo come test di regressione è una battaglia persa, IMHO. Dato che raramente queste cose catturano un bug ripetuto, la maggior parte degli sviluppatori dirà semplicemente "Perché preoccuparsi, quando posso semplicemente sistemarlo?"

    
risposta data 29.02.2012 - 18:42
fonte

Leggi altre domande sui tag