Domanda

Sto lavorando su un sistema automatizzato di regressione suite di test per un app che mi da mantenere.Durante lo sviluppo di automated test di regressione, mi sono imbattuto in un comportamento che è quasi sicuramente un bug.Così, per ora, ho modificato la regressione automatico prova a non registrare un fallimento-è deliberatamente, permettendo a questo cattivo comportamento, ma la voglio dire.

Così, mi interessano le opinioni degli altri su questo sito.Ovviamente, aggiungo un bug per il nostro difetto di monitoraggio per assicurarsi che questo comportamento di errore viene corretto.Ma ci sono motivi validi (in ogni modo) per modificare il test di regressione costantemente indicare l'errore o lasciare i test di regressione rotto e non sono un fallimento fino a quando siamo in grado di ottenere per il fissaggio difettoso comportamento?Penso a questo come un 6 di uno e una mezza dozzina di altro tipo di domanda, ma chiedo qui perché ho pensato che gli altri possono vedere in modo diverso.


@Paolo Tomblin,

Giusto per essere chiari-non ho mai considerato la rimozione di prova;Mi è stato semplicemente intende modificare la pass/fail condizione per consentire il fallimento senza essere gettato in faccia ogni volta che ho eseguito il test.

Io sono un po ' preoccupato per ripetuti errori da cause sconosciute, infine, ottenere trattati come gli avvisi in C++.So che gli sviluppatori che vedi avvertenze nel loro codice C++ e basta ignorarli, perché pensano di essere solo inutile rumore.Ho paura di lasciare un noto errore nel modello di regressione suite potrebbe indurre la gente a iniziare a ignorare altri, forse più importante, fallimenti.

BTW, non vorrei essere frainteso, io considero gli avvisi in C++ per essere un importante aiuto nella creazione di un forte codice, ma a giudicare da altri sviluppatori C++ che ho incontrato, io credo di essere in minoranza.

È stato utile?

Soluzione

Mi verrebbe da dire "hell yeah!".Il semplice fatto è, è una mancanza?Sì!Allora dovrebbe essere registrato.Si sono praticamente compromettere la vostra prova, consentendo un test non riuscito a passare.

Una cosa che riguarda me personalmente, è che se ho fatto questo, e sono andato sotto un autobus, poi la "patch" non possono essere rimossi, il che significa che anche dopo una "bugfix" il bug potrebbe essere ancora.

Lasciato, aggiornamento note di progetto, forse anche di spostare il livello di gravità verso il basso (se possibile), ma di certo non rompere la cosa che si verifica per il rotto le cose ;)

Altri suggerimenti

Se si interrompe il collaudo, come farai a sapere quando è fisso, e, cosa più importante, come farai a sapere se si rompe di nuovo?Io sono contro l'assunzione della prova, perché è probabile che dimentichi di aggiungerlo nuovamente.

Abbiamo aggiunto un 'snooze' per la nostra unità di test.Questo ha permesso un test per essere annotati, con un attributo che dice in sostanza "ignora errori per X settimane a partire da questa data".Gli sviluppatori possono annotare un test sapevano che non si sarebbe risolto per un po ' con questo, ma non richiedono alcun intervento, in futuro, per riattivare manualmente, il test sarebbe semplicemente pop torna in una suite di test al momento designato.

Deve restare un fallimento se non si fa quello che ci si aspettava.

In caso contrario, è troppo facile da ignorare.Mantenere le cose semplici -- funziona o non c'è.Esito negativo o positivo :)

-- Kevin Fairchild

Mentre sono d'accordo con la maggior parte di quello che Paolo ha detto, l'altro lato dell'argomento sarebbe che i test di regressione, strettamente parlando, sono tenuti a verificare i cambiamenti nel comportamento del programma, non solo qualsiasi vecchio bug.Sono in particolare dovrebbe dire quando hai rotto qualcosa di usato per lavorare.

Penso che questo si riduce a ciò che altri tipi di test vengono eseguiti su questa app.Se si dispone di una sorta di test di unità di sistema, forse sarebbe più appropriato per questo test, piuttosto che nel test di regressione (almeno fino a quando il bug è stato risolto).Se il test di regressione sono il solo test, però, probabilmente lasciare il test in luogo.

Mentre è meglio avere prove falliscono quando ci sono bug, questo è spesso una scelta impraticabile.Quando prima l'aggiunta di prova di un'area, è particolarmente facile impantanarsi nel bug si scopre e, quindi, di non completare l'obiettivo primario.Inoltre, a lungo in mancanza di prove diventano tanto rumore, più facile e più facile da ignorare.

La scrittura in mancanza di prove è parte di bug e molto importante quando la fissazione di questi bug è importante.Questo dovrebbe essere determinato dal vostro attuale prodotto di qualità e di priorità.Se vi capita di produrre prove, come un effetto collaterale di qualche altro sforzo, che bello, ma non dovrebbe essere permesso di distrarre dal tuo effettive priorità.

Vorrei raccomandare di effettuare qualsiasi bug scoperti, migliorando le prove in avvisi e archiviazione di bug contro di loro.Si tratta di un approccio di breadth-first che si ottiene attraverso l'attività corrente mentre in realtà utilizzando ciò che si impara.Il test può quindi essere facilmente fatto in veri e propri errori quando gli insetti sono in programma per il fissaggio.

A differenza di altri intervistati, penso che i guasti siano altrettanto facile ignorare gli avvertimenti, e il costo della formazione il team di ignorare gli errori è troppo alta per lasciare che accada.Se si producono in mancanza di prove come parte di questo sforzo, si avrà distrutto l'utilità della suite di prova di regressione quando il compito è stato miglioramento.

Avere un test fallito è una specie di griglia.C'è una differenza tra il codice rotto incompiuta del codice, e se il test deve essere affrontato immediatamente, dipende da quale circostanza, questa, in mancanza di prova espone.

Se è rotto, è necessario risolvere al più presto piuttosto che più successivamente.Se è incompiuto, che fare con esso quando avete tempo.

In entrambi i casi, chiaramente si può vivere con esso si comportano male (per ora), così come lungo come il problema viene registrato si potrebbe anche non avere nag su di esso fino a quando si dispone di tempo per risolvere il problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top