Co je testování komponent? Techniky, příklady testovacích případů

⚡ Chytré shrnutí

Testování komponent kontroluje každou jednotlivou část aplikace samostatně, aniž by ji integrovalo se zbytkem, takže vady jsou nalezeny a opraveny uvnitř jednoho modulu před zahájením sestavování.

  • 🧩 Rozsah: Jedna součástka najednou, izolovaná od součástí kolem ní.
  • 👥 Majitel: Testeři jej spouštějí poté, co vývojáři dokončí jednotkové testování.
  • 🔬 CTIS: Testování komponent v malém měřítku komponentu kompletně izoluje.
  • 🔗 CTIL: Testování komponent ve velkém měřítku udržuje závislosti, ať už reálné nebo simulované.
  • 🧱 Doubles: Ovladač volá komponentu; ta volá stub.
  • (Tj. Exit: V protokolu nezůstává otevřená žádná kritická, vysoká ani střední závada.

Techniky testování komponent a příklady testovacích případů

Co je testování komponent?

Testování součástí je typ testování softwaru, při kterém se testování provádí na každé jednotlivé komponentě samostatně, bez její integrace s ostatními komponentami. Z hlediska architektury se také nazývá testování modulůa některé reference to nazývají testování programu.

Jakýkoli software jako celek se skládá z několika komponent a testování na úrovni komponent se zabývá testováním těchto komponent jednotlivě. Je to jedna z nejčastějších testování černé skříňky typy prováděné týmem QA.

Na úvod je vhodné zmínit pojmenování. Glosář ISTQB se zabývá testováním komponent a testování jednotky jako synonyma pro stejnou úroveň testování. Mnoho vývojových týmů a tento článek tyto dva v praxi oddělují: vývojáři spouštějí jednotkové testy na svém vlastním kódu a testeři poté spouštějí komponentní testy na dodané sestavě. Srovnávací tabulka na konci tohoto článku tento praktický rozdíl ukazuje.

Jak ukazuje níže uvedený diagram, testování komponent má svou vlastní testovací strategii a testovací plán, ve kterém je každá část softwaru nebo aplikace posuzována samostatně. Pro každou komponentu testovací scénář je definován, který je poté rozdělen na testovací případy na vysoké úrovni a nakonec na podrobné testovací případy na nízké úrovni testovací případy s předpoklady.

Hierarchie testování komponent od testovací strategie až po testovací případy nízké úrovně

Způsob, jakým se termín „testování komponent“ používá, se liší v závislosti na oboru a organizaci. Nejčastější důvody pro tento rozdíl ve vnímání jsou tři níže uvedené.

  1. Zvolený typ modelu životního cyklu vývoje
  2. Složitost testovaného softwaru nebo aplikace
  3. Zda se testování provádí s izolací od ostatních komponent v aplikaci, nebo bez ní

Životní cyklus softwarového testování produkuje mnoho testovacích artefaktů, tedy dokumentů vytvořených a používaných během testovacích aktivit. Mezi nimi je testovací politika a testovací strategie, které definují, jaké typy testování se používají a jak hluboko testování v daném projektu zachází.

Kdo provádí testování komponent

Testování komponent provádějí testeři. Jednotkové testování provádějí vývojáři, kteří testují jednotlivé funkce nebo procedury. Po dokončení jednotkového testování následuje testování komponent a testeři ho přebírají.

Kdy provést testování komponent

Testování komponent se provádí krátce poté, co vývojáři provedou jednotkové testování a sestavení je vydáno testovacímu týmu. Toto sestavení se označuje jako UT sestavení nebo sestavení pro jednotkové testování. V této fázi se testuje hlavní funkcionalita každé komponenty.

Vstupní kritéria pro testování komponent

  • Minimální sada komponent, které mají být zahrnuty v sestavení UT, byla vyvinuta a jednotkově otestována.

Výstupní kritéria pro testování komponent

  • Funkce každé komponenty funguje tak, jak je specifikováno.
  • V souboru nezůstává otevřená žádná závada kritické, vysoké nebo střední závažnosti ani priority. protokol o vadách.

Techniky zkoušení součástí

Na základě hloubky testovací úrovně se testování komponent dělí na dva způsoby.

  1. CTIS — Testování komponent v malém měřítku
  2. CTIL — Testování komponent ve velkém

CTIS — Testování komponent v malém měřítku

Testování komponent může být prováděno s izolací nebo bez izolace od ostatních komponent v testované aplikaci. Pokud se provádí s ostatními izolovanými komponentami, označuje se to jako testování komponent v malém.

Příklad 1: Na webu s pěti různými webovými stránkami je testování každé webové stránky samostatně a izolovaně od ostatních komponent testováním komponent v malém.

Příklad 2: Níže uvedená domovská stránka guru99.com obsahuje mnoho komponent, jako například Domů, Testování, SAP, Web, Musí se učit!, Velká data, Živé projekty a blog.

Guru99 navigačních nabídek domovské stránky je považováno za samostatné testovatelné komponenty

Jakýkoli software se skládá z mnoha komponent stejným způsobem a každá komponenta má své vlastní podkomponenty. Testování každého modulu uvedeného v příkladu 2 samostatně, bez zohlednění jeho integrace s ostatními komponentami, je testování komponent v malém.

Otevřením rozbalovací nabídky Testování se zobrazí dílčí komponenty Testování: Ruční testování, SOAPUI, QTP, JUnit, Selenium, Správa testů a Mobilní testováníNa níže uvedeném snímku jsou tyto dílčí komponenty zvýrazněny červeně.

Rozbalovací nabídka Testování s červeně zvýrazněnými dílčími komponentami

CTIL — Testování komponent ve velkém

Testování komponent prováděné bez izolace od ostatních komponent v testované aplikaci se označuje jako testování komponent jako celku.

Příklad rozdíl objasní. Předpokládejme, že aplikace se skládá ze tří komponent: Komponenta A, Komponenta B a Komponenta C.

Vývojář vytvořil komponentu B a chce ji otestovat. Aby bylo možné komponentu B kompletně otestovat, některé její funkce závisí na komponentě A a některé na komponentě C, jak ukazuje níže uvedený diagram.

Komponenta B testována s ovladačem nahrazujícím komponentu A a stubem nahrazujícím komponentu C

Tok funkcí je A → B → C, což znamená, že komponenta B závisí na A i C. V tomto toku je stub volanou funkcí a ovladač volající funkcí.

Komponenta A a komponenta C dosud nebyly vyvinuty. Pro úplné otestování komponenty B jsou komponenty A a C podle potřeby nahrazeny ovladačem a pahýlem, takže dva chybějící kusy fungují jako fiktivní objekty, dokud neexistují ty skutečné.

  • Pahýl: Testovaná komponenta volá stub. Komponenta C není připravena, takže ji nahrazuje stub a vrací odpovědi očekávané komponentou B.
  • Řidič: Ovladač volá testovanou komponentu. Komponenta A není připravena, takže ji zastoupí ovladač a vyvolá komponentu B s požadovanými vstupy.

Příklad testovacích případů pro testování součástí

Dvě níže uvedené webové stránky jsou z funkčního hlediska vzájemně propojeny, což z nich činí užitečnou dvojici komponent k testování.

Webová stránka 1 je přihlašovací stránka demo bankovnictví.

Komponenta přihlašovací stránky s poli pro uživatelské jméno a heslo

Když uživatel zadá platné uživatelské jméno a heslo a klikne na tlačítko Odeslat, stránka se přesměruje na domovskou stránku webových stránek demo banky, která je zobrazena dále.

Komponenta domovské stránky Správce s navigačními odkazy a obrázky

Zde je přihlašovací stránka jednou komponentou a domovská stránka druhou. Testování funkčnosti každé stránky zvlášť je testování komponent.

Scénáře testování komponent na webové stránce 1:

  • Zadejte neplatné uživatelské ID a ověřte, zda se koncovému uživateli zobrazí uživatelsky přívětivé varování.
  • Zadejte neplatné uživatelské jméno a heslo, klikněte na tlačítko Obnovit a ověřte, zda jsou pole s uživatelským jménem a heslem vyprázdněna.
  • Zadejte platné uživatelské jméno a heslo a klikněte na tlačítko Přihlásit se.

Scénáře testování komponent na webové stránce 2:

  • Ověřte, zda se na domovské stránce zobrazuje uvítací zpráva pro stránku správce.
  • Ověřte, zda jsou všechny odkazy na levé straně webové stránky klikatelné.
  • Ověřte, zda se ID správce zobrazuje uprostřed domovské stránky.
  • Ověřte přítomnost tří různých obrázků na domovské stránce podle diagramu.

Testování jednotek versus testování komponent

Níže uvedená tabulka shrnuje, jak se tyto dvě úrovně liší v každodenní praxi.

Testování jednotek Testování komponent
Testování jednotlivých programů a modulů za účelem prokázání, že program fungují dle specifikace. Testování každého objektu nebo části softwaru samostatně, s izolací nebo bez izolace od ostatních objektů.
Ověřeno podle projektové dokumentace. Ověřeno podle testovacích požadavků a případů užití.
Hotovo vývojáři. Provedeno testery.
Hotovo jako první. Provádí se po dokončení jednotkového testování na straně vývojářů.
Závady se obvykle opravují na místě a nejsou formálně zaznamenávány. Závady jsou zaznamenávány a tracprojde procesem správy defektů.

Nejčastější dotazy

Snižování rizik, ověřování funkčního a nefunkčního chování komponenty, budování důvěry v její kvalitu, vyhledávání vad a prevence jejich únikuping do vyšších úrovní testů.

Modely čtou komponentní contraca navrhnout neplatné vstupy, hraniční hodnoty a chybové cesty, které ruční průchod obvykle mine. Tester stále před spuštěním potvrzuje každý očekávaný výsledek.

Ano. Stub vracející předpřipravené odpovědi a ovladač zadávající fixní vstupy jsou schematický kód, který asistent rychle napíše. Rozhodnutí o tom, které odpovědi jsou realistické, zůstává lidskou záležitostí.

Testování komponent zkoumá jednu komponentu samostatně. Komponenta integrační testování zkoumá rozhraní a interakce mezi komponentami a spustí se po testování komponent.

Coderámce na úrovni, jako například JUnit, TestNG, NUnit a pytest, plus spouštěče komponent uživatelského rozhraní, jako například Cypress Testování komponent, Storybook a Jest. Všechny se hodí do automatizace potrubí.

Vytváření a údržba dvojitých komponent. Stub, který se odchyluje od skutečné komponenty, skrývá vady až do integrace, takže každá simulovaná odpověď vyžaduje přepracování, jakmile je skutečná závislost odeslána.

Pořadí se obrací. Případy se píší a automatizují ještě předtím, než komponenta existuje, a poté se přidává kód, dokud neprojdou testováním. Komponenta dorazí s již připravenou sadou testů.

Obojí, v závislosti na tom, kdo to spouští. Testeři pracují na principu černé skříňky proti specifikaci komponenty, zatímco vývojáři s přístupem k kódu se hlásí. bílý rámeček pokrytí uvnitř stejné komponenty.

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