Co je testování domén v testování softwaru? (s příkladem)

⚡ Chytré shrnutí

Testování domény kontroluje aplikaci tak, že jí zadává nejmenší užitečnou sadu vstupů, pokrývá platné, neplatné a hraniční hodnoty a potvrzuje, že pouze hodnoty v akceptovaném rozsahu produkují požadovaný výstup.

  • 🔘 Základní myšlenka: Rozdělte každou vstupní doménu do tříd ekvivalence a otestujte jednu reprezentativní hodnotu pro každou třídu, ne všechny možné vstupy.
  • ☑️ Hraniční zaměření: Hodnoty na hranici třídy a těsně za ní odhalují vady odlišné o jednu mnohem častěji než hodnoty středního rozsahu.
  • (Tj. Párové techniky: Analýza tříd ekvivalence určuje skupinupinganalýza okrajových hodnot rozhodne, který člen každé skupiny se má spustit.
  • 🧪 Zpracovaný příklad: Modul pro přidělování tiketů, který přiřazuje soutěže podle věku a pohlaví, redukuje čtyři věkové kategorie na krátkou a hodnotnou sadu testů.
  • 📈 Závislost na znalostech: Posouzení správnosti výstupu vyžaduje obchodní pravidla, takže tato technika je vhodná pro malé, dobře srozumitelné části logiky.

Testování domén v testování softwaru s třídami ekvivalence a okrajovými hodnotami

Co je testování domén?

Testování domén je testování softwaru proces, ve kterém je aplikace testována zadáním minimálního počtu vstupů a vyhodnocením jejích vhodných výstupů. Primárním cílem testování domény je ověřit, zda softwarová aplikace přijímá vstupy v přijatelném rozsahu a poskytuje požadovaný výstup.

Je funkční testování technika, při které je výstup systému testován s minimálním počtem vstupů, aby se zajistilo, že systém nepřijme neplatné a mimo rozsah vstupních hodnot. Je také považována za jednu z důležitých testování bílé skříňky metody. Dále ověřuje, že systém by neměl akceptovat vstupy, podmínky a indexy mimo zadaný nebo platný rozsah.

Testování domén se liší pro každou konkrétní doménu, takže k testování softwarového systému potřebujete znalosti specifické pro danou doménu.

Jednodušší praxe testování domén

Při testování domén rozdělujeme doménu na subdomény (třídy ekvivalence) a poté testujeme pomocí hodnot z každé subdomény. Pokud byla například webová stránka (doména) dána k testování, rozdělíme webovou stránku na malé části (subdoménu) pro usnadnění testování.

Doména může zahrnovat testování libovolné vstupní proměnné nebo kombinace vstupních proměnných.

Odborníci z praxe často studují nejjednodušší případy testování domén pod dvěma jinými názvy, „hraniční testování“ a „analýza tříd ekvivalence“.

Hraniční testování - Analýza okrajových hodnot (BVA) je založeno na testování na hranicích mezi oddíly. Budeme testovat platné i neplatné vstupní hodnoty v oddílu/třídách.

Testování třídy ekvivalence – Myšlenkou této techniky je rozdělit (tj. rozdělit) sadu testovacích podmínek do skupin nebo sad, které lze považovat za stejné (tj. systém by je měl zpracovat ekvivalentně), proto „rozdělení ekvivalence“.

Tato zjednodušená forma platí pro testování domén –

  • Pouze k testům vstupních proměnných
  • Pouze při testování na systémová úroveň
  • Pouze při testování jeden po druhém
  • Pouze při testování velmi povrchním způsobem

Lze to zjednodušit následovně:

Proměnlivý Platná třída ekvivalence třídy Neplatná třída ekvivalence třídy Hranice a speciální případy Poznámky
X 0-100 0
100
<0 -1
> 100 101

Vysvětlení:

  • Pokud pole přijímá rozsahy od 0 do 100, nemělo by přijímat hodnoty -1 a 101, protože se jedná o neplatné položky a překračují hranice.
  • Pole by mělo akceptovat hodnoty jako 0, 100 a libovolné číslo mezi nimi.

Vytváření takových tabulek (v praxi)

  • Chcete-li v průběhu času vytvořit analýzu tříd ekvivalence, zapište informace do tabulky. Začněte výčtem proměnných. Postupně o nich doplňujte informace.
  • Tabulka by měla nakonec obsahovat všechny proměnné. To znamená všechny vstupní proměnné, všechny výstupní proměnné a všechny mezilehlé proměnné, které můžete pozorovat.
  • V praxi je většina takových tabulek neúplná. Ty nejlepší uvádějí všechny proměnné a u těch kritických přidávají podrobnosti.

Strategie testování domény

Při testování domény je třeba zvážit následující věci:

  • Jakou doménu testujeme?
  • Jak seskupit hodnoty do tříd?
  • Které hodnoty tříd mají být testovány?
  • Jak určit výsledek?

Jakou doménu testujeme?

Každá testovaná doména má nějakou vstupní a výstupní funkcionalitu. Bude nutné zadat určité vstupní proměnné a ověřit příslušný výstup. Níže uvedený diagram znázorňuje vztah mezi vstupem a výstupem.

Strategie testování domény zobrazující vstupní proměnné proudící do domény a produkující výstup

Příklad testování domény

Zvažte scénář testu jediného vstupu:

C = a+b, kde aab jsou vstupní proměnné a C je výstupní proměnná.

V tomto příkladu není nutná žádná klasifikace ani žádná kombinace proměnných.

Zvažte níže uvedené vícenásobné vstupy a vhodný scénář výstupu:

Představte si herní výstavu pro děti. Je připraveno šest soutěží a vstupenky musí být vydávány podle věku a pohlaví účastníků. Prodej vstupenek je jedním z modulů, které je třeba otestovat pro celkovou funkčnost herní výstavy.

Podle scénáře jsme dostali šest scénářů na základě věku a soutěží:

  • Chlapec ve věku > 5 a < 10 let by se měl zapojit do vyprávění příběhů.
  • Dívka ve věku > 5 a < 10 let by se měla zúčastnit soutěže v kreslení.
  • Chlapec by se měl zúčastnit kvízu ve věku >10 a <15 let.
  • Dívka ve věku >10 a <15 let by se měla zapojit do psaní eseje.
  • Soutěže v říkance by se měli účastnit chlapci i dívky ve věku < 5 let.
  • Věk >15, chlapci i dívky by se měli zúčastnit soutěže poezie.

Zde bude vstupem věk a pohlaví, a proto bude vydán lístek do soutěže. V tomto případě se jedná o rozdělení vstupů nebo jednoduše seskupení.ping hodnot, vstupuje do hry.

Jak seskupit hodnoty do tříd?

Rozdělení některých hodnot znamená jejich rozdělení na nepřekrývající se částiping podmnožiny.

Jak jsme již zmínili, existují dva typy rozdělení:

  • Rozdělení ekvivalence – Ekvivalenční dělení je technika testování softwaru, která rozděluje vstupní data softwarové jednotky na oddíly s ekvivalentními daty, z nichž testovací případy lze odvodit. V principu jsou testovací případy navrženy tak, aby pokryly každý oddíl alespoň jednou.
  • Analýza okrajových hodnot – Analýza okrajových hodnot je technika testování softwaru, ve které jsou testy navrženy tak, aby zahrnovaly zástupce okrajových hodnot v daném rozsahu. Myšlenka vychází z hranice.

Ve výše uvedeném příkladu rozdělujeme hodnoty do podmnožin. Věk rozdělujeme do následujících tříd:

  • Třída 1: Děti ve věku 5 až 10 let
  • Třída 2: Děti do 5 let
  • Třída 3: Děti ve věku 10 až 15 let
  • Třída 4: Děti starší 15 let.

Které hodnoty tříd mají být testovány?

Hodnoty vybrané pro testování by měly být hraničními hodnotami:

  • Hranice jsou reprezentanty tříd ekvivalence, ze kterých je vybíráme. Je u nich pravděpodobnější, že odhalí chybu, než u ostatních členů třídy, takže jsou lepšími reprezentanty.
  • Nejlepším představitelem třídy ekvivalence je hodnota v rozmezí.

Pro výše uvedený příklad máme k testování následující třídy:

Například pro scénář č. 1:

Třída 1: Děti ve věku 5 až 10 let (věk > 5 a < 10 let)

Hraniční hodnoty:

  • Hodnoty by měly být rovny nebo menší než 10. Proto by věk 10 let měl být do této třídy zahrnut.
  • Hodnoty by měly být vyšší než 5. Proto by věk 5 let neměl být zahrnut do této třídy.
  • Hodnoty by měly být rovny nebo menší než 10. Věk 11 let by proto do této třídy neměl být zahrnut.
  • Hodnoty by měly být vyšší než 5. Do této třídy by proto měl být zahrnut věk 6 let.

Hodnoty ekvivalenčního rozdělení:

O ekvivalenčním rozdělení se hovoří, když je třeba otestovat pouze jednu podmínku z každého rozdělení. V tomto případě předpokládáme, že pokud jedna podmínka v rozdělení funguje, pak by měly fungovat všechny podmínky. Stejným způsobem, pokud jedna podmínka v tomto rozdělení nefunguje, pak předpokládáme, že žádná z ostatních podmínek nebude fungovat. Například

(Věk >5 a <=10)

Protože hodnoty od 6 do 10 jsou platné, je nutné vybrat jednu z hodnot 6, 7, 8, 9 a 10. Vybraný věk „8“ je tedy platným vstupním věkem pro věkovou skupinu mezi (věk > 5 a <= 10). Tento typ rozdělení se označuje jako ekvivalenční rozdělení.

Scénář Hraniční hodnoty, které je třeba vzít Ekvivalence rozdělení hodnot
Chlapec – věk >5 a <=10 Vstupní věk = 6
Vstupní věk = 5
Vstupní věk = 11
Vstupní věk = 10
Vstupní věk = 8
Dívka – věk >5 a <=10 Vstupní věk = 6
Vstupní věk = 5
Vstupní věk = 11
Vstupní věk = 10
Vstupní věk = 8
Chlapec – věk >10 a <=15 Vstupní věk = 11
Vstupní věk = 10
Vstupní věk = 15
Vstupní věk = 16
Vstupní věk = 13
Dívka – věk >10 a <=15 Vstupní věk = 11
Vstupní věk = 10
Vstupní věk = 15
Vstupní věk = 16
Vstupní věk = 13
Věk<=5 Vstupní věk = 4
Vstupní věk = 5
Vstupní věk = 3
Věk> 15 Vstupní věk = 15
Vstupní věk = 16
Vstupní věk = 25

Jak zjistíme, zda program v testu prošel nebo neuspěl?

Předání funkcionality nezávisí pouze na výsledcích výše uvedených scénářů. Zadaný vstup a očekávaný výstup nám poskytnou výsledky, což vyžaduje znalosti oboru.

Určení výsledků příkladu: níže uvedená obrazovka zobrazuje výstup tiketů pro každou kombinaci věku a pohlaví.

Výstup tiketů pro každou kombinaci věku a pohlaví použitou k určení výsledků testování domény

Pokud tedy všechny výše uvedené testovací případy projdou, doména vydávání tiketů v soutěži bude úspěšná. Pokud ne, doména bude neúspěšná.

Struktura testování domény

Testeři obvykle při testování domén postupují podle níže uvedených kroků. Tyto kroky mohou být upraveny nebo vynechány podle našich potřeb testování.

  • Identifikujte potenciálně zajímavé proměnné.
  • Identifikujte proměnné, které můžete nyní analyzovat, a seřaďte je (od nejmenší po největší a naopak).
  • Vytvořte a identifikujte hraniční hodnoty a hodnoty tříd ekvivalence, jak je uvedeno výše.
  • Identifikujte sekundární dimenze a každou z nich analyzujte klasickým způsobem. (Ve výše uvedeném příkladu je sekundární dimenzí pohlaví.)
  • Identifikujte a otestujte proměnné, které obsahují výsledky (výstupní proměnné).
  • Vyhodnoťte, jak program využívá hodnotu této proměnné.
  • Identifikujte další potenciálně související proměnné pro kombinované testování, kde testování rozhodovacích tabulek pomáhá.
  • Představte si rizika, která se nemusí nutně zobrazovat v nějaké zřejmé dimenzi.
  • Identifikujte a vyjmenujte neanalyzované proměnné. Shromážděte informace pro pozdější analýzu.
  • Shrňte svou analýzu pomocí tabulky rizika/ekvivalence.

Nejčastější dotazy

Oba popisky se v praxi objevují. Třídy odvozené ze specifikace z něj činí Černá skříňka technika; třídy odvozené z kódu z něj dělají bílou skříňku. Samotná analýza je identická.

Pokrývá hrany náchylné k chybám s velmi malým počtem testovacích případů. Limity jsou reálné: hranice je těžké přesně určit a celé pracovní postupy se nikdy neprocvičují, takže spíše doplňuje jiné metody, než aby je nahrazoval.

Rozdělování ekvivalence je jedním krokem v rámci testování domény, které také řadí proměnné, přidává analýzu hranic, zpracovává sekundární dimenze a výstupní proměnné a končí tabulkou rizik.

Tyto dva pojmy se překrývají, aniž by byly identické. Tento článek se zabývá analýzou vstupní domény, zatímco využití v průmyslu, jako například testování v oblasti zdravotní péče znamená testování s využitím znalostí odvětví, které jsou stále nutné k posouzení očekávaných výsledků.

Asistenti umělé inteligence přečtou požadavek a navrhnou kandidátské třídy ekvivalence, hodnoty hran a chybějící neplatné případy. Tester stále potvrzuje skutečné hranice, protože chybně odvozený rozsah dává spolehlivou, ale nepoužitelnou testovací sadu.

GitHub Copilot zapíše parametrizované testovací metody, jakmile se třídy a hrany objeví v promptu nebo kódu. Neuvedené obchodní limity musí poskytnout tester.

Každá kombinace roste multiplikativně, takže je to zřídka praktické. Nejprve analyzujte každou proměnnou samostatně a poté použijte párové nebo ortogonální pole výběr rizikových kombinací.

Testování pouze platných tříd a přeskočeníping negativní testování, s použitím inkluzivní hranice, kde je pravidlo exkluzivní, a zcela ignorováním výstupních proměnných.

Shrňte tento příspěvek takto: