I diversi tipi di test
I diversi test
Unit testing
Testo le singole funzionalità dati pre e post condizioni
È automatico.
Component testing
Metti insieme più funzionalità per fare qualcosa (testi interfacce).
Cosa vado a testare:
- i null
- designo i test in modo tale che falliscano
- stresso il sistema
System Testing
Connetto e integro componenti già testati. Vado a testare il sistema nella sua interezza.
Release testing
Dimostro che il sistema è quello che richiede l’utente, quindi è corretto e fa vedere che funziona per quello che era stato progettato
Requirements Based Testing
Mostro che per ogni requisito c’è almeno un test.
Coverage
Come faccio a stabilire che ho testato a sufficienza?
Con lo unit testing ad esempio c’è la level coverage: grafo orientato con if-else, ed entro nei vari branch.
Automazione
Normalmente nei test ci sono:
- initialization: definisci i test case con input, expected output
- call: chiami il test
- assertion: compari i risultati ottenuti con quelli aspettati
TTD
I test prima di tutto. Posso continuare a sviluppare solo se passo i test.
Benefici:
- code coverage: ogni segmento ha almeno un test
- regression: controllo se integrando non ho rotto tutto
- simplified debug: so subito dove ho sbagliato
- documentazione: definisco cosa il software fa