ORDINA BLOGT

Explore je weg naar betere kwaliteit software!

Veel bedrijven zeggen dat ze testen gaan automatiseren, maar in mijn optiek kan dit niet! Daarom deze blog

  • Geoffrey van der Tas
  • 16 maart 2017

De verkennende kant van testen
Veel bedrijven zeggen dat ze testen gaan automatiseren, wat ook noodzakelijk is in de wereld waarin alles sneller moet, de wereld van DevOps & agile software development. Alleen zeggen ze alle testen te gaan automatiseren, geen handmatige testen meer. Dat is dan ook de directe aanleiding voor dit blog. Want je kan niet alles geautomatiseerd testen en het is ook nog eens het leukste deel uit testen halen. Namelijk creativiteit en het verkennen van automatiseren.

Automatiseren, automatiseren, automatiseren
Automatiseren van testen is zeker geen slechte aanpak, helemaal niet als het op kwaliteit aankomt. We kunnen veel meer testen en ook veel sneller. Automatiseren geeft dus de mogelijkheid tot het doen van meer testen in minder tijd. Echter, er is ook een nadeel aan test automatiseren: we kunnen alleen automatiseren wat we vooraf verwachten, dus kunnen we alleen maar checks automatiseren. Daarmee zorgen checks dus alleen voor feedback op verwacht resultaat en de vooraf bedachte criteria en situaties.

Maar met alleen checks leren we niks nieuws over het softwareproduct, krijgen geen nieuwe inzichten en doen daardoor geen uitgebreide kwaliteitschecks. Om je automatische checks te verbeteren, moet je zorgen dat je ook je product gaat testen. Dat je de onbekende factoren leert kennen en deze gaat gebruiken om de kwaliteit van je product en je testen te verbeteren. Hieronder zie je een afbeelding over de ‘checking testing synergy’, het ene verrijkt het ander. Dat is precies de strekking van dit verhaal.

information

 https://findingdeefex.com/2016/05/20/the-testing-checkingsynergy/

Checken vs Testen
Checken is het controleren van het verwachte resultaat. Testen is meer het ervaren en meer informatie krijgen over een product. Als we het bakken van een taart hiervoor als metafoor gebruiken, kunnen we heel goed checken of de juiste ingrediënten en hoeveelheden aanwezig zijn. Je kunt zelfs controleren of de tekst en afbeeldingen op de taart kloppen. Maar de smaak zal je moeten proeven(testen). Ook daar kun je bepaalde vooraf gestelde eisen mee verifiëren, zoals de taart moet kruimelig en zoet zijn. De informatie kun je gebruiken om je volgende taart nog beter te maken en dus bijvoorbeeld je check op de hoeveelheid suiker aan te passen naar een grotere hoeveelheid, omdat je taart bij de volgende test bijvoorbeeld zoeter moet zijn.


Cake wreck
Figuur 1: Afbeelding afkomstig van Cakewrecks.com
Check: ingrediënten en hoeveelheden, baktemperatuur    Test: smaak, ervaring en uiterlijk.

In bovenstaande afbeelding staat nog iets wat je zomaar met testen kunt tegenkomen: de requirement was “the cake must contain: ‘Happy Birthday Starr’ with two R’s”. Zie het bovenstaande resultaat, voldaan in requirement volgens de maker wel, volgens de klant vast niet.

Exploratory testing
Een manier om vorm te geven aan het echte testen is ‘Exploratory Testen’. Deze onderzoekende manier draait om het simultaan bedenken en leren, uitvoeren en vastleggen van testen. Waarbij je bij het bedenken de eerder opgedane informatie uit de testen gebruikt om je volgende testen te vormen. Dit doe je in een gestructureerde werkvorm die het onderstaande proces volgt:



Je start dit proces door gebruik te maken van ‘charters’ die richting geven aan je testen. Vervolgens ga je door middel van test ideeën je test ontwerpen en simultaan daaraan uitvoeren. Tijdens het uitvoeren van de testen worden notities gemaakt, zodat je aan het einde van de sessie goed feedback kunt geven aan de stakeholders/teamleden en deze feedback voor je volgende testsessie weer kunt gebruiken.

Checks zijn nodig en exploring is fun
Om dus nog beter inzicht in de kwaliteit van software te krijgen, is het van belang om softwareproducten te gaan exploreren, naast alleen checken. Exploratory Testing is een eenvoudige manier om met het gehele team je gebouwde software beter te leren kennen en fouten te vinden. Zo kun je de geautomatiseerde testen verbeteren. En, ondersteun je het team in de het nemen van de verantwoordelijkheid voor kwaliteit.

Als je meer wil weten over Exploratory Testing of interesse hebt in de workshop over Exploratory Testing, neem dan contact met me op.