Analýza hraničních hodnot – obvykle zkráceně BVA – je běžnou technikou testování černé skříňky. Tento přístup testuje vady softwaru ověřováním vstupních hodnot na hranicích přípustných rozsahů.
V tomto článku se dozvíte, co je to testování hraniční analýzy, proč je užitečné, a prozkoumáme některé různé přístupy, techniky a různé nástroje pro hraniční testování.
Co je to analýza hraničních hodnot při testování softwaru?
Analýza mezních hodnot je typem funkčního testování. Tento typ testování se zabývá ověřením, zda každá funkce softwaru splňuje požadavky a specifikace. V případě hraničního testování tato funkčnost zahrnuje způsob, jakým software pracuje s různými vstupy.
BVA je technika testování softwaru, která ověřuje, jak bude software reagovat na vstupy na hranici vstupů nebo v jejich okolí. Každý vstup má v podstatě přípustné rozsahy. Například můžete mít pole hesla pro přihlášení, které přijímá hesla o délce 8 až 12 znaků. Hraniční testování bude testovat hesla s délkou znaků 7, 8, 12 a 13.
Vycházíme z toho, že na hranicích mezí, tj. 7, 8, 12 a 13, je větší pravděpodobnost, že dojde k chybám, než u čísel uvnitř mezí, jako jsou 9, 10 a 11. Zatímco v příkladu pole, které přijímá 8 až 12 znaků, se výhody mohou zdát zanedbatelné, v případě, že potřebujete napsat testovací případy pro pole, která přijímají 1 až 20 znaků nebo čísla v rozsahu 1 až 1000 atd., jsou zřejmé.
Pro úsporu času a snížení počtu testovacích případů v rámci funkčního testování se tedy analýza hraničních hodnot zaměřuje na hodnoty:
- Při minimální hodnotě
- Přímo pod minimální hodnotou
- Při maximální hodnotě
- Přímo nad maximální hodnotou
Výhody analýzy mezních hodnot při testování
Hraniční testování má pro týmy QA několik přesvědčivých výhod.
#1. Lepší kvalita softwaru
Noční můrou testerů jsou chyby a nedostatky, které zůstanou nepovšimnuty. Při velkém množství věcí, které je třeba ověřit, mohou některé závady proklouznout. Hraniční testování prokazuje funkčnost oblastí softwaru, u nichž je větší pravděpodobnost výskytu chyb, což vede k lepšímu sestavení softwaru a v konečném důsledku ke spolehlivější a stabilnější aplikaci.
#2. Zvýšené pokrytí testů
BVA v testování softwaru je velmi užitečná, protože pomáhá snížit počet testovacích případů potřebných pro komplexní pokrytí testů. Analýza mezních hodnot zajišťuje, že důležité hodnoty a každá hodnota mohou být testovány důkladněji.
#3. Včasné odhalení závady
Testování hraničních hodnot je součástí přístupu, který upřednostňuje včasné odhalení závad. Odhalení chyb v rané fázi procesu znamená, že vývojové týmy mohou ušetřit čas a peníze, a to ani nemluvíme o tom, že je mnohem snazší odstranit chyby v raných fázích vývoje.
#4. Účinnost
Testování hraničních hodnot je velmi efektivní, protože snižuje požadavky na velké množství testovacích případů. Zredukování vstupů na všechny kromě těch, které mohou způsobit problémy, může testovacím týmům výrazně ušetřit čas při psaní i provádění testovacích případů.
Nevýhody analýzy mezních hodnot při testování
Žádná technika testování softwaru samozřejmě není dokonalá nebo bez omezení. Přestože má analýza hraničních hodnot mnoho výhod, práce s touto technikou funkčního testování má určitá omezení.
#1. Úzká oblast působnosti
BVA pracuje na hranicích nebo okrajích platných datových vstupů. Obecně ignoruje střední vstupy s odůvodněním, že budou v pořádku, pokud jsou platné vstupy na okrajích. Není však bezprecedentní, že některé z těchto neověřených hodnot mohou mít problémy.
#2. Příliš zjednodušující
Hraniční analýza je o zjednodušení. Zatímco pro redukci testovacích případů tento přístup funguje, pro vysoce komplexní domény s mnoha hranicemi, interakcemi nebo závislostmi je méně vhodný. Může se totiž potýkat s problémy při řešení složitých scénářů, což znamená, že je třeba prozkoumat jiné techniky pro odpovídající pokrytí.
#3. Předpoklady
U každého procesu, který se snaží zvýšit efektivitu, hrozí, že mu uniknou určité chyby. BVA se zaměřuje na hranice na okraji pásma. Přitom musí vycházet z předpokladů o dalších vstupech, které se nacházejí na obou stranách hraničních hodnot. Testeři musí najít rovnováhu mezi efektivitou a pokrytím, což představuje mírné riziko, pokud se používá pouze hraniční testování.
#4. Spoléhání se na přesné specifikace a požadavky
Efektivní BVA závisí na kvalitě a přesnosti specifikací a dokumentace požadavků. Jakékoli nezkontrolované chyby v těchto dokumentech se mohou promítnout do testování mezních hodnot a vést k tomu, že konkrétní chyby zůstanou nezkontrolovány a neodhaleny až do kritických pozdních fází vývoje.
#5. Spoléhání na třídy ekvivalence
Provedení důkladné BVA vyžaduje dobrou znalost tříd ekvivalence. Přesné nastavení těchto tříd vyžaduje zkušenosti a určité základní informace o aplikaci.
Úkoly analýzy mezních hodnot
v testování softwaru
Nyní byste již měli mít jasno o výhodách a nevýhodách hraničního testování. Pokud však chcete tento přístup implementovat do vlastního testování softwaru, musíte si být vědomi různých problémů, které musíte překonat.
Zde jsou uvedeny některé problémy spojené s implementací testování hraničních hodnot při testování softwaru.
#1. Vymezení hranic
Identifikace hranic v jednoduchých systémech představuje pro kompetentní testery jen malý problém. Existují však i složitější situace, jako např.:
- Komplexní vstupní domény s různými vstupními proměnnými nebo složitými vztahy
- Nedokumentované hranice, které nebyly jasně popsány v dokumentech specifikace.
- Dynamické hranice, které se mění na základě akcí uživatele nebo jiných podmínek.
#2. Nejednoznačné požadavky
Špatně napsané nebo nejasné dokumenty s požadavky mohou bránit identifikaci hraničních hodnot. Přehlednost, úplnost a snaha o vyčerpávající specifikační dokumenty vyžadují čas, ale nakonec se vyplatí.
#3. Odbornost
Analýza mezních hodnot může být ošidně složitá. Testovací týmy totiž potřebují pracovníky se zkušenostmi a znalostmi v oboru, aby porozuměli jemným nuancím této techniky. Navíc testeři musí mít určité znalosti o softwaru nebo alespoň spolehlivé specifikační dokumenty, o které se mohou opřít.
#4. Chyby
Cílem hraniční analýzy je snížit počet testovacích případů potřebných k ověření platných a neplatných vstupů. Závady, které leží mimo rozsah testování, však mohou snadno zůstat nepovšimnuty. Kromě toho jsou chyby “mimo jedničku” běžnými chybami kódování, které se mohou vyskytnout na hranicích nebo v jejich blízkosti. Testeři si musí být těchto scénářů vědomi a přijmout opatření pro testování.
#5. Výbuch testovacího případu
Při více vstupních hranicích se mohou testovací případy brzy stát složitými a nekontrolovatelně se množit. V těchto situacích se ztrácí čas a peníze, které můžete ušetřit díky hraničnímu testování, a tím se snižují výhody tohoto řešení. Podobný efekt mohou mít i složité softwarové sestavy s mnoha kombinacemi nebo permutacemi.
#6. Omezení analytického nástroje
Nástroje pro automatizaci testování softwaru mohou týmům pomoci provést odpovídající analýzu mezních hodnot. I v těch nejlepších případech však tyto nástroje vyžadují určitý manuální zásah při testování i vytváření testů. Tato situace se může zhoršit u složitých sestav s interakcemi s více proměnnými.
Různé typy hraničních hodnot
testování při testování softwaru
V knize Testování softwaru: Jorgensen a Byron DeVries popisují čtyři různé typy testování hraničních hodnot, kterými jsou :
1. Testování normálních hraničních hodnot (NBVT)
- Testuje platné vstupní hodnoty na okrajích vstupní oblasti
- Zkoumá minimální a maximální hodnoty spolu se vstupy těsně nad a pod hranicí.
- Jedná se o klasický typ analýzy mezních hodnot.
2. Robustní testování hraničních hodnot (RBVT)
- Podobně jako NBVT výše, ale zahrnuje i neplatné vstupy.
- Testuje na hranicích a těsně za nimi, ale zohledňuje i neplatné vstupy.
- Zaměřuje se na vyhledávání chyb z extrémních nebo neočekávaných výstupů.
3. Testování nejhorší mezní hodnoty (WBVT)
- Ověřuje chování softwaru pomocí extrémních platných a neplatných hodnot.
- Zkoumá hodnoty na okraji vstupních domén a hodnoty za těmito hranicemi.
- Snaží se porozumět chování softwaru za extrémnějších podmínek.
4. Robustní testování nejhorší mezní hodnoty (RWBVT)
- Používá kombinaci RBVT a WBVT pro co nejdůkladnější testování hraničních hodnot.
- Testuje platné a neplatné vstupní hodnoty na typických i extrémních hranicích.
- Nabízí nejlepší příležitost k nalezení závad souvisejících s hranicemi
Tyto přístupy se liší svou komplexností, přičemž RWBVT je nejpodrobnější. Testeři však musí vzít na vědomí, že k uvolnění této další úrovně odhalování závad je zapotřebí dodatečná investice času i úsilí.
Rozdělení ekvivalencí a hraniční hodnoty
analýza: podobnosti a rozdíly
Rozdělení ekvivalencí a analýza mezních hodnot se často používají ve vzájemné kombinaci. Obě techniky se totiž velmi dobře doplňují. Popisují však odlišné přístupy k ověřování vstupních dat. Podívejte se na podobnosti a rozdíly mezi nimi.
1. Podobnosti
Ekvivalentní rozdělení a analýza hraničních hodnot tvoří skvělou dvojici. Zde jsou uvedeny některé podobnosti mezi oběma technikami.
- V obou případech se jedná o techniky testování černé skříňky, což znamená, že se zaměřují na vstupy a výstupy, které lze testovat bez předchozí znalosti zdrojového kódu aplikace.
- Obě jsou součástí důkladného přístupu k testování vstupů.
- Obě pomáhají testerům najít rovnováhu mezi komplexním pokrytím testů bez psaní nadměrného množství testovacích případů.
2. Rozdíly
Abychom prozkoumali rozdíly mezi rozdělením ekvivalence a analýzou mezních hodnot, musíme se na každou z nich podívat samostatně.
Rozdělení ekvivalencí
- Rozděluje vstupní data do tříd ekvivalence, které by měly vést k podobným výstupům systému.
- Používá jednu reprezentativní hodnotu z každé třídy a testuje systém s touto hodnotou.
- Zabývá se identifikací platných a neplatných tříd ekvivalence.
Analýza mezních hodnot
- Testuje hodnoty na hranicích nebo okrajích tříd ekvivalence.
- Testování řady hodnot, včetně minimálních a maximálních hodnot a hodnot na obou stranách hranice.
- Vyhledává chyby, které se nacházejí na okraji hranic.
Příklady rozdělení ekvivalencí a analýzy okrajových hodnot
Abychom vám pomohli upevnit si představu o rozdělení ekvivalencí a analýze okrajových hodnot, uvádíme několik příkladů.
Příklad rozdělení ekvivalencí:
Řekněme, že máte vstupní pole pro registraci automobilů. Registrační značky automobilů v USA mají obvykle 6 až 7 znaků. Pro zjednodušení nebudeme počítat se speciálními poznávacími značkami.
Platné údaje = desky 6 nebo 7 znaků
Neplatné údaje = desky s >6 nebo >7 znaky.
Příklad analýzy mezních hodnot:
Na stejném příkladu s číslem desky jako výše se hraniční analýzou otestuje
Platné údaje = desky s 6 nebo 7 znaky
Neplatné údaje = desky s 5 nebo 8 znaky a v některých scénářích se 4 a 9 znaky.
Příklad analýzy mezních hodnot
Možná nejlepším způsobem, jak plně pochopit tento koncept, je podívat se na další příklad nebo dva příklady analýzy mezních hodnot.
Příklad testování mezních hodnot č. 1
Abychom se podrobněji seznámili s testováním hraničních hodnot, podívejme se na příklad domény pro ověření věku.
Máme pole, do kterého může uživatel zadat svůj věk.
Hraniční hodnoty jsou:
- Minimální věk = 18 let
- Maximální věk = 120 let
Příklad hraničních testovacích případů:
Existuje celkem šest testovacích případů:
- 17, 18 a 19, které jsou nižší než minimální, minimální a vyšší než minimální.
- 119, 18 a 19, které jsou pod maximem, maximem a nad maximem.
Příklad testování hraničních hodnot č. 2.
V našem dalším příkladu testování hranic prozkoumáme webovou stránku s minimální slevou na nákup ve výši 20 % při objednávce 100 USD a více.
V tomto příkladu je při nákupu za více než 600 USD poskytnuta sleva 25 %. Test hraniční hodnoty se bude zabývat vstupy v rozmezí 100 až 600 USD.
Hraniční hodnoty jsou:
Minimální nároková sleva = 100 USD
Maximální nároková sleva = 600 USD
Příklad hraničních testovacích případů:
Opět vygenerujeme celkem šest testovacích případů, kterými jsou:
- 99,99 USD, 100 USD a 100,01 USD, které jsou nižší než minimální, minimální a vyšší než minimální.
- 599,99 USD, 600 USD a 600,01 USD, což jsou částky nižší než maximální, maximální a vyšší než maximální.
Je hraniční testování při testování softwaru přesné?
Ve výzkumném článku Black Box Testing with Equivalence Partitioning and Boundary Value Analysis Methods se autoři zabývají použitím metody rozdělení ekvivalence a analýzy hraničních hodnot k testování akademického informačního systému pro univerzitu Mataram v Indonésii.
Autoři použili k testování populární open-source testovací nástroj Selenium a provedli celkem 322 testovacích případů. Testování ekvivalence a analýza hraničních hodnot odhalily přibližně 80 neúspěšných případů, což vedlo k poměru platných a neplatných výsledků testů zhruba 75:25. Celkově lze říci, že použití kombinace rozdělení ekvivalence a BVA při testování softwaru vedlo k důkladnému a užitečnému testování softwaru.
Nejlepší nástroje pro testování hraničních hodnot
Přestože specializované softwarové nástroje pro testování hranic jsou vzácné, existuje mnoho významných testovacích nástrojů, které jsou schopny tuto práci vykonávat.
#3. TestCaseLab
TestCaseLab je cloudový nástroj pro správu testů, který může pomoci s testováním BVA. Software umožňuje týmům vytvářet a spravovat testovací případy pomocí intuitivního a atraktivně vypadajícího uživatelského rozhraní. TestCaseLab je flexibilní a vybavený funkcemi, ale má svá omezení, včetně omezených možností reportování a přizpůsobení.
#2. Micro Focus UFT One
Micro Focus UFT One je nástroj pro testování softwaru se zaměřením na funkční a regresní testování. Podporuje různé platformy, zařízení a testování API a nabízí široké možnosti integrace. Nabízí vytváření testů bez kódu i na základě klíčových slov a může týmům pomoci snadno vytvářet testovací případy analýzy hraničních hodnot. Je třeba vzít v úvahu některá omezení, jako je strmá křivka učení a nedostatečný výkon ve srovnání s nástroji, jako je ZAPTEST.
#1. ZAPTEST
ZAPTEST je komplexní nástroj pro automatické testování softwaru s pokročilými možnostmi RPA. Je vytvořen tak, aby testerům poskytoval uživatelsky přívětivou a robustní sadu nástrojů pro automatizaci testování, které mohou pomoci ověřit software různými způsoby, včetně BVA při testování softwaru.
Mezi nejpřesvědčivější případy použití nástroje ZAPTEST pro analýzu hraničních hodnot patří generování testovacích případů, zpracování testovacích dat, provádění testů a vytváření zpráv a analýz. Díky řadě šablon a vysoké úrovni přizpůsobení v kombinaci s tvorbou testovacích případů bez použití kódu mohou uživatelé ZAPTEST rychle a snadno vytvářet a spravovat robustní testovací případy pro všechny typy hraničních analýz.
Kromě generování a správy testovacích případů mohou funkce RPA společnosti ZAPTEST pomoci testovacím týmům s testováním analýzy hraničních hodnot i dalšími způsoby. Můžete například automatizovat provádění testovacích případů, generovat testovací data a vytvářet výkonné integrace s jinými testovacími nástroji.
Tipy pro testování hraničních hodnot
- Kombinujte analýzu mezních hodnot s rozdělením ekvivalence, abyste zajistili, že vaše testovací případy pokryjí různé vstupní scénáře.
- Použijte scénáře s neplatnými vstupy (tj. negativní testování), abyste ověřili, jak software zpracovává chyby a neočekávané vstupy.
- Investujte čas do identifikace hraničních hodnot pro různé datové typy, jako je text, čísla, logické hodnoty atd.
- Upřednostněte testování hraničních hodnot u kritických funkcí nebo oblastí, kde je větší pravděpodobnost výskytu chyb.
- Použijte reálná data, která představují druh dat, která budou uživatelé zadávat do vašich domén.
Závěrečné myšlenky
Analýza hraničních hodnot je užitečný přístup k testování funkčnosti. Pokud máte vstupní doménu, je třeba zkontrolovat, zda přijímá platná data a zda odesílá chybové zprávy, pokud přijímá neplatná data. Testování hraniční analýzou pomáhá ověřit tuto funkčnost efektivním způsobem, protože vytváří pouze testovací případy potřebné pro komplexní testování.
Hraniční testování zkoumá hodnoty v přijatelném rozsahu nebo v jeho okolí a ověřuje, jak systém na tyto vstupy reaguje. Výsledkem je spousta ušetřeného času a snížené úsilí, protože nemusíte vytvářet zbytečné testovací případy. V rychlém světě vývoje softwaru, kde se zdá, že termíny přicházejí rychle a rychle, potřebují testovací týmy veškerou pomoc, kterou mohou dostat.