6 september 2016

Informatie

Op deze pagina vindt u een algemene uitleg over software testen. In verschillende artikelen leggen wij u de nut en noodzaak van het testen van software uit.

Wat is software testen?

Testen is een activiteit die bestaat uit meten en vergelijken, met als doel het verschil tussen de gewenste en de feitelijke situatie vast te stellen. Voor software wordt testen uitgevoerd om vast te stellen ‘dat de software goed is’, of ‘dat er geen fouten inzitten’. Maar ook ‘of de software te gebruiken is’ en ‘dat het snel genoeg werkt’ of ‘veilig genoeg is’.

Software testen heeft een groot aantal verschijningsvormen en kan zowel gecombineerd met een maak-verander activiteit worden uitgevoerd, of als losstaande activiteit.

Testen is niet voorbehouden aan gespecialiseerde software testers, maar wordt ook door ontwikkelaars, beheerders en eindgebruikers uitgevoerd. Elk van hen heeft eigen specifieke aandachtsgebieden, zoals ‘werkt de code die ik zojuist heb gecompileerd’, ‘werkt de applicatie die wij zojuist hebben gebouwd’ en ‘helpt die nieuwe software mij om mijn werk als arts beter uit te voeren’.

Traditioneel worden software testen op meerdere niveau’s georganiseerd en uitgevoerd: door opdrachtgevers/afnemers, door de projectorganisatie die voor de realisatie of het beheer zorgdraagt en door de makers/leverancier van de softwareoplossing. Veelal worden deze testen ‘testniveau’s’ of ‘testsoorten’ genoemd. Er zijn verschillende redenen voor, waarom deze testen los van elkaar, of zelfs onafhankelijk worden georganiseerd, zoals:

  • de expertisegebieden benodigd voor bepaalde testen en beschikbaar bij opdrachtgever, projectorganisatie of leverancier verschillen dusdanig, dat een test op het verkeerde niveau niet effectief is;
  • verschillende gezichtspunten tussen ‘dit werkt goed’ en ‘dit is wat ik nodig heb’;
  • parallelle voorbereiding maakt efficiënter werken mogelijk.

Een willekeurige applicatie kan binnen de testsoorten door verschillende ‘testbrillen’ worden bekeken: er kan bijvoorbeeld gelet worden op de snelheid waarmee de data wordt getoond, of de aanwezigheid van de afgesproken knoppen en functies. Dit heten de kwaliteitseigenschappen van een softwareproduct of computersysteem en zijn benoemd in de kwaliteitsstandaarden ISO 25010, ISO 25012 en ISO 12207. Omdat het meestal niet nodig is om alle kwaliteitskenmerken van een applicatie in iedere testsoort steeds opnieuw te bekijken wordt aan het begin van iedere testproject een keuze gemaakt in welke testsoort de verschillende kwaliteitseigenschappen worden bekeken. We noemen dit ‘testvormen’.

De verschillende kwaliteitseigenschappen hebben alle hun eigen manier van testen. Deze testen vereisen vaak specifieke kennis of ervaring, die veelal op verschillende momenten bij verschillende mensen beschikbaar is.

Hoe kun je software goed testen?

Het testen van software wordt vaak onderschat, met als gevolg dat er te veel, te weinig of met een verkeerde aanpak wordt getest. Te veel testen betekent verspilling van projectbudgetten, te weinig of met een verkeerde aanpak betekent dat er fouten in het product blijven zitten.

Een goede testaanpak begint met het bespreken van kwaliteitsverwachtingen. Moet het product in het geheel of moeten delen ervan gegarandeerd foutvrij zijn? Welke kwaliteitseigenschappen moeten in de beoordeling worden meegenomen? Welke testbasis is beschikbaar? Van welke kennis, ervaring en ondersteuning kan gebruik gemaakt worden? Wat is de handigste manier om de testen de organiseren, te faseren en uit te voeren? Hoe ziet de testaanpak er voor ieder onderdeel uit? Zijn de planning en begroting akkoord met de opdrachtgever of producteigenaar?

Een goed testplan bevat de antwoorden op deze vragen en maakt duidelijk, welke mensen en middelen op welke wijze voor het software testen worden ingezet. Het schrijven van zo’n plan is lastig zonder er een lijvig boekwerk met ondoorgrondelijke termen van te maken. De inhoud moet beperkt zijn tot het doel van het plan en de schrijfstijl moet passen bij de doelgroep.

Nu de testaanpak per onderdeel is beschreven, kunnen er de benodigde mensen en middelen worden bijgezocht. Er wordt zoveel mogelijk gebruik gemaakt van de beschikbare parate kennis en ervaring; voor specialistische vaardigheden zal mogelijk externe inhuur gepleegd moeten worden.