5. 07/05/2010 www.xedotnet.org 5 Introduzione al testing - segmentazione 70% del testing avviene qui la maggior parte dei tools operano qui Black Box Testing White Box Testing API Testing
6. 07/05/2010 www.xedotnet.org 6 Tecnica di sviluppo: test-first approach Scrivere prima i test Basare le interazioni su un grouppo di test Scrivere codice per passare i test Benefici Mantenere il focus sulle funzionalità di codice per l’utente Piccole interazioni Piena copertura del codice (Code Coverage) Codice più ridotto e pulito Test Driven Development (TDD)
7. 07/05/2010 www.xedotnet.org 7 Il processo Scrivere il test Fallire il test Scrivere il codice Passare il test Re-factoring Test Driven Development (TDD)
8. 07/05/2010 www.xedotnet.org 8 TDD in Visual Studio 2010 Generazione di codice da Test Impostazioni Intellisense Test Impact View Test Driven Development (TDD)
9. 07/05/2010 www.xedotnet.org 9 TDD in VS 2010 - Generato dall’uso... Stub generati per: Class Struct Interface Constructor Method Property Field Enum Intellisense in modalità Consume-First Test Driven Development (TDD)
11. 07/05/2010 www.xedotnet.org 11 Test Impact View Trovare il codice interessato dai cambiamenti Viste possibili Test impattati Cambiamenti di codice Visual Studio 2010 Ultimate Premium Professional Test Driven Development (TDD)
13. 07/05/2010 www.xedotnet.org 13 Vantaggi Riduce le sessioni di debugging Mantiene il focus su Usabilità attesa dal cliente Task da realizzare Riduce il tempo complessivo di sviluppo + test Porta a codice più modulare, flessibile e estendibile Full code coverage Test Driven Development (TDD)
14. 07/05/2010 www.xedotnet.org 14 Scopo Ridurre la possibilità di «Integration hell» Ridurre il tempo di fixing del codice Modalità Build a ogni inserimento di codice nel repository Come Source Control Build automatizzate Flag Continuous Integration Flag Gated Checkin Continuous Integration (CI)
16. 07/05/2010 www.xedotnet.org 16 Vantaggi In presenza di bug, fixing on time senzaeccessivi tempi di debugging Individuazione e fix deiproblemi continuo evitandoilcaosdell’ultimominuto Avvisopreventivo per codice non funzionante o incompatibile Conflittineicambiamenti Unit testing immediato per tutti I cambiamenti Disponibilitàcostantedell’ultima build per Testing Demo release feedback immediatoaglisviluppatori per Qualità Funzionalità Impatto del codicesullasoluzione Migliora la modularità del codice e ne riduce la complessità (check-in frequenti) Continuous Integration (CI)
17. 07/05/2010 www.xedotnet.org 17 Cosa succede abitualmente quando un cliente (tester) trova un bug? Manual Testing con Microsoft Test Manager (MTM) Funziona nel mio computer ...ora mi dira la solita frase...
18. 07/05/2010 www.xedotnet.org 18 70% dei test viene eseguito manualmente Visual Studio 2010 introduceMTM MTM agevola la: creazione di test manuali segnalazione di bug ricchi di informazioni Utilizzabile anche da non developer Elevata integrazione con TFS User Story Test case Bugs ...ecc Manual Testing con Microsoft Test Manager (MTM)
20. 07/05/2010 www.xedotnet.org 20 Tecniche Unit Testing Tools PEX Analisi del codice e identificazione comportamenti Automatizza la creazione di Unit Testing con elevato code coverage http://research.microsoft.com/en-us/projects/pex/ MOLES Aggevola lo Unit Testing con PEX Continua...