Inkrementálne testovanie v testovaní softvéru je metodika, ktorá umožňuje tímom rozdeliť jednotlivé moduly, testovať ich samostatne a postupne ich integrovať. Pomáha včas nájsť chyby, znižuje zložitosť a zvyšuje pokrytie testov.
V tomto článku sa ponoríme do problematiky inkrementálneho testovania, vysvetlíme, čo je to inkrementálne testovanie, a preskúmame rôzne typy, procesy, prístupy, nástroje a ďalšie aspekty, ktoré sú spojené s touto užitočnou metodikou.
Čo je to prírastkové testovanie?
Testovanie je jednou z najdôležitejších fáz životného cyklu vývoja softvéru (SDLC). Rovnako ako SDLC je aj testovanie rozdelené do rôznych logických krokov. Inkrementálne testovanie je jednou z týchto fáz a zvyčajne sa uskutočňuje počas
integračné testovanie
a hneď po
testovaní jednotiek
.
Inkrementálne testovanie je pragmatický prístup k testovaniu softvéru, ktorý rozdeľuje rozsiahle alebo zložité programy na zvládnuteľné kúsky. Namiesto integrácie a testovania celého softvérového systému naraz sa pri inkrementálnom testovaní skúmajú moduly a realizuje sa postupný proces overovania.
Softvérové moduly sú zvyčajne samostatné jednotky kódu, ktoré vykonávajú špecifické úlohy alebo funkcie. Rozsah týchto modulov závisí od rôznych faktorov, ako sú napríklad postupy kódovania, metodiky vývoja alebo dokonca programovací jazyk, ktorý používate.
Moduly sa testujú nezávisle počas testovania jednotiek. Počas integračného testovania sa potom každý modul integruje po častiach alebo postupne. Tento proces zaručuje, že jednotlivé moduly spolu dobre fungujú. Na úplné overenie každého modulu však musia testeri simulovať komponenty, ktoré ešte neboli implementované, alebo externé systémy. Na to potrebujú pomoc odbočiek a ovládačov.
Čo sú stuby a ovládače v inkrementálnom testovaní?
Zásuvné moduly a ovládače sú kritické nástroje na testovanie softvéru. Tieto dočasné časti kódu sa používajú počas integračného testovania, pretože tímom ponúkajú možnosť napodobniť správanie a rozhrania rôznych modulov alebo komponentov.
1. Výstupy:
Zásuvné moduly napodobňujú moduly, ktoré ešte neboli vyvinuté, a preto nie sú k dispozícii na testovanie. Umožňujú testovanému modulu (MUT) volať neúplné moduly. Výsledkom je, že MUT možno testovať samostatne, aj keď nie sú k dispozícii súvisiace moduly.
2. Ovládače:
Na druhej strane ovládače simulujú správanie modulov, ktoré volajú MUT. V rámci testovacieho prostredia môžu tieto ovládače odosielať testovacie údaje MUT. To opäť uľahčuje izolované testovanie modulov bez potreby externých závislostí.
Používanie zásuvných modulov alebo ovládačov skracuje čas vývoja, zlepšuje kvalitu kódu a zvyšuje produktivitu tímu. Rozhodnutie, ktorú z nich použiť, však závisí od toho, ktorá metodika testovania je najvhodnejšia. Túto problematiku rozvedieme v nasledujúcej časti, ktorá sa zaoberá rôznymi typmi inkrementálneho integračného testovania.
Rôzne typy prírastkov
integračné testovanie
Typy inkrementálneho testovania možno všeobecne rozdeliť do troch kategórií. Preskúmame každú z nich.
1. Postupná integrácia zhora nadol
Postupná integrácia zhora nadol sa začína testovaním modulov najvyššieho rádu v rámci systému. Odtiaľ postupne integruje a testuje moduly nižšieho rádu.Existujú dva hlavné scenáre, v ktorých sa používa prírastková integrácia zhora nadol. Sú to:
- Ak je systém veľmi veľký alebo veľmi zložitý
- Keď tím vývojárov pracuje na mnohých moduloch súčasne.
Kroky pre postupné integrácie zhora nadol
- Identifikácia kritických modulov
- Vytvorenie modulov nižších rádov
- Vyvinúť ovládače na interakciu s modulmi vyššieho rádu, ktoré im posielajú údaje a interpretujú výstupy modulu.
- Jednotkové testovanie kritických modulov pomocou ovládačov a zásuvných modulov
- Integrácia modulov nižšieho rádu a postupné nahrádzanie stubov skutočnými implementáciami
- Prepracovanie ovládačov tak, aby vyhovovali novým modulom
- Opakujte, kým nie sú integrované a otestované všetky moduly nižšieho rádu.
2. Postupná integrácia zdola nahor
Inkrementálne integrácie zdola nahor idú opačným smerom. Pri tomto prístupe sa testujú moduly nižšieho rádu (alebo najmenej kritické moduly) systému a postupne sa pridávajú moduly vyššieho rádu. Tento prístup je vhodný v rôznych scenároch, ako napríklad:
- Pri práci s menšími systémami
- Keď je systém modulárny
- Ak máte určité obavy o presnosť alebo úplnosť výstupov.
Kroky pre postupné integrácie zdola nahor
- Identifikácia modulov nižšieho rádu
- Unit testovanie modulov nižšieho rádu na overenie ich jednotlivých funkcií
- Vývoj ovládačov, ktoré budú pôsobiť ako sprostredkovatelia s modulmi nižšieho rádu
- Vytváranie zásuvných modulov na simuláciu správania modulov vyššieho rádu
- Integrácia ďalších modulov od nižšieho k vyššiemu rádu a postupné nahrádzanie základných modulov skutočnými implementáciami
- Prepracovanie ovládačov tak, aby vyhovovali novým modulom
- Opakujte, kým nie sú integrované a otestované všetky moduly vyššieho rádu.
3. Funkčná inkrementálna integrácia
Funkčné inkrementálne integračné testovanie je ďalším bežným typom inkrementálneho testovania pri testovaní softvéru. Zatiaľ čo predchádzajúce dva druhy sa zameriavali na moduly vyššieho a nižšieho rádu, funkčné inkrementálne testovanie je založené na funkčnosti konkrétneho modulu.
Funkčná inkrementálna integrácia sa používa v
agilných/DevOps metodikách
a je vynikajúcou voľbou pre aplikácie s komplexnými závislosťami medzi modulmi alebo komponentmi.
Kroky pre funkčnú prírastkovú integráciu
- Identifikácia jednotlivých modulov a komponentov s presne definovanými rozhraniami
- Overenie funkčnosti každého modulu prostredníctvom testovania jednotiek
- Integrovať najnutnejšie základné moduly systému a zabezpečiť ich funkčnosť
- Postupné pridávanie jednotlivých modulov, testovanie funkčnosti v každom kroku
- Prepracovanie kódu pri pridávaní jednotlivých modulov
- Po pridaní všetkých modulov otestujte funkčnosť a výkon
Výhody a nevýhody prístupu prírastkového testovania
Teraz by ste už mali mať predstavu, prečo je prírastkové testovanie populárnym prístupom. Ako všetky metodiky testovania softvéru má však svoje výhody a nevýhody. Preskúmame niektoré z týchto výhod a nevýhod.
Výhody prístupu prírastkového testovania
1. Flexibilita
Ako všetci vývojári a testeri softvéru veľmi dobre vedia, požiadavky sa môžu počas SDLC meniť a vyvíjať, niekedy aj dosť dramaticky. Inkrementálne testovanie je dostatočne dynamické na to, aby umožnilo tímom prispôsobiť sa počas procesu testovania a zapracovať nové plány a smery.
2. Včasné zisťovanie chýb
Najlepší čas na odhalenie chyby alebo nedostatku je čo najskôr. Keď vývojári overujú jednotlivé moduly, identifikácia a oprava problémov je oveľa jednoduchšia. Navyše pomáha znižovať pravdepodobnosť výskytu veľkých problémov na konci vývoja.
3. Jednoduchosť
Testovanie softvéru môže byť veľmi zložitý proces. Jeden z najpresvedčivejších aspektov inkrementálneho testovania spočíva v tom, ako rozdeľuje testovacie mesto na realizovateľné časti. Namiesto toho, aby sa testeri zaoberali ohromujúcou zložitosťou, môžu sa sústrediť na konkrétne moduly a dokonca im určiť priority. Táto výhoda je darom z nebies pre veľké a zložité aplikácie.
4. Nižšie riziko regresie
Regresia je časovo náročná a zložitá záležitosť v rámci vývoja softvéru. Inkrementálne testovanie môže zmierniť frekvenciu a riziká spôsobené regresiou, pretože umožňuje tímom testovať moduly jednotlivo a riešiť problémy v priebehu ich výskytu. Pri použití s pevnými
regresné testovanie
, môžu tímy ušetriť veľa času a trápenia.
5. Možnosti spätnej väzby
Často prehliadanou výhodou inkrementálneho testovania je, že tímom umožňuje voľnosť pri zostavovaní prototypov a MVP. Zainteresované strany a investori môžu posúdiť základnú funkčnosť procesu a poskytnúť neoceniteľnú spätnú väzbu. Táto situácia môže ušetriť veľa času a peňazí a viesť k robustnejším produktom.
Nevýhody prístupu prírastkového testovania
1. Otázky integrácie
Samostatné testovanie modulov je žiaduce, pretože rozdeľuje komplexnú aplikáciu na zvládnuteľné časti. Integrácia týchto modulov však môže viesť k novým a neočakávaným chybám. Prístup k postupnému testovaniu sa preto musí starostlivo a premyslene naplánovať.
2. Zložitosť testovacieho balíka
S viacerými testovacími prípadmi pre každý modul a ich vzájomnou interakciou sa môžu testovacie súbory stať zložitými na sledovanie a správu. V prípade rozsiahlych a komplikovaných aplikácií je preto nevyhnutnosťou dôkladná dokumentácia alebo nástroje na správu testov.
3. Viac práce
Monolitické testovanie je síce zložitejšie, ale vyžaduje menej testovania. Testovanie veľkého množstva modulov samostatne si vyžaduje viac práce pri inkrementálnom testovaní. Výhody inkrementálneho testovania, ako napríklad včasné odhalenie chýb, však znamenajú, že dodatočné úsilie je investíciou, ktorá šetrí čas. Samozrejme,
automatizácia testovania softvéru
môže pomôcť znížiť toto úsilie.
4. Zvýšené požiadavky na riadenie
Inkrementálne testovanie si vyžaduje spoluprácu viacerých tímov. Napríklad vývojové, testovacie a DevOps tímy budú musieť pracovať v súčinnosti. Táto situácia vytvára ďalšie nároky na riadenie a vyžaduje si dobrú komunikáciu medzi týmito tímami, aby sa zabezpečilo, že sa sústredia a smerujú k rovnakým cieľom.
Príklad inkrementálneho testovania
Prístup inkrementálneho testovania možno najjednoduchšie pochopíte, ak si uvediete príklad. Tu je jednoduchá situácia, ktorá vám pomôže predstaviť si tento proces.
1. Príklad inkrementálneho testovania aplikácie mobilného bankovníctva
Scenár: Tím vytvára mobilnú bankovú aplikáciu. Aplikácia sa skladá z niekoľkých rôznych modulov, ktoré umožňujú:
- 2FA a biometrické overenie používateľa
- Spracovanie transakcií
- Prístrojová doska na správu finančných údajov
Cieľ: Tím chce otestovať integráciu jednotlivých modulov a zistiť, či spolu dobre fungujú. Výsledkom sú tri testovacie prípady.
Testovací prípad 1
V prvom testovacom prípade chce tím zabezpečiť, aby po zadaní biometrických údajov alebo hesla získal používateľ prístup k spracovaniu transakcií aj k informačnému panelu správy finančných údajov.
Aplikácia prejde testom, ak používateľ môže zadať svoje údaje a získať prístup k transakciám.
Testovací prípad 2
Ďalší testovací prípad je určený na zistenie, ako aplikácia spracúva neautorizované transakcie.
Aplikácia vyhovie testu, ak sa pokus o vykonanie neoprávnenej transakcie zablokuje a aplikácia zobrazí chybové hlásenie.
Testovací prípad 3
Posledný integračný test zahŕňa overenie, či aplikácia môže vykonávať transakcie súčasne.
Aplikácia prejde testom, ak používateľ môže začať transakciu a zároveň pristupovať k svojim finančným informáciám bez akýchkoľvek nezrovnalostí alebo problémov.
Je prístup inkrementálneho testovania
rovnaké ako inkrementálne testovanie?
Nie. Testovanie inkrementality sa vzťahuje na štatistickú marketingovú metódu, ktorá je azda najznámejšia ako atribučné modelovanie. Stručne povedané, pomáha marketingovým tímom pochopiť vplyv reklamných kampaní, marketingových kanálov alebo konkrétnych stratégií.
Hoci záujem o tento druh modelovania v posledných rokoch vzrástol vďaka „smrti“ súborov cookie a údajov tretích strán, s inkrementálnym testovaním ho spája len spoločné slovo.
3 najlepšie nástroje na prírastkové testovanie
#1. ZAPTEST
Okrem poskytovania prvotriednych
RPA
ZAPTEST ponúka celý rad nástrojov na automatizáciu testovania softvéru, ktoré sú ideálne na inkrementálne testovanie. Niektoré z funkcií zahŕňajú:
Správa testovacích údajov
: Zníženie množstva času a úsilia spojeného s inkrementálnym testovaním tým, že umožní tímom opakovane používať testovacie údaje.- Nahrávanie a prehrávanie scenára: Tento nástroj bez kódu umožňuje tímom nahrávať a vykonávať skripty a ušetriť veľa času počas inkrementálneho testovania
- Opakovane použiteľné testovacie moduly: ZAPTEST je vysoko modulárny a umožňuje tímom vytvárať a opakovane používať testovacie moduly a výrazne skrátiť čas testovania.
Celkovo ZAPTEST ponúka výkonný a rozmanitý balík na automatizáciu testovania, ktorý je vhodný na akýkoľvek typ testovania vrátane inkrementálneho testovania.
#2. Selén
Selenium je open-source platforma na automatizáciu testovania, ktorá je vytvorená na uľahčenie testovania mobilných aplikácií. Nástroje podporujú niekoľko mobilných platforiem (Android, iOS, Windows) a na simuláciu modulov používajú zásuvné moduly a ovládače.
#3. Testy
Testsigma je cloudová platforma na automatizáciu testovania. Možno ho použiť na testovanie webových a mobilných aplikácií a je vhodný na inkrementálne testovanie vďaka bezkódovému vytváraniu testov a integrácii s potrubiami CI/CD.
Záverečné myšlienky
Inkrementálne testovanie v testovaní softvéru je dôležitou súčasťou integračného testovania. Umožňuje tímom rozdeliť moduly na ľahko testovateľné časti pred ich pomalou integráciou. Výhody spočívajú v tom, že každý modul sa dá overiť na chyby a potom na to, ako sa integruje so svojimi pripojenými časťami.
Popri našich najlepších produktoch vo svojej triede
RPA
ZAPTEST ponúka automatizáciu testovania softvéru bez použitia kódu, ktorá je multiplatformná a multiaplikatívna. Okrem toho je náš testovací balík vybavený funkciami, ako je integrácia CI/CD, robustné reportovanie a analytika a prvotriedna podpora a zákaznícky servis.