Test case – čo je to testovací prípad a ako ho písať?

Testovanie softvéru, aplikácie zahŕňa overenie jej funkčných aj nefunkčných požiadaviek. Na overenie týchto požiadaviek sa od softvérových testerov vyžaduje, aby vytvorili účinné testovacie prípady (test cases) pomocou rôznych techník návrhu testov bielej a čiernej skrinky (white-box testing/black-box testing).
V tomto texte sa budeme podrobne zaoberať testovacími prípadmi, ich rôznymi atribútmi a typmi.
Obsah
- Čo je to testovací prípad (test case)?
- Atribúty testovacích prípadov
- Ako písať dobré testovacie prípady?
Čo je to testovací prípad?
Testovací prípad je súbor podmienok na vyhodnotenie konkrétnej funkcie softvérového produktu s cieľom určiť jej súlad s obchodnými požiadavkami.
Testovací prípad obsahuje predpoklady, vstupné hodnoty a očakávané výsledky v zdokumentovanej podobe, ktorá pokrýva rôzne testovacie scenáre.
Po vytvorení testovacích prípadov z požiadaviek je úlohou testerov tieto testovacie prípady vykonať. Testeri si prečítajú všetky podrobnosti v testovacom prípade, vykonajú testovacie kroky a potom na základe očakávaného a skutočného výsledku označia testovací prípad ako vyhovujúci alebo nevyhovujúci.
Atribúty testovacieho prípadu
Pozrime sa na rôzne atribúty testovacieho prípadu, ktoré tvoria testovací prípad a robia ho spoľahlivejším, jasnejším a stručnejším, čím sa vyhýbajú akémukoľvek druhu nadbytočnosti alebo ju znižujú.
- TestCaseId – jedinečný identifikátor testovacieho prípadu. Je to povinné pole, ktoré jednoznačne identifikuje testovací prípad, napr. TC_01.
- Test Summary (zhrnutie testu) – Jednoznačné zhrnutie testovacieho prípadu. Toto pole je nepovinné. Obvykle majú testovacie prípady buď pole „Test Summary“ (Zhrnutie testu), alebo pole „Description“ (Popis).
- Description (popis) – Podrobný opis testovacieho prípadu. Toto pole definuje účel testovacieho prípadu, napr. overiť, či sa používateľ môže prihlásiť pomocou platného používateľského mena a platného hesla.
- Prerequisite or pre-condition (prerekvizita alebo pred-podmienka) – Súbor predpokladov, ktoré sa musia dodržať pred vykonaním testovacích krokov. Napríklad pri testovaní funkčnosti aplikácie po prihlásení môžeme mať v poli s predbežnou podmienkou uvedené „Používateľ by mal byť prihlásený do aplikácie“.
- Test steps (testovacie kroky) – Podrobné kroky na vykonanie testovacieho prípadu. Toto je najdôležitejšie pole testovacieho prípadu. Snahou testera by malo byť, aby testovacie kroky boli jasné a jednoznačné, aby ich mohla nejaká ďalšia osoba počas vykonávania testu nasledovať.
- Test data (testovacie údaje) – hodnota testovacích údajov použitých v testovacom prípade. Napríklad pri testovaní funkcie prihlásenia môže byť v poli testovacích údajov uvedená skutočná hodnota používateľského mena a hesla, ktoré sa majú použiť počas vykonávania testu.
- Expected result (očakávaný výsledok) – Očakávaný výsledok, pri ktorom test označíme ako pass (úspešný). Na základe vykonaných krokov testu a použitých testovacích údajov dospejeme k očakávanému výsledku, napr. používateľ by sa mal úspešne prihlásiť a prejsť na domovskú stránku.
- Actual result (skutočný výsledok) – skutočný výsledok po vykonaní krokov testu. Toto pole sa vypĺňa len počas vykonávania testu. Do tohto poľa zapisujeme skutočný výsledok pozorovaný počas vykonávania testovacieho prípadu.
- Test result (výsledok testu) – stav úspešného/neúspešného vykonania testu. Na základe očakávaného výsledku a skutočného výsledku je testovací prípad označený ako úspešný alebo neúspešný.
Okrem hodnoty vyhovel/nevyhovel môžeme mať aj iné hodnoty, ako napríklad Odložený (Deferred,), keď je testovací prípad z nejakého dôvodu označený na neskoršie vykonanie. Blokovaný (Blocked), keď je vykonanie testovacieho prípadu zablokované z nejakého iného dôvodu v aplikácii. - Automation Status – Identifikátor automatizácie – či je aplikácia automatizovaná alebo nie. Ide o nepovinné pole, ktoré sa používa len vtedy, keď máme v projekte automatizáciu.
- Date (dátum) – Dátum vykonania testu. Toto pole pomáha pri sledovaní rôznych iterácií počas viacerých cyklov vykonávania testov.
- Executed by (vykonal) – meno osoby, ktorá vykonáva testovací prípad. Toto pole pomáha, keď na činnosti vykonávania testu pracuje viac členov tímu.
Ako napísať dobré testovacie prípady?
- Technika návrhu testov
Postupujte podľa techniky návrhu testov, ktorá je najvhodnejšia pre vašu organizáciu alebo špecifické potreby projektu, ako napríklad – analýza hraničných hodnôt, rozdelenie tried ekvivalencie, testovanie pomocou rozhodovacích tabuliek atď. Tým sa zabezpečí, že sa pri tvorbe testovacích prípadov implementujú dobre preskúmané normy a postupy.
- Jasné a stručné testy
Zhrnutie testovacieho prípadu, opis, kroky testovania, očakávané výsledky atď. by mali byť napísané jasne a stručne. Mali by byť ľahko zrozumiteľné pre rôzne zainteresované strany v testovaní.
- Jednotné názvoslovie
Aby sme zachovali konzistentnosť v rôznych testovacích prípadoch, mali by sme pri písaní testovacích prípadov dodržiavať jednotnú nomenklatúru a súbor štandardov.
- Základné/atomické testovacie prípady
Vytvorte čo najzákladnejšie testovacie prípady. Testovací prípad by teda mal testovať len jednu jednotku funkčnosti bez toho, aby sa spájali alebo prekrývali viaceré testovateľné časti.
- Nenechávajte priestor pre nejednoznačnosť
Testovacie prípady píšte s jasným súborom inštrukcií. Napríklad – namiesto textu „Otvorte domovskú stránku“ napíšte – „Otvorte domovskú stránku – http://www.{homepageURL}.com v prehliadači a stlačte enter“.
- Žiadne predpoklady
Pri písaní testovacích prípadov nepredpokladajte žiadnu funkčnosť, predpoklad alebo stav aplikácie. Namiesto toho priraďte testovacie prípady k požadovaným dokumentom, ako sú – SRS, dokumenty prípadov použitia atď.
- Vyhnite sa nadbytočnosti
Neopakujte testovacie prípady, vedie to k plytvaniu časom aj zdrojmi. To sa dá dosiahnuť dobre naplánovanými a kategorizovanými testovacími prípadmi.
- Sledovateľné testy
Použite maticu sledovateľnosti, aby ste zabezpečili, že 100 % funkcie aplikácie v rozsahu testovania je pokrytých v testovacích prípadoch.
- Zabezpečte pokrytie rôznych aspektov softvéru
Zabezpečte, aby boli okrem funkčnosti v testovacích prípadoch pokryté aj rôzne aspekty testovaného softvéru, ako je výkonnosť, použiteľnosť, robustnosť atď. vytvorením testovacích prípadov výkonnosti a benchmarkov, testovacích prípadov použiteľnosti, negatívnych testovacích prípadov atď.
- Testovacie údaje
Testovacie údaje používané pri testovaní by mali byť čo najrozmanitejšie a čo najbližšie k používaniu v reálnom čase. Ak máte rôznorodé testovacie údaje, môžete spoľahlivejšie testovacie prípady.