Utilisateur
metodo empirico per verificare la correttezza di un software ed è un processo automatizzato volto a mostrare il comportamento di un software su un dato input
- Black Box
- White Box
si verifica se il software produce il risultato previsto dato un determinato input, senza preoccuparsi di come il software funzioni internamente.
si testano porzioni specifiche del codice sorgente.
una metodologia di White Box Testing che testa l'unità di un codice sorgente.
è la porzione più piccola di codice che può essere testata, come un programma, una funzione, una classe, un'interfaccia o un metodo.
divide et impera: il sistema viene suddiviso in unità, ciascuna delle quali viene testata separatamente per ridurre la probabilità di bug e impedire che gli errori si propaghino.
Verifica che l'applicazione continui a funzionare correttamente anche dopo modifiche, aggiunte o modifiche al software, senza introdurre nuovi bug.
è un framework di unit testing per Java che fornisce un'API per creare e gestire facilmente test. Offre strumenti di confronto, test runner per eseguire e aggregare test e facilità il processo di validazione del comportamento del software
è un metodo che verifica una funzionalità specifica di un'unità di codice.
è una raccolta di unit test che possono essere eseguiti insieme.
il nome del metodo di test dovrebbe indicare il comportamento previsto.
le classi di test dovrebbero terminare con "Test", ad esempio MathTest.
Annotation driven (chiocciola sopra la funzione). Non si deve estendere nessuna classe speciale e i test annotati con @Test sono nulli (return void) e non accettano parametri.
indica che il test deve terminare entro 10 secondi per essere considerato superato.
indica che il test sarà considerato passato se viene lanciata un'eccezione di tipo IllegalArgumentException.
viene usata per ignorare un test, fornendo una motivazione.
indica che il metodo annotato verrà eseguito prima di ogni test case.
indica che il metodo annotato verrà eseguito dopo ogni test case.
segna un metodo che verrà eseguito una sola volta all'inizio della classe di test.
segna un metodo che verrà eseguito una sola volta alla fine della classe di test.
utilizzando l'annotazione @RunWith(Parameterized.class) e un parametro contrassegnato con @Parameters.
raggruppa vari test in una gerarchia e permette di eseguire più test insieme.
Esempio:
@RunWith(Suite.class)
@SuiteClasses({MyProgramTest.class, AnotherTest.class})
public class AllTests {
// test cases
}
assertEquals(expected, actual)
assertEquals(expected, actual, epsilon) tenendo conto di una tolleranza (epsilon).
assertTrue(bool) e assertFalse(bool)
assertNull(object) e assertNotNull(object)
assertSame(object1, object2)
assertArrayEquals(expectedArray, actualArray)
Approccio Divide et impera e Approccio di supporto testing regression
permettono di eseguire lo stesso caso di test con una serie di valori predefiniti