Wat is domeintesten bij softwaretesten? (met voorbeeld)
ā” Slimme samenvatting
Domeintesten controleren een applicatie door deze de kleinst mogelijke bruikbare set invoerwaarden te geven, inclusief geldige, ongeldige en grenswaarden, en te bevestigen dat alleen waarden binnen het geaccepteerde bereik de gewenste uitvoer produceren.
Wat is domeintesten?
Domeintesten is een software testen Een proces waarbij de applicatie wordt getest door een minimaal aantal invoerwaarden te geven en de bijbehorende uitvoer te evalueren. Het primaire doel van domeintesten is om te controleren of de softwareapplicatie invoerwaarden binnen het acceptabele bereik accepteert en de vereiste uitvoer levert.
Het is een functioneel testen Een techniek waarbij de uitvoer van een systeem wordt getest met een minimaal aantal ingangen om ervoor te zorgen dat het systeem geen ongeldige en buiten het bereik liggende invoerwaarden accepteert. Het wordt ook beschouwd als een van de belangrijkste technieken. witte doos testen methoden. Het verifieert verder dat het systeem geen invoer, voorwaarden en indexen mag accepteren die buiten het gespecificeerde of geldige bereik vallen.
Domeintestinatie verschilt per domein, dus je hebt domeinspecifieke kennis nodig om een āāsoftwaresysteem te testen.
Eenvoudigere praktijk van domeintesten
Bij domeintesten verdelen we een domein in subdomeinen (equivalentieklassen) en testen we vervolgens met behulp van waarden uit elk subdomein. Als een website (domein) bijvoorbeeld ter test is opgegeven, verdelen we de website in kleine delen (subdomein) om het testen te vergemakkelijken.
Het domein kan betrekking hebben op het testen van ƩƩn enkele invoervariabele of een combinatie van invoervariabelen.
Praktijkdeskundigen bestuderen de eenvoudigste gevallen van domeintesten vaak onder twee andere namen: "grenstesten" en "equivalentieklassenanalyse".
Grens testen - Grenswaarde analyse (BVA) is gebaseerd op testen op de grenzen tussen partities. We testen zowel de geldige als de ongeldige invoerwaarden in de partitie/klassen.
Equivalentieklassetesten ā Het idee achter deze techniek is het verdelen (dat wil zeggen: verdelen) van een reeks testomstandigheden in groepen of reeksen die als hetzelfde kunnen worden beschouwd (dat wil zeggen dat het systeem ze op gelijkwaardige wijze moet behandelen), vandaar 'equivalentiepartitionering'.
Die vereenvoudigde vorm geldt voor domeintesten.
- Alleen voor tests van invoervariabelen
- Alleen wanneer getest bij de systeemniveau
- Alleen als je ze ƩƩn voor ƩƩn test
- Alleen als het op een zeer oppervlakkige manier wordt getest
Het kan worden vereenvoudigd zoals hieronder:
| Veranderlijk | Geldige klasse-equivalentieklasse | Ongeldige klasse-equivalentieklasse | Grenzen en speciale gevallen | Notes |
|---|---|---|---|---|
| X | 0-100 | 0 | ||
| 100 | ||||
| <0 | -1 | |||
| > 100 | 101 |
Uitleg:
- Als een veld waarden van 0 tot 100 accepteert, mag het veld geen -1 en 101 accepteren, aangezien dit ongeldige invoerwaarden zijn en buiten het bereik vallen.
- Het veld moet waarden accepteren zoals 0, 100 en elk getal daartussenin.
Het bouwen van dergelijke tabellen (in de praktijk)
- Om een āāequivalentieklassenanalyse over tijd op te bouwen, zet je de gegevens in een spreadsheet. Begin met het opsommen van de variabelen. Voeg informatie over elke variabele toe naarmate je die verkrijgt.
- De tabel moet uiteindelijk alle variabelen bevatten. Dat betekent alle invoervariabelen, alle uitvoervariabelen en alle tussenliggende variabelen die je kunt observeren.
- In de praktijk zijn de meeste van dergelijke tabellen onvolledig. De beste tabellen bevatten een lijst van alle variabelen en voegen details toe voor de cruciale variabelen.
Domeinteststrategie
Bij het testen van een specifiek domein moet je rekening houden met de volgende zaken:
- Welk domein testen we?
- Hoe kunnen de waarden in klassen worden gegroepeerd?
- Welke waarden van de te testen klassen?
- Hoe het resultaat bepalen?
Welk domein testen we?
Elk domein dat we testen, heeft een bepaalde invoerfunctionaliteit en een uitvoerfunctionaliteit. Er moeten invoervariabelen worden ingevoerd en de bijbehorende uitvoer moet worden gecontroleerd. Het onderstaande diagram illustreert deze relatie tussen invoer en uitvoer.
Voorbeeld van domeintesten
Overweeg een testscenario met ƩƩn invoer:
C = a+b, waarbij a en b invoervariabelen zijn en C de uitvoervariabele.
In het bovenstaande voorbeeld is classificatie niet nodig, noch is een combinatie van variabelen vereist.
Overweeg de onderstaande meerdere inputs en het juiste outputscenario:
Neem bijvoorbeeld een spellenbeurs voor kinderen. Er zijn zes wedstrijden gepland en er moeten kaartjes worden uitgedeeld op basis van de ingevoerde leeftijd en het geslacht. De kaartverkoop is een van de modules die getest moet worden voor de volledige functionaliteit van de spellenbeurs.
Volgens het scenario kregen we zes scenario's op basis van de leeftijd en de competities:
- Jongens van 5 tot en met 10 jaar dienen deel te nemen aan het voorlezen.
- Meisjes tussen de 5 en 10 jaar oud dienen deel te nemen aan de tekenwedstrijd.
- Jongens tussen de 10 en 15 jaar moeten deelnemen aan de quiz.
- Meisjes tussen de 10 en 15 jaar dienen deel te nemen aan de essaywedstrijd.
- Voor kinderen tot en met 5 jaar kunnen zowel jongens als meisjes deelnemen aan de rijmpjeswedstrijd.
- Vanaf 15 jaar moeten zowel jongens als meisjes deelnemen aan de poƫziewedstrijd.
Hier worden leeftijd en geslacht als invoer gebruikt, waarna het ticket voor de wedstrijd wordt uitgegeven. Dit is een voorbeeld van het verdelen van de invoergegevens, of simpelweg groeperen.ping waarden spelen dan een rol.
Hoe kunnen de waarden in klassen worden gegroepeerd?
Het opdelen van bepaalde waarden betekent dat ze worden gesplitst in niet-overlappende delen.ping deelverzamelingen.
Zoals we eerder hebben besproken, zijn er twee soorten partities:
- Gelijkwaardigheidspartitionering Equivalentiepartitionering is een softwaretesttechniek waarbij de invoergegevens van een software-eenheid worden opgedeeld in partities van equivalente gegevens. testgevallen kan worden afgeleid. In principe zijn testgevallen zo ontworpen dat ze elke partitie minstens ƩƩn keer dekken.
- Grenswaarde analyse ā Grenswaardeanalyse is een softwaretesttechniek waarbij tests zo worden ontworpen dat ze representatieve grenswaarden binnen een bepaald bereik omvatten. Het idee is afgeleid van de grens.
In het bovenstaande voorbeeld verdelen we de waarden in subsets. We verdelen de leeftijd in de volgende klassen:
- Klasse 1: Kinderen in de leeftijdscategorie van 5 tot 10 jaar
- Klasse 2: Kinderen jonger dan 5 jaar
- Klasse 3: Kinderen in de leeftijdscategorie van 10 tot 15 jaar
- Klasse 4: Kinderen in de leeftijdscategorie van 15 jaar en ouder.
Welke waarden van de te testen klassen?
De waarden die voor de test worden gekozen, moeten grenswaarden zijn:
- Grenswaarden zijn representatief voor de equivalentieklassen waaruit we ze selecteren. Ze hebben een grotere kans om een āāfout aan het licht te brengen dan andere leden van een klasse, waardoor ze betere representanten zijn.
- De beste vertegenwoordiger van een equivalentieklasse is een waarde tussen dit bereik.
Voor het bovenstaande voorbeeld moeten de volgende klassen worden getest:
Bijvoorbeeld voor scenario #1:
Klasse 1: Kinderen in de leeftijdscategorie 5 tot en met 10 jaar (Leeftijd >5 en <=10)
Grenswaarden:
- De waarden moeten gelijk aan of kleiner dan 10 zijn. Daarom moet de leeftijd van 10 jaar in deze categorie worden opgenomen.
- Waarden moeten groter zijn dan 5. Daarom mag leeftijd 5 niet in deze klasse worden opgenomen.
- De waarden moeten gelijk aan of kleiner dan 10 zijn. Daarom hoort 11 jaar niet in deze categorie thuis.
- Waarden moeten groter zijn dan 5. Daarom moet leeftijd 6 in deze klasse worden opgenomen.
Equivalentiepartitiewaarden:
Equivalentiepartitionering wordt gebruikt wanneer slechts ƩƩn voorwaarde uit elke partitie getest hoeft te worden. Hierbij wordt aangenomen dat als ƩƩn voorwaarde in een partitie werkt, alle voorwaarden ook werken. Op dezelfde manier geldt dat als ƩƩn voorwaarde in die partitie niet werkt, geen van de andere voorwaarden zal werken. Bijvoorbeeld:
(Leeftijd >5 en <=10)
Aangezien de waarden van 6 tot en met 10 geldig zijn, moet ƩƩn van de waarden 6, 7, 8, 9 en 10 worden gekozen. De geselecteerde leeftijd "8" is dus een geldige invoerleeftijd voor de leeftijdsgroep (leeftijd >5 en <=10). Dit soort indeling wordt een equivalentie-indeling genoemd.
| Scenario | Grenswaarden die moeten worden aangehouden | Equivalentiepartitioneringswaarden |
|---|---|---|
| Jongen ā Leeftijd >5 en <=10 | Invoer leeftijd = 6 Invoer leeftijd = 5 Invoer leeftijd = 11 Invoer leeftijd = 10 |
Invoer leeftijd = 8 |
| Meisje ā Leeftijd >5 en <=10 | Invoer leeftijd = 6 Invoer leeftijd = 5 Invoer leeftijd = 11 Invoer leeftijd = 10 |
Invoer leeftijd = 8 |
| Jongen ā Leeftijd >10 en <=15 | Invoer leeftijd = 11 Invoer leeftijd = 10 Invoer leeftijd = 15 Invoer leeftijd = 16 |
Invoer leeftijd = 13 |
| Meisje ā Leeftijd >10 en <=15 | Invoer leeftijd = 11 Invoer leeftijd = 10 Invoer leeftijd = 15 Invoer leeftijd = 16 |
Invoer leeftijd = 13 |
| Leeftijd<=5 | Invoer leeftijd = 4 Invoer leeftijd = 5 |
Invoer leeftijd = 3 |
| Leeftijd> 15 | Invoer leeftijd = 15 Invoer leeftijd = 16 |
Invoer leeftijd = 25 |
Hoe bepalen we of het programma de test heeft doorstaan āāof niet heeft gehaald?
Het slagen van de functionaliteit hangt niet alleen af āāvan de resultaten van de bovenstaande scenario's. De gegeven invoer en de verwachte uitvoer bepalen het resultaat, en hiervoor is domeinkennis vereist.
Om de resultaten van het voorbeeld te bepalen: het onderstaande scherm toont de ticketuitvoer voor elke combinatie van leeftijd en geslacht.
Als alle bovenstaande testgevallen dus slagen, is het domein 'tickets uitgeven' in de competitie geslaagd. Zo niet, dan is het domein mislukt.
Domeinteststructuur
Testers volgen doorgaans de onderstaande stappen bij domeintesten. Deze stappen kunnen worden aangepast of overgeslagen, afhankelijk van onze testbehoeften.
- Identificeer de potentieel interessante variabelen.
- Identificeer de variabele(n) die u nu kunt analyseren en rangschik ze (van klein naar groot en omgekeerd).
- Creƫer en identificeer grenswaarden en gelijkwaardigheidsklassewaarden zoals hierboven.
- Identificeer secundaire dimensies en analyseer elk ervan op een klassieke manier. (In het bovenstaande voorbeeld is gender de secundaire dimensie.)
- Identificeer en test variabelen die resultaten bevatten (outputvariabelen).
- Evalueer hoe het programma de waarde van deze variabele gebruikt.
- Identificeer aanvullende, mogelijk gerelateerde variabelen voor combinatietesten, waarbij beslissingstabeltesten helpt.
- Stel je risico's voor die niet per se in een voor de hand liggende dimensie te plaatsen zijn.
- Identificeer en lijst ongeanalyseerde variabelen. Verzamel informatie voor latere analyse.
- Vat uw analyse samen met een risico-/equivalentietabel.


