NieuwsMagazine

Het voorkomen van chaos tijdens testen

Redactie: Gerben de la Rambelje
Auteur: Eric Spaargaren  ● e.spaargaren@dktp.nl
Eric Spaargaren
Op 16 maart jl. was de thema-avond ‘gebonden en ongebonden testen’ georganiseerd. Kennelijk spreekt het thema de testnetleden aan, gezien de grote opkomst. Er zijn diverse manieren om softwaretesten op te stellen. Het schrijven van testspecificaties bevat meerdere invalshoeken. Op deze avond werd dan ook gesproken over gebonden en ongebonden testen of is het gestructureerd en ongestructureerd testen!
We kunnen het volgende stellen:
Gebonden testen = gestructureerd testen
Ongebonden testen = ongestructureerd testen.
Bij gebonden testen is er altijd wel sprake van een testmethode die gebruikt wordt. Bij ongebonden testen is juist sprake van een willekeurige werkwijze waarbij delen gebruikt kunnen worden van een testtechniek, of dat dit juist geheel losgelaten wordt.
Gestructureerd testen versus ongestructureerd testen
Bij gestructureerd testen worden alle testfaseringen van het testen gebruikt met daarbij alle onderdelen van waterval als software ontwikkelmethodiek. Bij ongestructureerd testen worden juist onderdelen uit een Framework gebruikt, een voorbeeld hiervan is de Agile methodiek. Met de opkomst van Agile kan de vraag gesteld worden of de gestructureerde Tmap benadering nog wel gebruikt kan worden. Of is het juist mogelijk om onderdelen uit Tmap ongestructureerd toe te passen? Of moeten we de Tmap benadering loslaten en veel meer gaan kijken hoe de context-driven wereld het testen benaderd? Of is het niet of het één of het ander, maar kunnen beide benaderingen goed naast elkaar en met elkaar leven?
Arend
Een voorbeeld dat beide benaderingen in de praktijk voorkomen, heb ik zelf als testconsultant ondervonden. Ik heb een opdracht uitgevoerd bij een Ministerie waarbij gebonden testen essentieel was. Op een vervolg project bij dat Ministerie was juist ongebonden testen essentieel. Bij ongebonden testen worden voornamelijk de volgende testtechnieken gebruikt; “Exploratory testen” of “Error guessing”.
Workshop 1: (gebonden testen)
De opdracht was om uit de volgende testtechnieken een keuze te maken:
DCT (Data Combinatie Testtechniek)
PCT (Proces Cyclus Testtechniek)
EVT (Elementaire VergelijkingsTest)
SYN (Syntactische Testtechniek)
SEM (Semantische Testtechniek)
Er is een dataflowstructuur diagram gegeven met als opdracht een testtechniek te gebruiken die hierboven staan aangegeven. Aan de hand van dit diagram gingen we logische testgevallen en fysieke testgevallen opstellen. Dit is dus feitelijk een voorbeeld van gebonden testen.
Workshop2: (ongebonden testen)
Bij workshop2 werden er twee voorbeelden gegeven van “ongebonden testen”:

  1. Exploratory testing
  2. Error guessing

Hierbij hebben we in het team “Exploratory testing” toegepast en is de internetsite van de belastingdienst gebruikt. Bij deze vorm van testen kan er een willekeurige keuze gemaakt worden in het maken en het uitvoeren van testen. We zien hier dat er andere testen worden uitgevoerd dan in de eerste workshop en we hebben hierdoor ook een andere bevinding gevonden.
Conclusie:

  • Met een gebonden testtechniek worden de specifieke testgevallen geschreven waarbij testgevallen worden gemaakt uit alle beslispunten;
  • Met een ongebonden testtechniek worden weer andere testen uitgevoerd en kan een andere benaderingswijze gebruikt worden. Het mooie hiervan is, dat een willekeurige benaderingswijze van toepassing is en dus weer andere testen worden uitgevoerd;
  • Door naast een gebonden testtechniek ook een ongebonden testtechniek te gebruiken kunnen er andere type bevindingen gevonden worden;
  • Bij het samenstellen van testen is het mogelijk om beide testvormen te gebruiken, zowel de gebonden als ongebonden testtechnieken. Dit is mogelijk. Let wel: de logging bij Exploratory testen is hierbij belangrijk want dan is duidelijk welke testgevallen je hebt gemaakt;
  • Uit ervaring met het gebruik van Exploratory testing is het ook mogelijk om regressie testen uit te voeren maar dan dienen de testsheets wel op orde te zijn.

3 reacties

  1. Hoi Eric,
    Dank voor de samenvatting van de avond. Lijkt een leuke avond geweest te zijn. Je zegt: “Ongebonden testen = ongestructureerd testen” en dat hoor ik vaker. Daarna zeg je: “Hierbij hebben we in het team “Exploratory testing” toegepast en is de internetsite van de belastingdienst gebruikt. Bij deze vorm van testen kan er een willekeurige keuze gemaakt worden in het maken en het uitvoeren van testen.”
    Je woordkeus is volgens mij een beetje ongelukkig. Ongebonden testen of Exploratory testen is niet ongestructureerd en de keuze van testen die je doet zou niet willekeurig moeten zijn.
    Een goede tester kiest zijn testen heel bewust en volgens een bepaalde structuur. Testcases zijn een vorm van structuur, maar zeker niet de enige! Dus ookal gebruik je geen testcases of uitgewerkte testtechnieken, dan nog test je volgens een bepaalde structuur. Lees deze blogpost van Michael Bolton eens en laat je inspireren door de vele vormen van structuur die je zou kunnen gebruiken…
    http://www.developsense.com/blog/2009/12/structures-of-exploratory-testing/

  2. Hoi Huib,
    Dank voor je reactie en ik zal dit eens nader bekijken. Maar ik moet daarbij wel aangeven dat ik zelf tijdens testen vaak testsheets gebruik. Want als er naderhand vragen worden gesteld kan ik altijd goed aangeven hoe ik de testen heb uitgevoerd. Daarnaast wil ik ook wel aangeven dat structuur of geen structuur tijdens testen ook wel afhangt van de risico’s van de software applicatie: betreft het omvangrijke complexe software of betreft het minder omvangrijke software met lagere risico’s.
    Met vriendelijke groet,
    Eric Spaargaren

  3. Testen is ALTIJD gestructureerd!! Ookal doe je het exploratory of op welke manier ook. De enige vorm van ongestructureerd testen dat ik ken is random testen.
    Structuur hoeft niet op papier te staan, mensen kunnen heel gestructureerd denken en daarmee heel gestructureerd handelen (lees testen).

Geef een reactie

Je e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *