Software Testing Esercizi proposti Esercizi di Testing 1
Esercizi proposti Una delle prove obbligatorie per sostenere l esame di Ingegneria del Software 2 è lo svolgimento di un esercizio pratico di testing Da svolgere a casa In gruppi al più di 3 persone Da consegnare al più due giorni prima dell esame, via e-mail In alternativa, è preferibile la consegna via svn Esercizi di Testing 2
Tracce proposte Sono proposte alcune applicazioni da testare, tra le quali scegliere Gruppi da 3 persone: BlackJack Sudoku PacMan (applet) SudokuGame (altra versione di sudoku) Gruppi da 2 persone: Gioco del 15 Reversi (applet) VideoPoker Quiz Gruppi singoli: Gioco dell'impiccato Ricorda Password, applicazione per salvare e ritrovare elenchi di password Esercizi di Testing 3
Tracce proposte Tutte le applicazioni sono realizzate in Java Tutte le applicazioni hanno un interfaccia utente grafica realizzata con AWT o Swing (in un caso si tratta di una applet) Nessuna applicazione ha bisogno di librerie supplementari, oltre quelle della sdk In ogni applicazione sono stati iniettati 3 difetti Ulteriori difetti insiti nelle applicazioni possono essere ulteriormente trovati Esercizi di Testing 4
Strumenti utilizzabili Junit per la programmazione dei casi di test Tobias Per la generazione combinatoria di casi di test Eclipse (o altre IDE) per lo svolgimento del debugging CodeCover Per la misura della copertura white box Structure Analysis Per la valutazione del grafo delle dipendenze CFG generator Per la valutazione del Control Flow Graph Qualunque altro strumento presentato al corso Eventuali altri strumenti reperibili in rete, in particolare per l automazione del testing delle interfacce utente Per questi altri strumenti, un paragrafo descrittivo del loro funzionamento deve essere allegato al documento consegnato Esercizi di Testing 5
Tecniche di testing Implementare tre o più delle seguenti strategie: Testing funzionale black box Descrivere le funzionalità dell'applicazione in termini di input, output, precondizioni, progettare e realizzare casi di test secondo una delle strategie proposte per il testing black box Testing della GUI Descrivere la struttura e il comportamento della GUI tramite diagrammi (ad esempio statechart), poi progettare e realizzare test secondo una delle strategie di copertura degli stati e delle transizioni relative alla GUI Testing strutturale Per ogni classe/metodo, progettare e realizzare casi di test allo scopo di massimizzare una delle funzioni di coeprtura white box del codice Testing d'integrazione Descrivere l'applicazione in termini di grafo delle dipendenze. Progettare e realizzare casi di test per testare uno o più componenti indipendentemente dal resto del software, applicando eventualmente una strategia d'integrazione top-down o bottom-up Debugging e testing di regressione Trovare i difetti iniettati con i test case delle strategie precedenti, descrivere la strategia di debugging utilizzata per localizzare il difetto, correggerlo e rieseguire i test per verificare che esso sia stato corretto e che non si siano manifestati ulteriori malfunzionamenti (regressioni) Esercizi di Testing 6
Documentazione da produrre Per ognuna delle strategie di testing descritte nella slide precedente, bisogna produrre: Documento descrittivo della strategia seguito Elenco di tutti i casi di test svolti e del loro esito Codice di tutti i casi di test Da distribuire possibilmente sotto forma di progetto Eclipse Il docente deve poterli rieseguire prima dell'esame Report di copertura Generabile automaticamente da CodeCover Report dei difetti rilevati e delle modifiche apportate al software Non è obbligatorio, ai fini della consegna dell esercizio, riuscire a ritrovare tutti i difetti, ma è fondamentale documentare tutti i test effettuati e i criteri seguiti nel progettarli Esercizi di Testing 7