2011-09-21 18 views
7

Come viene eseguito il test di regressione in Java? Esistono strutture di test di regressione automatizzate o semplicemente si scrivono test unitari (JUnit) che aiutano a garantire contro regressioni?Test di regressione basati su Java

Esiste un modo o una serie di best practice per i test delle unità di codifica in modo che anche loro abbiano il duplice scopo di essere test di regressione o è necessario tenere separati i test di regressione dai test delle unità?

+0

Potrebbe essere meglio su programmers.stackexchange.com – Qwerky

risposta

1

JUnit è generalmente rivolto a test unitari piuttosto che a test funzionali completi (di cui il test di regressione è un esempio se si guarda al sistema nel suo insieme).

Tuttavia, non è raro utilizzare una prova separata per eseguire test funzionali e di integrazione "pesanti" che si collegano a backend reali, ecc. E verificare i risultati in base alle aspettative.

Un motivo per l'utilizzo di JUnit qui è la possibilità di passare da "test di simulazione" a test di funzionamento effettivi utilizzando l'iniezione di dipendenza. È possibile fornire, ad esempio, un finto collaboratore nel test più leggero e un'istanza effettiva del collaboratore nel test funzionale completo.

+1

Quindi, quali sono alcuni tipici framework di testing funzionale/di regressione per Java se JUnit non è il più adatto per questo tipo di test? – IAmYourFaja

+0

@Mara - www.spockframework.org –

4

I test di regressione non hanno nulla a che fare con un linguaggio. È una tecnica che viene utilizzata per garantire che le future modifiche al codice non interrompano le funzionalità esistenti. In Java puoi usare junit o testng o qualsiasi altra cosa. In genere un test di regressione è un test funzionale e non è un puro test unitario.

+0

Pensa a Woot4Moo. Con "test funzionale" intendi "sequenziale", nel senso che invece di testare un componente/unità, esegue (in modo simile a uno script) una serie di azioni per assicurarsi che qualche invariante sia preservato? – IAmYourFaja

+0

@Mara, è così che funzionano tutti i test automatici. Il test di regressione è solo "testare il nuovo codice rispetto ai vecchi test", il * tipo * di test che è (unità, funzionale, integrazione, ecc.) Non fa alcuna differenza. –

+1

Dave - interessante. Quindi, purché tu abbia mantenuto un accurato framework di test unitario, non si prenderà cura anche dei test di regressione, dal momento che non hai mai scartato un vecchio test unitario? Questo mi confonde un po ', perché tutto il tempo che si sente sui test di regressione, ma con la tua spiegazione, sembra che tutto quello che devi fare è assicurarti che il tuo test dell'unità sia finito. Sono in pista o ho de-railato? – IAmYourFaja

0

Un test di regressione è un test che rileva regressioni.

Se si desidera test di accettazione, ho sentito cose positive su FitNesse.

Problemi correlati