Black Box testing: Software op de pijnbank


Black box

Black Box Testing

Black Box testing is een software testaanpak die er gebruiken om de software te testen zonder dat we de interne structuur van code of programma kennen. Is deze test echter voldoende om alle fouten te vinden?

Deze testmethode is vaak een afsluitend onderdeel van softwareprojecten. De methode is met name vaak gebruikt voor het uitvoeren van een acceptatietest. Black Box testing is te definiëren als een testtechniek om de functionaliteit van een applicatie te testen zonder te kijken naar:

  • Interne codestructuur.
  • Implementatiedetails.
  • Interne paden van de software. 

Dit type testen is volledig gebaseerd op wat we weten van de software-requirements en de functionele specificaties.
Als klant of gebruiker moet je we rekening meehouden dat je ergens aan het einde van het project wordt gevraagd om de software te accepteren. Om vast te stellen dat de software aan de verwachtingen voldoen moet je acceptatietesten. Reserveer hier voldoende tijd voor.

Black Box software testing

Black Box is feitelijk niet de naam van de aanpak maar de benaming van de software die we testen. We behandelen de software echter als een zwarte doos waar van we niet weten wat er in zit. Vrijwel ieder computersysteem kunnen we Black-Box testen. Bijvoorbeeld een besturingssysteem zoals Windows, een website zoals Google, een database zoals Oracle of onze eigen bedrijfsapplicatie.

Voor we de test starten doen we dus geen onderzoek naar de interne structuur van de programmatuur of van de database. Bovendien doen we alle testen uit het perspectief van de gebruiker. De tester is zich alleen bewust van wat de software zou moeten doen. Hoe de verwerking onder de motorkap plaatsvindt blijft onbekend. De tester is tijdens het testen wel bekend met alle mogelijke input en de te verwachten output van de software. De testers weten echter niet hoe de applicatie de inputaanvragen daadwerkelijk verwerkt en hoe de output tot stand komt. Wat de testers doen is alleen geldige en ongeldige input opvoeren. Vervolgens bepalen ze de juistheid aan de hand van de verwachte resultaten. Het gevolg is dat vooraf goed over de testcase moet zijn nagedacht. Alle testcases die we met een dergelijke aanpak moeten test, maken we daarom op basis van de requirements en de specificaties.

Wat is het doel van Black Box testing?

De Black Box heeft als belangrijkste doel het vast te stellen of de software voldoet aan de verwachtingen van de gebruiker of niet. Het is echter niet de bedoeling dat de gebruiker voor het testen zijn verwachtingen verandert.

Met deze test probeer we fouten te vinden in de volgende categorieën:

  • Initialisatie en beëindigingsfouten.
  • Onjuiste of ontbrekende functies.
  • Interface fouten.
  • Fouten in datastructuren of externe databasetoegang.
  • Gedrag- of uitvoeringsfouten.

Black Box testing stappenplan

Onderstaande stappen worden over het algemeen gevolgd om een Black Box-test uit te voeren.

  • Aanvankelijk onderzoeken we de vereisten en specificaties van het systeem.
  • De tester creëert geldige input om vast te stellen of de software deze correct verwerkt.
  • Daarnaast creëert hij enige ongeldige gevallen om vast te stellen dat de software in staat is om ze te detecteren en af te wijzen
  • De tester stelt vervolgens vast welke output hij verwacht voor deze input.
  • Testers werken testgevallen uit aan de hand van de geselecteerde input.
  • Deze testgevallen worden aangeboden aan de software.
  • De tester vergelijkt de daadwerkelijke output met de verwachte output.
  • Als de eerder gevonden defecten zijn verholpen start de test opnieuw.
  • Dit gaat zo door tot de software foutloos is.

Testtypes waarbij Black Box testing van toepassing is

De Black Box-testmethode kunnen we toepassen op de volgende niveaus van softwaretests:

  • Integratie testen.
  • Systeemtesten.
  • Acceptatietesten.

Hoe eerder de blackbox test in het ontwikkelproces plaatsvindt, hoe complexer de black box is. Grotere black boxen vragen echter om meer Black-Box-testtechnieken.

Testtechnieken

De volgende Black Box-testtechnieken worden gebruikt voor het testen van de softwaretoepassing.

  • Equivalence Partitioning: Dit is een ontwerptechniek voor een softwaretest waarbij we de inputwaarden onderverdelen in geldige en ongeldige partities. Daarbij selecteren we representatieve waarden uit elke partitie als testgeval.
  • Grenswaardeanalyse: Dit is een softwaretest analysetechniek voor het bepalen van grenzen voor invoerwaarden. Het gaat hierbij om het selecteren van inputwaarden die zich aan de grenzen (net binnen en net buiten de grenzen) bevinden.
  • Oorzaak-gevolg grafiek: Dit is een ontwikkeltechniek voor een softwaretest waarbij we de gevallen en effecten identificeren. We procuderen een oorzaak-gevolg grafiek en de testgevallen genereren we overeenkomstig.
  • Decision Table Testing: In een beslissingstabel plaatsen we oorzaken en hun gevolgen in een matrix. Daarbij is er een unieke combinatie van inputwaarden in iedere kolom.

Black Box testing tools

Black Box-testing tools zijn tools voor het opnemen en herhaaldelijk afspelen van testgevallen. Deze tools gebruiken we voornamelijk tijdens regressietests om te vast te stellen of er in de nieuwe build fouten zijn geïntroduceerd die nog niet in de vorige build zaten.

Deze opname- en afspeeltools leggen testgevallen vast in de vorm van scripts zoals TSL, VB-script, Javascript, Perl etc.

De voordelen van Black Box testing

  • Deze testen doen we vanuit het perspectief van de gebruiker en helpen om verschillen ten opzicht van de specificaties aan het licht te brengen.
  • Testers hoeven geen programmeertalen te kennen of iets te weten over de implementatie van de software.
  • Het testen kunnen we onafhankelijk uitvoeren van consultants of ontwikkelaars van de leverancier. Dit heeft een objectief testrapport tot gevolg. Ontwikkelaars kennen hun eigen programmatuur waardoor een bepaalde blindheid voor softwarefouten kan ontstaan.
  • Testgevallen kunnen worden gemaakt zodra de specificaties compleet zijn.

De nadelen

  • We kunnen slechts een klein aantal mogelijke testgevallen testen zodat veel programmapaden ongetest blijven.
  • In veel gevallen zijn de requirements of de specificaties niet helder waardoor testgevallen moeilijk af te leiden zijn.
  • Als een consultant of ontwikkelaar van de leverancier een bepaald testgeval al heeft uitgevoerd wordt het soms onnodig nogmaals gedaan. De opdrachtgever is echter verantwoordelijk voor de acceptatie en moet zelf vaststellen dat de software goed werkt.
  • Bij Black Box Testing zijn we nooit zeker of we alle relevante uithoeken van de software wel hebben getest.

Al met al is de Black box test een redelijk betrouwbare test waarbij we ook gevoel voor de software krijgen. Alle fouten zullen we er echter helaas niet mee vinden.

LinkedIn Group

Discussieer mee op LinkedIn.

Samenvatting
Black Box testing: Software op de pijnbank
Artikel
Black Box testing: Software op de pijnbank
Beschrijving
Black Box testing wordt gedefinieerd als een testtechniek waarbij de functionaliteit van een applicatie wordt getest zonder te kijken naar de interne codestructuur, implementatiedetails en kennis van interne paden van de software. Dit type testen is volledig gebaseerd op software-requirements en specificaties.
Auteur
Publisher Naam
ITpedia
Publisher Logo
Sidebar