Home QA & Testing soorten Functioneel testen

Functioneel testen

"Wat is functioneel testen?"
  • Smoke testing
  • Regressie testen
  • Integratie testen
  • Acceptatietesten

Wat is functioneel testen?

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.

  • Welke functies worden er van de software verwacht?
  • Met welke data gaan we de omschreven functies testen en op wat voor manier?
  • Wat verwachten we als uitkomst met deze data?
  • Uitvoeren van de test
  • Vergelijk de daadwerkelijke uitkomst met de verwachte uitkomst om te kijken of de applicatie voldoet aan de verwachtingen.

 

Test scenario (data)  ⇒  Test case  ⇒  Test uitvoer  ⇒  Resultaat

Soorten functionele tests

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:

  • Unit testing. Deze testen worden meestal uitgevoerd door de softwareontwikkelaars zelf. Zij testen de code die ze maken op zaken als volledigheid en methode. In het kader van functioneel testen gaat het hierbij of de code goed geschreven wordt en dus functioneert.
  • Smoke testing. Dit is een eerste test die moet aangeven of de basisfunctionaliteiten in orde zijn. Door middel van een aantal test cases wordt gekeken of deze versie van de software stabiel is en klaar om verder ontwikkeld en getest te worden.
  • Sanity testing. Wordt meestal na de smoke test gedaan om te kijken of alle grote en belangrijke functies van de code functioneren ("zijn ze wel goed bij hun hoofd...").
  • Regressie testen. Met een regressietest wordt gekeken of alle systeemonderdelen nog goed blijven functioneren nadat er wijzigingen in de software zijn aangebracht.  De focus is vaak op de onderdelen die mogelijk beïnvloed zijn door de aanpassingen aan de software of waar fouten in de software zijn gevonden.
  • Integratie testen. Wanneer verschillende onderdelen van de software moeten samenwerken, moet er getest worden of deze samenwerking goed werkt. Oftewel; zijn ze goed geïntegreerd met elkaar?
  • Acceptatietest. Ook wel beta test of usability test genoemd. Deze manier van testen is er voor bedoeld om te achterhalen of de software uiteindelijk doet wat er van verwacht wordt. In een opdrachtgever situatie gaat het dus om een test die uitwijst of de softwareontwikkeling geaccepteerd wordt op basis van de geformuleerde functionele eisen. Binnen Agile ontwikkeling kan hiervoor gebruik worden gemaakt van de User Stories.

Functioneel en niet-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.

Functioneel testen uitbesteden.

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.

  • Professioneel getest
  • Integratie in het Agile team
  • Tijd besparen op ontwikkeling
  • Maak gebruik van ervaring
  • Investeren om kosten te besparen

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."

Bekijk de ontwikkeling van Technosoft

1977 Vandaag
2001
Start verkoop AxisVM
1983
Registratie merk Technosoft
1984
Start ontwikkeling CAD software
2000
Overname activiteiten door Brunel en vestiging in Deventer
2007
Technosoft Duitsland
2009
Technosoft Moldavië
2015
Technosoft Roemenië
1993
Van DOS naar Windows platform
2014
Introductie 3Muri aardbevingssoftware + eerste KOMO certificering
2013
Start Business unit Quality Assurance & testing
2011
Overstap naar Eurocode software
2012
Start van nearshoring onder de naam In-shore
2006
Technosoft door Brunel verkocht door middel van een Management Buy Out
1998
Projectmanagement software