differences between unit testing
Podrobné porovnanie testovania jednotky, integrácie a funkčnosti:
Pre každú softvérovú aplikáciu je veľmi dôležité testovanie jednotiek aj testovanie integrácie, pretože každá z nich používa na testovanie softvérovej aplikácie jedinečný proces.
Ktokoľvek alebo dokonca obaja nemôžu v žiadnom okamihu nahradiť funkčné testovanie.
Čo sa dozviete:
- Testovanie jednotiek vs Testovanie integrácie vs Funkčné testovanie
- Čo je testovanie jednotiek?
- Čo je testovanie integrácie?
- Testovanie jednotiek vs Testovanie integrácie
- Funkčné testovanie
- Presný rozdiel
- Záver
- Odporúčané čítanie
Testovanie jednotiek vs Testovanie integrácie vs Funkčné testovanie
Testovanie jednotky znamená testovanie jednotlivých modulov aplikácie izolovane (bez akejkoľvek interakcie so závislosťami), aby sa potvrdilo, že kód robí veci dobre.
Testovanie integrácie znamená skontrolovať, či rôzne moduly fungujú dobre, keď sa skombinujú ako skupina.
Funkčné testovanie znamená testovanie časti funkčnosti v systéme (môže interagovať so závislosťami), aby sa potvrdilo, že kód robí správne veci.
Funkčné testy súvisia s integračnými testami, znamenajú však testy, ktoré kontrolujú funkčnosť celej aplikácie so všetkým bežiacim kódom, čo je takmer test super integrácie.
Testovanie jednotiek zvažuje kontrolu jednej súčasti systému, zatiaľ čo testovanie funkčnosti zvažuje kontrolu fungovania aplikácie proti zamýšľanej funkčnosti opísanej v špecifikácii systémových požiadaviek. Na druhej strane integračné testovanie zvažuje kontrolu integrovaných modulov v systéme.
A čo je najdôležitejšie, aby sa optimalizovala návratnosť investícií (ROI), mala by vaša kódová základňa obsahovať čo najviac testov jednotiek, menej testov integrácie a najmenší počet funkčných testov.
Najlepšie to ilustruje nasledujúca skúšobná pyramída:
Testy jednotiek sa dajú ľahšie napísať a vykonajú rýchlejšie. Čas a úsilie na implementáciu a údržbu testov sa zvyšuje od jednotkového testovania po funkčné testovanie, ako je uvedené vo vyššie uvedenej pyramíde.
Príklad:
Pochopme tieto tri typy testovania so zjednodušeným príkladom.
Napr . Pre funkčný mobilný telefón sú potrebné hlavne časti „batéria“ a „sim karta“.
Príklad testovania jednotky - Batéria sa kontroluje na životnosť, kapacitu a ďalšie parametre. Sim karta je skontrolovaná na aktiváciu.
Príklad testovania integrácie - Batéria a sim karta sú integrované, to znamená, že sú zostavené za účelom spustenia mobilného telefónu.
Príklad funkčného testovania - Kontroluje sa funkčnosť mobilného telefónu, pokiaľ ide o jeho vlastnosti a využitie batérie, ako aj možnosti využitia sim kariet.
c # otázky a odpovede na pohovory
Laicky sme videli príklad.
Zoberme si teraz technický príklad prihlasovacej stránky:
Takmer každá webová aplikácia vyžaduje, aby sa jej používatelia / zákazníci prihlásili. Preto musí mať každá aplikácia stránku „Prihlásenie“, ktorá obsahuje tieto prvky:
- Účet / používateľské meno
- Heslo
- Tlačidlo prihlásenia / prihlásenia
V prípade testovania jednotiek môžu byť testovacími prípadmi tieto prípady:
- Dĺžka poľa - polia používateľského mena a hesla.
- Hodnoty vstupného poľa by mali byť platné.
- Tlačidlo prihlásenia je povolené až po zadaní platných hodnôt (formát a pozdĺžne) do oboch polí.
V prípade testovania integrácie môžu byť testovacími prípadmi nasledujúce:
- Používateľovi sa uvítacia správa zobrazí po zadaní platných hodnôt a stlačení tlačidla na prihlásenie.
- Po platnom zadaní a kliknutí na tlačidlo Prihlásiť by sa mal používateľ dostať na uvítaciu stránku alebo domovskú stránku.
Teraz, po dokončení testovania jednotky a integrácie, sa pozrime na ďalšie testovacie prípady, ktoré sa berú do úvahy pri funkčnom testovaní:
- Je skontrolované očakávané správanie, t. J. Je používateľ schopný prihlásiť sa kliknutím na prihlasovacie tlačidlo po zadaní platných hodnôt používateľského mena a hesla.
- Existuje uvítacia správa, ktorá sa má zobraziť po úspešnom prihlásení?
- Existuje chybové hlásenie, ktoré by sa malo zobraziť pri neplatnom prihlásení?
- Existujú nejaké súbory cookie stránok pre prihlasovacie polia?
- Môže sa deaktivovaný užívateľ prihlásiť?
- Existuje nejaký odkaz „zabudnuté heslo“ pre používateľov, ktorí zabudli svoje heslá?
Existuje oveľa viac takýchto prípadov, ktoré ma pri vykonávaní funkčného testovania napadnú. Ale vývojár nemôže pri vytváraní testovacích prípadov jednotiek a integrácie brať do úvahy všetky prípady.
Existuje teda veľa scenárov, ktoré ešte treba otestovať, a to ani po testovaní jednotiek a integrácie.
Teraz je čas preskúmať jednotku, integráciu a funkčné testovanie jeden po druhom.
Čo je testovanie jednotiek?
Ako naznačuje názov, táto úroveň zahŕňa testovanie „jednotky“.
Jednotka tu môže byť najmenšou časťou aplikácie, ktorá je testovateľná, či už je to najmenšia samostatná funkcia, metóda atď. Jednotky testovania jednotiek sú tvorcami softvéru. Cieľom je zosúladiť požiadavky a očakávané správanie jednotky.
Ďalej uvádzame niekoľko dôležitých bodov o testovaní jednotiek a ich výhodách:
- Testovanie jednotiek sa vykonáva pred testovaním integrácie pomocou vývojárov softvéru techniky testovania bielej skrinky .
- Testovanie jednotky nekontroluje iba pozitívne správanie, tj. Správny výstup v prípade platného vstupu, ale aj chyby, ktoré sa vyskytnú pri neplatnom vstupe.
- Nájsť problémy / chyby v ranom štádiu je veľmi užitočné a znižuje to celkové náklady na projekt. Pretože sa testovanie jednotiek vykonáva pred integráciou kódu, problémy nájdené v tejto fáze je možné vyriešiť veľmi ľahko a ich dopad je tiež veľmi malý.
- Jednotkový test testuje malé časti kódu alebo jednotlivé funkcie, takže problémy / chyby zistené v týchto testovacích prípadoch sú nezávislé a neovplyvňujú ostatné testovacie prípady.
- Ďalšou dôležitou výhodou je, že testovacie prípady jednotky zjednodušujú a uľahčujú testovanie kódu. Je teda jednoduchšie vyriešiť problémy aj v neskoršej fáze, pretože sa má testovať iba najnovšia zmena v kóde.
- Test jednotky šetrí čas a náklady a je opakovane použiteľný a ľahko sa udržuje.
JUnit ( Rámec Java ), PHPUnit (rámec PHP), NUnit (.Net framework) atď. Sú populárne nástroje na testovanie jednotiek, ktoré sa používajú pre rôzne jazyky.
Čo je testovanie integrácie?
Testovanie integrácie je testovanie integrácie rôznych častí systému dohromady. Najskôr sa integrujú dve rôzne časti alebo moduly systému a potom sa vykoná testovanie integrácie.
Cieľom integračného testovania je skontrolovať funkčnosť, spoľahlivosť a výkonnosť systému, keď je integrovaný.
Integračné testovanie sa vykonáva na moduloch, ktoré sa najskôr testujú na jednotkách, a potom integračné testovanie definuje, či kombinácia modulov poskytne požadovaný výstup alebo nie.
Testovanie integrácie môžu vykonávať buď nezávislí testeri, alebo vývojári.
Existujú 3 rôzne typy prístupov integračného testovania. Poďme si krátko predstaviť každú z nich:
softvér na sťahovanie videí z ľubovoľnej webovej stránky
a) Prístup integrácie veľkého tresku
V tomto prístupe sú všetky moduly alebo jednotky integrované a testované ako celok naraz. Spravidla sa to deje, keď je celý systém pripravený na testovanie integrácie v jednom okamihu.
Nezamieňajte si tento prístup integračného testovania s testovaním systému, testuje sa iba integrácia modulov alebo jednotiek a nie celého systému, ako sa to deje pri testovaní systému.
Prístup veľkého tresku je hlavný výhoda je to, že všetko integrované je testované naraz.
Jeden hlavný nevýhoda spočíva v tom, že je ťažké identifikovať zlyhania.
Príklad: Na obrázku nižšie sú jednotka 1 až jednotka 6 integrované a testované pomocou prístupu veľkého tresku.
b) Prístup zhora nadol
Integrácia jednotiek / modulov sa testuje krok za krokom od najvyššej úrovne.
Prvá jednotka sa testuje individuálne zápisom test STUBS . Potom sú nižšie úrovne postupne integrované, až kým nie je zostavená a otestovaná posledná úroveň.
Prístup zhora nadol je veľmi organický spôsob integrácie, ktorý je v súlade s tým, ako sa veci dejú v skutočnom prostredí.
Jediný znepokojenie s týmto prístupom je to, že hlavná funkčnosť je testovaná na konci.
c) Prístup zdola nahor
Jednotky / moduly sa testujú zdola nahor, krok za krokom, až kým nebudú všetky úrovne jednotiek / modulov integrované a testované ako jedna jednotka. Programy stimulátora sa nazývajú VODIČI sa v tomto prístupe používajú. Je ľahšie zistiť problémy alebo chyby na nižších úrovniach.
Hlavný nevýhoda tohto prístupu je, že problémy na vyššej úrovni je možné identifikovať až na konci, keď budú integrované všetky jednotky.
Testovanie jednotiek vs Testovanie integrácie
Po dostatočnej diskusii o testovaní jednotiek a testovaní integrácie si v nasledujúcej tabuľke rýchlo prejdime rozdiely medzi nimi:
Testovanie jednotiek | Testovanie integrácie |
---|---|
Vykonáva sa v počiatočnej fáze testovania a potom je možné vykonať ho kedykoľvek | Musí sa vykonať po testovaní jednotky a pred testovaním systému |
Testuje jednotlivú zložku celého systému, t. J. Testuje jednotku izolovane. | Testuje spoluprácu systémových komponentov, t. J. Testuje spoluprácu viacerých jednotiek. |
Rýchlejšie vykonanie | Môže bežať pomaly |
Žiadna externá závislosť. Akákoľvek externá závislosť sa vysmieva alebo odstraňuje. | Vyžaduje interakciu s externými závislosťami (napr. Databáza, hardvér atď.) |
Jednoduché | Zložité |
Vedené vývojárom | Vedené testerom |
Je to druh testovania v bielej krabici | Je to typ testovania čiernej skrinky |
Lacná údržba | Drahá údržba |
Vychádza zo špecifikácie modulu | Vychádza zo špecifikácie rozhrania |
Testovanie jednotiek má úzky rozsah, pretože iba kontroluje, či každý malý kúsok kódu robí to, na čo je určený. | Má širší rozsah, pretože pokrýva celú aplikáciu |
Výsledkom testovania jednotky je podrobná viditeľnosť kódu | Výsledkom integračného testovania je podrobná viditeľnosť integračnej štruktúry |
Odhaľte problémy iba vo funkčnosti jednotlivých modulov. Nevystavuje chyby integrácie ani celosystémové problémy. | Odhaľte, že chyby vznikajú pri vzájomnej interakcii rôznych modulov s cieľom vytvoriť celkový systém |
Funkčné testovanie
TO technika testovania čiernej skrinky , kde sa funkčnosť aplikácie testuje na generovanie požadovaného výstupu pri poskytnutí určitého vstupu, sa nazýva „Funkčné testovanie“.
V našom procesy testovania softvéru robíme to tak, že napíšeme testovacie prípady podľa požiadaviek a scenárov. Pokiaľ ide o ľubovoľnú funkcionalitu, počet napísaných testovacích prípadov sa môže líšiť od jedného po veľa.
Testovacie prípady sa v zásade skladajú z nasledujúcich častí:
- Zhrnutie testu
- Predpoklady (ak existujú)
- Kroky vstupu testovacieho prípadu
- Testovacie údaje (ak existujú)
- Očakávaný výstup
- Poznámky (ak existujú)
„Na základe požiadaviek“ a „Na základe obchodného scenára“ sú dve formy funkčného testovania, ktoré sa vykonávajú.
Pri testovaní založenom na požiadavkách sa testovacie prípady vytvárajú podľa požiadaviek a podľa toho sa testujú. Pri funkčnom testovaní na základe obchodného scenára sa testovanie uskutočňuje tak, že sa pamätajú na všetky scenáre z obchodného hľadiska.
Avšak major nevýhoda funkčného testovania je pravdepodobná redundancia v testovaní a možnosť chýbať nejaké logické chyby.
Presný rozdiel
Pozrime sa na ich rozdiely.
Tu sú niektoré z hlavných:
Testovanie jednotky | Testovanie integrácie | Funkčné testovanie | |
---|---|---|---|
Definícia a účel | Individuálne testovanie najmenších jednotiek alebo modulov. | Testovanie integrácie dvoch alebo viacerých jednotiek / modulov kombinovaných na vykonávanie úloh. | Testovanie chovania aplikácie podľa požiadavky. |
Zložitosť | Nie je to nijako zložité, pretože obsahuje najmenšie kódy. | O niečo zložitejšie ako jednotkové testy. | Zložitejšie v porovnaní s testami jednotiek a integrácie. |
Skúšobné techniky | Technika testovania bielej skrinky. | Technika testovania bielej a čiernej skrinky. Testovanie šedej skrinky | Technika testovania čiernej skrinky. |
Hlavná pozornosť | Jednotlivé moduly alebo jednotky. | Integrácia modulov alebo jednotiek. | Celá funkčnosť aplikácie. |
Chyba / pokryté problémy | Testy jednotiek nájdu problémy, ktoré sa v moduloch môžu často vyskytovať. | Testy integrácie nachádzajú problémy, ktoré môžu nastať pri integrácii rôznych modulov. | Funkčné testy zistia problémy, ktoré neumožňujú aplikácii vykonávať svoju funkčnosť. Patria sem aj niektoré problémy založené na scenároch. |
Vydať únik | Žiadna šanca na vydanie uniknúť. | Menšia šanca na únik. | Viac šancí na únik problému, pretože zoznam spustených testov je vždy nekonečný. |
Prečítajte si tiež => Čo je to testovanie funkcií
Záver
Všetky tieto tri typy testovania sú vo vzájomnom vzťahu.
čo je wifi bezpečnostný kľúč
Na dosiahnutie úplného pokrytia sa vyžaduje, aby sa vykonali jednotkové testy na cesty / riadky kódu, funkčné a integračné testy, aby sa zabezpečilo, že „jednotky“ spolupracujú súdržne.
Dúfam, že vám tento článok poskytne jasnú predstavu o testovaní jednotiek, integrácie a funkčnosti spolu s ich rozdielmi, aj keď týchto foriem testovania je omnoho viac !!
Odporúčané čítanie
- Najlepšie nástroje na testovanie softvéru 2021 (QA Test Automation Tools)
- Spock pre integráciu a funkčné testovanie so selénom
- Funkčné testovanie vs. Nefunkčné testovanie
- Stiahnutie e-knihy Testing Primer
- Najlepšie 10 nástrojov na testovanie integrácie na zápis testov integrácie
- Kľúčové rozdiely medzi testovaním čiernej skrinky a testovaním bielej skrinky
- Kompletný sprievodca funkčným testovaním s jeho typmi a príkladom
- Funkčné testovanie vs. Testovanie výkonu: Malo by sa to robiť súčasne?