Jak psát efektivní testovací případy
Software Teams

Jak psát efektivní testovací případy

Ve finančních službách se tomu říká „proces tvůrce-kontrolor“. V oblasti řízení rizik je to známé jako „princip čtyř očí“. V oblasti řízení jaderných zbraní USA se tomu říká „koncept dvou osob“.

V podstatě všechny dělají totéž: Tyto procesy zahrnují další úroveň hodnocení, potvrzení, autorizace nebo schválení, aby byla zajištěna přesnost, kvalita nebo relevance výstupu.

Ve vývoji softwaru se tomu říká testování nebo zajištění kvality. Zjednodušeně řečeno, testování softwaru hodnotí kód, aby se zajistilo, že funguje podle očekávání. Aby tuto činnost prováděly efektivně, používají týmy zajišťující kvalitu výkonný nástroj zvaný testovací případ.

V tomto blogovém příspěvku se podíváme na to, co to je, proč je to potřeba, kdy to použít a hlavně jak psát testovací případy.

Co je testovací případ?

Testovací případ je soubor akcí, podmínek a vstupních dat používaných k hodnocení kvality softwarové aplikace.

Řekněme, že jste vytvořili formulář pro zadání jména a e-mailové adresy uživatele pro odběr newsletteru. Jeho testovací případ bude specifikovat následující:

Akce [jak uživatelské, tak interní]: Vše, co se od uživatele nebo softwaru očekává, aby dokončil pracovní postup v softwaru, který se vytváří.

  • Uživatel zadá jméno
  • Uživatel zadá e-mailovou adresu
  • Uživatel klikne na „Odeslat“.
  • Potvrzovací e-mail odeslán uživateli
  • Data uložená v odpovídající databázi
  • Data přidána do příslušného seznamu e-mailů pro zasílání newsletterů

Podmínky: Požadavky, které má uživatel nebo systém splňovat při provádění svých akcí.

  • Uložit, pokud je validace pole jména přijata, jinak zobrazit chybovou zprávu.
  • Uložte, pokud je validace pole e-mailové adresy přijata, jinak zobrazte chybovou zprávu.
  • Přidat do seznamu odběratelů newsletteru pouze v případě, že uživatel potvrdil svou e-mailovou adresu.
  • Pokud uživatel již existuje, zobrazte odpovídající chybovou zprávu.

Vstupní data: Ukázky přijatelných vstupů pro danou funkci. Týmy zajišťující kvalitu [QA] obvykle vytvářejí testovací data, která mohou testovat pozitivní i negativní výsledky.

Například pokud je podmínkou pro ověření pole jména „může obsahovat pouze písmena abecedy a mezery“, testovací data by byla

  • Jane Doe, která splňuje kritéria
  • Ad@m Sand!er, který nesplňuje kritéria

Úloha testovacích případů v softwarovém inženýrství

Metoda testovacích případů je komplexní, systematický a opakovatelný přístup k testování softwaru. Jejím primárním účelem je zajistit kvalitu aplikace, ale zároveň přidává několik úrovní robustnosti a spolehlivosti samotnému procesu vývoje softwaru.

Identifikace vad: Testovací případy pomáhají identifikovat vady v softwaru. Rozhodují o tom, zda je aplikace bezpečná pro převedení do produkčního prostředí.

Ověřování požadavků: Testovací případy zajišťují, že to, co jste vytvořili, odpovídá vašim původním záměrům. To je obzvláště důležité, pokud jste servisní organizace, která vyvíjí software pro externí zainteresované strany, které mají specifické požadavky.

Snižování rizika: Testovací případy hodnotí bezpečnost, výkon a finanční rizika dané funkce. Analytik kvality také zahrnuje podmínky týkající se dodržování předpisů, průmyslových standardů atd., aby bylo zajištěno, že jsou pokryty všechny základní aspekty.

Vyvážení celkového pohledu: Nová funkce může fungovat dobře samostatně. Ale když je integrována do zbytku softwaru, může přestat fungovat nebo způsobit poruchu jiné funkce. Testovací případy zajistí, že se na to přijde dříve, než to ovlivní uživatelský zážitek v produkčním prostředí.

Může jeden testovací případ splnit všechny výše uvedené požadavky? Ne tak docela. V závislosti na funkcích, softwaru, systémech, potřebách a organizačních cílech existuje několik typů testovacích případů, které týmy QA píší.

Typy testovacích případů

Pro každý typ testování softwaru existuje testovací případ. Některé z nejčastěji používaných jsou následující.

Testovací případ funkčnosti: Tento základní a fundamentální testovací případ hodnotí, zda software funguje podle očekávání. Každý QA by měl napsat alespoň tento test.

Jednotkové testovací případy: Jednotkové testování hodnotí část funkce nebo jednotlivou jednotku. Například QA může napsat jednotkové testy, aby ověřil, že pole e-mailové adresy splňuje různé podmínky.

Testovací případy zabezpečení: Hodnotí, zda daná funkce splňuje bezpečnostní standardy pro uvedení do produkce. Obvykle se jedná o testy autorizace, autentizace, souladu se standardy OWASP atd.

Testovací případy výkonu: Ověřují, zda nová funkce splňuje požadavky na rychlost, spolehlivost, škálovatelnost a využití zdrojů.

Regresní testovací případy: Regresní testování zajišťuje, že nová funkce, kterou jste vyvinuli, neovlivní žádné ze stávajících funkcí v produktu.

Kromě toho lze spouštět také specifické testovací případy. Například organizace zaměřené na design mohou zahrnovat testovací případy uživatelského rozhraní [UI]. Produkty, které vykonávají část většího pracovního postupu, mohou psát mnoho integračních testovacích případů. Jiné mohou vytvářet specifické testovací případy použitelnosti týkající se heuristiky, přístupnosti, inkluze atd.

Jako vlastník produktu rozhodujete o tom, co má váš software umět, a vytváříte testovací případy, které se na to vztahují. Musíte pokrýt všechny scénáře, které jsou pro vás důležité.

Znamená to, že testovací případ je prostě testovací scénář? Vůbec ne.

Testovací případ vs. testovací scénář

Testovací případ je komplexní záznam toho, jak by se měla chovat vaše nová funkce [a jak ji testovat]. Testovací scénář je obecný popis toho, jaké akce mohou nastat [a proto být testovány].

V návaznosti na předchozí příklad by testovací scénář zněl „otestovat přihlášení k odběru newsletteru“. Testovací případy by však byly následující:

  • Pole pro název testu s přijatelným názvem
  • Testujte pole jména se speciálními znaky
  • Pole pro jméno testu pro jména celebrit
  • Testujte pole jména pomocí čísel
  • Pole pro název testu pro zástupné nebo fiktivní jména, jako je John Doe
Testovací případTestovací scénář
DefiniceKomplexní dokumentace o tom, jak testovat funkciStručný nástin toho, jak by měla funkce fungovat z pohledu koncového uživatele.
ÚroveňNízké úrovně akcí s podrobnou odpovědnostíAkce na vysoké úrovni s odpovědností za celkový obraz
ZaměřeníJak testovat [podrobný záznam zamýšlené funkčnosti]Co testovat [stručný záznam zamýšlených výsledků]
ZdrojOdvozeno z testovacích scénářůOdvozeno z uživatelských příběhů a obchodních případů použití
PřístupZvažte vyšší rozlišení možností a důkladně testujte.Napodobujte scénáře z reálného života a podle toho testujte.

Nyní, když známe rozdíly, vraťme se zpět k testovacímu případu a podívejme se na něj blíže.

Součásti testovacího případu

Stručně řečeno, testovací případ je podrobná dokumentace všeho, co je třeba otestovat, aby bylo zajištěno, že software funguje podle očekávání. Díky tomu je komplexní, detailní a mnohostranný a zahrnuje více komponent.

Mezi klíčové komponenty testovacího případu patří:

ID testovacího případu: Každý testovací případ má číslo. To může znít jednoduše, ale pro důkladné otestování aplikace budete provádět různé testy, které se zdají podobné. ID testovacího případu pomáhá je od sebe odlišit.

Popis: Popis toho, co testujete. V výše uvedeném příkladu by to mohlo být „Přidání skutečných, zainteresovaných potenciálních zákazníků do naší databáze newsletterů“.

Předpoklady: Všechny předpoklady, které je třeba splnit pro použití této funkce. Například jsme výše diskutovali o ověření každého pole. Kromě toho mohou existovat i další podmínky:

  • Uživatel by neměl být již přihlášen k odběru newsletteru.
  • Uživatel by se neměl odhlásit z odběru newsletteru.

Kroky: Kroky, které by měl uživatel nebo systém provést, aby dokončil hodnocení a označil jej za úspěšné.

  • Uživatel zadá platné jméno
  • Uživatel zadá platnou e-mailovou adresu.
  • Uživatel zaškrtne políčko ochrany soukromí
  • Uživatel klikne na tlačítko Odeslat.

Očekávané výsledky: Seznam toho, co musí systém udělat jako další.

  • Pokud je uživatelské jméno neplatné, zobrazte chybovou zprávu.
  • Pokud je e-mailová adresa neplatná, zobrazte chybovou zprávu.
  • Pokud jsou uživatelské jméno a e-mailová adresa platné, uložte je do příslušné databáze.
  • Po uložení do databáze odešlete uživateli potvrzovací e-mail.

Skutečné výsledky: Jedná se o pozorování testerů po spuštění testovacího případu. Tyto výsledky budou zaslány zpět vývojáři v případě, že něco nefunguje správně.

  • Otestováno pole jména s Katy P3rry a bylo přijato jako platný vstup [i když obsahuje číslo].

S tímto jste připraveni psát efektivní testovací případy. Zde je návod, jak na to.

Jak psát efektivní testovací případy s příklady

Psaní dobrého testovacího případu vyžaduje jak obchodní logiku, tak technologické znalosti. Musíte tomu rozumět z pohledu uživatele v reálném světě i z technologického hlediska v digitálním světě. Níže najdete robustní rámec, který vám pomůže na této cestě.

1. Identifikujte testovací scénáře

Než začnete psát testovací případy, seznamte se s reálnými scénáři, ve kterých bude daná funkce používána. Přečtěte si uživatelský příběh, prostudujte dokument s požadavky nebo dokonce prodiskutujte specifikace s vývojářem.

Například testovací scénáře v předchozím příkladu by byly: Uživatel se úspěšně přihlásil k odběru newsletteru.

V tomto kroku je důležité se zeptat, zda dokument s požadavky popisuje uživatele nějakým konkrétním způsobem.

Pokud například vytváříte funkci newsletteru pouze pro platící zákazníky, můžete se setkat se scénářem, kdy se neplatící uživatelé pokusí přihlásit k odběru.

Proto si pečlivě prostudujte požadavky, specifikace a uživatelské příběhy.

2. Definujte cíle testovacích případů

V této fázi definujte, čeho chcete dosáhnout provedením testů. Pokud například pouze testujete, zda funkce pracuje podle plánu, napíšete funkční testovací případy.

Pokud však potřebujete, aby byl také bezpečný a výkonný, napíšete také odpovídající testovací případy. To vám pomůže zefektivnit agilní testovací proces a prezentovat výsledky vývojovému týmu.

3. Pište jasné a stručné kroky

Tato fáze není jen pouhým nastíněním pracovního postupu. Je to vše, co musí QA udělat, aby zajistila, že funkce bude fungovat podle očekávání.

Buďte důkladní: Jděte do co největších detailů. Uveďte, co se musí stát na základě akce uživatele/systému. Můžete například napsat:

  • Zadejte jméno do pole pro jméno.
  • Pokud název obsahuje číslo, zobrazte chybovou zprávu „Zadejte název obsahující pouze písmena a mezery“.
  • Pokud název obsahuje speciální znaky, zobrazte chybovou zprávu „Zadejte název obsahující pouze písmena a mezery“.
  • Pokud je název zástupným symbolem, zobrazte chybovou zprávu „Zadejte platný název“.
  • Pokud je jméno ověřeno, umožněte uživateli odeslat

Zajistěte jejich opakované použití: Většina funkcí se překrývá s jinými funkcemi z minulosti. Například pole pro přihlášení k odběru novinek mohou být podobná polím pro vytváření nových uživatelských účtů. Opakovaně je používejte, jak je to možné, abyste zachovali konzistenci a efektivitu.

Ve skutečnosti můžete také vytvořit šablony dokumentů s požadavky na produkt, které lze opakovaně použít a ze kterých je snazší extrahovat testovací scénáře a testovací případy.

Nakreslete proces: U složitých funkcí může být obtížné dokumentovat všechny testovací případy lineárním způsobem. V takových případech zkuste použít vývojový diagram.

ClickUp Whiteboards
Jak připravit kávu jako vývojový diagram pomocí tabule ClickUp Whiteboards

ClickUp Whiteboards nabízí vysoce přizpůsobitelné prázdné plátno pro vizualizaci vašeho pracovního postupu. Necítíte se pod tlakem, abyste to dělali sami. Vytvořte si své vývojové diagramy a sdílejte je se všemi zúčastněnými stranami – obchodními analytiky, vývojáři, manažery testování atd. – a získejte jejich souhlas, než začnete!

Nastavte kontext: Zatímco testovací scénář nastiňuje obchodní kontext, vy musíte jasně nastínit testovací nastavení. Uveďte verzi softwaru, operační systém/prohlížeč, hardware, formáty data/času, časové pásmo atd. Připojte také všechny dokumenty a zdroje, které mohou být užitečné při provádění testů.

4. Specifikujte očekávané výsledky

Toto je odpověď na otázku „Co se stane, když...“? Co se tedy stane, když je pole jména ověřeno? Co se stane, když pole jména není ověřeno?

  • Co když je uživatel již předplatitelem? Měli byste jeho předplatné odmítnout nebo znovu předplatit?
  • Co když uživatel není platícím zákazníkem – měli byste ho požádat, aby zaplatil hned?
  • Co když se uživatel předtím odhlásil? Měli byste to před opětovným přihlášením zkontrolovat?

Tímto způsobem nastíníte očekávané výsledky pro každou možnost. Čím složitější je vaše funkce, tím delší bude váš seznam.

5. Zahrňte předběžné a následné podmínky

V dnešní době žádná funkce není izolovaná. Ve vývoji softwaru je každá funkce propojena s něčím jiným, což znamená, že testování má řadu předběžných a následných podmínek.

Příklady předpokladů

  • Musíte být platícím zákazníkem.
  • Je nutné uvést platné jméno a e-mailovou adresu.
  • Je nutné přijmout smluvní podmínky.
  • Je nutné používat nejnovější verzi prohlížeče Chrome.
  • Je nutné se přihlásit z mobilního zařízení.

Příklady postkondic

  • Je třeba přidat do databáze
  • Je nutné přijmout předplatné v potvrzovacím e-mailu.
  • Je třeba přidat do seznamu newsletterů v CRM.

Pokud jste produktový manažer a chcete se naučit testovat, zde je několik nástrojů pro produktové manažery, které nevyžadují znalost programování.

To byly základy, pojďme se nyní podívat na některé podrobnosti.

Osvědčené postupy pro psaní testovacích případů

Přiznejme si to: psaní testovacích případů je umění. Dobrý testovací případ odhalí chyby a vady, které nebyly ani vizualizovány v požadavcích. Co když například pole pro jméno obsahuje dvě mezery? Nebo co když příjmení uživatele obsahuje pomlčku?

Aby vaše testovací případy směřovaly k dodání vysoce kvalitního softwaru, zvažte následující osvědčené postupy.

🧠 Myslete jako uživatel

Než začnete psát testovací případy, zamyslete se nad nimi z pohledu uživatele. Buďte kritičtí a detailní. V příkladu, který jsme dosud probírali, byste se mohli zeptat:

  • Co znamená „jméno“? Křestní jméno? Příjmení? Nebo obojí?
  • Čí je to jméno? Neměl by název pole místo toho znít „vaše jméno“?
  • Měl by být k dispozici textový zástupný symbol, který by čtenáře naváděl?
  • Pokud uživatel zadá neplatné jméno, měla by chybová zpráva identifikovat, co je špatně?

Vžijte se do role uživatele. Prozkoumejte různé možnosti a dokonce i okrajové případy. Možná nevytvoříte testovací případy pro všechny, ale jejich prozkoumání pomůže posílit danou funkci.

🎯 Soustřeďte se vždy na jednu věc

Nepište funkční testovací případ, který je zároveň testovacím případem použitelnosti a testovacím případem databáze. Dělejte jednu věc najednou. Tímto způsobem, když je výsledek testu úspěšný/neúspěšný, budete přesně vědět, co fungovalo a co ne.

Zahrnutí příliš mnoha proměnných do jednoho testu zkomplikuje řešení problémů v případě, že test selže.

👫 Nedělejte to sami

Testovací případy definují kvalitu softwaru. I když se jedná o kontrolní prvek v procesu tvorby a kontroly, je třeba jej podrobit další kontrole dvěma osobami. Jakmile tedy napíšete testovací případy, nechte je zkontrolovat kolegy.

Požádejte kolegu, aby si pročetl, co jste napsali. Vyzvěte ho, aby hledal chyby a poskytl kritickou zpětnou vazbu. Pomůže také spolupráce s obchodními analytiky a vývojáři, abyste lépe porozuměli jejich záměrům.

♻️ Vytvářejte opakovaně použitelné šablony

Mezi všemi osvědčenými postupy při psaní testovacích případů je nejcennější vytváření šablon. Ať už testujete podobné nebo zcela odlišné funkce, šablona vám poskytne strukturu pro vaše myšlenky. Zahrňte klíčové komponenty, automatický číslovací mechanismus nebo rámec pro prezentaci všech výsledků testování.

Šablona testovacího případu ClickUp

Šablona testovacího případu ClickUp je jednoduchým, ale účinným příkladem toho, jak můžete výrazně zlepšit efektivitu a přehlednost pomocí opakovatelného rámce. Tato šablona pro začátečníky je přizpůsobitelná, což vašim týmům umožní dosáhnout více za kratší dobu. A co víc? Tuto šablonu můžete také použít k identifikaci kandidátů pro automatizaci a zdvojnásobení vašich snah v oblasti zajištění kvality.

🛠️ Používejte správné nástroje

V týmu vývojářů softwaru může být psaní komplexních testovacích případů pro složité funkce časově náročným úkolem. Nemluvě o jejich dokumentaci a organizaci pro snadný přístup.

K tomu si vyberte správný nástroj.

Nástroje a zdroje pro správu testovacích případů

Dobrá správa testovacích případů vám umožňuje vytvářet, organizovat, provádět, zaznamenávat a sledovat to, co testujete. Pomáhá testovacím týmům zajistit důkladnost bez ztráty efektivity. Pomáhá vývojovým týmům jasně vidět chyby.

Výhody jsou nekonečné, ale výzvy také. Pravidlem pro počet testovacích případů na jednu funkci je „tolik, kolik je potřeba“. V závislosti na funkci to mohou být dva, tj. jeden pozitivní a jeden negativní. Může to být tři, pokud je testovací případ podmíněný. Nebo jich může být více.

K tomu potřebujete robustní nástroj. Mezi nejlepší moderní nástroje pro testování kvality patří:

TestRail

TestRail je platforma pro správu testů, která slouží k dokumentaci a sledování testovacích plánů. Obsahuje funkce pro sledovatelnost, pokrytí, automatizaci testů a analytiku. Je nativně integrována s řadou nástrojů pro vývoj softwaru a nabízí rozsáhlé API.

BrowserStack

BrowserStack je nástroj pro testování aplikací a prohlížečů. Nabízí testování aplikací pro iOS a Android i webových stránek v různých prohlížečích. Obsahuje specifické moduly pro vizuální testování, testování přístupnosti, sledování testů, automatizaci s nízkým počtem kódů a další.

Jira

Jira, jeden z nejpopulárnějších nástrojů pro agilní řízení projektů, slouží také jako software pro sledování chyb. S Jira můžete psát testovací případy a propojovat je s uživatelskými příběhy, známými chybami nebo jinými problémy.

Jira však není určena pro správu testovacích případů, takže funkce pro vytváření zpráv a automatizaci mohou být omezené.

ClickUp

ClickUp pro softwarové týmy je komplexní nástroj pro řízení projektů, který byl navržen tak, aby podporoval všechny aspekty inženýrského procesu. Správa testovacích případů není výjimkou.

Správa testovacích případů ClickUp
Zefektivněte správu testovacích případů pomocí ClickUp

Psaní testovacích případů: ClickUp umožňuje týmům efektivně spravovat jejich backlog díky robustním funkcím pro sledování chyb a problémů. Spravujte existující testovací případy a vytvářejte nové pomocí ClickUp. Používejte formuláře pro softwarové týmy k zaznamenávání požadavků/chyb a automaticky je převádějte na úkoly pro tým.

Přehlednost operací: Můžete je zobrazit jako kanbanovou tabuli napříč stavy nebo je naplánovat pomocí kalendáře. Spravujte úkoly týmu QA pomocí zobrazení ClickUp Workload a urychlete přesun do produkce. Použijte šablonu ClickUp pro sledování chyb a problémů a získejte přehled o všech testech ve vašem projektu vývoje softwaru.

Automatizace v projektovém řízení: Hladce integrujte správu testovacích případů do procesu vývoje vašich produktů.

Pomocí automatizací ClickUp přiřaďte ke každému testovacímu případu správného testera. Když se změní stav QA, automaticky jej přiřaďte zpět vývojáři k přezkoumání.

S ClickUp pro agilní týmy vytvořte opakovaně použitelné kontrolní seznamy, které se automaticky přidávají k úkolům. Nastavte ClickUp Brain, aby pomáhal týmům QA psát zprávy rychleji.

Osvědčené postupy již nastaveny: Využijte desítky předem navržených šablon, které vám pomohou strukturovat proces testování. Začněte s různými šablonami testovacích případů nebo šablonami hlášení chyb.

Šablona pro správu testů ClickUp

Poté vyzkoušejte šablonu pro správu testů ClickUp, která vám pomůže zefektivnit testovací scénáře, testovací případy a testovací běhy. S touto šablonou můžete sledovat proces, vyhodnocovat výsledky a spolupracovat s vývojovým týmem na odstraňování chyb a problémů.

Pro začátečníky obsahuje tato šablona také komplexní dokument „Jak začít“, který vás provede celým procesem.

Zajímá vás, jak napsat testovací zprávu? Máme pro vás šablonu. Stáhněte si a použijte šablonu testovací zprávy ClickUp, která je vhodná pro začátečníky, abyste mohli shrnout výsledky svých testů a předat je vývojářům.

Vytvářejte skvělý software pro každý případ s ClickUp

Ve vývoji softwaru hraje testování klíčovou roli při zajišťování, že je vše v pořádku. Poskytuje 360stupňovou podporu.

Ověřuje práci vývojového týmu. Potvrzuje vhodnost pro záměr obchodního týmu. Zůstává věrný potřebám uživatelů v oblasti funkčnosti, výkonu, bezpečnosti a ochrany soukromí.

Správa tak kritického a komplexního procesu vyžaduje promyšlenou sadu nástrojů. Přesně to ClickUp nabízí.

Ať už používáte agilní, vodopádový nebo hybridní model vývoje softwaru, ClickUp je nabitý funkcemi, které jsou navrženy tak, aby byly vysoce přizpůsobitelné vašim jedinečným potřebám.

Kromě výkonného a mnohostranného řízení úkolů obsahuje ClickUp také sadu testů, automatizace DevOps, integrace a šablony, které mají velký účinek. Přesvědčte se sami. Vyzkoušejte ClickUp ještě dnes zdarma.

ClickUp Logo

Jedna aplikace, která nahradí všechny ostatní