black box testing an depth tutorial with examples
Laten we in deze tutorial, gebruikmakend van mijn industriële ervaring met softwaretesten, vertrouwd raken met de soorten en technieken van Black-box Testing, samen met het proces, de voor- en nadelen en enkele automatiseringstools om het te testen, behalve handmatig testen.
We zullen ook leren over de verschillen tussen White Box Testing en Black Box Testing.
Lijst met zelfstudies over “Black Box-testtechnieken”:
Tutorial # 1: Wat is Black Box Testing
Tutorial # 2: Wat is White Box Testing
Tutorial # 3: Functioneel testen vereenvoudigd
Tutorial # 4: Wat is Use Case Testing?
Zelfstudie # 5 Orthogonale array-testtechniek
Technieken
Tutorial # 6: Grenswaardeanalyse en equivalentiepartitionering
Tutorial # 7: Beslissingstabel testen
Tutorial # 8: State Transition Testing
Tutorial # 9 Fout bij het raden
Tutorial # 10: Op grafieken gebaseerde testmethoden
We voeren bijna allemaal elke dag Black Box-tests uit!
Of we het nu hebben geleerd of niet, we hebben in ons dagelijks leven allemaal Black box-tests gedaan en deze hebben we vaak uitgevoerd !!
Aan de naam zelf kun je waarschijnlijk begrijpen dat het interactie met het systeem impliceert, dat je aan het testen bent als een mystery box. Het betekent dat u niet genoeg kennis heeft van de interne werking van het systeem, maar dat u weet hoe het zich moet gedragen.
Als we een voorbeeld om onze auto of fiets te testen, rijden we er altijd mee om er zeker van te zijn dat deze zich niet op een ongebruikelijke manier gedraagt. Zien? We hebben al Black Box Testing gedaan.
Wat je leert:
- Wat is Black Box-testen?
- Soorten Black Box-tests
- Black Box-testtools
- Black Box-testtechnieken
- Hoe stap voor stap te doen?
- Voor-en nadelen
- Verschil tussen White Box-testen en Black Box-testen
- Gevolgtrekking
- Aanbevolen literatuur
Wat is Black Box-testen?
Black Box Testing wordt ook wel gedragstest, opaque-box, gesloten box, specificatiegebaseerd of oog-in-oog testen genoemd.
Het is een Software Testing-methode die de functionaliteit van een software / applicatie analyseert zonder veel te weten over de interne structuur / het ontwerp van het item dat wordt getest en die de inputwaarde vergelijkt met de outputwaarde.
c ++ regex match voorbeeld
De focus bij Black Box Testing ligt op de functionaliteit van het systeem als geheel. De voorwaarde ‘Gedragstesten’ wordt ook gebruikt voor Black Box Testing. Het gedragstestontwerp verschilt enigszins van het black-box-testontwerp omdat het gebruik van interne kennis niet strikt verboden is, maar het wordt nog steeds afgeraden.
Elke testmethode heeft zijn eigen voor- en nadelen. Er zijn enkele bugs die niet kunnen worden gevonden met de enige black box- of alleen white box-techniek.
De meerderheid van de toepassingen wordt getest volgens de Black Box-methode. We moeten de meeste testgevallen behandelen, zodat de meeste bugs ontdekt worden door een Zwarte doos methode.
Deze tests vinden plaats tijdens de hele softwareontwikkeling en testlevenscyclus, d.w.z. in de fasen van eenheids-, integratie-, systeem-, acceptatie- en regressietest.
Dit kan zowel functioneel als niet-functioneel zijn.
Soorten Black Box-tests
Praktisch gezien zijn er verschillende soorten Black Box-tests die mogelijk zijn, maar als we de belangrijkste variant ervan beschouwen, dan zijn hieronder de twee fundamentele.
# 1) Functioneel testen
Dit type behandelt de functionele eisen of specificaties van een applicatie. Hier worden verschillende acties of functies van het systeem getest door de input te leveren en de werkelijke output te vergelijken met de verwachte output.
Bijvoorbeeld wanneer we een vervolgkeuzelijst testen, klikken we erop en controleren of deze wordt uitgevouwen en dat alle verwachte waarden in de lijst worden weergegeven.
Er zijn maar weinig belangrijke soorten functionele tests:
- Rook testen
- Sanity testen
- Integratietesten
- Systeemtesten
- Regressietesten
- Testen van gebruikersacceptatie
=> Lees meer over Functioneel testen
# 2) Niet-functionele testen
Naast de functionaliteiten van de requirements zijn er ook verschillende niet-functionele aspecten die getest moeten worden om de kwaliteit en performance van de applicatie te verbeteren.
Enkele belangrijke soorten niet-functionele tests zijn onder meer:
- Bruikbaarheidstesten
- Laadtesten
- Prestatietests
- Compatibiliteitstesten
- Stress testen
- Schaalbaarheidstesten
=> Lees meer over Niet-functionele testen
Black Box-testtools
Black Box-testtools zijn voornamelijk tools voor opnemen en afspelen. Deze tools worden gebruikt voor regressietesten om te controleren of de nieuwe build een bug heeft veroorzaakt in de functionaliteit van eerdere werkende applicaties.
Deze opname- en afspeeltools nemen testgevallen op in de vorm van enkele scripts zoals TSL, VB-script, Javascript, Perl, enz.
Black Box-testtechnieken
Om systematisch een set functies te testen, is het nodig om testcases te ontwerpen. Testers kunnen testcases maken op basis van het vereiste specificatiedocument met behulp van de volgende Black Box Testing-technieken.
- Equivalentiepartitionering
- Grenswaardeanalyse
- Beslissingstabel testen
- State Transition Testing
- Fout bij het raden
- Op grafieken gebaseerde testmethoden
- Vergelijkingstesten
Laten we elke techniek in detail begrijpen.
# 1) Equivalentiepartitionering
Deze techniek staat ook bekend als Equivalence Class Partitioning (ECP). Bij deze techniek worden invoerwaarden voor het systeem of de applicatie onderverdeeld in verschillende klassen of groepen op basis van de gelijkenis in het resultaat.
Daarom kunnen we in plaats van elke invoerwaarde nu elke waarde uit de groep / klasse gebruiken om het resultaat te testen. Op deze manier kunnen we de testdekking behouden, terwijl we veel nabewerking en vooral de tijdsbesteding kunnen verminderen.
Bijvoorbeeld:
Zoals aanwezig in de bovenstaande afbeelding, accepteert een 'AGE' tekstveld alleen de nummers van 18 tot 60. Er zijn drie sets klassen of groepen.
Twee ongeldige klassen zijn:
a) Minder dan of gelijk aan 17.
b) Groter dan of gelijk aan 61.
Een geldige les is van 18 tot 60 jaar.
We hebben dus de testcases teruggebracht tot slechts 3 testcases op basis van de gevormde klassen en daarmee alle mogelijkheden gedekt. Testen met een willekeurige waarde uit elke set van de klasse is dus voldoende om het bovenstaande scenario te testen.
=> Aanbevolen lezen - Wat is equivalentiepartitionering?
waarom linux beter is dan windows 10
# 2) Grenswaardeanalyse
Uit de naam zelf kunnen we opmaken dat we bij deze techniek ons richten op de waarden op de grenzen, aangezien blijkt dat veel toepassingen een groot aantal problemen hebben met de grenzen.
Boundary betekent de waarden in de buurt van de limiet waar het gedrag van het systeem verandert. Bij grenswaardeanalyse worden zowel de geldige invoer als de ongeldige invoer getest om de problemen te verifiëren.
Bijvoorbeeld:
Als we een veld willen testen waar waarden van 1 tot 100 moeten worden geaccepteerd, dan kiezen we de grenswaarden: 1-1, 1, 1 + 1, 100-1, 100 en 100 + 1. In plaats van alle waarden van 1 tot 100 te gebruiken, gebruiken we gewoon 0, 1, 2, 99, 100 en 101.
# 3) Testen van de beslissingstabel
Zoals de naam zelf suggereert, overal waar logische relaties zijn, zoals:
Als
(Voorwaarde = waar)
dan action1;
anders action2; / * (voorwaarde = False) * /
Vervolgens identificeert een tester twee outputs (action1 en action2) voor twee condities (True en False). Dus op basis van de waarschijnlijke scenario's wordt een beslissingstabel uitgesneden om een reeks testgevallen voor te bereiden.
Bijvoorbeeld:
Neem een voorbeeld van de XYZ-bank die een rentetarief biedt voor de mannelijke senioren van 10% en voor de rest van de mensen 9%.
In deze voorbeeldconditie heeft C1 twee waarden als true en false, conditie C2 heeft ook twee waarden als true en false. Het totaal aantal mogelijke combinaties zou dan vier zijn. Op deze manier kunnen we testgevallen afleiden met behulp van een beslissingstabel.
beste programma om cpu en gpu temp te bewaken
# 4) Testen van statusovergangen
State Transition Testing is een techniek die wordt gebruikt om de verschillende staten van het te testen systeem te testen. De toestand van het systeem verandert afhankelijk van de omstandigheden of gebeurtenissen. De gebeurtenissen veroorzaken toestanden die scenario's worden en een tester moet ze testen.
Een systematisch toestandsovergangsschema geeft een duidelijk beeld van de toestandsveranderingen, maar is effectief voor eenvoudigere toepassingen. Complexere projecten kunnen leiden tot complexere overgangsdiagrammen waardoor het minder effectief wordt.
Bijvoorbeeld:
# 5) Fout raden
Dit is een klassiek voorbeeld van ervaringsgebaseerd testen.
Bij deze techniek kan de tester zijn / haar ervaring over het applicatiegedrag en de functionaliteiten gebruiken om de foutgevoelige gebieden te raden. Veel defecten kunnen worden gevonden door fouten te raden waar de meeste ontwikkelaars meestal fouten maken.
Enkele veelgemaakte fouten die ontwikkelaars meestal vergeten te behandelen:
- Gedeeld door nul.
- Omgaan met null-waarden in tekstvelden.
- Accepteer de knop Verzenden zonder enige waarde.
- Bestand uploaden zonder bijlage.
- Bestandsupload met minder dan of meer dan de limietgrootte.
# 6) Op grafieken gebaseerde testmethoden
Elke applicatie is een opbouw van enkele objecten. Al deze objecten worden geïdentificeerd en de grafiek wordt voorbereid. Vanuit deze objectgrafiek wordt elke objectrelatie geïdentificeerd en worden testgevallen dienovereenkomstig geschreven om de fouten te ontdekken.
# 7) Vergelijkingstesten
Bij deze methode worden verschillende onafhankelijke versies van dezelfde software gebruikt om met elkaar te vergelijken.
Hoe stap voor stap te doen?
Over het algemeen geldt dat wanneer een systematisch proces wordt gevolgd om een project / applicatie te testen, de kwaliteit behouden blijft en op de lange termijn nuttig is voor verdere testrondes.
- De belangrijkste stap is het begrijpen van de Requirement-specificatie van een applicatie. Er moet een goed gedocumenteerde SRS (Software Requirement Specification) zijn.
- Met behulp van de bovengenoemde Black Box Testing-technieken zoals Boundary Value Analysis, Equivalentiepartitionering enz. Worden sets van geldige en ongeldige inputs geïdentificeerd met hun gewenste outputs en op basis daarvan worden testcases ontworpen.
- De ontworpen testcases worden uitgevoerd om te controleren of ze slagen of falen door de werkelijke resultaten te verifiëren met de verwachte resultaten.
- De mislukte testcases worden aangemerkt als defecten / bugs en geadresseerd aan het ontwikkelingsteam om het probleem te verhelpen.
- Verder op basis van de defecten die worden gerepareerd, test de tester de defecten opnieuw om te controleren of deze terugkerend zijn of niet.
Voor-en nadelen
Voordelen
- De tester hoeft geen technische achtergrond te hebben. Het is belangrijk om te testen door in de schoenen van de gebruiker te staan en vanuit het oogpunt van de gebruiker te denken.
- Het testen kan worden gestart zodra de ontwikkeling van het project / de applicatie is voltooid. Zowel de testers als de ontwikkelaars werken onafhankelijk zonder in elkaars ruimte te interfereren.
- Het is effectiever voor grote en complexe toepassingen.
- Defecten en inconsistenties kunnen in het vroege teststadium worden vastgesteld.
Nadelen
- Zonder enige technische of programmeerkennis zijn er kansen om mogelijke voorwaarden van het te testen scenario te negeren.
- Binnen een bepaalde tijd zijn er mogelijkheden om minder te testen en alle mogelijke inputs en hun output-tests over te slaan.
- Een volledige testdekking is niet mogelijk voor grote en complexe projecten.
Verschil tussen White Box-testen en Black Box-testen
Hieronder staan een paar verschillen tussen beide:
Black Box-testen | White Box-testen |
---|---|
Het is een testmethode zonder kennis te hebben van de eigenlijke code of interne structuur van de applicatie | Het is een testmethode met kennis van de feitelijke code en interne structuur van de applicatie |
Dit is een test op een hoger niveau, zoals functionele testen. | Dit type testen wordt uitgevoerd op een lager testniveau, zoals Unit Testing, Integration Testing |
Het concentreert zich op de functionaliteit van het te testen systeem | Het concentreert zich op de eigenlijke code - programma en zijn syntaxis |
Black box-tests vereisen specificatie van de vereisten om te testen | White Box-tests vereisen ontwerpdocumenten met gegevensstroomdiagrammen, stroomdiagrammen enz. |
Black box testen worden gedaan door de testers | White box testing wordt gedaan door Developers of testers met programmeerkennis. |
Gevolgtrekking
Dit zijn enkele van de basispunten met betrekking tot Black box-testen en het overzicht van de technieken en methoden.
Omdat het niet mogelijk is om alles met menselijke tussenkomst 100 procent nauwkeurig te testen, zal als de bovengenoemde technieken en methoden effectief worden gebruikt, de kwaliteit van het systeem zeker verbeteren.
Tot slot is dit een zeer nuttige methode om de functionaliteit van het systeem te verifiëren en de meeste defecten te identificeren.
Ik hoop dat je een grondige kennis van de Black Box Testing-techniek hebt opgedaan.
Aanbevolen literatuur
- Belangrijkste verschillen tussen Black Box-tests en White Box-tests
- Beste softwaretesttools 2021 (QA Test Automation Tools)
- Functioneel testen versus niet-functioneel testen
- Zelfstudie over paarsgewijs testen of testen in alle paren met tools en voorbeelden
- White Box-testen: een complete gids met technieken, voorbeelden en hulpmiddelen
- Zelfstudie voor het testen van volumes: voorbeelden en tools voor het testen van volumes
- Tutorial voor configuratietesten met voorbeelden
- Primer eBook downloaden testen