- Esame: Ingegneria del Software II [Software Testing], Porfirio Tramontana.
- Svolgimento esame: per l'esame è necessario preparare una o due tesine (svolgimento singolo o in gruppi di 2-3 al max), da consegnare qualche giorno prima dell'esame, e infine una prova orale sugli argomenti di teoria del corso.
Nel caso si scelga l'opzione con una tesina, tipicamente il prof richiede che la componente Testing sia maggiormente approfondita (nel contesto di un'app Android già esistente oppure realizzata ad hoc).
Nel caso si scelga l'opzione con due tesine (che ho scelto col mio gruppo): una riguarda la realizzazione di un'app Android (a libera scelta, basta concordarlo con lui) che abbia qualche requisito minimo di utilizzo di sensori del cellulare (ad es. fotocamera, localizzazione, temperatura, ecc.) e/o l'accesso a risorse esterne (noi ad esempio abbiamo utilizzato Firebase); la seconda tesina può riguardare l'approfondimento di un argomento di testing (sempre concordato con lui, ma alcuni spunti sono già presenti nelle slide) in modo teorico o con qualche piccolo esempio pratico.
Per quanto riguarda la tesina dell'app Android (di cui non bisogna necessariamente fare testing), basta inserire il funzionamento dell'app (qualche screenshot), diagramma dei casi d'uso, class diagram di dettaglio delle classi (automaticamente prodotto da un plugin Visual Paradigm per Android Studio) ed eventualmente qualche modello dinamico. Nel nostro caso, ci ha chiesto anche un deployment diagram essendo un sistema distribuito su più nodi. In ogni caso, è sempre meglio sentirsi con lui per avere conferme su cosa inserire o meno.
Per quanto riguarda l'esame orale, dopo una breve discussione delle tesine (chiede più che altro dei pareri sul lavoro svolto), di solito fa 3 domande a testa. Quello che ho sentito sono state:
- Libri e appunti utilizzati: slide del corso, documentazione Android e video tutorial (ce ne sono a migliaia) su Youtube.
- Considerazioni: l'esame è abbastanza interessante perché approfondisce i precedenti esami di questo tipo e introduce tematiche di testing nuove. Il prof, persona molto disponibile, ci tiene ad aggiornare anno per anno il corso per dare una panoramica anche degli strumenti che si utilizzano. In generale, la realizzazione dell'app Android è stato un mezzo per confrontarsi con un Java più avanzato rispetto a quello visto nei corsi precedenti.
- Svolgimento esame: per l'esame è necessario preparare una o due tesine (svolgimento singolo o in gruppi di 2-3 al max), da consegnare qualche giorno prima dell'esame, e infine una prova orale sugli argomenti di teoria del corso.
Nel caso si scelga l'opzione con una tesina, tipicamente il prof richiede che la componente Testing sia maggiormente approfondita (nel contesto di un'app Android già esistente oppure realizzata ad hoc).
Nel caso si scelga l'opzione con due tesine (che ho scelto col mio gruppo): una riguarda la realizzazione di un'app Android (a libera scelta, basta concordarlo con lui) che abbia qualche requisito minimo di utilizzo di sensori del cellulare (ad es. fotocamera, localizzazione, temperatura, ecc.) e/o l'accesso a risorse esterne (noi ad esempio abbiamo utilizzato Firebase); la seconda tesina può riguardare l'approfondimento di un argomento di testing (sempre concordato con lui, ma alcuni spunti sono già presenti nelle slide) in modo teorico o con qualche piccolo esempio pratico.
Per quanto riguarda la tesina dell'app Android (di cui non bisogna necessariamente fare testing), basta inserire il funzionamento dell'app (qualche screenshot), diagramma dei casi d'uso, class diagram di dettaglio delle classi (automaticamente prodotto da un plugin Visual Paradigm per Android Studio) ed eventualmente qualche modello dinamico. Nel nostro caso, ci ha chiesto anche un deployment diagram essendo un sistema distribuito su più nodi. In ogni caso, è sempre meglio sentirsi con lui per avere conferme su cosa inserire o meno.
Per quanto riguarda l'esame orale, dopo una breve discussione delle tesine (chiede più che altro dei pareri sul lavoro svolto), di solito fa 3 domande a testa. Quello che ho sentito sono state:
- Testing White Box e criteri di copertura;
- Testing in isolamento;
- Ripetibilità di un test e problema dell'oracolo;
- Build Automation (discorso generale su Maven, Gradle e Continuous Delivery);
- Testing di sistemi concorrenti (essenzialmente il problema della tempificazione degli input)
- Libri e appunti utilizzati: slide del corso, documentazione Android e video tutorial (ce ne sono a migliaia) su Youtube.
- Considerazioni: l'esame è abbastanza interessante perché approfondisce i precedenti esami di questo tipo e introduce tematiche di testing nuove. Il prof, persona molto disponibile, ci tiene ad aggiornare anno per anno il corso per dare una panoramica anche degli strumenti che si utilizzano. In generale, la realizzazione dell'app Android è stato un mezzo per confrontarsi con un Java più avanzato rispetto a quello visto nei corsi precedenti.