NOVINKA - Online rekvalifikační kurz Python programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Lekce 2 - Testovací proces

V předchozí lekci, Základy testování, jsme si vysvětlili, proč bychom měli software testovat, co testování vlastně je a jaké jsou jeho cíle.

V dnešní lekci, ve které se věnujeme testovacímu procesu, se dozvíme, proč je testování nezbytné. Poté se podíváme na základní principy testování, projdeme si různé testovací činnosti, testware a role v testování.

Proč je testování nezbytné?

Software development life cycle (životní cyklus vývoje softwaru), zkráceně SDLC, je strukturovaný proces, který zahrnuje všechny fáze vývoje softwaru od prvotního nápadu až po jeho nasazení a údržbu:

Software development life cycle - Testování softwaru dle ISTQB

Životní cyklus vývoje softwaru zahrnuje:

  • Požadavky, tedy to, co má software umět.
  • Návrh, jak bude software vypadat a fungovat.
  • Vývoj, ve kterém programátoři napíšou kód.
  • Testování, jímž ověříme, že software funguje správně a neobsahuje chyby.
  • Nasazení, při kterém se software spustí a dá se uživatelům k používání.
  • Údržbu, protože i po nasazení se software občas opravuje nebo vylepšuje.

Testování pomáhá dosáhnout stanovených cílů v rámci určeného rozsahu, času, kvality a rozpočtu. Díky testování komponent, systémů a související dokumentace lze snadněji odhalit chyby v softwaru.

Testování poskytuje nákladově efektivní způsob detekce chyb. Tyto defekty lze odstranit laděním. Testování nám dává prostředky k přímému hodnocení kvality testovaného objektu v různých fázích SDLC. Tato hodnocení jsou součástí širších aktivit projektového managementu a pomáhají rozhodnout o přechodu do další fáze SDLC.

Testeři jsou zárukou toho, že jejich pochopení potřeb uživatelů je zohledněno v průběhu celého SDLC. Alternativou využití testerů je zapojení reprezentativní skupiny uživatelů do projektu. Kromě hodnocení kvality může být testování softwaru vyžadováno i kvůli splnění smluvních či právních požadavků.

Testování, quality assurance a defekty

Lidé často zaměňují pojmy testování a quality assurance (zajištění kvality), zkráceně QA. Testování je forma quality control (řízení kvality), zkráceně QC. Jde o nápravný přístup zaměřený na produkt a soustředí se na činnosti podporující dosažení odpovídající úrovně kvality.

QA je preventivní přístup orientovaný na procesy, který se zaměřuje na jejich zavádění a zlepšování. Je založen na předpokladu, že pokud se dodržuje správný proces, jeho výsledkem je správný produkt. Výsledky testů se využívají v QA i QC. V QC napomáhají opravě defektů, zatímco v QA poskytují zpětnou vazbu o tom, jak dobře fungují procesy vývoje a testování.

Defekty lze nalézt v dokumentaci, ve zdrojovém kódu nebo v jakémkoli podpůrném artefaktu. Pokud je spuštěn defekt v kódu, může způsobit selhání. K selhání mohou vést také podmínky prostředí, například defekt firmwaru způsobený zářením nebo působením elektromagnetického pole. Kořenová příčina je primárním důvodem vzniku problému. Řešením kořenové příčiny lze zabránit podobným selháním nebo defektům, nebo alespoň snížit jejich četnost.

Dva muži pracující na počítači. - Testování softwaru dle ISTQB

Principy testování

Během posledních let byla zdokumentována řada principů, které poskytují obecný návod aplikovatelný pro všechny druhy testování:

  1. Testování prokazuje přítomnost defektů, ne správnost systému.
  2. Kompletní testování není možné, je lepší se zaměřit na vhodné techniky testování, stanovení priorit test casů (testovacích případů) a testování založené na rizicích.
  3. Včasné testování šetří čas i peníze.
  4. Shlukování defektů – většina defektů se vyskytuje v několika klíčových oblastech.
  5. Testy se opotřebovávají, je nutné měnit stávající testy a testovací data.
  6. Testování je závislé na kontextu, je potřeba jej přizpůsobit různým projektům.
  7. Nepřítomnost defektů je klam – absence defektů neznamená, že systém splňuje potřeby uživatelů.

Testovací činnosti, testware a role v testování

Proces testování může být přizpůsoben dané situaci na základě různých faktorů. O tom, které testovací činnosti jsou zahrnuty do procesu testování, jak jsou implementovány a kdy k nim dojde, se obvykle rozhoduje v rámci test planningu (plánování testování):

Testování činnosti - Testování softwaru dle ISTQB

Proces testování se skládá z hlavních skupin činností, které musíme přizpůsobit systému a projektu. Jsou často prováděny iterativně nebo paralelně.

Test planning

Test planning zahrnuje stanovení cílů testování a výběr vhodného přístupu k jejich dosažení. Například se tým rozhodne, že bude testovat aplikaci na základě funkčních požadavků, a stanoví cíl ověřit, zda všechny klíčové funkce, jako je přidávání položek do nákupního košíku, fungují správně.

Test monitoring

Test monitoring and control (monitorování a řízení testování) se zaměřuje na sledování postupu, porovnávání se stanoveným plánem a přijetí nezbytných opatření k dosažení cílů. Zde například test manager (manažer testování) sleduje průběh testování a porovnává jej s harmonogramem. Když zjistí zpoždění u testování platební brány, přidělí další zdroje k dokončení testů včas.

Test analysis

Test analysis (testovací analýza) spočívá v analýze testovací báze, definování testovacích podmínek a identifikaci defektů. Hodnotí se i testovatelnost objektů. Tester může třeba analyzovat požadavky aplikace a identifikovat, že platební proces obsahuje riziko chybného zpracování transakcí, proto navrhne testovací podmínky pro různé platební scénáře.

Test design

Test design (návrh testů) zahrnuje tvorbu test casů a dalšího testwaru, včetně stanovení požadavků na testovací data a návrh testovacího prostředí. Tester například připraví test casy pro ověření, zda systém správně zpracovává slevové kupony a různé metody platby. Současně navrhne prostředí s různými platebními branami.

Test implementation

Test implementation (implementace testování) zahrnuje vytvoření a seskupení test casů do procedur a sad, stejně jako přípravu testovacích skriptů. Testovací procedury jsou uspořádány do harmonogramu a testovací prostředí je připraveno k použití. Tým kupříkladu vytvoří testovací sady, které zahrnují testy pro validaci plateb a integraci s bankovními systémy, a napíše automatické testovací skripty.

Test execution

Test execution (provedení testů) znamená spuštění testů dle harmonogramu, porovnání výsledků s očekáváním a analýzu anomálií, které vedou k reportování selhání. Tester například spustí testovací sady, které simulují různé platební metody, a porovná skutečné výsledky s těmi očekávanými. Zaznamená anomálie a nahlásí defekt, kdy systém špatně uplatňuje slevy.

Test closure

Test closure (dokončení testování) obvykle nastává při dosažení milníků projektu. Nevyřešené defekty jsou přidány do backlogu, testware je archivován a prostředí uvedeno do původního stavu. Souhrnný report shrnuje poznatky a je předán zainteresovaným stranám. Po úspěšném otestování jsou všechny testovací skripty archivovány a tým připraví závěrečnou zprávu o kvalitě, která shrnuje nalezené a opravené chyby.

Proces testování v souvislostech a testware

Testování je nedílnou součástí vývoje softwaru v organizaci a jeho cílem je naplnění byznysových potřeb zainteresovaných stran, které financují testovací proces.

Muži probírající kód u počítače. - Testování softwaru dle ISTQB

Testování je ovlivněno mnoha faktory, jako jsou:

  • zainteresované strany, jejich potřeby, očekávání a ochota spolupracovat,
  • členové týmu, jejich dovednosti, zkušenosti a potřeby školení,
  • obor podnikání, kritičnost testovaného objektu, rizika a právní předpisy,
  • technické faktory, typ softwaru, architektura a použité technologie,
  • omezení projektu, rozsah, čas, rozpočet a dostupné zdroje,
  • organizační faktory, struktura, politiky a používané postupy,
  • SDLC, metody vývoje a technické postupy,
  • nástroje, dostupnost, použitelnost a regulační shoda.

Tyto faktory ovlivňují strategii testování, techniky, úroveň automatizace, pokrytí testy, dokumentaci i způsob reportování a další.

Testware

Testware je souhrn výstupních pracovních produktů vytvořených při testovacích činnostech. Jeho správa a organizace se liší mezi organizacemi, proto je zásadní zajistit dobrý konfigurační management pro zachování konzistence a integrity.

Typické výstupy testwaru zahrnují:

  • pracovní produkty z test planning – test plan (plán testování), harmonogram testování, registr rizik a vstupní a výstupní kritéria,
  • pracovní produkty z test monitoring and control – reporty o postupu prací při testování, pokyny a nezbytná nápravná opatření a informace o rizicích,
  • pracovní produkty z test analysis – testovací podmínky a reporty o defektech v testovací bázi,
  • pracovní produkty z test designu – test casy, testovací listiny, položky pokrytí, požadavky na testovací data a požadavky na testovací prostředí,
  • pracovní produkty z test implementation – testovací procedury, automatizované testovací skripty, testovací sady a data, harmonogram provedení testů a prvky testovacího prostředí,
  • pracovní produkty z provedení testů – protokoly z testování a reporty o defektech,
  • pracovní produkty z dokončení testování – souhrnný report z testování, akční body pro zlepšení budoucích projektů nebo iterací, zdokumentované ponaučení a změnové požadavky.

Trasovatelnost a role v testování

Pro efektivní test monitoring and control je zásadní udržovat trasovatelnost mezi položkami testovací báze, výstupy testování, výsledky testů a nalezenými defekty.

Přesná trasovatelnost umožňuje vyhodnocovat pokrytí. Kritéria pokrytí mohou představovat jeden z key performance indicators (klíčových ukazatelů výkonnosti) neboli KPI pro řízení testovacích činností. KPI ukazují na míru dosažení cílů testování. Například trasovatelnost mezi test casy a požadavky pomůže ověřit, zda jsou požadavky pokryty test casy. Trasovatelnost mezi výsledky testů a riziky lze použít k vyhodnocení úrovně zbytkového rizika u testovaného objektu.

Dobrá trasovatelnost kromě vyhodnocení pokrytí vede také k určení dopadu změn, usnadňuje provádění auditů testování a pomáhá plnit kritéria zásad správného řízení v IT. Dobrá trasovatelnost rovněž zlepšuje srozumitelnost reportů o postupu prací při testování a souhrnných reportů z testování. Trasovatelnost poskytuje informace pro posouzení kvality produktu, způsobilosti procesů a postupu prací v projektu vzhledem k byznysovým cílům.

Praktický příklad

Při vývoji softwaru pro správu zdravotních záznamů je nutné zajistit, že všechny požadavky na funkčnost a bezpečnost jsou pečlivě trasovány.

Lékařka - Testování softwaru dle ISTQB

Trasovatelnost mezi test casy a specifikovanými požadavky je zde klíčová – například každý požadavek na bezpečnost dat pacientů musí být pokryt konkrétním test casem. Když dojde k nalezení defektu, trasovatelnost umožňuje snadno zjistit, které požadavky jsou tímto defektem ovlivněny a jaké testy jsou nutné k jeho vyřešení. Tento přístup pomáhá zajistit, že software odpovídá regulačním standardům a že jakákoli změna v softwaru neovlivní jinou část systému.

Role v testování

Existují dvě hlavní role v testování: test manager a tester. Jejich činnosti závisí na kontextu projektu, dovednostech a organizaci. Test manager odpovídá za celý proces testování, testovací tým, řízení a úspěšné dokončení testovacích činností. V agilních týmech mohou některé jeho úkoly převzít členové týmu, zatímco u větších projektů je může řešit test manager mimo vývojový tým. Úkoly, které zahrnují více týmů nebo celou organizaci, mohou být prováděny test managery mimo vývojový tým. Tester se zaměřuje na technické aspekty testování – test analysis, test design, test implementation a jejich provedení. Tyto role mohou být kombinovány nebo rozděleny mezi různé osoby v závislosti na potřebách projektu.

Zdrojem této lekce jsou Učební osnovy – Certifikovaný tester základní úrovně ver. 4.0. Copyright © 2023 autoři verze 4.0: Renzo Cerquozzi, Wim Decoutere, Klaudia Dussa-Zieger, Jean-François Riverin, Arnika Hryszko, Martin Klonk, Michaël Pilaeten, Meile Posthuma, Stuart Reid, Eric Riou du Cosquer (předseda), Adam Roman, Lucjan Stapp, Stephanie Ulrich (místopředseda), Eshraka Zakaria

V příští lekci, Testování v průběhu SDLC - Dovednosti a osvědčené postupy, si vysvětlíme, jaké jsou základní dovednosti a osvědčené postupy, a podíváme se na testování v kontextu životního cyklu vývoje softwaru.


 

Předchozí článek
Základy testování
Všechny články v sekci
Testování softwaru dle ISTQB
Přeskočit článek
(nedoporučujeme)
Testování v průběhu SDLC - Dovednosti a osvědčené postupy
Článek pro vás napsala Jana Zimčíková
Avatar
Uživatelské hodnocení:
31 hlasů
Autorka se věnuje IT a technologiím. Ovládá Javu, Spring Boot, SQL i frontend a chce pomáhat lidem objevit svůj potenciál v IT světě.
Aktivity