Jullie hebben slecht getest!

Door Suzefred gepubliceerd op Saturday 04 May 22:38

In de categorie 'Oei, ik groei' dit keer een stuk over testen.

We testen gestructureerd, we gebruiken testtechnieken zoals de proces cyclus test en we ‘testen volgens TMap’.

En toch komt er in productie een fout voor waardoor de opmerking wordt gemaakt ‘jullie hebben slecht getest’.

Klinkt bekend?

6408073a0e73c90dac49867a5d10e521_1350656

 

Oh wacht, laat ik beginnen met een waarschuwing:
Mocht je een lezer zijn die nu denkt 'waar gáát dit over', dan bij deze even een waarschuwing, dit wordt een artikel dat gaat over testen, over TMap, over de Proces Cyclus Test oftewel de PCT,
Voor een klein clubje mensen interessant, maar voor mijn vaste lezers een artikel wat misschien het beste even overgeslagen kan worden, je mist er niets aan, mijn volgende artikel vind je hopelijk wél weer interessant. Dat artikel kan je overigens hier vinden

Terug naar het verhaal.
de opmerking wordt gemaakt ‘jullie hebben slecht getest’.

Klinkt bekend?

Nu kunnen we een aantal dingen doen.
1)    We kunnen iemand anders de schuld geven: ‘Nou, dan is het dus slecht gebouwd’,
2)    we kunnen onszelf verweren: ‘maar we kunnen toch ook niet álles testen’
3)    we kunnen het gaan ontkennen: ‘we hebben wel goed getest want we hebben gebruik gemaakt van een testtechniek zoals TMap het voorschrijft’.

Maar wat je ook zegt, feit blijft wel dat er blijkbaar een bevinding in zit die je er met het testen niet uitgehaald hebt en in plaats van dan in de verdediging te gaan is het veel belangrijker om hier lering uit te trekken. Waaróm hebben we die niet geraakt en hadden we die, met de product-risico-analyse in ons achterhoofd moeten raken?

Dit verhaal is gebaseerd op een situatie die ik laatst in praktijk tegenkwam, die me aan het denken zette en ervoor gezorgd heeft dat we het vanaf dat moment toch iets anders doen dan dat TMap het aan lijkt te geven.
Omdat het me niet zou verbazen als een soortgelijke situatie ook bij sommigen van jullie voor zou kunnen komen, wil ik hem toch graag met jullie wil delen. Doe er je voordeel mee!

Omdat ik er een beetje vanuit ga dat iedereen die dit verhaal tot het eind toe leest, het boek TMap-Next in de kast heeft staan, zal ik het praktijkvoorbeeld vereenvoudigen tot het schema zoals dat staat op bladzijde 610, in hoofdstuk 14.3.2. Voor het verhaal lijkt dit in ieder geval voldoende te wezen.

3492cd15c82a7351f4a1a1b7f4a7705e_1348422

We hebben besloten te testen met testmaat-2 waarbij je dan (zie ook TMap-Next, blz 613) op de volgende paden komt:

1-2
1-3
2-4
2-5
3-4
3-5
4-6
4-7
5-2
5-3

Hierna hangt het er vanaf hoe je verder gaat. Tmap-Next kwam tot de volgende pad-combinaties,  waarbij alle paden worden geraakt:

TG1: 1-2  2-5  5-3  3-4  4-6
TG2: 1-3  3-5  5-2  2-4  4-7

100% dekking op deze testtechniek. Klinkt goed.

De testgevallen zijn uitgevoerd, allemaal goed bevonden en de programmatuur is vrijgegeven voor productie.

Toch gaat het in productie fout. Hoe heeft dit kunnen gebeuren?

Stel nu dat deze fout op zou treden als het pad (2-5) drie keer achter elkaar wordt uitgevoerd, dan is het verklaarbaar dat deze fout niet gevonden wordt bij testmaat 2. Hiervoor zou een zwaardere testmaat nodig zijn geweest.

In dat geval zou ik het laten voor wat het was, we hadden besloten te testen met testmaat 2 en daarmee vind je deze fout niet. Geaccepteerd risico. Klaar.

Ons geval was in die zin bijzonder, dat de fout niet bleek te zitten in een onverwachte herhaling, de fout bleek juist te zitten in het basisscenario, de happy-flow, basis-flow of goed-pad. Maar dat goed-pad ging dus niet goed.
Het goed-pad was het pad wat de meeste gebruikers uitvoerden en juist daarin bleek de bevinding te zitten. Het testgeval wat wij niet getest hadden.
Het geval wat dus (terecht?) het commentaar ‘Jullie hebben slecht getest’ opleverde.

Een stukje verdere analyse.

De fout bleek te zitten in het pad 1-2-4-7.

Dit testgeval hadden we kunnen raken als we testmaat 1 hadden gebruikt en de volgende testgevallen hadden bepaald:

TG1: 1-2-4-7
TG2: 1-3-5-6

We hadden hem ook kunnen vinden als we testmaat 2 hadden gebruikt en de volgende testgevallen hadden bepaald:

TG1: 1-2 2-4 4-7
TG2: 1-3 3-4 4-6
TG3: (1-2) 2-5 5-2 (2-5) 5-3 3-5 (5-2 2-4 4-6)

In dit geval denk ik dat we dus gewoon ‘dikke pech’ hebben gehad met test. We hebben inderdaad getest ‘volgens het boekje’, maar daar heeft de gebruiker niets aan.

Het hierbij laten, of kan dit beter?

Worden fouten alleen voorkomen met zwaardere dekking?

Met testmaat 3 had dit gevonden kunnen worden (1-2)  2-4-7, maar dat had het met testmaat 2 ook, en met testmaat 1 ook. En in een iets ingewikkelder schema zou de happy-flow niet persé gevonden met testmaat 3.

Hoe voorkomen we dit dan toch?

Door te doen wat we nu ook al deden, conform TMap:  de tekening maken, de verschillende paden noteren, maar dan het grote verschil:

  • bepaal de happy-flow (deze werd zelfs al in onze testbasis aangegeven) en noteer deze als eerste testgeval

 

  • bepaal eventuele alternatieve flows en noteer die ook alvast als testgevallen.

 

  • Bepaal daarna pas voor de niet geraakte paden een pad-combinatie.


Op deze wijze heb je nog steeds 100% dekking voor deze techniek met de gekozen testmaat, én raak je in ieder geval de happy-flow.
Dat wil niet zeggen dat de gebruiker geen bevindingen meer heeft, maar 'het normale werk' zou in ieder geval mogelijk moeten zijn.
 

In praktijk zou dit resulteren in:

HF: 1-2-4-6, (volgens het Functioneel Ontwerp)
AF1: 1-3-4-6 (ook volgens het FO)
AF2: 1-2-4-7 (ook volgens het FO)

Welke zijn nu nog niet gedekt:
2-5
3-5
5-2
5-3

Hierdoor wordt
TC4: (1-2) 2-5 5-2 (2-5) 5-3 3-5 (5-2) (2-4) (4-6)

Wat heb ik hiervan geleerd?

Een aantal zaken.

  • ‘We kunnen niet alles testen’ is een bekende, en terechte opmerking. Alles testen is onmogelijk. Het is goed om hierbij stil te blijven staan. Ook op mijn beschreven manier zullen er ongetwijfeld nog zaken zijn die niet zijn getest.

 

  • ‘100% dekking’ is mogelijk, maar verschuil je hier niet achter, het is goed om te blijven beseffen dat 100% dekking wat anders inhoudt dan 100% getest, en ook dat 100% gedekt niet inhoudt dat altijd hetzelfde is gedekt.


Maar de belangrijkste les die ik hieruit heb gehaald:

  • Zorg dat je de happyflow (en wellicht ook de reguliere alternatieve flows) geraakt hebt!


En misschien nog een waarschuwing of een nadenker tot slot, de techniek van visiotekening, nummeren, paden maken, en kettingen daarvan maken is een relatief simpele maar doeltreffende techniek om te automatiseren en dat gebeurt dan ook.
Ik heb mogen werken met een tool die dit deed en heb soortgelijke tekeningen eens aangeboden en misschien wel volgens verwachting, komt deze ook met testgevallen waarbij de happy-flow niet afgedekt is.
100% dekking, dat wel. Maar ook met het risico dat je op op de maandag na de implementatie gebeld gaat worden en te horen krijgt 'jullie hebben slecht getest'.
Automatisering, helemaal voor, maar blijf wel een beetje kritisch kijken naar wat je automatiseert en hoe je dat doet.

Opmerkingen naar aanleiding van bovenstaande: vertel het me,
Vragen naar aanleiding van bovenstaande: stel ze me,
Complimenten naar aanleiding van bovenstaande: vertel het anderen.

Delen mag uiteraard.

 

09e00e2808c23813a6008833164a4b1e_medium. Fred Steenbergen is beroepsmatig Testspecialist. Zijn vrije tijd gaat grotendeels op aan het vrijwilligerswerk voor Stichting Dierenopvang Bosnië Hiermee gaat hij meerdere keren per jaar naar Bosnië om daar te helpen met het steriliseren van zwerfhonden.
Wilt u ook helpen? Helpen kan gratis!
U kunt bijvoorbeeld een verschil maken met Douwe Egberts Punten.
En wanneer deed u voor het laatst iets met uw Air Miles?
Ik flikker hem nog liever in de sloot!!!” Waar dat op slaat? Dat leest u hier.

Anderen lazen ook:

b5e864d1cb867ef6794a99a0114c8347_medium. b2a726feaf87b28201a84d0931644bfe_medium. 42424a8a5af50102dd5da20191ec3113_medium.

Agile, deel 1

Het teamoverleg

Lessons Learned,

Les 287

Hé Testertje,

bescheidenheid!

Reacties (2) 

Voordat je kunt reageren moet je aangemeld zijn. Login of maak een gratis account aan.
Bijzonder wiskundig artikel als alfa heb ik er wel moeite mee! Duim taco
Maar leuk om er een reactie op te krijgen, had ik niet verwacht :-)
Dank!