fbpx

Rozdělení ekvivalence v testování softwaru je technika testování černé skříňky, která pomáhá vytvářet efektivní testovací případy bez kompromisů v pokrytí testů.

V tomto článku se podíváme na to, co je to rozdělování tříd ekvivalence, proč je užitečné, a prozkoumáme některé postupy a přístupy, které můžete použít k využití výhod této techniky.

 

Co je rozdělení třídy ekvivalence

v testování softwaru?

Testování QA - co to je, typy, procesy, přístupy, nástroje a další!

Veškerý software má určité vstupní podmínky. V kontextu testování softwaru tyto vstupní podmínky popisují hodnoty nebo data, která musí tester použít k ověření kvality a funkčnosti svého softwaru. Těmito vstupy mohou být jak jednoduché údaje jako kliknutí myší, tak i text a čísla.

Ekvivalentní rozdělení při testování softwaru zkoumá různé vstupy potřebné pro používání softwaru a seskupuje je do tříd ekvivalence, tj. množin vstupů, které budou mít ekvivalentní vliv na chování softwaru.

Pokud víte, jak se budou chovat jednotlivé skupiny vstupů, nemusíte testovat každého zástupce skupiny. Rozdělení na třídy ekvivalence je proto skvělým způsobem, jak pomoci testerům snížit četnost nadbytečných testů. V hyperkonkurenčním světě vývoje softwaru se stále těsnějšími termíny je úspora času a úsilí v životním cyklu testování softwaru (STLC) klíčová.

Nakonec je třeba poznamenat, že testování ekvivalence je technika testování černé skříňky. Stručně řečeno to znamená, že testeři nemusí znát vnitřní kód programu ani jeho vnitřní fungování. Testy jsou založeny na vstupech, výstupech a vnějším chování. Tyto testy jsou proto vysoce zaměřeny na chování uživatelů při používání programu.

 

1. Rozdělení ekvivalence testování softwaru v kostce

Rozdělení podle ekvivalence rozděluje vstupní data pro testování softwaru na dva tábory: platné a neplatné vstupy. Hodnoty v jednotlivých oddílech musí způsobit, že se software bude chovat stejně. Například:

  • Pokud platí podmínka jedné hodnoty v oddílu A, musí platit i pro ostatní hodnoty v oddílu A.
  • Stejně tak, pokud jsou podmínky jedné hodnoty v oddílu A nepravdivé, musí být nepravdivé i ostatní hodnoty v oddílu A.

V kontextu testování musí být každý oddíl pokryt alespoň jednou. Logicky to znamená, že pokud selže jedna položka v oddílu A, selžou i všechny ostatní vstupy. Tento postup by měl ušetřit čas, protože místo testování každého vstupu, který se nachází v oddílu A, mohou testeři otestovat pouze jeden a výsledek extrapolovat na základě jeho společných rysů.

 

2. Proč je testování tříd ekvivalence při testování softwaru důležité?

Než se dostaneme k přímým výhodám testování tříd ekvivalence při testování softwaru, musíme definovat, proč je tento přístup důležitý.

Všichni testeři chápou, že testování softwaru vyžaduje kompromisy. Čas a rozpočty jsou omezené, což znamená, že testeři musí co nejlépe využít své zdroje. Rozdělení ekvivalence testování softwaru pomáhá týmům najít rovnováhu mezi efektivitou a spolehlivostí testování tím, že snižuje počet vstupů.

 

Výhody rozdělení ekvivalencí

v testování softwaru

Případy použití robotické automatizace procesů v pojišťovnictví a účetnictví

Ekvivalentní rozdělení v testování softwaru je testovacími týmy upřednostňováno z řady důvodů. Zde jsou některé z nejpřesvědčivějších.

1. Efektivita

Velká výhoda testování rozdělení ekvivalence spočívá v jeho efektivitě. Pokud testeři použijí rozdělení ekvivalencí, mohou snížit počet testovacích případů, které potřebují, aniž by to bylo na úkor pokrytí testů. Výběrem vstupního případu z každé třídy ekvivalence si testeři mohou být jisti, že rozumí tomu, jak jejich software funguje s různými vstupy.

2. Jednoduchost

Další velkou výhodou rozdělení ekvivalence testování softwaru je jednoduchost. Rozdělení různorodého souboru vstupů na platné a neplatné údaje znamená, že plánování testů je mnohem jednodušší. Testování každého vstupu zvlášť vyžaduje mnoho dokumentace a koordinace. Zkrácení na jeden reprezentativní příklad zefektivňuje proces testování.

Rozšířené pokrytí

Používání tříd ekvivalence při testování také umožňuje efektivněji využít čas potřebný k testování. Redukce testovacích vstupů do tříd znamená, že můžete důkladněji otestovat každou třídu. Tento komplexní přístup by byl upřímně řečeno nemožný, kdybyste testovali každý vstup zvlášť. Rozdělení ekvivalence umožňuje týmům důkladně otestovat platná a neplatná data, okrajové případy, hraniční hodnoty a další.

3. Znovupoužitelnost

Počáteční čas, který investujete do vytvoření každé třídy ekvivalence při testování softwaru, se vám vyplatí, pokud tyto třídy znovu použijete pro budoucí vstupní testy. I když ne všechny oddíly budou relevantní pro budoucí testy, ty, které jsou, vám ušetří spoustu času při budoucích projektech nebo dokonce při regresním testování.

 

Nevýhody rozdělení ekvivalencí

v testování softwaru

Výzvy-testování-zatížení

Ačkoli rozdělení ekvivalencí nabízí některé významné výhody, není ideálním řešením pro každý scénář. Prozkoumejme některá jeho omezení.

1. Vstupní objednávka

V určitých situacích je pořadí vstupů důležitou součástí testování funkčnosti aplikace. To není něco, co byste mohli omezit pomocí rozdělení ekvivalencí. Testeři musí mít tyto situace na paměti a používat alternativní techniky k zajištění dobrého pokrytí.

2. Komplexní vstupní závislosti

Komplexní software se složitými vstupními závislostmi je další oblastí, kde se projevují omezení dělení ekvivalencí. Například software, který na základě různých vstupů provádí výpočty. V takovém případě by testeři museli používat různé techniky, aby omezili kombinatorickou explozi a zvýšili pravděpodobnost izolace závad.

 

Alternativní přístupy k doplnění

omezení zkoušek ekvivalence

alfa testování vs. beta testování

Zatímco testování rozdělením ekvivalence je vhodné pro mnoho testovacích scénářů, vysoce komplexní software se složitými závislostmi mezi vstupními hodnotami může vyžadovat další doplňkové přístupy.

Pokud jde o psaní testovacích případů pro složitý software, je vhodné použít kombinaci těchto přístupů.

1. Párové testování

Párové testování je technika testování softwaru, která testuje všechny možné kombinace každé dvojice vstupních parametrů. Tento přístup zajišťuje, že každá dvojice parametrů je testována společně alespoň jednou.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

2. Testování rozhodovací tabulky

Rozhodovací tabulka pomáhá testerům metodicky mapovat různé kombinace vstupů. Je to dobrý způsob, jak zajistit systematické pokrytí, pokud existují složité závislosti.

3. Testování přechodů mezi stavy

Tento typ testování měří, jak software přechází mezi různými stavy v reakci na různé kombinace vstupů.

4. Testování na základě modelu

Tento přístup vyžaduje vytvoření modelu založeného na vnitřní logice softwaru a použití automatizačního nástroje k vytvoření testovacích případů na základě tohoto modelu. Tato technika si umí poradit se složitostí a zajistit dostatečné pokrytí.

 

Příklady testování rozdělení tříd ekvivalence

Beta testování - co to je, typy, postupy, přístupy, nástroje, vs. alfa testování a další!

Nejlepším způsobem, jak porozumět rozdělení ekvivalence, je podívat se na to, jak a kde můžete použít třídu ekvivalence při testování softwaru. Zde je několik příkladů, které vám pomohou si tento koncept lépe představit.

 

1. Příklad testování rozdělení tříd ekvivalence č. 1

Dobrým příkladem třídy ekvivalence v testování softwaru je online objednávkový formulář.

Řekněme, že vytváříte aplikaci pro online prodejce stacionárního vybavení. K dispozici je typický objednávkový formulář pro balíky papíru A4. Zde je uvedeno, jak lze tento formulář testovat pomocí tříd ekvivalence.

Třídy ekvivalence:

Množství papíru A4 se pohybuje v určitém rozmezí, například od 1 do 100. Jedná se tedy o tyto tři třídy:

  • 1 až 100
  • Čísla pod 1
  • Čísla nad 100.

 

Testovací případy:

Měly by být provedeny tři testovací případy s těmito očekávanými výsledky

  • Jakékoli číslo od 1 do 100 = zpracovaná objednávka
  • Čísla pod 1 = chybové hlášení
  • Čísla nad 100 = chybová zpráva

 

2. Příklad testování rozdělení ekvivalence č. 2

Třída ekvivalence v testování softwaru se může zabývat nejen čísly. V tomto příkladu prozkoumáme, jak lze stejný princip použít k ověření portálu pro odesílání souborů. Řekněme, že potřebujete otestovat web, který vyžaduje, aby uživatelé nahrávali doklady totožnosti, ale můžete přijímat pouze určité formáty.

Třídy ekvivalence:

  • Podporovány jsou dokumenty PDF a JPEG.
  • Nepodporované dokumenty jsou všechny ostatní formáty dokumentů.
  • Žádný dokument

 

Testovací případy:

  • Testování nahráním PDF nebo JPEG = úspěšné nahrání
  • Test nahráváním nepodporovaného formátu = chybová zpráva
  • Test bez nahrávání souborů = chybová zpráva

 

Jak implementovat rozdělení ekvivalencí

přístup k testování softwaru

Agilní automatizace testování DevOps: Vysvětlení přístupu k automatizaci založeného na maketách ZAPTEST

Pokud chcete při testování používat třídy ekvivalence, musíte zaujmout strategický přístup. Zde je užitečný průvodce krok za krokem, jak implementovat rozdělení ekvivalence při testování softwaru.

 

Krok č. 1: Identifikace vstupních proměnných

 

Každý software reaguje na různé vstupní proměnné. U složitého softwaru mohou být tyto proměnné obrovské. Projděte si tedy požadavky a specifikace softwaru a určete všechny proměnné, které mají vliv na chování softwaru.

Mezi nejzřetelnější vstupy patří formuláře pro zadávání údajů uživateli. Pro svůj seznam však musíte zvážit širší škálu vstupů. Můžete také zohlednit proměnné prostředí, volání API, interní výpočty atd.

Dále byste měli znát různé typy proměnných dat. Tyto proměnné můžete kategorizovat jako celočíselné, logické, řetězcové atd. a definovat tak příslušné oddíly.

Nakonec je třeba prozkoumat vstupní omezení. Jedná se například o povolené znaky, definované formáty a minimální/maximální hodnoty.

 

Krok č. 2. Určení platných a neplatných oddílů

Podívejte se na jednotlivé vstupní proměnné a začněte je rozdělovat podle platných a neplatných výsledků. Tyto třídy budou při testování ekvivalentní.

1. Platné oddíly

Platné oddíly lze rozdělit do dvou tříd.

Pozitivní třídy ekvivalence:

Hodnoty, které by měl váš software úspěšně zpracovat. Například u softwaru, který zaznamenává procentuální známky, je platná hodnota od 0 do 100.

Záporné třídy ekvivalence:

Tato kategorie bude určena pro hodnoty, které jsou mimo hranice očekávaného vstupu, ale software by je měl zpracovat pomocí chybové zprávy. Například vstupní hodnota je 110 pro procentuální známku, což vede k tomu, že software vrátí chybovou zprávu: „Všechny hodnoty musí být 0 až 100“.

 

2. Neplatné oddíly

Tyto třídy ekvivalence budou obsahovat vstupy, které způsobí chyby nebo neočekávané chování. V našem příkladu výše by to mohlo zahrnovat pokusy o zadání A+ nebo B nebo podobných vstupů do procentuální známky. Tyto vstupy by sice mohly být technicky správné, ale jsou mimo číselná očekávání.

 

#3. Psaní efektivních testovacích případů

Dále je třeba navrhnout testovací případy, které pokryjí každý oddíl ekvivalence alespoň jednou. Jak již bylo zmíněno dříve v článku, zajišťuje to odpovídající pokrytí testů.

Nejprve je třeba vybrat reprezentativní hodnoty v rámci každého oddílu ekvivalence, které mohou zahrnovat jak platná, tak neplatná data.

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

Tipy pro psaní spolehlivých testovacích případů

  • Přemýšlejte o hraničních hodnotách: Ujistěte se, že jste otestovali hranice oddílů. Minimální, maximální, inkluzivní, exkluzivní atd., protože tyto oblasti jsou silnými kandidáty na chyby. Například pokud jsou vaše vstupní očekávání v rozmezí 0 až 100, testujte záporné hodnoty a čísla jako 101.
  • Zvažte pozitivní a negativní testovací scénáře pro platné i neplatné testovací případy.
  • Kombinované testování je dobrý nápad. Použijte několik různých přístupů, jak je uvedeno v našich alternativních přístupech, abyste doplnili omezení výše uvedené části o testování ekvivalence.
  • zdokumentujte důvody, proč byly vstupní hodnoty rozděleny do určitých oddílů, a jasně popište očekávané chování každého testu.
  • Pokud je to možné, používejte vizuální nástroje, abyste do svých testovacích případů vnesli pocit přehlednosti a objektivity pomocí diagramů nebo tabulek, které mapují vaše rozdělení.

 

#4. Naplánujte a proveďte testovací případy

Stanovte si priority úkolů na základě těchto faktorů:

  • Které oblasti jsou nejčastěji postiženy vadami
  • Které scénáře s největší pravděpodobností způsobí závažné scénáře, jako jsou pády nebo zamrznutí.

Poté proveďte testy a zaznamenejte jejich výstupy a případné chyby. U složitých programů s velkým množstvím vstupů můžete použít nástroje RPA, které napodobují činnosti uživatele.

 

#5. Analýza výsledků

Shromážděte shromážděná data z testů a analyzujte výsledky. Některé metody, které je třeba použít, jsou:

  • Podívejte se na každý testovací případ a porovnejte skutečné výstupy s očekávanými výstupy.
  • Zjistěte případné nesrovnalosti, prozkoumejte a nahlaste chyby a závady.

 

#6 Další tipy

Tyto tipy se sice neuplatní ve všech případech, ale pro komplexní testování softwaru budou užitečné.

  • Rozhodovací tabulky jsou vynikajícím způsobem, jak vizualizovat rozdělení ekvivalence a různé kombinace vstupů, které byste mohli chtít použít.
  • Pokud vykazují téměř identické chování, můžete sloučit rovnocenné třídy, čímž se dále optimalizuje proces testování.
  • Použití testování hraničních hodnot ke zlepšení detekce závad
  • Pokud je to možné, automatizujte testovací případy rozdělení ekvivalence.

 

Rozdělení ekvivalencí a analýza hraničních hodnot

vyjasnění některých nejasností v automatizaci testování softwaru

Ekvivalenční rozdělení vychází z předpokladu, že každý test v rámci rozdělení bude mít stejný výsledek. To je sice v mnoha situacích pravda, ale ne vždy to funguje. Například vstupy, které byly do oddílu přidány omylem, mohou zůstat nezkontrolovány, což může vést ke snížení pokrytí a potenciální nestabilitě softwaru.

Řešením tohoto problému je testování hraničních hodnot. Umožňuje týmům testujícím software zaměřit se na oblasti, které s největší pravděpodobností obsahují rizika, a na základě toho testovat software. Stručně řečeno, navrhuje, že rizika se s největší pravděpodobností vyskytují na okrajích nebo hranicích vašich vstupních oddílů. Proto mohou testeři kromě ostatních testovacích případů třídy ekvivalence psát i testovací případy na horní a dolní hranici vstupů.

 

Rozdělení ekvivalence a automatizace pomocí ZAPTESTu

nejlepší bezplatné a podnikové nástroje pro testování softwaru + automatizace RPA

Nástroje pro automatizaci testování softwaru, jako je ZAPTEST, mohou týmům pomoci automatizovat rozdělování ekvivalence jak při vytváření testů, tak při jejich provádění.

Pojďme se podívat, jak vám ZAPTEST může pomoci odhalit výhody tohoto užitečného přístupu k testování černé skříňky.

 

1. Výběr nástrojů

Důležitý je výběr správného nástroje pro danou práci. Většina nástrojů pro automatizaci testování se specializuje na testování webu, mobilních zařízení nebo desktopů. ZAPTEST zvládá testování napříč různými platformami a aplikacemi, což z něj činí spolehlivou volbu.

 

2. Napsat a provést testovací případy

ZAPTEST 1Script umožňuje skenovat uživatelské rozhraní a vytvářet automatizaci testů. Kromě toho můžete skenovat také makety aplikací, pokud jste v rané fázi vývoje. Pomocí funkce Skenovat grafické uživatelské rozhraní ZAPTEST prohledá všechny testovací objekty a přidá je do seznamu objektů.

Odtud můžete do diagramu přidávat objekty a sestavovat kroky testu.

ZAPTEST umožňuje automatizovat psaní případů pomocí jednoduchého rozhraní drag-and-drop. K sestavení testovacích případů pomocí nástroje ZAPTEST nepotřebujete žádné znalosti kódování. Odtud můžete vybrat příslušnou operaci z rozbalovací metody a sestavit testovací případ na základě vstupních hodnot potřebných pro vaše rozhraní. Poté můžete sestavit testovací případy pro každou ekvivalenci a spustit je. Můžete dokonce opakovaně používat testovací případy a upravovat je v editoru Step, čímž ušetříte spoustu času.

 

3. Reportování a správa testovacích případů

ZAPTEST umožňuje spouštět testovací případy paralelně, což šetří značný čas. To vám může pomoci spustit najednou velké množství různých oddílů ekvivalence nebo spustit určité skupiny testů.

Výsledky lze snadno shromáždit díky podrobným zprávám o neúspěšných/prospěšných testech, snímkům obrazovky, protokolům o provedení a výkonnostním metrikám souvisejícím s každým testovacím případem.

 

4. Údržba testovacích případů

Díky kvalitním možnostem správy verzí můžete také jednoduše sledovat a udržovat své testovací případy. Navíc mohou uživatelé ZAPTESTu klonovat a opakovaně používat testy, čímž dosáhnou nové úrovně efektivity.

Kromě automatizace testovacích případů nabízí ZAPTEST mnohem více funkcí. Díky sadě nástrojů RPA nabízí ZAPTEST funkce 2 v 1 a překlenuje tak propast mezi DevOps a BizOps v budoucnosti, která se vyznačuje hyperautomatizací, kdy vše, co lze automatizovat, bude automatizováno.

 

Závěrečné myšlenky

Rozdělení ekvivalencí je elegantním řešením pro situace, kdy testeři musí najít rovnováhu mezi efektivitou a přesností. Vzhledem k tomu, že některé softwary umožňují téměř nekonečnou škálu vstupů, pomáhá rozdělení tříd ekvivalence týmům rozdělit testovací data na zvládnutelné kousky, z nichž každý lze důkladně otestovat.

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post

Virtual Expert

ZAPTEST

ZAPTEST Logo