Column: Dit is HET belangrijkste testnieuws

Er is best wel veel testnieuws te melden vanuit de wereld van de softwarekwaliteit, zoals je kunt lezen op TestNieuws:

  • Nieuwe technologieën worden uitgebreid getest door de klanten van bedrijven. Google, Facebook en Microsoft zijn een paar voorbeelden hiervan;
  • IT bedrijven breiden hun activiteiten steeds meer uit, er worden bijvoorbeeld zelf rijdende auto’s getest;
  • Testen wordt steeds belangrijker en groeit in sommige werelddelen wel met 60%;
  • Infrastructurele testen komen in het nieuws, zoals het testen van tunnels of bruggen;
  • Beveiligingslekken en bugs komen steeds vaker in het nieuws. Belangrijke bedrijven verliezen geld en leiden imago schade door een of meerdere bugs;
  • Software problemen die af en toe de treinen stil leggen in Nederland.

Dit is het
Maar het belangrijkste nieuws van de afgelopen tijd met de meeste impact op ons vakgebied is eigenlijk al weer een aantal jaar oud (2009) en nog niets evenaart dit nieuws: het besef dat er een verschil is tussen checken en testen. Dit is een verschil die niet door iedere tester begrepen wordt. En al zeker niet door ‘anderen’ in de ICT.

De uitleg
Er is veel geschreven over dit onderwerp, de eerste blog komt uit 2009 van Michael Bolton. Maar deze verwijst in de eerste paragraaf al gelijk naar de laatste inzichten op dit onderwerp met vernieuwde ideeën en een beter leesbaar overzicht uit 2013.

Samenvattend
Testen is een intellectueel proces waarmee je software evalueert en checken is het volgen van een checklist om software te evalueren. Hierbij kan een checklist bijvoorbeeld bestaan uit: een testsscript, fysieke testgevallen, een model in Excel wat berekeningen simuleert. Omdat checklists opgeschreven verwachte resultaten zijn, kunnen checks geautomatiseerd worden en tests niet. Er is een verschil tussen checken door een mens en een automatisch proces, want een mens zal niet vastlopen als er een check fout gaat en past zich aan de situatie.

Waarom is dit het belangrijkste nieuws?
In het voorjaar van dit jaar was ik op een TestNet bijeenkomst over agile testen en beide presentaties vermeldden dat naast het testen zij ook automatische checks nodig hebben in hun project. Automatische checks, geen automatische testen.

Geen verschil maken tussen checken, je niet bewust zijn van het verschil bij het testen beperkt je qua inzicht in het werk wat je uitvoert. Dit omdat het wel eens zo kan zijn dat je je in je werk onbewust beperkt tot het alleen maar checken van de software. Misschien ben je helemaal niet bezig met testen? Misschien denk je dat alle automatische tests die je maakt het testen kan vervangen? Veel ontwikkelaars denken dat in ieder geval wel.

Aha moment van ‘the friendly tester’ – Richard Bradshaw
Een mooi voorbeeld is een presentatie van Richard Bradshaw, die al jaren automatische scripts aan het programmeren was in een bedrijf . Hij hoorde over het verschil tussen deze twee vormen en voor hem ging een wereld open. Vanaf dat moment keek hij anders naar zijn werk en zag dat het maar het halve werk was. Hier de video van de presentatie (je moet je wel even aanmelden)

Unit testen vervangt handmatig testen
Veel programmeurs denken op dit moment ook dat hun unit tests de lading dekken, maar dat is niet zo. Automatiseren van checks is goed, snelle feedback betekent dat de programmeur zelf zo snel mogelijk zijn eigen werk moet testen, zodat bugs snel opgelost worden. Alleen unit tests of het volgen van ATDD is niet voldoende om een goed inzicht te krijgen in de kwaliteit. Daarom refereer ik altijd naar automatisch checken en niet automatisch testen.

Dit moet duidelijk worden in de hele IT, zodat we veel bugs kunnen vermijden en de kwaliteit daarmee zwaar kunnen verbeteren.

Alleen al het bewustzijn van dit verschil tussen checken en testen kan dit teweeg brengen. Daarom is dit het belangrijkste nieuws in de testwereld van de afgelopen jaren.

——————————
Rob van Steenbergen is een onafhankelijke softwaretester en een actief blogger
Chickenwings Test Consultancy