Home QA & Testing soorten Functioneel testen

Functioneel testen

“Wat is Functioneel Testen?”

  • Smoke testing
  • Regression testing
  • Test integration
  • Acceptance tests

Wat is functioneel testen?

Functional testing is een belangrijke stap in het testproces van software. Bij deze vorm van testen wordt gekeken naar de functionele beschrijving van de software om de kwaliteit en eventuele fouten te beoordelen. Hierbij worden vooraf beschreven situaties getest om te controleren of de software aan de verwachte features voldoet.

De stappen die je hierbij zet zijn:

  • Welke functies worden verwacht van de software?
  • Met welke gegevens gaan we de beschreven functies testen en op welke manier?
  • Wat verwachten we als resultaat met die gegevens?
  • Voer de test uit
  • Vergelijk het werkelijke resultaat met het verwachte resultaat om te zien of de software aan de verwachtingen voldoet

Het is van belang dat er testdata wordt gebruikt die representatief is voor de echte data die de software zal verwerken. Op deze manier kan er een betrouwbare vergelijking worden gemaakt tussen de verwachte uitkomsten en de daadwerkelijke uitkomst na het uitvoeren van de test. Door deze vergelijking kan er vervolgens worden bepaald of de applicatie aan de verwachtingen voldoet en of eventuele aanpassingen nodig zijn.

 

Test scenario (data) ⇒ Test case ⇒ Test output ⇒ Result

6 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 testen 

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.

Functionele testautomatisering

Software ontwikkeling en ontwikkeling en automatisering gaan hand in hand. Het automatiseren van de functionele tests kan veel tijd besparen, vooral als het gaat om regressietesten (testen in verschillende stadia van de software).

Er worden afgesproken scripts geschreven die de testgevallen bevatten, zodat u de tests snel en gemakkelijk kunt uitvoeren. Dit zorgt ervoor dat alle gedefinieerde eisen bij elke nieuwe versie van de software opnieuw worden getest. Geautomatiseerd functioneel testen helpt ook om fouten door handmatig werk tot een minimum te beperken.

Agile testing

Binnen een Agile ontwikkelingsmethode is het niet nodig om alle functionaliteiten vooraf te beschrijven. De ontwikkeling begint op basis van de User Stories en als het Agile proces goed in elkaar zit, wordt tijdens de sprint goed gedocumenteerd wat er precies functioneel gebouwd wordt. Door testen in dit proces te integreren, wordt er continu gewerkt aan het beschrijven van functionaliteiten, het creëren van testcases, het uitvoeren van tests en het evalueren van de resultaten.

Dit wordt ook wel Agile testing genoemd. Het zorgt ervoor dat eventuele problemen snel worden opgelost en dat het project soepel blijft verlopen. Het uitbesteden van agile testing leidt dan ook vaak tot betere resultaten en tevredenheid bij alle betrokken partijen.

Functioneel testen uitbesteden

Is het altijd mogelijk om functioneel testen uit te besteden? Uitbesteden kan een uitstekende optie zijn voor bedrijven die de benodigde knowhow en middelen niet in huis hebben. Het zorgt voor een efficiëntere testcyclus en uiteindelijk betere producten.

Er zijn ook gevallen waarin het niet mogelijk is om functioneel testen uit te besteden, zoals wanneer gevoelige bedrijfsgegevens op het spel staan of wanneer er strikte regelgeving is die dit verbiedt. In deze gevallen is het beter om interne resources te gebruiken. Over het algemeen biedt het uitbesteden van functioneel testen bedrijven echter aanzienlijke voordelen en het overwegen waard bij het optimaliseren van de kwaliteit van hun producten:

Het uitbesteden van functioneel testen kan verschillende voordelen hebben voor een organisatie. Enkele van de belangrijkste voordelen zijn:

  1. Kostenbesparing
  2. Expertise en ervaring
  3. Flexibiliteit en schaalbaarheid
  4. Een onafhankelijk perspectief
  5. Tijd en focus
  6. Risicobeheersing

Het is een uitstekende optie voor organisaties die intern niet over de nodige middelen beschikken en willen zorgen voor een efficiëntere testcyclus en betere producten. Bovendien stelt het interne teams in staat om richten op hun kernactiviteiten en vermindert het risico op fouten. Het uitbesteden van functioneel testen kan uiteindelijk leiden tot een betere productkwaliteit, betere gebruikerservaringen en een grotere klanttevredenheid.

 

  • Testmanagement
  • QA-Management
  • Software testen
  • En meer in deze brochure!

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

Testers of een testteam van Addcode inhuren?

Benieuwd naar de mogelijkheden van het inhuren van Addcode testers of testteams? Laat het ons weten, dan plannen we een afspraak om alles aan u uit te leggen!