• TOGA

 

Outsourcing in de IT is reeds decennia een belangrijk thema voor organisaties. De migratie naar de Cloud is een actuele vorm van uitbesteding, waarbij vooral (technisch en financieel) beheertaken worden afgestoten. Cloutest gaat in op de samenhang tussen testen en de migratie naar de Cloud.

Softwareontwikkeling uitbesteed

Wanneer softwareontwikkeling wordt uitbesteed, maakt testen daar automatisch deel van uit. In elk geval voor een deel. De leverancier wordt geacht de ontwikkelde software werkend op te leveren, wat zonder goed testen niet is vast te stellen. Testen speelt een bijzondere rol: met testen wordt de kwaliteit van de software onderzocht en de opdrachtgever heeft baat bij inzicht in deze onderzoeksresultaten. Acceptatie is een onvermijdelijke stap: is de software ‘fit for purpose’ (dit is de functionele kant) en is aan het contract voldaan (juridische kant). Testen speelt een cruciale rol bij de acceptatie. Hieronder staat een eenvoudig uitbestedingsmodel waar, naast acceptatie, ook specificaties, afspraken en regie een plaats hebben.

TOGA1
  • De ‘specificaties’ omvatten alle informatie die de leverancier nodig heeft voor het uitbesteed werk.
  • ‘Afspraken’ zorgen voor transparantie over de wederzijdse verwachtingen, taken en verantwoordelijkheden.
  • De ‘regie’ die de opdrachtgever uitvoert, zorgt voor risicobeheersing en verlaagt het risico op onaangename verrassingen bij de acceptatie.

Test outsourcing governance approach, TOGA

Belangrijke opmerking: De aanpak is ontstaan in een periode dat testen vooral door onafhankelijke testteams plaatsvond. De toepassing in een Agile context vergt de nodige flexibiliteit in de uitwerking.

Begin jaren 2000 is TOGA ontwikkeld, gericht op de testaspecten van uitbestede softwareontwikkeling. De aanpak helpt bij het inrichten en verbeteren van testen in de context van uitbestede softwareontwikkeling. Wanneer testwerk wordt uitbesteed, komt er veel bij kijken om te zorgen dat dit goed gaat. Het uitbesteden van het testen is bijzonder, het testen is de “final gateway to go live”. Er is een grondig oordeel nodig over de kwaliteit van het informatiesysteem en over de risico’s die eventueel nog resteren bij het in productie nemen.

De volgende vier (test)uitbestedingsfasen worden door TOGA onderkend:

  • initiatie;
  • inrichting;
  • transitie;
  • uitvoering.

Initiatie

Waarom is het interessant om het testen uit te besteden? Welk doel is ermee gediend? Een aantal opties op een rij:

  • Verhogen prestaties: het testen kan beter door anderen worden gedaan (goedkoper, met hogere kwaliteit, sneller).
  • Richten op kernactiviteiten: personeel en materiaal dient zo veel mogelijk ingezet te worden op kernactiviteiten van de organisatie en testen zit daar niet bij.
  • Benutten nieuwe mogelijkheden: in de cloud ontstaan interessante nieuwe mogelijkheden, zoals crowdsourced testen en andere vormen van “collaborative” testen.

Welke testactiviteit wordt uitbesteed? Er zijn diverse mogelijkheden, zoals de systeemtest van een website, een performancetest of een multiplatformtest. De aanpak bij het uitbesteden van het testen is:

  • Inventariseren van de opties.
  • Evalueren welk doel gediend is.
  • Bepalen van de impact op de organisatie.

De eindverantwoordelijkheid (en daarmee regie en acceptatie) voor de goede werking van de informatiesystemen kan nooit helemaal worden uitbesteed. Een punt van discussie is bijvoorbeeld of acceptatietests worden uitbesteed. Een functionele acceptatietest is prima uit te besteden, de uitvoering van een gebruikersacceptatietest niet, want die moet door de gebruikers worden uitgevoerd.

Er zijn vele vormen van testuitbesteding. Offshoring bijvoorbeeld omvat uitbesteden naar een locatie, meestal ver weg, met lage kostenstructuur. Communicatie gaat meestal alleen in het Engels, is indirect (vraag en antwoord) en kan op allerlei manieren vervormd raken (andere cultuur, andere taal, andere context). Goed afstemmen van de verwachtingen is een hele uitdaging. Eenvoudige, goed omlijnde (test)opdrachten maken de grootste kans om succesvol uitbesteed te worden.

Inrichting

Bij het selecteren van een leverancier om naar uit te besteden richt de aandacht zich uiteraard ook naar testen.

Belangrijke selectiecriteria zijn:

  • Wat zijn kenmerken van de organisatie (te vertrouwen, stabiliteit)?
  • Wat is de reputatie, zijn er referenties in het (test)vakgebied?
  • Is testen een kernactiviteit, wordt er op een duidelijke manier getest?
  • Wat is de (test)ervaring?
  • Hoe staat het met de domeinkennis?

De afnemer kan een assessment overwegen om de kwaliteit(en) van de leverancier te beoordelen.

Het maken van afspraken bij testuitbesteding is van groot belang. Men koopt als het ware testdekking in, maar hoe kan dat worden gemeten? Normaal gesproken worden afspraken gemaakt over de testdiepgang, de wijze van testen, de wijze van rapporteren, kortom een hele set afspraken die goed passen in de structuur van een (generiek) mastertestplan. Over onderstaande punten (niet uitputtend) dient duidelijkheid te zijn bij het uitbesteden van testwerk:

  • Welke standaarden worden gebruikt?
  • Hoe worden testgevallen gemaakt?
  • Hoe worden de productrisico’s vertaald naar tests?
  • Hoe wordt begroot?
  • Hoe productieconform is de testomgeving?
  • Hoe wordt gerapporteerd over de voortgang en de kwaliteit (metrics)?
  • Hoe verloopt het bevindingenproces?
  • Hoe is overleg georganiseerd, hoe loopt escalatie?
  • Hoe loopt de communicatie met opdrachtgevers?
  • Welke testbasis is benodigd?
  • Hoe wordt de kwaliteit van de testbasis bepaald?
  • Hoe wordt succes gemeten?
  • Hoe wordt kennis overgedragen (domein, systeem, project)?
  • Hoe zijn juridische en financiële zaken afgesproken (geheimhouding,
tarieven)?

Transitie

Bij de overgang naar testuitbesteding vindt overdracht van kennis, documentatie, materiaal en mogelijk zelfs personeel plaats. Ook bij TaaS moet de leverancier bepaalde zaken weten, zoals de URL waarop het testobject bereikbaar is, de omgevingseisen voor de testomgeving of de verschillende platforms waarop een informatiesysteem getest moet worden. Ook het testobject moet worden overgedragen aan de testleverancier.

Uitvoering

Er zijn diverse redenen om zicht te houden op het testen:

  • Garanties over de kwaliteit van het testen.
  • Tijdig zicht op de uitkomst (vooral als het niet goed gaat en bijsturen 
nodig is).
  • Informatie ten behoeve van acceptatie (vertrouwen opbouwen).

Hieronder wordt toegelicht hoe een afnemer zicht kan houden op het testen. Dit kan echter niet zonder informatie. Vooraf moet de afnemer met de leverancier afspraken maken over het aanleveren van informatie over het testen. Om te beginnen inspecteert de afnemer de testdocumentatie van de leverancier. Hiermee wordt een beeld opgebouwd van de kwaliteit van het testen. Relevante testdocumenten omvatten: testplannen, testspecificaties en testrapportages. Naast de testdocumentatie is inzicht in de testvoortgang en de kwaliteit van het testobject van belang. Hiermee krijgt de afnemer tijdig zicht op de te verwachten uitkomst van het testtraject. Inzicht in metrics is een voorwaarde voor succesvolle controle op het uitbestede testwerk. Standaard (minimum) metrics hiervoor zijn de:

  • trend in het aantal niet-opgeloste bevindingen;
  • trend in het aantal gevonden bevindingen per dag of per week;
  • trend in het aantal succesvol en niet-succesvol uitgevoerde testgevallen (tegen de achtergrond van het totale aantal testgevallen).

(Disclaimer – herhaling: deze aanpak is niet ‘Agile-hard’ en dient in Agile context anders te worden aangelopen).