# TestFrame

TestFrame is een methode waarmee ICT-Systemen gestructureerd kunnen worden getest. De methode is in 1995 ontwikkeld door CMG en wordt nu beheerd door CGI. Het biedt een raamwerk aan waarin testsets, teststrategieën en testtechnieken zijn afgestemd op elkaar. Het hele testproces, van opzetten tot het afronden kan worden ondersteund door TestFrame. TestFrame is een open standaard en is voor iedereen beschikbaar.
CGI, toen nog Logica, heeft in november 2008 de meest recente versie van TestFrame uitgebracht. Het proces rondom TestFrame is beschreven in het boek Testframe: een methode voor gestructureerd testen (2008; ISBN 978 90 12 12596 3).
De belangrijkste wijziging is een betere aansluiting bij testmanagement volgens Risk and Requirement Based Testing zoals beschreven in Succesvol Testmanagement, een integrale aanpak (2003; ISBN 90 44 00554 5). Als gevolg van deze aansluiting is het testmanagementdeel uit de TestFrame methode weggelaten (dat gebeurt immers op een hoger niveau) en vervangen door een beschrijving van de testcoördinatieactiviteiten die binnen een testsoort plaatsvinden. Dit heeft voornamelijk betrekking op de overdracht van de opdracht (via clusterkaarten) vanuit RRBT naar TestFrame en de rapportage terug naar de testmanager op basis van de door de stakeholders geïdentificeerde productrisico's. Verder ligt de nadruk nu op de methode; het testautomatiseringsaspect komt wel aan bod maar wordt niet meer diepgaand beschreven.

## Grondslagen van TestFrame

TestFrame gaat uit van drie principes:
* Het traject moet passen bij de organisatie en haar manier van systeemontwikkeling.
* Testen biedt alleen kwaliteitsbeheersing als het gestructureerd en onderhoudbaar wordt opgezet.
* Het gebruik van geautomatiseerde hulpmiddelen is onderdeel in een modern testproces.
TestFrame biedt een raamwerk waarbinnen aan de genoemde principes gestalte wordt gegeven.
De TestFrame-aanpak is gebaseerd op een drietal pilaren, te weten:
* Flexibiliteit
* Structurering
* Hulpmiddelen

### Flexibiliteit

Elk project en elke organisatie is anders. Flexibiliteit in een testmethode is dan ook van groot belang. TestFrame heeft geen dwingend voorgeschreven stappenplan of faseringsmodel. Natuurlijk is er een relatie tussen de verschillende deelprocessen, en deze processen worden meestal in een logische volgorde doorlopen, maar men kan altijd teruggrijpen naar een voorgaande fase.

### Structurering

Bij de TestFrame-methode wordt de test op een gestructureerde manier opgebouwd. Eerst wordt het systeem opgedeeld in clusterkaarten en testclusters. Voor elk van de testclusters ontwikkelen testanalisten testcondities; deze beschrijven wat er getest gaat worden binnen het testcluster. De testcondities worden daarna vertaald in testgevallen waarmee wordt getest of het systeem onder specifieke omstandigheden het gewenste gedrag vertoont. Door deze opzet is het mogelijk om op basis van de productrisicoprioriteiten de belangrijkste onderdelen ook het eerst te testen en met de meeste dekking en diepgang.

### Hulpmiddelen

In een testproject zijn veel verschillende hulpmiddelen te gebruiken voor bijvoorbeeld testmanagement, voortgangsrapportage, testplanning, testanalyse, het genereren van testdata, het vergelijken van testresultaten en bevindingenbeheer of versiebeheer. Bij TestFrame hoort ook het geautomatiseerd uitvoeren van tests. Hiervoor kan gebruik worden gemaakt van hulpmiddelen zoals testprogramma's die het mogelijk maken om tests sneller, eenduidiger en consistent uit te voeren. Omdat testanalyse en testautomatisering volledig gescheiden zijn en navigatiescripts gestructureerd worden opgezet, is het mogelijk updates van testtools te implementeren. Door de gestandaardiseerde rapportage zijn de resultaten van de automatische tests toegankelijk bruikbaar voor het maken van de kwaliteitsrapportage voor de stakeholders.

## TestFrame fasering

In de uitvoering kent TestFrame vier processen met elk een aantal activiteiten. Deze processen kunnen flexibel worden doorlopen waardoor de testactiviteiten kunnen worden aangepast aan de bouw- en beheeractiviteiten binnen een organisatie. Waar nodig kunnen verschillende fasen worden herhaald. De vier TestFrameprocessen vallen binnen het grotere geheel van het testmanagementproces. Met het testmanagementproces wordt hier bedoeld het inrichten en beheren van een testproject volgens de methode Risk & Requirement Based Testen (RRBT). Qua terminologie en methode sluit TestFrame aan op RRBT. De vier processen zijn:
* Testvoorbereiding (Testcontract)
* Testanalyse (Testclusters, Testcondities, Testgevallen)
* Testautomatisering (Navigatiearchitectuur, Navigatiestructuur, Navigatiescripts)
* Testuitvoering (Testlog, Testresultaten)

### Testvoorbereiding

Vanuit de testprojectvoorbereiding door de testmanager krijgen de testcoördinator en de testanalisten de voor hen relevante clusterkaarten. Elke clusterkaart geldt als een testcontract voor hen. Die clusterkaart bevat onder andere informatie over de testsoort, de te testen productrisico’s en hun prioriteit, de bijbehorende requirements of andere testbasis en een of meer kwaliteitsattributen. Deze informatie moet voldoende zijn om de testcondities te bepalen en de testgevallen op te stellen.

### Testanalyse

Na de testvoorbereiding gaan testanalisten aan de slag met de daadwerkelijke testanalyse. Voor de verschillende clusterkaarten definiëren zij testclusters, testcondities en testgevallen. Testanalisten beginnen met het uitwerken van die tests die horen bij de productrisico’s met de hoogste prioriteit. In de teststrategie staat ook welke dekking en diepgang de test moet hebben.

### Testautomatisering

Wanneer de testgevallen gereed zijn en het te testen systeem voor de test wordt opgeleverd, kunnen de testuitvoerders de test handmatig uitvoeren. Het is echter ook mogelijk de gehele testuitvoering of delen daarvan te automatiseren. De automatiseringsscripts en andere voor de geautomatiseerde testuitvoering samengestelde hulpmiddelen worden bij TestFrame ‘navigatie’ genoemd.

### Testuitvoering

In deze fase worden de testgevallen uit de analysefase daadwerkelijk uitgevoerd waarbij de resultaten vergeleken worden met de vooraf voorspelde waarden. De testresultaten worden opgenomen in een testrapportage en alle bevindingen worden geregistreerd en opgenomen in het bevindingenbeheer. Aan het einde van deze fase wordt een evaluatie van het gehele testtraject uitgevoerd.