Wat is WHITE Box-testen? Technieken, voorbeeld & Soorten

Inhoudsopgave:

Anonim

White Box-testen

White Box Testing is een softwaretesttechniek waarbij de interne structuur, het ontwerp en de codering van software worden getest om de stroom van input-output te verifiëren en om het ontwerp, de bruikbaarheid en de veiligheid te verbeteren. Bij white box-testen is de code zichtbaar voor testers, dus het wordt ook wel Clear-box-testen, Open-box-testen, Transparent-box-testen, Code-based testen en Glass-box-testen genoemd.

Het is een van de twee delen van de Box Testing-benadering van softwaretests. De tegenhanger ervan, Blackbox-testen, omvat testen vanuit een extern perspectief of vanuit het perspectief van een eindgebruiker. Aan de andere kant is White Box-testen in software-engineering gebaseerd op de interne werking van een applicatie en draait het om interne testen.

De term "WhiteBox" werd gebruikt vanwege het doorzichtige doosconcept. De doorzichtige doos of WhiteBox-naam symboliseert de mogelijkheid om door de buitenkant van de software (of "doos") naar de interne werking te kijken. Evenzo symboliseert de "zwarte doos" in "Black Box Testing" het niet kunnen zien van de interne werking van de software, zodat alleen de ervaring van de eindgebruiker kan worden getest.

In deze zelfstudie over het testen van witte dozen leert u:

  • Wat is White Box-testen?
  • Wat verifieer je in White Box Testing?
  • Hoe voer je White Box-tests uit?
  • WhiteBox-testvoorbeeld
  • White Box-testtechnieken
  • Soorten White Box-tests
  • White Box-testtools
  • Voordelen van White Box-testen
  • Nadelen van WhiteBox-testen

Wat verifieer je in White Box Testing?

White box-tests omvatten het testen van de softwarecode op het volgende:

  • Interne beveiligingsgaten
  • Gebroken of slecht gestructureerde paden in de coderingsprocessen
  • De stroom van specifieke inputs door de code
  • Verwachte resultaten
  • De functionaliteit van voorwaardelijke lussen
  • Testen van elke bewering, object en functie op individuele basis

Het testen kan worden gedaan op systeem-, integratie- en unit-niveau van softwareontwikkeling. Een van de basisdoelen van whitebox-testen is het verifiëren van een werkstroom voor een toepassing. Het omvat het testen van een reeks voorgedefinieerde inputs tegen verwachte of gewenste outputs, zodat wanneer een specifieke input niet resulteert in de verwachte output, je een bug bent tegengekomen.

Klik hier als de video niet toegankelijk is

Hoe voer je White Box-tests uit?

Om u een vereenvoudigde uitleg te geven over het testen van de witte doos, hebben we deze opgedeeld in twee basisstappen . Dit is wat testers doen bij het testen van een applicatie met behulp van de white box-testtechniek:

STAP 1) BEGRIJP DE BRONCODE

Het eerste dat een tester vaak zal doen, is de broncode van de applicatie leren en begrijpen. Omdat white box-testen het testen van de interne werking van een applicatie inhoudt, moet de tester zeer goed geïnformeerd zijn over de programmeertalen die worden gebruikt in de applicaties die ze testen. De testpersoon moet ook zeer goed op de hoogte zijn van veilige coderingspraktijken. Beveiliging is vaak een van de belangrijkste doelstellingen van het testen van software. De tester moet in staat zijn om beveiligingsproblemen op te sporen en aanvallen van hackers en naïeve gebruikers te voorkomen die bewust of onbewust schadelijke code in de toepassing kunnen injecteren.

Stap 2) CREËER TESTCASES EN VOER UIT

De tweede basisstap voor het testen van de witte doos omvat het testen van de broncode van de toepassing op de juiste stroom en structuur. Een manier is door meer code te schrijven om de broncode van de applicatie te testen. De tester zal voor elk proces of serie processen in de applicatie kleine testjes ontwikkelen. Deze methode vereist dat de tester een grondige kennis van de code heeft en wordt vaak gedaan door de ontwikkelaar. Andere methoden zijn onder meer handmatig testen, vallen en opstaan ​​en het gebruik van testtools, zoals we verderop in dit artikel zullen uitleggen.

WhiteBox-testvoorbeeld

Beschouw het volgende stuk code

Printme (int a, int b) {------------ Printme is een functieint resultaat = a + b;If (resultaat> 0)Afdrukken ("Positief", resultaat)AndersAfdrukken ("negatief", resultaat)} ----------- Einde van de broncode 

Het doel van WhiteBox-testen in software-engineering is om alle beslissingsbranches, loops en statements in de code te verifiëren.

Om de uitspraken in het bovenstaande testvoorbeeld van de witte doos uit te oefenen, zouden WhiteBox-testcases dat zijn

  • A = 1, B = 1
  • A = -1, B = -3

White Box-testtechnieken

Een belangrijke White box-testtechniek is Code Coverage-analyse. Code Coverage-analyse elimineert hiaten in een Test Case-suite. Het identificeert delen van een programma die niet worden uitgeoefend door een reeks testcases. Zodra hiaten zijn vastgesteld, creëert u testcases om niet-geteste delen van de code te verifiëren, waardoor de kwaliteit van het softwareproduct toeneemt

Er zijn geautomatiseerde tools beschikbaar om analyse van de codedekking uit te voeren. Hieronder staan ​​een aantal technieken voor dekkingsanalyses die een box-tester kan gebruiken:

Dekking van de verklaring : - Deze techniek vereist dat elke mogelijke verklaring in de code minstens één keer wordt getest tijdens het testproces van software engineering.

Branch Coverage - Deze techniek controleert elk mogelijk pad (if-else en andere voorwaardelijke lussen) van een softwaretoepassing.

Afgezien van bovenstaande zijn er talrijke soorten dekking, zoals conditiedekking, meervoudige conditiedekking, paddekking, functiedekking enz. Elke techniek heeft zijn eigen verdiensten en pogingen om alle delen van softwarecode te testen (dekken). Met behulp van Statement en Branch-dekking bereikt u over het algemeen een codedekking van 80-90%, wat voldoende is. Hieronder volgen belangrijke WhiteBox-testtechnieken:

  • Verklaring dekking
  • Beslissingsdekking
  • Bijkantoordekking
  • Conditie dekking
  • Meerdere voorwaarden dekking
  • Finite State Machine-dekking
  • Paddekking
  • Controle stroomtesten
  • Gegevensstroom testen

Raadpleeg dit artikel voor meer informatie https://www.guru99.com/code-coverage.html

Soorten White Box-tests

White box-testen omvatten verschillende testtypen die worden gebruikt om de bruikbaarheid van een applicatie, codeblok of specifiek softwarepakket te evalueren. Er zijn hieronder opgesomd -

  • Unit testen: dit is vaak het eerste type test dat op een applicatie wordt uitgevoerd. Eenheidstest wordt uitgevoerd op elke eenheid of elk codeblok terwijl deze wordt ontwikkeld. Het testen van eenheden wordt in wezen gedaan door de programmeur. Als softwareontwikkelaar ontwikkel je een paar regels code, een enkele functie of een object en test je dit om er zeker van te zijn dat het werkt voordat je verder gaat. Unit Testing helpt bij het identificeren van de meeste bugs, vroeg in de levenscyclus van softwareontwikkeling. Bugs die in deze fase zijn geïdentificeerd, zijn goedkoper en gemakkelijk op te lossen.

  • Testen op geheugenlekken : geheugenlekken zijn de belangrijkste oorzaken van langzamer draaiende applicaties. Een QA-specialist die ervaring heeft met het opsporen van geheugenlekken is essentieel in gevallen waarin u een traag werkende softwareapplicatie heeft.

Afgezien van het bovenstaande, maken enkele testtypen deel uit van zowel black box- als white box-testen. Ze worden hieronder vermeld

  • White Box Penetration Testing: bij deze test heeft de tester / ontwikkelaar volledige informatie over de broncode van de applicatie, gedetailleerde netwerkinformatie, betrokken IP-adressen en alle serverinformatie waarop de applicatie draait. Het doel is om de code vanuit verschillende invalshoeken aan te vallen om beveiligingsrisico's bloot te leggen
  • White Box Mutatietesten : Mutatietesten worden vaak gebruikt om de beste coderingstechnieken te ontdekken die kunnen worden gebruikt voor het uitbreiden van een softwareoplossing.

White Box-testtools

Hieronder vindt u een lijst met de beste testtools voor de witte doos.

  • Parasoft Jtest
  • EclEmma
  • NUnit
  • PyUnit
  • HTMLUnit
  • CppUnit

Voordelen van White Box-testen

  • Code-optimalisatie door verborgen fouten te vinden.
  • White box-testcases kunnen eenvoudig worden geautomatiseerd.
  • Het testen is grondiger omdat gewoonlijk alle codepaden worden afgedekt.
  • Het testen kan vroeg in SDLC beginnen, zelfs als de GUI niet beschikbaar is.

Nadelen van WhiteBox-testen

  • White box-testen kunnen behoorlijk complex en duur zijn.
  • Ontwikkelaars die gewoonlijk white box-testcases uitvoeren, hebben er een hekel aan. De white box-tests door ontwikkelaars zijn niet gedetailleerd en kunnen tot productiefouten leiden.
  • White box-testen vereisen professionele middelen, met een gedetailleerd begrip van programmering en implementatie.
  • White-box testen is tijdrovend, grotere programmeertoepassingen hebben de tijd nodig om volledig te testen.

Eindnoten:

  • White box-testen kunnen behoorlijk complex zijn. De complexiteit die ermee gemoeid is, heeft veel te maken met de applicatie die wordt getest. Een kleine applicatie die een enkele eenvoudige bewerking uitvoert, kan in een paar minuten in de witte doos worden getest, terwijl grotere programmeertoepassingen dagen, weken en zelfs langer nodig hebben om volledig te testen.
  • White box-testen bij het testen van software moeten worden uitgevoerd op een softwareapplicatie zoals deze wordt ontwikkeld nadat deze is geschreven en opnieuw na elke wijziging