"Wat is functioneel testen?"
- Smoke testing
- Regressie testen
- Integratie testen
- Acceptatietesten
Functioneel testen is het testen van software op basis van de functionele omschrijving van de software om de kwaliteit hiervan te beoordelen en mogelijke fouten op te sporen. Het gaat hier om het testen van een (vooraf) beschreven situatie. Je controleert als het ware de uitkomst van de ontwikkeling met wat je hier van tevoren over hebt opgeschreven.
Test scenario (data) ⇒ Test case ⇒ Test uitvoer ⇒ Resultaat
Er zijn verschillende soorten functionele tests die door het gehele softwareontwikkelproces worden gebruikt en de kwaliteit van het afgeleverde product optimaal kunnen afstemmen op de door u gewenste kwaliteit. Om hier optimaal van te profiteren is het niet voldoende om de ontwikkelaar een beetje te laten testen wat hij doet en achteraf de consultant er op te zetten. Functioneel testen gebeurt door de hele keten van ontwikkeling en is een vak apart, dat het best door specialisten wordt uitgevoerd.
Veel voorkomende soorten van functioneel testen:
Wat zijn de verschillen tussen functioneel en niet-functioneel testen? Waar functioneel testen zich richt op het vergelijk tussen de vooraf opgestelde functies van een applicatie, richt het niet-functionele testen zich meer op de applicatie als een geheel. Hoe goed presteert de applicatie in gegeven situaties en is dit voldoende in relatie tot het gewenste gebruik?
Functionele testen gaan dus over eisen en functionaliteiten (wat doet het), terwijl niet-functioneel testen gaat over verwachtingen en prestaties onder bepaalde omstandigheden. Functioneel testen is vaak handmatig uit te voeren, terwijl niet-functioneel testen vaak gesimuleerd moet worden.
In het proces van opstellen van wensen en eisen wordt niet-functioneel testen vaak vergeten. Over de functionaliteiten valt veel te vertellen, maar wat er verwacht wordt binnen bepaalde situaties van de software als geheel is lastiger te omschrijven of aan te geven wat er verwacht wordt.
Is het altijd mogelijk om functioneel testen uit te besteden? Deze vraag komt vaak naar voren, vanwege het idee dat alleen de opdrachtgever van de ontwikkeling (de klant, eigenaar van het product) echt op de hoogte is van de functionele eisen van een applicatie. Voor een deel is dat natuurlijk waar, want alle kennis die niet wordt overgedragen is niet aanwezig bij een externe partij. Daar zit hem echter ook de toegevoegde waarde voor het uitbesteden van functioneel testen. Wanneer de informatie gedeeld moet worden met een externe partij zal er aandacht besteed worden om de functionele eisen zo goed mogelijk vast te leggen. Hierdoor kan software beter getest worden en zal het eindresultaat ook beter zijn. Wanneer het opstellen van functionele eisen vanaf het begin goed gebeurt en gedurende de ontwikkeling de aandacht krijgt die het nodig is, kan functioneel, testen prima worden uitbesteed en waarde toevoegen aan de ontwikkeling.
Agile testen. Binnen een Agile ontwikkelmethodiek is het niet noodzakelijk om alle functionaliteiten van tevoren te beschrijven. Op basis van de User Stories wordt de ontwikkeling aangevangen en als het agile proces goed in elkaar zit zal er gedurende de sprint goed worden gedocumenteerd wat er precies functioneel wordt gebouwd. Door het testen in dit proces te integreren zal er continu gewerkt worden aan het omschrijven van functionaliteiten, het creëren van test cases, het uitvoeren van testen en het evalueren van de uitkomsten. Hierdoor wordt functioneel testen niet een sessie na afloop van de ontwikkeling, maar een continue cirkel van beschrijven, testen, evalueren en verbeteren. Wanneer hier professionele testers op in worden gezet, is het prima mogelijk (en vaak beter) om functioneel testen uit te besteden.
Egor Gucinsky QA Manager
"Testing is a preventive activity and focuses on revealing risky from quality point of view areas before testing starts. It is done in order to put dedicated testing stress on areas that are tend to have issues. Testing of functional and business critical scenarios is a priority. Scenarios are prepared beforehand and support development from the beginning."