Testen geeft grip Michiel Vroon
...bugs in software
...en software zit overal
Het zorgt voor ongemak...
1. 2. 3. 4. 5.
Insert card Insert PIN Enter amount Take out card Take out money
Kleinschalig of grootschalig
…en ruïneert imago‘s
Het belang wordt groter
Wat is testen? § Van Dale: “toetsing van de kwaliteit, geschiktheid van personen of zaken” § Detectieve kwaliteitsmaatregel § Vergelijken van een object met een norm § Van “Vinden van fouten” naar “Vertrouwen geven” TMap: Testen is een proces dat inzicht geeft in- en adviseert over de kwaliteit en de daaraan gerelateerde risico’s
Kwaliteit?
Kwaliteitsdimensies
Verwachtingen en behoeften
Eisen en specificaties
Testen is meer dan uitvoeren
Requirements
Ontwerp
Realisatie
Test?
Test-‐ planning
Test-‐ voorbereiding
Test-‐ uitvoering
20%
40%
40%
Gebruik & beheer
Ontwikkelen, toetsen en testen Valideren en verifiëren Behoeftes, verwachting en
Gebruik & beheer
Requirements
Acceptatietests
Validatie
Functioneel ontwerp
Technisch ontwerp
Verificatie
Verif
Realisatie
Systeemtest
Unit(integratie)tests
Klant: “Hebben we gekregen wat we wilden?” Project: “Zijn we klaar om te leveren?”
Engineer: “Heb ik gebouwd wat ik zou moeten bouwen?”
Zeer late fout detectie Behoeftes, verwachting en
Requirements
Functioneel Ontwerp
Technisch ontwerp
Realisatie
Unit(integratie)tests
70% van de bevindingen door onjuiste of onvolledige requirements!
Systeemtest
Acceptatietests
Gebruik & beheer
Eerdere foutdetectie Validatie en verificatie als continue activiteit
Requirements
Foutdetectie
Versie X
✔
Versie X+1
Requirements
Ontwerp
Technisch ontwerp
✔ ✔
✔ ✔ ✔
Ontwerp
Technisch ontwerp
Realisatie
✔ ✔ ✔ Realisatie
Unit(integratie)tests
Systeemtest
Acceptatietests
Voorwaarden continu testen § Testen centrale plaats in project § Betrokkenheid en participatie acceptant gedurende hele project (duidelijk wie acceptant is!) § Kwaliteitsbesef gecombineerd met project succes § Formele toets- en testontwerptechnieken § Risico-gedreven testen Gebruik § Concrete quality gates § Commitment management
Realisatie
Beheer
Testontwerptechnieken
Licht
Gemiddeld
Zwaar
Dekking
Dekking is de verhouding tussen datgene wat getest kan worden en datgene wat met de testset getest wordt • Dekkingsvorm: “datgene wat getest kan worden”
• Dekkingsgraad: “datgene wat met de testset getest wordt”
Zwaarder testen door…
• Meer soorten zeven (meer dekkingsvormen) • Fijnmaziger zeven (grondigere dekkingsvorm) • Grotere zeven (hogere dekkingsgraad)
Basistechniek/dekkingsvorm Basistechniek is de wijze van afleiden van de testsituaties uit de testbasis die tot de gewenste dekkingsvorm leidt Paden Beslispunten Equivalentieklassen Pairwise testing Orthogonale arrays Grenswaarde analyse
CRUD Operational profiles Load profiles Goedpaden/Foutpaden Afvinklijst
Pairwise testing heeft tot doel om van elke willekeurige combinatie van 2 factoren alle mogelijkheden te testen.
Voorbeeld
§ Kaartje kopen voor een treinreis, bij een automaat. De volgende parameters spelen hierbij een rol § Soort reis § Klasse § Betaalwijze
: enkel; retour : 1ste; 2de : credit card; pinpas; contant
• Alle mogelijkheden van alle parameters met elkaar vermenigvuldigen. • 2 x 2 x 3 = 12 testsituaties
Alle 12 mogelijke combinaties Soort reis
Klasse
Betaalwijze
1
Enkel
1ste
Pinpas
2
Enkel
1ste
Creditcard
3
Enkel
1ste
Contant
4
Enkel
2de
Pinpas
5
Enkel
2de
Creditcard
6
Enkel
2de
Contant
7
Retour
1ste
Pinpas
8
Retour
1ste
Creditcard
9
Retour
1ste
Contant
10
Retour
2de
Pinpas
11
Retour
2de
Creditcard
12
Retour
2de
Contant
En kijk nu eens hier naar ! Soort reis
Klasse
Betaalwijze
2
Enkel
1ste
Creditcard
3
Enkel
1ste
Contant
4
Enkel
2de
Pinpas
7
Retour
1ste
Pinpas
11
Retour
2de
Creditcard
12
Retour
2de
Contant
Ieder parameter-paar bevat alle mogelijke combinaties
Soort reis - Klasse Soort reis
Klasse
Betaalwijze
2
Enkel
1ste
Creditcard
3
Enkel
1ste
Contant
4
Enkel
2de
Pinpas
7
Retour
1ste
Pinpas
11
Retour
2de
Creditcard
12
Retour
2de
Contant
Soort reis - Betaalwijze Soort reis
Klasse
Betaalwijze
2
Enkel
1ste
Creditcard
3
Enkel
1ste
Contant
4
Enkel
2de
Pinpas
7
Retour
1ste
Pinpas
11
Retour
2de
Creditcard
12
Retour
2de
Contant
Klasse - Betaalwijze Soort reis
Klasse
Betaalwijze
2
Enkel
1ste
Creditcard
3
Enkel
1ste
Contant
4
Enkel
2de
Pinpas
7
Retour
1ste
Pinpas
11
Retour
2de
Creditcard
12
Retour
2de
Contant
Waarom Pairwise testing?
§ Enorme reductie van testsituaties § Bij 9 parameters met 2, 3 of 4 mogelijkheden > 12.960 combinaties § 23 combinaties met pairwise testen
§ Grote foutvindkans § Aanname: Fouten zijn zelden gevolg van combinatie van meer dan 2 parameters § Onderzoeken tonen grote effectiviteit aan § Meer informatie: www.pairwise.org
Samenvatting
Vragen?