Test plan: ako vytvoriť efektívny testovací plán

V súčasnosti je trendom vývoj softvéru v agilnom prostredí, kde čas venovaný plánovaniu testovania môže znieť ako plytvanie časom a prostriedkami. Tradičné testovacie plány môžu byť príliš formálne, pričom v Agile sa kladie dôraz na flexibilitu, rýchle reakcie na zmeny a jednoduchú komunikáciu.

Na druhej strane testovací plán nám pomáha pamätať si dôležité výzvy projektu, ktoré môžu súvisieť s rizikami, nákladmi, harmonogramom testovania, ľudskými zdrojmi a pod. Preto je test plan (ako ho nazývame v angličtine) dôležitý.

Testovací plán nemusí byť vôbec rigidný. V začiatočných fázach projektu, keď získavame viac informácií, revidujeme naše plány. Ako sa projekt vyvíja a situácia sa mení, ich potom prispôsobujeme.

Aj keď je pracovná štruktúra tímu založená napríklad na rýchlych dvojtýždňových iteráciách, venovanie času na vypracovanie testovacieho plánu môže zabezpečiť dokončenie projektu v stanovenom termíne a adekvátnu alokáciu správneho množstva zdrojov.

Čo je teda Test plán?

Testovací plán predstavuje dôležitý kľúčový dokument v procese softvérového vývoja, ktorý zabezpečuje, že testovanie softvérového produktu prebieha systematicky a efektívne.

Je to detailný plán, ktorý obsahuje komplexné informácie o stratégii a postupoch testovania a slúži ako sprievodca pre testovací tím počas celého vývojového cyklu. Špecifikuje spôsob, ako sa produkt testuje, aby bol overený v súlade so stanovenými požiadavkami a špecifikáciami. Obsahuje stratégiu testovania, stanovuje ciele testovania, harmonogram testovacích aktivít a identifikuje potrebné zdroje na ich vykonanie.

Test plán je kľúčový dokument, ktorý zabezpečuje riadne riadenie a organizáciu testovacích aktivít v rámci projektu a umožňuje efektívnu komunikáciu s celým tímom.

Testovací plán by mal byť dynamický

Testovací plán môže slúžiť ako základná konštrukcia, na základe ktorej bude implementovaný testovací proces v rámci projektu. Ak je správne vypracovaný, môžeme sa  k nemu pravidelne vracať, prípadne ho použiť ako šablónu pre iné projekty. Avšak plán by sme nemali považovať za niečo, čo je vytesané do kameňa. Najmä ak vezmeme do úvahy tempo, ktoré väčšina projektov má: požiadavky sa neustále menia, dodávky a termíny sa v niektorých prípadoch menia aj na báze šprintu.

Kľúčom je napísať plán tak, aby bol odolný a flexibilný voči zmenám. Ako to urobiť? Pokiaľ ide o testovacie ciele, rozsah a ďalšie konkrétne detaily, tieto zložky zvyčajne lepšie prežijú zmenu ako iné zložky test plánu.

Harmonogramy, ľudia a ďalšie detaily, sú citlivé na zmeny. Pri nich je dobré sa riadiť nasledovným pravidlom: odkazovať sa na ne spôsobom, ktorý umožňuje zaznamenávať zmeny bez vytvorenia nového test plánu.

Test plan template – ako získať vzorový testovací plán?

Ak nemáš k dispozícii testovacie plány z predchádzajúcich projektov alebo ti firma neponúka žiadne štandardy, je možné získať vzory z rôznych zdrojov, ktoré sa venujú softvérovému testovaniu. Tu je potrebné dávať si pozor, z akých zdrojov čerpáš. Najmä v online prostredí je možné nájsť nezmerné množstvo príkladov, tie však môžu obsahovať aj veľké nedostatky a nepresnosti.

Pre dokumentáciu k testovaniu, ako sú testovacie plány, testovacie prípady a testovacie postupy, existuje i medzinárodný štandard, a to ISO/IEC/IEEE 29119-3. Tu nájdeš štandardy testovacích plánov pre tradičné aj agilné metódy, ako aj príklady oboch typov testovacích plánov.

Pozri si príklad, čo má obsahovať test plán.

Pre organizovanie svojho test plánu a jednotlivých testovacích prípadov (test plan software) vieš využiť i niektorý z dostupných nástrojov, ako je napríklad JMeter (pozri si aj Test plan v JMeter), prípadne TestRail (napr. Testrail test case example), Zephyr, QMetry.

7 krokov k vypracovaniu testovacieho plánu

Písanie testovacieho plánu sa môže javiť ako pomerne komplikovaná úloha. V tomto období sa totiž ešte len oboznamuješ s produktom, zhromažďuješ informácie.V prvom návrhu testovacieho plánu budú zrejme nejasnosti a medzery. A to je v poriadku. Úlohou testovacieho plánu je v prvom rade priviesť ťa, ako jeho tvorcu, a celý tím k uvažovaniu o zásadných otázkach a budúcich výzvach.

“Plánovanie testovania je sprievodcom testerov pri premýšľaní o budúcich výzvach súvisiacich s rizikami, harmonogramom, ľuďmi, nástrojmi, nákladmi, náročnosťou atď.”

ISTQB
ISTQB

Pri písaní testovacieho plánu je tiež potrebné pamätať na to, že jeho obsah by mal byť ľahko čitateľný a pochopiteľný pre všetky zainteresované strany. Tými nie sú len členovia development tímu, ale aj management, zákazníci a stakeholderi.

Je dôležité, aby dokument obsahoval potrebné technické detaily, ale takým spôsobom, aby bol zrozumiteľný pre všetkých. V opačnom prípade hrozí, že dokument nedokáže poskytnúť potrebné informácie a bude ignorovaný.

1.    Analyzuj produkt

Pred vytvorením testovacieho plánu je potrebné venovať určitý čas analýze produktu. Porozumenie produktu a schopnosť vedieť ho hlbšie analyzovať ti dá výhodu pri vyhodnocovaní jeho funkcionality a možností jeho testovania. Ak dobre poznáš produkt, môžeš začať odhaľovať jeho riziká a potenciálne problémové oblasti.

Prieskum cieľovej skupiny ti zase môže poskytnúť pohľad na to, ako budú koncoví používatelia interagovať s produktom a čo od produktu očakávajú. V neposlednom rade je dôležité preskúmať obchodné požiadavky, kľúčové ciele a ciele produktu.

Toto sú niektoré z otázok, aké si v tomto bode kladieme:

Kto sú koncoví užívatelia produktu?

Aký je hlavný účel alebo cieľ produktu?

Ako by mal produkt fungovať? Aké sú konkrétne hardvérové a softvérové požiadavky na produkt?

2.     Vypracuj testovaciu stratégiu (test plan vs test strategy)

Možno sa na prvý pohľad zdá, že testovací plán a stratégia je to isté, existuje však medzi nimi pár podstatných rozdielov. Ak testovací plán odpovedá na otázku „ako testovať?“, testovaciu stratégiu môžeš považovať za popis „čoho“ a „prečo“ v rámci testovania.  Testovacia stratégia nám pomáha určiť ciele, povahu a jedinečnosť celého projektu. Až potom máme k dispozícii informácie pre vytvorenie podrobnejšieho plánu.

Testovacia stratégia nemá pevne stanovený obsah a štruktúru. Napriek tomu, že existujú i štandardy pre jej vytvorenie, omnoho dôležitejšie je prispôsobiť ju požiadavkám projektu a zainteresovaným stranám. Toto sú body, ktoré by mala obsahovať:

  • Prístup k testovaniu – Waterfall, Agile
  • Úrovne testovania – testovanie na úrovni komponentu, integračné, systémové testovanie
  • Úlohy a zodpovednosť – zodpovednosť za jednotlivé časti testovania, spôsob komunikácie medzi členmi tímu a zainteresovanými stranami.
  • Všeobecné harmonogramy a plány
  • Riziká a ich riadenie – identifikácia hlavných rizík spojených s testovaním a plán na ich riadenie a minimalizovanie.
  • Metriky a meranie úspechu: Definícia metrík na hodnotenie úspechu testovania a sledovanie výkonnosti testovacieho procesu.

3.    Objasni ciele testovania

V tejto časti sa snažíme o definovanie cieľov alebo účelu pre návrh a vykonávanie testov. Tieto ciele budú závisieť od účelu softvéru, ako napríklad overenie, či softvér spĺňa požiadavky používateľov, identifikácia chýb v softvéri alebo posúdenie úplnosti softvéru. Ďalej tieto ciele určia typ testov, ktoré je potrebné vykonať, a spôsob, akým budú analyzované a reportované výsledky testov.

Príklady všeobecných testovacích cieľov zahŕňajú:

  • Validácia a verifikácia produktu – cieľom testovania je overiť, či softvér funguje podľa špecifikácií a požiadaviek, a zároveň spĺňa potreby užívateľov
  • Identifikácia chýb a problémov – cieľom testovania je identifikovať chyby, chybné správanie a iné problémy v softvéri.
  • Zabezpečenie kvality – Testovanie má za cieľ zabezpečiť, že softvér dosiahne určitú úroveň kvality a použiteľnosti. To zahŕňa nielen overenie funkcionality, ale aj aspekty ako výkon, bezpečnosť a použiteľnosť.
  • Komunikácia – zaistenie toho, aby všetci zainteresovaní zúčastnení na procese vývoja softvéru efektívne komunikovali, boli informovaní o cieľoch a procesoch testovania

4.    Urči testovacie kritériá (entry & exit criteria)

Ako vieme, že sme pripravení začať s danou testovacou aktivitou? A ako vieme, že sme aktivitu dokončili? Testovacie kritériá slúžia ako štandard, ktorý bude používaný na vyhodnocovanie výsledkov testovania. Rozlišujeme tu dva typy kritérií:

  1. Vstupné kritérií (Entry criteria): definujú podmienky alebo požiadavky, ktoré musia byť splnené pred začatím testovania softvéru. Môžu zahŕňať dokončenie určitých vývojových aktivít, dostupnosť potrebných zdrojov alebo prípravu testovacích prostredí.
  2. Kritériá ukončenia (Exit criteria): Tieto kritériá určujú podmienky, ktoré musia byť splnené pred ukončením testovania. Výstupné kritériá slúžia na hodnotenie toho, či boli ciele testovania dosiahnuté a či je testovanie kompletné. Môžu zahŕňať dosiahnutie určitého počtu úspešných testov, splnenie kvalitatívnych kritérií ako presnosť alebo výkon softvéru alebo iné podmienky stanovené v testovacom pláne.

5.  Vypracuj harmonogram

V tejto fáze plánovania testovania sa detailne analyzujú jednotlivé úlohy a odhaduje sa, koľko času bude na ich dokončenie potrebné. Pri vytváraní harmonogramu je dôležité brať do úvahy rôzne faktory, ako sú pracovné časy členov tímu, termíny projektu a možné riziká, aby boli stanovené reálne očakávania.Týmto spôsobom môžeš predchádzať masívnym pod- a nadhodnoteniam v harmonograme, a tým aj termínom v rámci projektu.

Detailná analýza úloh a odhad času potrebného na ich dokončenie v tejto fáze plánovania umožňuje vytvoriť realistický harmonogram, ktorý zohľadňuje pracovné časy tímu, termíny projektu a riziká.
Detailná analýza úloh a odhad času potrebného na ich dokončenie v tejto fáze plánovania umožňuje vytvoriť realistický harmonogram, ktorý zohľadňuje pracovné časy tímu, termíny projektu a riziká.

Táto časť tiež umožňuje všetkým zainteresovaným sledovať priebeh testovania, prideliť potrebné zdroje a udržiavať náklady v rámci plánovaného rozpočtu.

6. Definuj testovacie prostredie a nástroje

Pri plánovaní testovacieho prostredia je dôležité identifikovať dostupný hardvér a softvér, ktorý budeš potrebovať na vykonávanie testov. Tu je na mieste i odporúčanie, aby si tím overil dostupnosť testovacích zariadení a nástrojov, ktoré budú potrebné ešte pred začatím testovania.

Prečo je to dôležité?

  • aby noví členovia, ktorí sa pripájajú k tímu porozumeli špecifikám projektu,
  • možnosť opätovného použitia v ďalších projektoch,
  • krízové zdieľanie testovacieho plánu s inými tímami, ktoré by mohli pracovať na podobných projektoch,
  • komunikácia potrieb pri nákupe nástrojov, nastavení prostredia s projektovými manažérmi alebo administrátormi.

7. Definuj očakávané výstupy testovania

Určenie testovacích výstupov zahŕňa definovanie položiek, ktoré by mali byť dodané na konci testovacieho procesu. Typicky sa medzi testovacie výstupy zaraďujú testovacie prípady, správy o chybách, testovacie plány, protokoly z testovania, atď.  Tieto výstupy vznikajú v priebehu testovania a podporujú rôzne aspekty vývoja softvéru, ako je dokumentácia, riadenie projektu a analýza.

Definovaním výstupov máš možnosť poskytnúť zainteresovaným stranám jasný prehľad o tom, aké výsledky je možné očakávať z testovacieho procesu. Tým sa uľahčuje hodnotenie účinnosti testovania a zisťovanie, či boli dosiahnuté stanovené ciele testovania.

Záver

Dúfame, že tento článok ťa presvedčil, že príprava testovacieho plánu stojí za čas a úsilie, pretože robí testovací proces efektívnejším. Vytvorenie dobre štruktúrovaného testovacieho plánu pomáha zosúladiť aktivity a predvídať potrebné kroky a zdroje na úspešné dokončenie projektu.

Ak vieš po nemecky a si IT tester alebo automatizovaný tester, pozri si naše firemné benefity a reaguj na voľné pracovné miesta.

O autorovi

Katarína Kučáková

Software Test Engineer

Moja cesta k testovaniu softvéru sa začala v roku 2019 až po štúdiu ekonómie a pracovných skúsenostiach v iných odvetviach. To mi pomohlo vnímať IT svet v rôznych súvislostiach. Ten totiž ponúka neustále nové výzvy, pre ktoré rada hľadám riešenia. Obľubujem oddych pri čítaní, turistiku alebo lyžovanie. LinkedIn

Daj nám o sebe vedieť