codice di qualità con vs2010 (tdd)

Post on 25-May-2015

676 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

» Davide Vernole

In collaborazione con

12/04/2023 www.xedotnet.org 2

AgendaAgenda

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

12/04/2023 www.xedotnet.org 3

Introduzione al testing

Formazione

Preparazione

Scalata

Fase di preparazione

Costo del fallimento

12/04/2023 www.xedotnet.org 4

Introduzione al testing

Test

Release

Development

Fase del software

Costo dei bugs

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

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)

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

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)

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)

12/04/2023 www.xedotnet.org 10

Test Driven Development (TDD)

DEMO 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)

12/04/2023 www.xedotnet.org 12

Test Driven Development (TDD)

DEMO TIV

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)

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)

12/04/2023 www.xedotnet.org 15

Test Driven Development (TDD)

DEMO CI

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)

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

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)

12/04/2023 www.xedotnet.org 19

Test Driven Development (TDD)

DEMO MTM

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...

blog:

email:

web:

twitter:

Link

12/04/2023 www.xedotnet.org 21

»Davide Vernole

blog.knodev.com

davide@knodev.com

www.knodev.com

twitter.com/knodev

top related