TestNet - Agile testautomatisering in de praktijk

61
TestNet najaarsevent Jori Ramakers & Marielle Winarto Agile testautomatisering in de praktijk

Transcript of TestNet - Agile testautomatisering in de praktijk

TestNet najaarsevent

Jori Ramakers & Marielle Winarto

Agile testautomatisering

in de praktijk

Wat gaan we doen

Aan de slag met agile testautomatisering

• Waarom belangrijk?

• Hoe past testautomatisering binnen scrum?

• Van user story tot werkende software

• Tools

• Valkuilen en veelgemaakte fouten

Testautomatisering

sneller, vaker en beter testenS

door inzet van tools

Uitgangspunten

Scrumbord

• Teams van 6

• Laptops

• Internet: wifi NBC

• Website: training.testtoolfactory.com

Praktische zaken

De case

De mensen

JoriTechnical lead

MarielleProduct Owner

AnnelèneEindgebruiker

• Online database met gegevens over mobiele

telefoons, zodat de klant makkelijker kan

kiezen

• (en tot aankoop overgaat)

Productvisie

alleenbellen

breed productaanbod

onpartijdig

levert zelf

phonehouse.nl

Tweakers.net

coolblue

wehkamp

belsimpel

Beslist.nl

• Project gaat binnenkort van start

• Scrum, korte sprints van 2 weken

• Weinig budget, zsm werkend prototype

• Testen? Testautomatisering?

Situatieschets

Redenen om te automatiseren

1. Eerder en sneller fouten vinden

2. Minder testers nodig

3. Hogere kwaliteit

4. Technische wijzigingen minder riskant

• Wat wil je testen?

• Welke methoden heb je beschikbaar?

Overall teststrategie

• Kennismaken

– Wie ben je?

– Wat heb je al gedaan met agile TA?

– Wat wil je vandaag bereiken?

Opdracht 1a

Opdracht 1b

• Waar liggen de risico’s?

• Wat testen?

• Wat automatiseren?

• Welke randvoorwaarden?(techniek, mensen, proces)

Testpiramide

• Dicht op de code

• Voor en door developers

• Pros: snel, makkelijk debuggen

• Cons: gebrek aan context

Unittesten

• Vanuit technisch perspectief

• Delen afzonderlijk en samen

• Pros: test integraties

• Cons: afhankelijkheden

Componenten, integraties

• Technische implementatie als

black box

• Gericht op functionaliteit

• Doet de applicatie het?

Functionele acceptatie

• Door eindgebruikers

(of vanuit hun perspectief)

• Heb je er ook wat aan?

Gebruikersacceptatie

Unittesten - tools

• Junit

• TestNG

• Jasmine (+Karma)

• Visual Studio Unit Test Framework

• Etc.

Demo

• Unit testen met TestNG

• Behavior Driven Development

• Jbehave

• Cucumber

• Specflow

• Etc.

Given – When - Then

Syntax - features

Syntax - features

Code

Given I have an order

Given there is an order

Given there is an order called “incidental detail”

Given the order “incident detail” exists

Given an order exists

DRY

Imperative

Declarative

• Voorbeelden maken een story concreet

• Alle teamleden op één lijn

• OOK zinvol als er niet geautomatiseerd wordt

Voordelen

a) Bel1voudig.nl begint vorm te krijgen, bekijk

het verloop

b) Specificeer testgevallen voor de zoekfunctie

Opdracht 2

Done

• Teststrategie bepalen

– Incl. automatiseringsdoelen

• Testpiramide

• Testautomatisering dicht bij de code

ToDo

(na de pauze)

• Testautomatisering bovenin de piramide

• Andere tools

Maar nu eerst: valkuilen en risico’s

Mini-waterval

Definition of Done

Tijd tekort

Falende tests

Stellingen

1. Agile projecten kunnen niet zondertestautomatisering.

2. Iedere tester moet kunnen programmeren.

3. Als je genoeg automatiseert, is handmatig testenniet meer nodig.

4. Automatiseren in een vroeg stadium is niet zinvol, alles verandert toch nog.

ToDo

• Testautomatisering bovenin de piramide

• Andere tools

• (nog aanvullen, of weglaten)

Functionele acceptatie

• Natuurgetrouw

• Black-box

• Testen van functionaliteit

Automatiseren webapplicatie

Tools

Een selectie

• Hotelapplicatie

Nieuwe casus

Opdracht 3

1. Draai het script

2. Pas het script aan

3. Maak een nieuw testgeval voor de volgende

story: <story>

4. Draai het script opnieuw

• Alles willen testen

• Onleesbare testgevallen

• Fragiele locators: xpath

• Timing

• Afhankelijkheden testdata en infrastructuur

Valkuilen functioneel testen

Tips functioneel testen

werkdoelgericht

structureelonderhoud

gooi ookwat weg

story testgevallen keuzes

Focus

Andere tools

• Scrum tools

• Test management tools

• Testdata

• Service virtualisatie

• Versiebeheer

• Etc

Opdracht 4a

• Onderhoudbaarheid

– Herbruikbare blokken

– Testdata

Opdracht 4b

• Voorbereiding retro

– Wat ging er goed?

– Wat kon er beter?

– Wat heb je geleerd?

– Welke vragen staan nog open?

Agile plaatje

Daily24 hours

Sprint2-4 weeks

Wanneer draai je wat

• Elke save

• Elke build

• Elke deployment

• Elke dag

• Elke sprint

• Gerichte werk

Review

Retro