codice di qualità con vs2010 (tdd)

21
Codice di qualità con Visual Studio 2010 Test Driven Development, Continuous Integration, MTM » Davide Vernole In collaborazione con

Upload: xedotnet

Post on 25-May-2015

676 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Codice di qualità con VS2010 (TDD)

Codice di qualità con Visual Studio 2010Test Driven Development, Continuous Integration, MTM

» Davide Vernole

In collaborazione con

Page 2: Codice di qualità con VS2010 (TDD)

12/04/2023 www.xedotnet.org 2

AgendaAgenda

» Introduzione al testing» Test Driven Development» Continuous Integration» Manual Testing

Page 3: Codice di qualità con VS2010 (TDD)

12/04/2023 www.xedotnet.org 3

Introduzione al testing

Formazione

Preparazione

Scalata

Fase di preparazione

Costo del fallimento

Page 4: Codice di qualità con VS2010 (TDD)

12/04/2023 www.xedotnet.org 4

Introduzione al testing

Test

Release

Development

Fase del software

Costo dei bugs

Page 5: Codice di qualità con VS2010 (TDD)

12/04/2023 www.xedotnet.org 5

Introduzione al testing - segmentazione

Generalista SpecialistaTesting manuale

Qualche script

Creazione di scripts per preparare lab, creare dati

Forti competenze di scriptingQualche competenza di sviluppo

Forti competenzeSviluppo di procedure di testing automatizzate

Competenze di sviluppo da esperto

Black Box Testing

White Box Testing

API Testing

70% del testing avviene qui

la maggior parte dei tools operano qui

Page 6: Codice di qualità con VS2010 (TDD)

12/04/2023 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)

Page 7: Codice di qualità con VS2010 (TDD)

12/04/2023 www.xedotnet.org 7

» Il processo• Scrivere il test• Fallire il test• Scrivere il codice• Passare il test• Re-factoring

Test Driven Development (TDD)

•Se fallisce passo allo step successivo

ScritturaTest

•Se passo i test procedo con lo step successivo

Scrittura codice

•Ri-esecuzione del test•Se passo il test procedo con lo step successivo

Re-factoring

Prossima iterazione

Page 8: Codice di qualità con VS2010 (TDD)

12/04/2023 www.xedotnet.org 8

» TDD in Visual Studio 2010• Generazione di codice da Test• Impostazioni Intellisense• Test Impact View

Test Driven Development (TDD)

Page 9: Codice di qualità con VS2010 (TDD)

12/04/2023 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)

Page 10: Codice di qualità con VS2010 (TDD)

12/04/2023 www.xedotnet.org 10

Test Driven Development (TDD)

DEMO TDD

Page 11: Codice di qualità con VS2010 (TDD)

12/04/2023 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)

Page 12: Codice di qualità con VS2010 (TDD)

12/04/2023 www.xedotnet.org 12

Test Driven Development (TDD)

DEMO TIV

Page 13: Codice di qualità con VS2010 (TDD)

12/04/2023 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)

Page 14: Codice di qualità con VS2010 (TDD)

12/04/2023 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)

Page 15: Codice di qualità con VS2010 (TDD)

12/04/2023 www.xedotnet.org 15

Test Driven Development (TDD)

DEMO CI

Page 16: Codice di qualità con VS2010 (TDD)

12/04/2023 www.xedotnet.org 16

» Vantaggi• In presenza di bug, fixing on time senza eccessivi tempi di debugging• Individuazione e fix dei problemi continuo evitando il caos dell’ultimo minuto• Avviso preventivo per

• codice non funzionante o incompatibile• Conflitti nei cambiamenti

• Unit testing immediato per tutti I cambiamenti• Disponibilità costante dell’ultima build per

• Testing• Demo• release

• feedback immediato agli sviluppatori per• Qualità• Funzionalità• Impatto del codice sulla soluzione

• Migliora la modularità del codice e ne riduce la complessità (check-in frequenti)

Continuous Integration (CI)

Page 17: Codice di qualità con VS2010 (TDD)

12/04/2023 www.xedotnet.org 17

» Cosa succede abitualmente quando un cliente (tester) trova un bug?

Manual Testing con Microsoft Test Manager (MTM)

...ora mi dira la solita frase...

Funziona nel mio

computer

Page 18: Codice di qualità con VS2010 (TDD)

12/04/2023 www.xedotnet.org 18

» 70% dei test viene eseguito manualmente» Visual Studio 2010 introduce MTM» 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)

Page 19: Codice di qualità con VS2010 (TDD)

12/04/2023 www.xedotnet.org 19

Test Driven Development (TDD)

DEMO MTM

Page 20: Codice di qualità con VS2010 (TDD)

12/04/2023 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...

Page 21: Codice di qualità con VS2010 (TDD)

blog:

email:

web:

twitter:

Link

12/04/2023 www.xedotnet.org 21

»Davide Vernole

blog.knodev.com

[email protected]

www.knodev.com

twitter.com/knodev