differences between unit testing
Podrobné srovnání testování jednotky, integrace a funkce:
Pro každou softwarovou aplikaci je velmi důležité testování jednotky i integrace, protože každá z nich používá k testování softwarové aplikace jedinečný proces.
Kdokoli nebo dokonce oba nemohou v žádném okamžiku nahradit funkční testování.
jak vytvořit falešný e-mail
Co se naučíte:
- Testování jednotek vs Testování integrace vs Funkční testování
- Co je testování jednotek?
- Co je testování integrace?
- Testování jednotek vs Testování integrace
- Funkční testování
- Přesný rozdíl
- Závěr
- Doporučené čtení
Testování jednotek vs Testování integrace vs Funkční testování
Testování jednotky znamená testování jednotlivých modulů aplikace v izolaci (bez jakékoli interakce se závislostmi), aby se potvrdilo, že kód dělá věci správně.
Testování integrace znamená zkontrolovat, zda různé moduly fungují dobře, když jsou kombinovány společně jako skupina.
Funkční testování znamená testování části funkčnosti v systému (může interagovat se závislostmi), aby se potvrdilo, že kód dělá správné věci.
Funkční testy souvisejí s integračními testy, ale znamenají testy, které kontrolují funkčnost celé aplikace se všemi spuštěnými kódy, což je téměř super integrační test.
Testování jednotek zvažuje kontrolu jedné komponenty systému, zatímco testování funkčnosti zvažuje kontrolu fungování aplikace proti zamýšlené funkčnosti popsané ve specifikaci systémových požadavků. Na druhou stranu testování integrace zvažuje kontrolu integrovaných modulů v systému.
A co je nejdůležitější, pro optimalizaci návratnosti investic (ROI) by vaše kódová základna měla mít co nejvíce testů jednotek, méně testů integrace a nejmenší počet funkčních testů.
To nejlépe ilustruje následující testovací pyramida:
Testy jednotek se snadněji zapisují a provádějí rychleji. Čas a úsilí na implementaci a údržbu testů se zvyšuje z testování jednotky na funkční testování, jak je uvedeno ve výše uvedené pyramidě.
Příklad:
Pojďme pochopit tyto tři typy testování pomocí zjednodušeného příkladu.
Např . U funkčního mobilního telefonu jsou vyžadovány hlavní součásti „baterie“ a „sim karta“.
Příklad testování jednotky - Baterie je kontrolována z hlediska životnosti, kapacity a dalších parametrů. SIM karta je zkontrolována na aktivaci.
Příklad testování integrace - Baterie a sim karta jsou integrovány, tj. Smontovány za účelem spuštění mobilního telefonu.
Příklad funkčního testování - Funkčnost mobilního telefonu je kontrolována z hlediska jeho vlastností a využití baterie, jakož i možností sim karty.
Laicky jsme viděli příklad.
Nyní si vezmeme technický příklad přihlašovací stránky:
Téměř každá webová aplikace vyžaduje, aby se uživatelé / zákazníci přihlašovali. K tomu musí mít každá aplikace stránku „Přihlášení“, která obsahuje tyto prvky:
- Účet / Uživatelské jméno
- Heslo
- Tlačítko přihlášení / přihlášení
U testování jednotky mohou být testovacími případy následující:
- Délka pole - pole pro uživatelské jméno a heslo.
- Hodnoty vstupního pole by měly být platné.
- Tlačítko přihlášení je povoleno až po zadání platných hodnot (formát a podélně) do obou polí.
Pro testování integrace mohou být testovacími případy následující:
- Uživatel uvidí uvítací zprávu po zadání platných hodnot a stisknutí tlačítka pro přihlášení.
- Uživatel by měl být po platném zadání a kliknutí na tlačítko Přihlásit navigován na uvítací stránku nebo domovskou stránku.
Nyní, po dokončení testování jednotky a integrace, se podívejme na další testovací případy, které jsou považovány za funkční testování:
- Očekává se očekávané chování, tj. Uživatel se může přihlásit kliknutím na přihlašovací tlačítko po zadání platných hodnot uživatelského jména a hesla.
- Existuje uvítací zpráva, která se má objevit po úspěšném přihlášení?
- Existuje chybová zpráva, která by se měla objevit při neplatném přihlášení?
- Jsou pro přihlašovací pole uloženy nějaké soubory cookie?
- Může se deaktivovaný uživatel přihlásit?
- Existuje nějaký odkaz „zapomenuté heslo“ pro uživatele, kteří zapomněli svá hesla?
Existuje mnohem více takových případů, které na mysli funkčního testera při provádění funkčního testování. Ale vývojář nemůže při vytváření testovacích případů Unit a Integration převzít všechny případy.
Existuje tedy spousta scénářů, které je ještě třeba otestovat, a to i po testování jednotky a integrace.
Nyní je čas prozkoumat Unit, Integration a Functional testování jeden po druhém.
Co je testování jednotek?
Jak název napovídá, tato úroveň zahrnuje testování „jednotky“.
Zde jednotka může být nejmenší částí aplikace, která je testovatelná, ať už je to nejmenší jednotlivá funkce, metoda atd. Vývojáři softwaru jsou ti, kdo píší případy testování jednotky. Cílem je sladit požadavky a očekávané chování jednotky.
Níže uvádíme několik důležitých bodů o testování jednotek a jeho výhodách:
- Testování jednotek se provádí před integračním testováním pomocí vývojářů softwaru techniky testování bílé skříňky .
- Testování jednotky nekontroluje pouze pozitivní chování, tj. Správný výstup v případě platného vstupu, ale také chyby, ke kterým dochází při neplatném vstupu.
- Hledání problémů / chyb v rané fázi je velmi užitečné a snižuje celkové náklady projektu. Jelikož se testování jednotky provádí před integrací kódu, problémy nalezené v této fázi lze snadno vyřešit a jejich dopad je také velmi malý.
- Test jednotky testuje malé kousky kódu nebo jednotlivé funkce, takže problémy / chyby nalezené v těchto testovacích případech jsou nezávislé a nemají vliv na ostatní testovací případy.
- Další důležitou výhodou je, že případy testů jednotek zjednodušují a usnadňují testování kódu. Takže bude snazší vyřešit problémy i v pozdější fázi, protože se má testovat pouze nejnovější změna v kódu.
- Test jednotky šetří čas a náklady a je opakovaně použitelný a snadno se udržuje.
JUnit ( Rámec Java ), PHPUnit (PHP framework), NUnit (.Net framework) atd. Jsou populární nástroje pro testování jednotek, které se používají pro různé jazyky.
Co je testování integrace?
Testování integrace je testování integrace různých částí systému dohromady. Nejprve jsou integrovány dvě různé části nebo moduly systému a poté je provedeno testování integrace.
Cílem testování integrace je zkontrolovat funkčnost, spolehlivost a výkon systému, když je integrován.
Testování integrace se provádí na modulech, které jsou nejprve testovány jednotkami, a poté testování integrace definuje, zda kombinace modulů poskytuje požadovaný výstup nebo ne.
Testování integrace mohou provádět nezávislí testeři nebo také vývojáři.
Existují 3 různé typy přístupů k testování integrace. Pojďme si krátce promluvit o každém z nich:
a) Přístup integrace velkého třesku
V tomto přístupu jsou všechny moduly nebo jednotky integrovány a testovány jako celek najednou. To se obvykle provádí, když je celý systém připraven na testování integrace v jednom okamžiku.
Nezaměňujte prosím tento přístup testování integrace s testováním systému, testuje se pouze integrace modulů nebo jednotek a ne celého systému, jak se to děje při testování systému.
Přístup velkého třesku je hlavní výhoda je to, že vše integrované je testováno najednou.
Jeden hlavní nevýhoda je, že je obtížné určit selhání.
Příklad: Na obrázku níže jsou jednotka 1 až jednotka 6 integrována a testována pomocí přístupu velkého třesku.
b) Přístup shora dolů
Integrace jednotek / modulů je testována krok za krokem od nejvyšší úrovně dolů.
První jednotka je testována jednotlivě zápisem test STUBS . Poté jsou nižší úrovně postupně integrovány, dokud není sestavena a otestována poslední úroveň.
Přístup shora dolů je velmi organickým způsobem integrace, protože je v souladu s tím, jak se věci dějí ve skutečném prostředí.
Jediný znepokojení s tímto přístupem je to, že hlavní funkce je na konci testována.
c) Přístup zdola nahoru
Jednotky / moduly jsou testovány zdola nahoru, krok za krokem, dokud nejsou všechny úrovně jednotek / modulů integrovány a testovány jako jedna jednotka. Volaly stimulační programy ŘIDIČI se v tomto přístupu používají. Je snazší detekovat problémy nebo chyby na nižších úrovních.
Hlavní nevýhoda tohoto přístupu je, že problémy vyšší úrovně lze identifikovat až na konci, až budou všechny jednotky integrovány.
Testování jednotek vs Testování integrace
Po dostatečné diskusi o testování jednotek a testování integrace pojďme rychle projít rozdíly mezi těmito dvěma v následující tabulce:
Testování jednotek | Testování integrace |
---|---|
Provedeno v počáteční fázi testování a poté lze provést kdykoli | Musí být provedeno po testování jednotky a před testováním systému |
Testuje jednotlivé komponenty celého systému, tj. Testuje jednotku izolovaně. | Testuje součásti systému spolupracující, tj. Testuje spolupráci více jednotek. |
Rychlejší provedení | Může běžet pomalu |
Žádná externí závislost. Jakákoli externí závislost je zesměšňována nebo odstraněna. | Vyžaduje interakci s externími závislostmi (např. Databáze, hardware atd.) |
Jednoduchý | Komplex |
Provedeno vývojářem | Provedeno testerem |
Jedná se o typ testování bílé skříňky | Jedná se o typ testování černé skříňky |
Levná údržba | Drahá údržba |
Vychází ze specifikace modulu | Vychází ze specifikace rozhraní |
Testování jednotek má úzký rozsah, protože pouze kontroluje, zda každá malá část kódu dělá to, co má dělat. | Má širší rozsah, protože pokrývá celou aplikaci |
Výsledkem testování jednotky je podrobná viditelnost kódu | Výsledkem testování integrace je podrobná viditelnost integrační struktury |
Odhalte problémy pouze ve funkcích jednotlivých modulů. Nevystavuje chyby integrace ani problémy v celém systému. | Odhalte chyby, které vznikají při vzájemné interakci různých modulů za účelem vytvoření celkového systému |
Funkční testování
NA technika testování černé skříňky , kde se funkčnost aplikace testuje, aby se generoval požadovaný výstup při poskytnutí určitého vstupu, se nazývá „Funkční testování“.
V našem procesy testování softwaru , děláme to psaním testovacích případů podle požadavků a scénářů. U jakékoli funkce se počet zapsaných testovacích případů může lišit od jednoho k mnoha.
Testovací případy se v zásadě skládají z následujících částí:
- Souhrn testu
- Předpoklady (pokud existují)
- Kroky zadání testovacího případu
- Testovací data (pokud existují)
- Očekávaný výstup
- Poznámky (pokud existují)
„Na základě požadavků“ a „Na základě obchodního scénáře“ jsou dvě formy funkčního testování, které se provádějí.
Při testování založeném na požadavcích se testovací případy vytvářejí podle požadavku a podle toho se testují. V obchodním scénáři založeném na funkčním testování se testování provádí tak, že se pamatují na všechny scénáře z obchodní perspektivy.
Nicméně, hlavní nevýhoda funkčního testování je pravděpodobná redundance v testování a možnost chybějících některých logických chyb.
Přesný rozdíl
Podívejme se na jejich rozdíly.
Zde jsou některé z hlavních:
Testování jednotky | Testování integrace | Funkční testování | |
---|---|---|---|
Definice a účel | Testování nejmenších jednotek nebo modulů jednotlivě. | Testování integrace dvou nebo více jednotek / modulů kombinovaných pro provádění úkolů. | Testování chování aplikace podle požadavku. |
Složitost | Není vůbec složitý, protože obsahuje nejmenší kódy. | Mírně složitější než jednotkové testy. | Složitější ve srovnání s testy jednotek a integrace. |
Zkušební techniky | Technika testování bílé krabice. | Technika testování bílé a černé skříňky. Testování šedé skříňky | Technika testování černé skříňky. |
Hlavní pozornost | Jednotlivé moduly nebo jednotky. | Integrace modulů nebo jednotek. | Celá funkčnost aplikace. |
Chyba / pokryté problémy | Testy jednotek naleznou problémy, které se v modulech mohou často vyskytovat. | Testy integrace naleznou problémy, které mohou nastat při integraci různých modulů. | Funkční testy naleznou problémy, které aplikaci neumožňují vykonávat její funkčnost. To zahrnuje i některé problémy založené na scénářích. |
Vydat únik | Žádná šance na vydání úniku. | Menší šance na únik problému. | Další šance na únik problému, protože seznam spuštěných testů je vždy nekonečný. |
Přečtěte si také => Co je testování funkcí
top 10 stahovačů hudby pro Android
Závěr
Všechny tyto tři typy testování jsou ve vzájemném vztahu.
K dosažení plného pokrytí je nutné mít jednotkové testy cest / řádků kódu, funkční a integrační testy, aby bylo zajištěno, že „jednotky“ spolupracují soudržně.
Doufám, že vám tento článek poskytne jasnou představu o testování jednotek, integrace a funkčnosti spolu s jejich rozdíly, i když v těchto formách testování je toho mnohem víc !!
Doporučené čtení
- Nejlepší nástroje pro testování softwaru 2021 (QA Test Automation Tools)
- Spock pro integraci a funkční testování se selenem
- Funkční testování vs. nefunkční testování
- Testování stahování e-knih Primer
- Top 10 integračních testovacích nástrojů pro zápis integračních testů
- Klíčové rozdíly mezi testováním černé skříňky a testováním bílé skříňky
- Kompletní průvodce funkčním testováním s jeho typy a příklady
- Funkční testování vs. Testování výkonu: Mělo by se provádět současně?