7 principles software testing
Sedm principů testování softwaru: Včetně dalších podrobností o shlukování defektů, Paretově principu a paradoxu pesticidů.
Jsem si jist, že každý ví o „ Sedm principů testování softwaru “.
Tyto základní principy testování pomáhají testovacím týmům využít svůj čas a úsilí k tomu, aby byl testovací proces efektivní. V tomto článku se podrobně seznámíme se dvěma principy, tj. Shlukování vad, Paretův princip a paradox pesticidů .
Co se naučíte:
Sedm principů testování softwaru
Než se podrobně podíváme na tyto dva principy, pojďme stručně pochopit sedm principů testování softwaru.
Pojďme prozkoumat !!
# 1) Testování ukazuje přítomnost vad
Každá aplikace nebo produkt je uvolněn do výroby po dostatečném množství testování různými týmy nebo prochází různými fázemi, jako je testování integrace systému, testování přijatelnosti uživatele a testování beta atd.
Tak už jste někdy viděli nebo slyšeli od některého z testovacích týmů, že testovali software plně a že software nemá žádnou závadu ? Namísto toho každý testovací tým potvrzuje, že software splňuje všechny obchodní požadavky a funguje podle potřeb koncového uživatele.
V odvětví testování softwaru nikdo neřekne, že existuje bez závady v softwaru, což je docela pravda, protože testování nemůže dokázat, že je software bezchybný nebo bezchybný.
Cílem testování je však najít více a více skrytých vad pomocí různých technik a metod. Testování může odhalit neobjevené vady a pokud nejsou nalezeny žádné vady, neznamená to, že software je bez vad.
Příklad 1 :
Zvažte bankovní aplikaci, tato aplikace je důkladně testována a prochází různými fázemi testování, jako je SIT, UAT atd. A v současné době nejsou v systému identifikovány žádné vady.
Může však existovat možnost, že v produkčním prostředí se skutečný zákazník pokusí o funkčnost, která se v bankovním systému používá jen zřídka, a testeři tuto funkcionalitu přehlédli, a proto nebyla do dnešního dne nalezena žádná vada nebo se vývojáři nikdy nedotkli kódu .
Příklad 2:
V televizi jsme viděli několik reklam na mýdla, zubní pasty, ruční praní nebo dezinfekční spreje atd.
Zvažte reklamu na ruční praní, která v televizi říká, že pokud je použito konkrétní ruční mytí, lze odstranit 99% choroboplodných zárodků. To jasně dokazuje, že výrobek není stoprocentně bez bakterií. V našem konceptu testování tedy můžeme říci, že žádný software není bezchybný.
# 2) Včasné testování
Testeři se musí zapojit v rané fázi životního cyklu vývoje softwaru (SDLC). Takto lze identifikovat vady během fáze analýzy požadavků nebo jakékoli vady dokumentace. Náklady spojené s odstraněním takových vad jsou ve srovnání s náklady zjištěnými během pozdějších fází testování velmi nízké.
Zvažte níže uvedený obrázek, který ukazuje, jak se náklady na opravu defektů zvyšují, jak se testování pohybuje směrem k živé produkci.
(obraz zdroj )
Výše uvedený obrázek ukazuje, že náklady na opravu defektu zjištěného během Analýzy požadavků jsou nižší a s přibývajícím fází testování nebo údržby se neustále zvyšují.
Nyní otázka zní jak brzy by mělo testování začít ?
Jakmile jsou požadavky dokončeny, je třeba testery zapojit do testování. Testování by mělo být prováděno na dokumentech požadavků, specifikacích nebo jakémkoli jiném typu dokumentu, takže pokud jsou požadavky nesprávně definovány, je možné je opravit hned, než je opravit ve fázi vývoje.
# 3) Vyčerpávající testování není možné
Během skutečného testování není možné otestovat všechny funkce se všemi platnými a neplatnými kombinacemi vstupních dat. Místo tohoto přístupu se uvažuje o testování několika kombinací na základě priority pomocí různých technik.
Vyčerpávající testování bude vyžadovat neomezené úsilí a většina těchto snah je neúčinná. Časové osy projektu také neumožní testování tolika počtu kombinací. Proto se doporučuje testovat vstupní data pomocí různých metod, jako je rozdělení ekvivalence a analýza hraničních hodnot.
Například ,Předpokládejme, že máme vstupní pole, které přijímá pouze abecedy, speciální znaky a čísla od 0 do 1000. Představte si, kolik kombinací se objeví pro testování, není možné otestovat všechny kombinace pro každý typ vstupu.
Testovací úsilí potřebné k testování bude obrovské a bude mít také dopad na časovou osu projektu a náklady. Proto se vždy říká, že vyčerpávající testování prakticky není možné.
# 4) Testování je závislé na kontextu
Na trhu je k dispozici několik domén, jako je bankovnictví, pojišťovnictví, lékařství, cestování, reklama atd. A každá doména má řadu aplikací. Také pro každou doménu mají jejich aplikace odlišné požadavky, funkce, různé účely testování, rizika, techniky atd.
Různé domény jsou testovány odlišně, takže testování je čistě založeno na kontextu domény nebo aplikace.
Například ,testování bankovní aplikace se liší od testování jakékoli aplikace pro elektronický obchod nebo reklamu. Riziko spojené s každým typem aplikace je jiné, proto není efektivní používat stejnou metodu, techniku a typ testování k testování všech typů aplikací.
# 5) Shlukování vad
Během testování se může stát, že většina nalezených vad souvisí s malým počtem modulů. Může to mít několik důvodů, například moduly mohou být složité, kódování související s těmito moduly může být komplikované atd.
Toto je Paretův princip testování softwaru, kde 80% problémů se nachází ve 20% modulů. O seskupování defektů a Paretově principu se dozvíme více dále v tomto článku.
# 6) Pesticidní paradox
Princip Pesticide Paradox říká, že pokud se po určitou dobu znovu a znovu provádí stejná sada testovacích případů, pak tato sada testů není schopna identifikovat nové vady systému.
Abychom tento „pesticidový paradox“ překonali, je nutné soubor testovacích případů pravidelně přezkoumávat a revidovat. V případě potřeby lze přidat novou sadu testovacích případů a stávající testovací případy lze odstranit, pokud nejsou schopny najít další vady systému.
# 7) Absence chyby
Pokud je software plně otestován a pokud před vydáním nejsou nalezeny žádné vady, pak můžeme říci, že software je z 99% bez vad. Ale co když je tento software testován na nesprávné požadavky? V takových případech by nepomohlo ani zjištění závad a jejich včasné odstranění, protože testování se provádí na nesprávných požadavcích, které neodpovídají potřebám koncového uživatele.
Například, Předpokládejme, že aplikace souvisí s webem elektronického obchodování a požadavky na funkčnost „Nákupního košíku nebo nákupního košíku“, které jsou nesprávně interpretovány a testovány. Zde ani nalezení dalších defektů nepomůže přesunout aplikaci do další fáze nebo do produkčního prostředí.
Toto je sedm principů testování softwaru.
Nyní prozkoumejme Shlukování vad, Paretův princip a paradox pesticidů v roce 2006 detail .
Shlukování vad
Při testování jakéhokoli softwaru se testeři většinou setkávají se situací, kdy většina nalezených vad souvisí s některými specifickými funkcemi a zbytek funkcí bude mít nižší počet vad.
Shlukováním defektů se rozumí malý počet modulů obsahujících většinu defektů. V zásadě nejsou defekty distribuovány rovnoměrně v celé aplikaci, spíše jsou defekty koncentrovány nebo centralizovány ve dvou nebo třech funkcích.
Občas je to možné kvůli složitosti aplikace, kódování může být složité nebo složité, vývojář může udělat chybu, která může mít dopad pouze na konkrétní funkčnost nebo modul.
Shlukování vad je založeno na „ Paretův princip „Který je také známý jako 80-20 pravidlo . To znamená, že 80% nalezených vad je způsobeno 20% modulů v aplikaci. Koncept Paretova principu byl původně definován italským ekonomem - Vilfrodo Pareto .
Pokud se testeři podívají na 100 vad, pak nebude jasné, jestli existuje nějaký základní význam proti těmto 100 vadám. Pokud je však těchto 100 defektů kategorizováno podle určitých konkrétních kritérií, pak je možné, aby testeři pochopili, že velký počet defektů patří jen k několika konkrétním modulům.
Například ,uvažujme níže uvedený obrázek, který je testován pro jednu z bankovních aplikací a ukazuje, že většina vad souvisí s funkcí „Přečerpání“. Ostatní funkce, jako je shrnutí účtu, převod prostředků, trvalé pokyny atd., Mají omezený počet vad.
(obraz zdroj )
Výše uvedený obrázek uvádí, že kolem funkčnosti Přečerpání je 18 vad z celkových 32 vad, což znamená, že 60% vad je nalezeno v modulu „Přečerpání“.
Proto se testeři během provádění většinou soustředí na tuto oblast, aby našli více a více defektů. Doporučuje se, aby se testeři během testování podobně zaměřili i na ostatní moduly.
Když je testován stejný kód nebo modul, znovu a znovu, s použitím sady testovacích případů než během počátečních iterací, pak je počet defektů vysoký, ale po určité iteraci se počet defektů výrazně sníží. Shlukování vad naznačuje, že oblast náchylná k defektům má být důkladně otestována během regresního testování.
Paradox pesticidů
Když se zjistí, že jeden z modulů má více defektů, testeři vyvinuli další úsilí k otestování tohoto modulu.
Po několika iteracích testování se kvalita kódu zlepší a počet defektů začne klesat, protože většina defektů je opravena vývojovým týmem, protože vývojáři jsou také opatrní při kódování konkrétního modulu, kde testeři našli více defektů.
Proto je v jednom okamžiku většina vad objevena a opravena, takže v tomto modulu nejsou nalezeny žádné nové vady.
Občas se však může stát, že i když budete při kódování na jednom konkrétním modulu mimořádně opatrní (v našem případě „ Přečerpání ”Modul), může vývojář zanedbávat ostatní moduly, aby jej správně kódoval, nebo změny provedené v tomto konkrétním modulu mohou mít negativní dopad na další funkce, jako je Přehled účtu, Převod prostředků a Trvalé pokyny.
Když testeři používají stejnou sadu testovacích případů k provedení modulu, kde se zjistí většina defektů (modul Overdraft), pak po vyřešení těchto defektů vývojáři nejsou tyto testovací případy příliš efektivní při hledání nových defektů. Jako průběh přečerpání typu end-to-end je modul důkladně testován a vývojáři také opatrně napsali kód pro tento modul.
Je nutné tyto testovací případy revidovat a aktualizovat. Je také dobré přidat nové testovací případy, aby bylo možné najít nové a další defekty v různých oblastech softwaru nebo aplikace.
Preventivní metody paradoxu pesticidů
Existují dvě možnosti, kterými můžeme zabránit Pesticide Paradox, jak je znázorněno níže:
na) Napište novou sadu testovacích případů, které se zaměří na jinou oblast nebo moduly (jiné než dřívější modul náchylný k vadám - Příklad: „Přečerpání“) softwaru.
b) Připravte nové testovací případy a přidejte je ke stávajícím testovacím případům.
V „ metoda A ”, Testeři mohou najít více defektů v ostatních modulech, na které se během dřívějšího testování nezaměřili nebo vývojáři nebyli během kódování nijak zvlášť opatrní.
V našem výše uvedeném příkladu mohou testeři najít více vad v modulech Přehled účtu, Převod prostředků nebo Trvalé pokyny pomocí nové sady testovacích případů.
Může se ale stát, že testeři mohou zanedbávat dřívější modul ( Příklad: „Přečerpání“), kde byla většina defektů nalezena v dřívější iteraci, což by mohlo představovat riziko, protože tento modul (Přečerpání) mohl být po kódování ostatních modulů injektován s novými defekty.
V „ metoda B ”, Jsou připraveny nové testovací případy, takže ve zbývajících modulech lze najít nové potenciální vady.
Zde v našem příkladu budou nově vytvořené testovací případy schopny pomoci při identifikaci vad modulů, jako je Souhrn účtu, Převod prostředků a Stálý pokyn. Testeři však nemohou ignorovat dřívější moduly náchylné na vady ( Příklad: „Přečerpání“), protože tyto nové testovací případy jsou sloučeny s existujícími testovacími případy.
Stávající testovací případy byly více zaměřeny na modul „Kontokorent“ a nové testovací případy byly zaměřeny na ostatní moduly. Proto jsou všechny sady testovacích případů provedeny alespoň jednou, dokonce i ke změně kódu dojde na kterémkoli modulu. Tím zajistíte, že bude provedena správná regrese a bude možné identifikovat vadu kvůli této změně kódu.
Použitím druhého přístupu se celkový počet testovacích případů výrazně zvyšuje a vede k většímu úsilí a času potřebnému k provedení. To bude mít evidentně dopad na časové osy projektu a hlavně také na rozpočet projektu.
Proto je možné tento problém překonat, redundantní testovací případy lze zkontrolovat a poté odstranit. Existuje mnoho testovacích případů, které se stanou zbytečnými po přidání nových testovacích případů a úpravě stávajících testovacích případů.
Je nutné zkontrolovat, které testovací případy selhaly, aby bylo možné identifikovat vady posledních 5 iterací (předpokládejme 5 iterací) a které testovací případy nejsou příliš důležité. Může se také stát, že jediný tok pokrytý v několika testovacích případech může být pokryt v jiných koncových testovacích případech a ty testovací případy, které mají jediný tok, mohou být odstraněny.
To zase sníží celkový počet testovacích případů.
Například ,máme 50 testovacích případů k pokrytí jednoho konkrétního modulu a viděli jsme, že z těchto 50 testovacích případů 20 testovacích případů nedokázalo detekovat novou vadu v posledních několika testovacích iteracích (předpokládejme 5 iterací). Těchto 20 testovacích případů tedy musí být důkladně přezkoumáno a my musíme zkontrolovat, jak důležité jsou tyto testovací případy, a podle toho lze rozhodnout, zda si ponechat 20 testovacích případů nebo je odstranit.
Před odebráním libovolného testovacího případu ověřte, zda je tok funkcí pokrytý v těchto testovacích případech zahrnut v jiném testovacím případě. Tento proces je třeba dodržovat napříč všemi moduly, aby se významně snížil celkový počet testovacích případů. Tím zajistíte snížení celkového počtu testovacích případů, ale stále existuje 100% pokrytí požadavků.
To znamená, že všechny zbývající testovací případy pokrývají všechny obchodní požadavky, a proto neexistuje žádný kompromis ohledně kvality.
Závěr
Testování softwaru je zásadním krokem v SDLC, protože ověřuje, zda software funguje podle potřeb koncového uživatele nebo ne.
Testování identifikuje co nejvíce závad. Proto, aby bylo možné provádět testování efektivně a efektivně, každý by si měl být vědom a rozumět sedmi principům testování softwaru jasně tak, jak jsou označovány jako pilíře testování.
Většina testerů implementovala a zažila tyto principy během skutečného testování.
jaká je nejlepší aplikace ke stahování videí z YouTube
Obecně pojem princip znamená pravidla nebo zákony, které je třeba dodržovat. Proto každý v odvětví testování softwaru musí dodržovat těchto sedm principů, a pokud někdo některý z těchto principů ignoruje, může to projekt stát obrovské částky.
Šťastné čtení!!
Doporučené čtení
- Nejlepší nástroje pro testování softwaru 2021 (QA Test Automation Tools)
- Úloha pomocníka QA při testování softwaru
- Kurz testování softwaru: Ke kterému institutu pro testování softwaru bych se měl připojit?
- Výběr testování softwaru jako vaší kariéry
- Práce na volné noze se softwarem pro testování technického obsahu Writer
- Co je technika testování na základě vad?
- Některé zajímavé otázky týkající se testování softwaru
- Zpětná vazba a recenze kurzu testování softwaru