Wat is domeintesting bij softwaretests? (met voorbeeld)

Inhoudsopgave:

Anonim

Wat is domeintesting?

Domain Testing is een softwaretestproces waarin de applicatie wordt getest door een minimumaantal inputs te geven en de juiste outputs te evalueren. Het primaire doel van domeintests is om te controleren of de softwareapplicatie invoer binnen het acceptabele bereik accepteert en de vereiste uitvoer levert.

Het is een functionele testtechniek waarbij de uitvoer van een systeem wordt getest met een minimaal aantal ingangen om ervoor te zorgen dat het systeem geen ongeldige invoerwaarden accepteert die buiten het bereik vallen. Het is een van de belangrijkste White Box-testmethoden. Het controleert ook of het systeem geen invoer, voorwaarden en indices mag accepteren buiten het gespecificeerde of geldige bereik.

Het testen van domeinen verschilt voor elk specifiek domein, dus u moet domeinspecifieke kennis hebben om een ​​softwaresysteem te testen.

In deze tutorial leer je-

  • Eenvoudigere praktijk van domeintests
  • Strategie voor het testen van domeinen
  • Voorbeeld van domeintest
  • Domain Testing Structuur

Eenvoudigere praktijk van domeintests

Bij domeintests verdelen we een domein in subdomeinen (equivalentieklassen) en testen we vervolgens met waarden uit elk subdomein. Als bijvoorbeeld een website (domein) is opgegeven om te testen, verdelen we de website in kleine porties (subdomein) om het testen te vergemakkelijken.

Domein kan het testen van een invoervariabele of een combinatie van invoervariabelen omvatten.

Beoefenaars bestuderen vaak de eenvoudigste gevallen van domeintesting met minder dan twee andere namen, "boundary testing" en "equivalence class analysis".

Boundary testing - Boundary value analysis (BVA) is gebaseerd op testen op de grenzen tussen partities. We zullen zowel de geldige als de ongeldige invoerwaarden in de partitie / klassen testen.

Equivalentie Klasse testen - Het idee achter deze techniek is om een ​​set testcondities op te splitsen (dwz te partitioneren) in groepen of sets die als hetzelfde kunnen worden beschouwd (dwz het systeem moet ze op een equivalente manier afhandelen), vandaar 'equivalentiepartitionering'.

Dat vereenvoudigde formulier is van toepassing op domeintests -

  1. Alleen voor tests van invoervariabelen
  2. Alleen wanneer getest op systeemniveau
  3. Alleen als ze een voor een worden getest
  4. Alleen als het op een zeer oppervlakkige manier wordt getest

Het kan worden vereenvoudigd zoals hieronder:

Variabel Geldige klasse-equivalentieklasse Ongeldige klasse-equivalentieklasse Grenzen en speciale gevallen Opmerkingen
X 0-100 0
100
<0 -1
> 100 101

Uitleg:

  1. Als een veld een bereik van 0-100 accepteert, mag het veld -1 en 101 niet accepteren, aangezien dit ongeldige items zijn en buiten de grenzen vallen.
  2. Het veld moet waarden accepteren zoals 0,100 en een willekeurig getal ertussen.

Bouwtafel zoals deze (in de praktijk)

  1. Om in de loop van de tijd een equivalentieklasse-analyse op te bouwen, plaatst u de informatie in een spreadsheet. Begin met het opsommen van variabelen. Voeg informatie over hen toe zodra u deze verkrijgt.
  2. De tabel moet uiteindelijk alle variabelen bevatten. Dit betekent alle invoervariabelen, alle uitvoervariabelen en eventuele tussenliggende variabelen die u kunt waarnemen.
  3. In de praktijk zijn de meeste tabellen die ik heb gezien onvolledig. De besten die worden gezien, vermelden alle variabelen en voegen details toe voor kritieke variabelen.

Strategie voor het testen van domeinen

Bij het testen van domeinen moet u rekening houden met het volgende:

  1. Welk domein testen we?
  2. Hoe de waarden in klassen te groeperen?
  3. Welke waarden van de te testen klassen?
  4. Hoe bepaal je het resultaat?

Welk domein testen we?

Elk domein dat we testen, heeft enige invoerfunctionaliteit en een uitvoerfunctionaliteit. Er zullen enkele invoervariabelen moeten worden ingevoerd en de juiste uitvoer moet worden geverifieerd.

Voorbeeld van domeintest

  1. Overweeg een testscenario met één ingang:

C = a + b, waarbij a en b invoervariabelen zijn en C de uitvoervariabele.

Hier in het bovenstaande voorbeeld is classificatie of een combinatie van de variabelen niet vereist.

  1. Beschouw de onderstaande meervoudige inputs en het juiste outputscenario:

Overweeg een speltentoonstelling voor kinderen, er zijn 6 wedstrijden opgesteld en kaartjes moeten worden gegeven op basis van de leeftijd en het geslacht. De ticketing is een van de modules die getest moet worden voor de hele functionaliteit van Games Exhibition.

Volgens het scenario hebben we zes scenario's op basis van de leeftijd en de competities:

  1. Leeftijd> 5 en <10, jongen moet deelnemen aan verhalen vertellen.
  2. Leeftijd> 5 en <10, meisje moet deelnemen aan de tekenwedstrijd.
  3. Leeftijd> 10 en <15, jongen moet deelnemen aan de quiz.
  4. Leeftijd> 10 en <15, meisje moet deelnemen aan het schrijven van een essay.
  5. Leeftijd <5, zowel jongens als meisjes moeten deelnemen aan Rhymes Competition.
  6. Leeftijd> 15, zowel jongens als meisjes moeten deelnemen aan de poëziewedstrijd.

Hier is de invoer Leeftijd en Geslacht en daarom wordt het ticket voor de wedstrijd uitgegeven. Deze case-partitie van inputs of simpelweg het groeperen van waarden komt in beeld.

Hoe de waarden in klassen te groeperen?

Als u sommige waarden partitioneert, moet u deze opsplitsen in niet-overlappende subsets.

Zoals we eerder hebben besproken, zijn er twee soorten partitionering:

  1. Equivalentiepartitionering - Equivalentiepartitionering is een softwaretesttechniek die de invoergegevens van een software-eenheid verdeelt in partities met equivalente gegevens waaruit testgevallen kunnen worden afgeleid. In principe zijn testcases ontworpen om elke partitie minstens één keer af te dekken.
  2. Grenswaardeanalyse - Grenswaardeanalyse is een softwaretesttechniek waarbij tests zijn ontworpen om vertegenwoordigers van grenswaarden in een bereik op te nemen. Het idee komt van de grens .

Voor het bovenstaande voorbeeld verdelen we de waarden in een subset of de subset. We verdelen de leeftijd in de onderstaande klassen:

  1. Klasse 1: Kinderen van 5 tot 10 jaar
  2. Klasse 2: Kinderen met een leeftijdsgroep jonger dan 5
  3. Klasse 3: Kinderen in de leeftijdsgroep van 10 tot 15 jaar
  4. Klasse 4: Kinderen met een leeftijdsgroep van meer dan 15 jaar.

Welke waarden van de te testen klassen?

De waarden die voor het testen worden opgehaald, moeten grenswaarden zijn:

  1. Grenzen zijn vertegenwoordigers van de equivalentieklassen waaruit we ze bemonsteren. Ze zullen eerder een fout aan het licht brengen dan andere klasgenoten, dus zijn ze betere vertegenwoordigers.
  2. De beste vertegenwoordiger van een equivalentieklasse is een waarde tussen het bereik.

Voor het bovenstaande voorbeeld hebben we de volgende klassen om te testen:

Bijvoorbeeld voor scenario # 1:

  1. Klasse 1: kinderen van 5 tot 10 jaar (leeftijd> 5 en <= 10)

Grenswaarden:

  1. Waarden moeten gelijk zijn aan of kleiner zijn dan 10. Daarom moet de leeftijd van 10 jaar in deze klas worden opgenomen.
  2. Waarden moeten groter zijn dan 5. Daarom mag de leeftijd van 5 jaar niet in deze klas worden opgenomen.
  3. Waarden moeten gelijk zijn aan of kleiner zijn dan 10. Daarom mag de leeftijd van 11 jaar niet in deze klas worden opgenomen.
  4. Waarden moeten groter zijn dan 5. Daarom moet de leeftijd van 6 jaar in deze klas worden opgenomen.

Equivalentiepartitie Waarden:

Equivalentiepartitie wordt verwezen wanneer men slechts één voorwaarde van elke partitie hoeft te testen. Hierin gaan we ervan uit dat als één voorwaarde in een partitie werkt, alle voorwaarden zouden moeten werken. Op dezelfde manier, als een voorwaarde in die partitie niet werkt, gaan we ervan uit dat geen van de andere voorwaarden zal werken. Bijvoorbeeld,

(Leeftijd> 5 en <= 10)

Omdat de waarden van 6 tot 10 geldige waarden zijn, moet een van de waarden tussen 6,7,8,9 en 10 worden opgehaald. Daarom is de geselecteerde leeftijd "8" een geldige invoerleeftijd voor de leeftijdsgroep tussen (Leeftijd> 5 en <= 10). Dit soort partitie wordt equivalentiepartitie genoemd.

Scenario In acht te nemen grenswaarden Equivalentiepartitioneringswaarden
Jongen - Leeftijd> 5 en <= 10 Voer leeftijd = 6 in Voer leeftijd = 5 in Voer leeftijd = 11 in Voer leeftijd = 10 in Voer leeftijd in = 8
Meisje - Leeftijd> 5 en <= 10 Voer leeftijd = 6 in Voer leeftijd = 5 in Voer leeftijd = 11 in Voer leeftijd = 10 in Voer leeftijd in = 8
Jongen - Leeftijd> 10 en <= 15 Invoer leeftijd = 11 Invoer leeftijd = 10 Invoer leeftijd = 15 Invoer leeftijd = 16 Voer leeftijd in = 13
Meisje - Leeftijd> 10 en <= 15 Invoer leeftijd = 11 Invoer leeftijd = 10 Invoer leeftijd = 15 Invoer leeftijd = 16 Voer leeftijd in = 13
Leeftijd <= 5 Voer leeftijd = 4 in Voer leeftijd = 5 in Invoer leeftijd = 3
Leeftijd> 15 Voer leeftijd = 15 in Voer leeftijd = 16 in Voer leeftijd in = 25

Hoe bepalen we of het programma geslaagd of niet geslaagd is voor de test?

Het doorgeven van de functionaliteit hangt niet alleen af ​​van de resultaten van de bovenstaande scenario's. De gegeven input en de verwachte output zullen ons de resultaten opleveren en dat vereist domeinkennis.

Bepalen van de resultaten van het voorbeeld:

Dus als alle testcases van het bovenstaande slagen, wordt het domein van het uitgeven van tickets in de wedstrijd gepasseerd. Als dit niet het geval is, wordt het domein mislukt.

Domain Testing Structuur

Meestal volgen testers de onderstaande stappen bij het testen van een domein. Deze kunnen worden aangepast / overgeslagen volgens onze testbehoeften.

  • Identificeer de potentieel interessante variabelen.
  • Identificeer de variabele (n) die u nu kunt analyseren en rangschik ze (van klein naar groot en vice versa).
  • Creëer en identificeer grenswaarden en equivalentieklassen zoals hierboven.
  • Identificeer secundaire dimensies en analyseer ze elk op een klassieke manier. (In het bovenstaande voorbeeld is Geslacht de secundaire dimensie).
  • Identificeer en test variabelen die resultaten bevatten (uitvoervariabelen).
  • Evalueer hoe het programma de waarde van deze variabele gebruikt.
  • Identificeer aanvullende potentieel gerelateerde variabelen voor combinatietesten.
  • Stel je risico's voor die niet noodzakelijkerwijs verband houden met een voor de hand liggende dimensie.
  • Identificeer en vermeld niet-geanalyseerde variabelen. Verzamel informatie voor latere analyse.
  • Vat uw analyse samen met een risico / equivalentietabel.

Overzicht:

Domain testing, zoals hierboven beschreven, vereist kennis van het leveren van de juiste input om de gewenste output te bereiken. Het is dus alleen mogelijk om het te gebruiken voor kleine stukjes code.