Wat is het verschil tussen smoke testing en sanity testing?

Wat is het verschil tussen smoke testing en sanity testing?

M2Q- smoke testing en sanity testing

Smoke testing en sanity testing worden vaak door elkaar gehaald, maar het zijn twee fundamenteel verschillende testmethoden in softwareontwikkeling. Beide spelen een cruciale rol in het kwaliteitsborgingsproces, maar ze worden op verschillende momenten ingezet en hebben elk hun eigen doel. Dit artikel verduidelijkt de verschillen tussen deze twee testbenaderingen en legt uit wanneer je welke methode moet toepassen.

Smoke testing: de eerste stabiliteitscheck

Smoke testing, ook wel build verification testing genoemd, is een snelle en oppervlakkige test die controleert of de basisfunctionaliteiten van een applicatie werken. Deze testmethode krijgt zijn naam van de elektronica-industrie, waar men letterlijk keek of er rook uit een apparaat kwam bij het aanzetten. In softwareontwikkeling betekent dit dat je controleert of de software “niet in rook opgaat” bij het opstarten.

Kenmerken van smoke testing

Het belangrijkste kenmerk van smoke testing is dat het breed maar oppervlakkig test. De focus ligt op het verifiëren dat de kritieke functionaliteiten operationeel zijn. Denk hierbij aan:

– Kan de applicatie opstarten?
– Werken de primaire navigatiemenu’s?
– Kunnen gebruikers inloggen?
– Laden de hoofdpagina’s correct?

Smoke tests worden meestal uitgevoerd na elke nieuwe build of deployment. Ze dienen als poortwachter: als de smoke test faalt, heeft het geen zin om verder te testen. De build wordt dan teruggestuurd naar het ontwikkelteam voor correcties.

Sanity testing: gerichte verificatie na wijzigingen

Sanity testing daarentegen is een meer gerichte testbenadering die specifieke functionaliteiten controleert na kleine wijzigingen of bugfixes. Het is een smalle maar diepere test die zich concentreert op bepaalde modules of features die recent zijn aangepast.

Kenmerken van sanity testing

Waar smoke testing breed test, gaat sanity testing de diepte in op specifieke onderdelen. Deze testmethode wordt toegepast wanneer:

– Een specifieke bug is opgelost
– Een nieuwe feature is toegevoegd
– Een beperkte wijziging is doorgevoerd
– Er geen tijd is voor volledige regressietests

Sanity testing is doorgaans niet-gescript en meer gebaseerd op de rationele beoordeling van de tester. Het doel is simpelweg verifiëren dat de recente wijzigingen geen nieuwe problemen hebben veroorzaakt in de betreffende functionaliteit.

De kernverschillen tussen smoke testing en sanity testing

Reikwijdte en diepgang

Het meest opvallende verschil tussen smoke testing en sanity testing zit in de reikwijdte. Smoke testing bestrijkt het hele systeem maar blijft oppervlakkig. Sanity testing daarentegen focust zich op specifieke componenten maar test deze grondiger.

Timing en toepassingsmoment

Smoke testing vindt plaats bij elke nieuwe build, aan het begin van de testcyclus. Het is de eerste verdedigingslinie tegen defecte software. Sanity testing gebeurt later in het proces, specifiek na bugfixes of kleine aanpassingen, en vaak vlak voor een release.

Documentatie en scripting

Een ander belangrijk verschil zit in de documentatie. Smoke tests zijn meestal wel gedocumenteerd en kunnen geautomatiseerd worden. Ze volgen een vast script dat telkens hetzelfde blijft. Sanity tests zijn doorgaans ongedocumenteerd en worden handmatig uitgevoerd, gebaseerd op de kennis en het gezonde verstand van de tester.

Subset van testen

Smoke testing is een subset van acceptance testing. Het bepaalt of de build stabiel genoeg is om verder getest te worden. Sanity testing is een subset van regression testing en controleert of specifieke functionaliteiten nog correct werken na wijzigingen.

Praktische toepassingen in Nederland en België

In Nederlandse en Belgische softwarebedrijven worden beide testmethoden breed toegepast. De Agile en DevOps methodieken, die populair zijn in de Benelux, maken intensief gebruik van beide testbenaderingen. Bij continuous integration en continuous deployment (CI/CD) zijn geautomatiseerde smoke tests onmisbaar geworden.

Wanneer gebruik je welke testmethode?

Kies voor smoke testing wanneer:

  • Je een nieuwe build hebt ontvangen
  • Je de basisstabiliteit wilt verifiëren
  • Je wilt bepalen of verder testen zinvol is
  • Je automatische verificatie in je CI/CD pipeline wilt inbouwen

Kies voor sanity testing wanneer:

  • Er een specifieke bug is gerepareerd
  • Een kleine feature is toegevoegd
  • Je snel wilt verifiëren dat wijzigingen werken
  • Er geen tijd is voor uitgebreide regressietests

Complementaire teststrategieën

Het verschil tussen smoke testing en sanity testing zit voornamelijk in reikwijdte, diepgang en toepassingsmoment. Smoke testing test breed en oppervlakkig bij elke nieuwe build, terwijl sanity testing smal en dieper test na specifieke wijzigingen. Beide methoden zijn complementair en essentieel voor een effectieve teststrategie. Door ze correct toe te passen, voorkom je dat defecte software verder in het ontwikkelproces komt en bespaar je kostbare tijd en middelen. Een goed begrip van beide testmethoden helpt testteams om efficiënter te werken en kwalitatief betere software op te leveren.

Gerelateerde blogs