
Business & Integration IT konzultant
Hoci je agilná metodika v súčasnosti pomerne bežná, mnohé organizácie – najmä tie v regulovaných odvetviach, ktoré vyžadujú formálnejšiu dokumentáciu a sledovateľnosť – stále používajú Waterfall model tradičného prístupu alebo hybridné vývojové frameworky. A niektoré tímy sú v procese prechodu na Agile.
Bez ohľadu na to, kde sa na svojej ceste k agilnému testovaniu nachádzaš, tento článok ti pomôže lepšie pochopiť základy agilného testovania a ako ľahko prejsť na agilnú metodiku testovania. A ukážeme ti najlepší spôsob, ako vytvoriť a implementovať stratégiu agilného testovania.
Agilná metodika znamená postup, ktorý podporuje nepretržitý kontinuálny vývoj a testovanie počas celého životného cyklu vývoja softvéru. V agilnom modeli pri testovaní softvéru sú činnosti vývoja aj testovania súbežné, na rozdiel od vodopádového modelu.
V minulom článku sme detailnejšie písali o agilnom prístupe pri vývoji softvéru. Agilný vývoj využíva inkrementálny prístup k vývoju. Podobne aj agilné testovanie zahŕňa inkrementálny prístup k testovaniu. Pri tomto type testovania softvéru sa funkcie testujú priebežne. Agilné metódy testovania softvéru ponúkajú niekoľko príležitostí na zefektívnenie procesu testovania.
Tak ako agilná metodika vývoja rozdeľuje väčšie prvky vývoja funkcií na menšie, lepšie zvládnuteľné časti (ako sú user stories, tasky a technické požiadavky), agilná metodika testovania rozdeľuje väčšie prvky testovania na menšie, špecifickejšie testy s užším zameraním na konkrétnu user story, task, technickú požiadavku atď.
Rozdelením testovania do týchto „malých“ blokov umožňuje agilné testovanie uskutočniť testovanie včasnejším a efektívnejším spôsobom.
Hlavné zásady agilného testovania sú:
Agilná metodika testovania podporuje DevOps a kontinuálne testovanie. A kontinuálne testovanie je dôležité pre zlepšenie kvality produktov.
Ako agilné testovanie a kontinuálne testovanie pomáha zlepšiť kvalitu produktu? Po prvé, vďaka testovaniu na začiatku vývojového procesu sa môžu problémy a chyby odhaliť skôr. Neskončíš tak s nákladnými prekvapeniami na poslednú chvíľu, ktoré môžu oddialiť čas uvedenia na trh. A chyby sa ľahšie odstraňujú, keď sú ešte čerstvé v mysliach vývojárov.
Kontinuálne testovanie môže tiež zlepšiť pokrytie testov a lepšie pokrytie testov vedie k vyššej kvalite a bezpečnosti produktu.
Testovanie a zabezpečenie kvality je v agilnom prostredí zodpovednosťou každého z nás. Preto testeri a vývojári pracujúci v agilnom prostredí musia úzko spolupracovať. Komunikácia a spolupráca sú kľúčové.
Agilný vývoj je často riadený testami. Vývojári používajú agilné metódy testovania, ako je vývoj riadený testami (TDD), aby najprv napísali test. Potom napíšu kód, ktorý sa bude testom overovať. A vývojári a agilní testeri by mali spolupracovať ešte pred stanovením user stories, napríklad požiadaviek.
Po začatí vývoja a testovania je naďalej dôležitá úzka komunikácia a spolupráca. Agilní testeri by mali testovať v čase, keď vývojári píšu kód. Navyše, vývojári budú pravdepodobne vykonávať nejaké testovanie. A agilní testeri budú pravdepodobne vykonávať aj nejaké programovanie.
Životný cyklus agilného testovania je proces, ktorý agilné tímy používajú na plánovanie, vykonávanie a sledovanie svojich testovacích činností.
Životný cyklus agilného testovania pozostáva zo štyroch hlavných fáz:
Medzi osvedčené postupy agilného testovania patria:
V agilnom vývoji je definícia DONE spoločným, štandardizovaným chápaním tímu, že konkrétny používateľský príbeh (user story) bol dokončený. Kritériá akceptácie (acceptance criteria) v používateľskom príbehu sú to, čo pomôže riadiť definíciu done. Ak používateľský príbeh splní akceptačné kritériá, možno ho považovať za hotový. To zahŕňa testovanie alebo overovanie akceptačných kritérií. Test teda overuje, či si používateľský príbeh dokončil.
Je dôležité, aby agilní testeri aj vývojári vedeli, čo bolo otestované a aké chyby je ešte potrebné vyriešiť.
Pri agilnom vývoji sú testy na prvom mieste. Keď vytvoríš používateľský príbeh, musíš definovať akceptačné kritériá. Tým sa riadi testovanie a validácia používateľských príbehov.
Nezáleží na tom, akú agilnú metodiku testovania používaš – Scrum, XP, Kanban alebo dokonca hybridnú agilnú metodiku. Pri agilnom testovaní sa zvyčajne používajú nasledujúce testovacie metódy:
Testami riadený vývoj (TDD) sa začína testami. Tento typ vývoja sa začína diskusiou o tom, čo chceš testovať a potom vytvorením používateľského príbehu. Začneš teda písaním unit testu. Potom napíšeš používateľský príbeh. Nakoniec píšeš kód, kým unit test neprejde.
Vývoj riadený testami sa zvyčajne používa na unit testy a testy komponentov, ktoré sa môžu vykonávať pomocou nástrojov na automatizované testovanie. TDD zabezpečuje, aby funkcie fungovali tak, ako majú.
Vývoj riadený akceptačnými testami (ATDD) je podobný vývoju riadenému testami. Vývoj riadený akceptačnými testami sa však začína vstupnými informáciami od zákazníka o funkčnosti. Tento typ vývoja sa začína diskusiou o tom, ako sa bude produkt používať. Napíšeš teda akceptačný test používateľa (UAT). A potom píšeš kód, kým neprejde testom.
Vývoj riadený akceptačnými testami sa zvyčajne používa na akceptačné testy. Overuje sa ním, či produkt funguje tak, ako by používatelia očakávali.
Vývoj riadený správaním (BDD) často vychádza z vývoja riadeného testami a vývoja riadeného akceptačnými testami. Pri vývoji riadenom správaním musí byť účel vývoja spojený s obchodným výsledkom. Takže budeš mať používateľský príbeh – ale používateľský príbeh musí odpovedať na to, prečo sa z obchodného hľadiska táto funkcia vyvíja. A v BDD sú testy zahrnuté do používateľských príbehov ako scenáre alebo špecifikácie.
Vývoj riadený správaním sa používa aj na akceptačné testy. Overuje sa ním, či sú funkcie produktu potrebné na dosiahnutie požadovaného obchodného výsledku.
Prieskumné testovanie je štýl testovania, ktorý umožňuje testerom riadiť sa skôr svojou intuíciou než vopred určenou cestou. Zvyčajne je manuálne. Testeri zaznamenávajú, čo robia a ukladajú to ako test. Potom v priebehu testovania zisťujú, čo presne testujú.
Prieskumné testovanie sa zvyčajne používa na hľadanie skrytých rizík v rámci produktu. Išlo by o chyby, ktoré sa prehliadli pri funkčných testoch vykonávaných v rámci vývoja riadeného testovaním.
Testovanie založené na reláciách má niektoré podobnosti s prieskumným testovaním. Testovanie založené na reláciách má však o niečo väčšiu štruktúru. Namiesto toho, aby testeri za pochodu zisťovali, čo budú testovať, začínajú s určitým poslaním.
Testovanie založené na reláciách sa používa aj na hľadanie skrytých chýb v rámci projektu.
Testovanie pri tradičnom vývoji zvyčajne zahŕňa plán testovania. Dobre zdokumentovaný plán testovania však nie je bežný pri agilnom vývoji. Namiesto toho musia byť agilní testeri flexibilní a pripravení reagovať na zmeny v požiadavkách.
Preto je potrebná skôr agilná testovacia stratégia než agilný testovací plán.
Existuje mnoho spôsobov, ako načrtnúť stratégiu agilného testovania. Stratégiu môžeš jednoducho načrtnúť v dokumente. Môžeš vytvoriť testovaciu maticu. Alebo môžeš použiť Kanban board.
Bez ohľadu na to, ktorú agilnú metodiku testovania používaš, stratégia by mala obsahovať:
Vytvorenie agilnej stratégie testovania môže byť zložité. Je to však jednoduché, ak používaš správne testovacie nástroje.
Zatiaľ čo tradičné postupy testovania sú založené na filozofii najprv fixných, konkrétnych požiadaviek a riešenia chýb a až potom vydania produktu, agilný prístup k testovaniu sa riadi filozofiou test-first, kde sa chyby odstraňujú v každom šprinte pred vydaním produktu.
Ďalej, v agilných projektoch testovania nie sú požiadavky fixné, teda zmeny sa môžu zdravo zavádzať, čo znamená, že testovací prípad je otvorený skúmaniu ďalších úvah a úprav.
Tradičná metóda sa riadi prediktívnym modelom s postupným prístupom. Zahŕňa prístup zhora nadol, pri ktorom sa testovanie vykonáva postupne.
Na druhej strane agilná metóda sleduje viac iteračný a adaptívny model s fázami, ako je plánovanie projektu, riadenie rizík, návrh a vývoj a testovanie.
Primárnou funkciou tradičného prístupu k testovaniu je certifikácia kvality produktov. V porovnaní s tým agilné princípy testovania zabezpečujú kvalitu a rýchle dodanie produktu s minimálnymi funkciami.
Pri tradičnom testovaní sa až do skončenia testovania neberie spätná väzba od používateľov. Agilný prístup sleduje krátke cykly priebežnej spätnej väzby na konci každého šprintu.
Pokiaľ ide o prístup k testovaniu, automatizácia sa takmer nepoužíva a je skôr rutinnou praxou vývojárov. Na druhej strane agilné testovanie podporuje proces automatizácie agresívne v testovacom scenári.
V tradičnom prístupe sa požadované úpravy vykonávajú až v ďalšej verzii. Naproti tomu agilný proces sleduje neustále zlepšovanie v testovaní softvéru, kde sa požadované zmeny vykonávajú v ďalšom šprinte testovacieho cyklu. Moderná metóda sa na testovanie softvéru pozerá ako na proces neustáleho zlepšovania.
Tradičné prístupy k testovaniu sa vo veľkej miere spoliehajú na dokumentáciu so všetkými prípadmi použitia a prípravou testovacích prípadov, ktoré s tým súvisia.
Zatiaľ čo pri agilnom testovaní nie je dokumentácia nevyhnutnou súčasťou QA. QA testeri si v tomto prípade osvojujú fakty, ktoré potrebujú, v akejkoľvek forme, bez veľkého množstva dokumentácie, a pokračujú v procese.
Zatiaľ čo tradičná metodika sa vyhýba rizikám, agilná metodika sa riadi včasným a účinným prístupom k prevencii rizík.
Ak vieš po nemecky a si IT tester alebo automatizovaný tester, pozri si naše benefity pre zamestnancov a reaguj na najnovšie ponuky práce.