Lekce 12 - Management rizik
V předchozí lekci, Management testování, jsme se detailněji zaměřili na plánování testování, prošli jsme si přínos testerů při plánování iterací a vstupní i výstupní kritéria. Ukázali jsme si techniky pro odhadování, nevynechali jsme ani prioritizaci testovacích případů a nakonec jsme probrali testovací pyramidu a kvadranty.
V dnešní lekci o managementu rizik se detailněji zaměříme na definici rizika a jeho atributy, rozlišíme si projektová a produktová rizika a také si ukážeme, co je to analýza a řízení produktových rizik. Ve druhé části se zaměříme na metriky používané v testování a také na účel, obsah a cílové skupiny reportů z testování.
Management rizik
Organizace čelí různým interním i externím faktorům, které mohou ovlivnit jejich schopnost dosáhnout cílů. Management rizik pomáhá zvýšit pravděpodobnost úspěchu, zlepšit kvalitu produktů a posílit důvěru zainteresovaných stran. Klíčové činnosti v managementu rizik zahrnují analýzu a řízení rizik.
Testování založené na rizicích je přístup, při němž jsou testovací činnosti vybírány, prioritizovány a spravovány na základě výsledků analýzy a řízení rizik.
Praktický příklad
Představme si tým, který vyvíjí bankovní aplikaci pro správu účtů a převod peněz.

Tým identifikuje klíčová rizika, která by mohla ovlivnit fungování aplikace. Mezi hlavní rizika patří:
- Riziko nesprávného výpočtu zůstatku na účtu.
- Riziko selhání při zpracování mezinárodních převodů.
- Riziko úniku citlivých dat při nešifrované komunikaci.
Na základě těchto rizik tým rozhodne, že nejvyšší prioritu bude mít testování funkcí souvisejících s výpočty zůstatků a zpracováním mezinárodních převodů. Tyto funkce jsou kritické, protože jakákoli chyba by mohla mít závažné dopady na zákazníky i banku. Tým se zaměří na psaní a provádění testovacích scénářů, které ověří správnost výpočtů zůstatků a fungování mezinárodních převodů v různých scénářích. Funkce, které představují nižší riziko, jako například zobrazení historie transakcí, budou testovány v pozdější fázi vývoje s nižší prioritou.
Definice rizika a jeho atributy
Riziko je potenciální událost, hrozba nebo situace, jejíž výskyt může mít nepříznivé důsledky. Riziko je charakterizováno dvěma hlavními faktory:
- pravděpodobnost rizika – pravděpodobnost, že riziko nastane, vyjádřená v procentech nebo jako hodnota mezi 0 a 1,
- dopad rizika – důsledky, které výskyt rizika způsobí.
Kombinace těchto dvou faktorů určuje úroveň rizika. Čím vyšší úroveň rizika je, tím naléhavější je potřeba jeho ošetření.
Projektová a produktová rizika
Při testování softwaru se obvykle rozlišují projektová a produktová rizika. Projektová rizika se týkají managementu a řízení projektu. Tato rizika mohou ovlivnit harmonogram, rozpočet nebo rozsah projektu, a tím ohrozit dosažení projektových cílů:

Produktová rizika se týkají kvalitativních charakteristik softwarového produktu:

Produktová rizika mohou mít různé negativní důsledky, jako např. nespokojenost uživatelů, ztrátu příjmů, důvěry, pověsti, může jít také o škody způsobené třetím stranám, vysoké náklady na údržbu, přetížení helpdesku, trestněprávní postihy, fyzické poškození, zranění a v extrémních případech i smrt.
Analýza produktových rizik
Cílem analýzy produktových rizik v testování je identifikovat a minimalizovat rizika spojená s kvalitou produktu. Tato analýza začíná ideálně v rané fázi SDLC a skládá se z identifikace a ohodnocení rizik.
Identifikace rizik zahrnuje vytvoření komplexního seznamu rizik, což mohou provádět všechny zainteresované strany pomocí technik jako brainstorming, workshopy, rozhovory nebo grafy příčin a následků. Například při vývoji platební brány může tým identifikovat riziko selhání transakcí při velkém objemu uživatelů během špičky.
Ohodnocení rizik zahrnuje kategorizaci rizik, určení jejich pravděpodobnosti, dopadu a úrovně, stanovení priorit a navržení způsobů řešení. Rizika lze hodnotit kvantitativně (úroveň rizika jako násobek pravděpodobnosti a dopadu) nebo kvalitativně (pomocí matice rizik). Tým například odhaduje, že pravděpodobnost selhání transakcí je vysoká a dopad na uživatele by byl kritický, proto toto riziko zařadí mezi nejvyšší priority k řešení, například zavedením zátěžových testů.
Výsledky analýzy ovlivňují rozsah a důkladnost testování. Používají se k:
- Určení rozsahu testování, které má být provedeno.
- Určení konkrétních úrovní testování a návrhu typů testů, které mají být provedeny.
- Určení technik testování, které mají být použity.
- Určení pokrytí, kterého má být dosaženo.
- Odhadu pracnosti testování vyžadovaného pro každý úkol.
- Stanovení priorit testování s cílem co nejrychlejšího nalézání kritických defektů.
- Určení, zda by ke snížení rizika mohly být použity i jiné činnosti.
Řízení produktových rizik
Řízení produktových rizik zahrnuje opatření, která reagují na identifikovaná a ohodnocená rizika. Skládá se ze dvou hlavních částí – zmírňování rizik a monitoringu rizik.
Zmírňování rizik zahrnuje zavedení opatření navržených při analýze rizik s cílem snížit jejich úroveň. Na rizika lze reagovat různými způsoby, jako je zmírnění rizika testováním, jeho přijetí, přenesení nebo příprava záložního plánu. Opatření zahrnují:
- výběr testerů se specifickými zkušenostmi pro dané riziko,
- použití nezávislého testování,
- provedení revizí a statické analýzy,
- použití vhodných testovacích technik a úrovní pokrytí,
- zaměření na příslušné typy testů dle kvalitativních charakteristik,
- dynamické testování, včetně regression testingu.
Monitoring rizik slouží k ověřování účinnosti zmírňujících opatření, poskytování dalších informací pro zlepšení hodnocení rizik a identifikaci nově vznikajících rizik.
Monitoring, control a test closure
Test monitoring se zaměřuje na shromažďování informací o průběhu testování. Tyto informace slouží k vyhodnocení postupu a ověření, zda byla splněna výstupní kritéria nebo dokončeny testovací úkoly.
Řízení testování využívá data z monitoringu k provádění nezbytných opatření a pokynů s cílem optimalizovat efektivitu testování:

Test closure zahrnuje konsolidaci dat z dokončených testovacích aktivit, včetně zkušeností, testwaru a důležitých informací. K této fázi dochází při projektových milnících, jako je dokončení úrovně testování, iterace testovacího projektu nebo vydání softwaru.
Praktický příklad
Představme si, že tým testuje novou funkci mobilní aplikace pro správu osobních financí, konkrétně funkci automatických plateb. Tým sleduje průběh testování funkce automatických plateb a shromažďuje data o počtu provedených testů, počtu nalezených chyb a o pokrytí testovacích scénářů. Na základě těchto informací zjistí, že stále zbývá otestovat několik kritických scénářů. Vzhledem k nově objeveným chybám v oblasti zrušení platby vedoucí testování rozhodne o přehodnocení priorit. Testům na zrušení plateb je přisouzena vyšší priorita a harmonogram testování je upraven, aby tým zajistil, že tyto kritické scénáře budou důkladně otestovány. Po dokončení všech testovacích scénářů je testování této funkce uzavřeno. Tým konsoliduje data o počtu test casů, nalezených a opravených chybách a o dosaženém pokrytí testů. Tyto informace jsou zaznamenány a sdíleny s ostatními členy týmu jako zpětná vazba pro budoucí testovací cykly.
Metriky používané v testování
Testovací metriky se shromažďují za účelem sledování postupu testování, kvality produktu a efektivity testovacích činností:

Tyto metriky podporují monitoring a řízení testování a pomáhají při dosažení cílů projektu nebo iterace. Mezi běžné testovací metriky patří:
- Metriky o postupu projektu – Ukazují například dokončení úkolů, využití zdrojů či pracnost testování. Tým např. sleduje, že bylo dokončeno 75 % plánovaných testovacích úkolů v aktuální iteraci.
- Metriky o postupu testování – Zahrnují postup implementace test casů, stav testovacích prostředí, počet spuštěných/nespuštěných testů, počet testů, které prošly/selhaly, dobu provedení testu. Kupříkladu se zaznamenává, že bylo spuštěno 120 ze 150 test casů, přičemž 90 z nich prošlo.
- Metriky kvality produktu – Patří sem například dostupnost systému, doba odezvy, střední doba mezi poruchami. Například se měří, že průměrná doba odezvy systému je 1,5 sekundy.
- Metriky nad defekty – Určují počet a prioritu zjištěných/opravených defektů, hustotu defektů, procento detekce defektů. V aktuálním sprintu bylo například nalezeno a opraveno 20 defektů s vysokou prioritou.
- Metriky nad riziky – Sledují úroveň reziduálních rizik. Například po zátěžovém testování zůstávají dvě středně závažná rizika, která vyžadují další pozornost.
- Metriky pokrytí – Ukazují míru pokrytí požadavků či kódu. Například míra pokrytí požadavků testováním je 85%, což znamená, že většina požadavků byla otestována.
- Metriky nákladů – Zobrazují náklady na testování či náklady na kvalitu v rámci organizace. Tým třeba odhaduje, že dosavadní náklady na testování představují 15 % z celkového rozpočtu projektu.
Tyto metriky poskytují informace pro rozhodování a zlepšení procesu testování a kvality produktu.
Účel, obsah a cílové skupiny reportů z testování
Účelem reportů z testování je poskytovat přehledné informace o postupu testování a jeho výsledcích během i po skončení testovací fáze. Reporty o postupu prací pomáhají řídit testování a umožňují provádět úpravy v harmonogramu, zdrojích nebo plánech, pokud jsou nutné změny. Souhrnné reporty z testování pak poskytují přehled o ukončené fázi testování a mohou sloužit jako podklad pro další fáze.
Reporty o postupu prací
Během monitoringu a řízení testování vytváří testovací tým reporty o postupu prací s cílem poskytovat zainteresovaným stranám informace. Tyto reporty jsou vytvářeny pravidelně a obvykle obsahují:
- testovací období,
- postup prací včetně odchylek,
- překážky a jejich řešení,
- testovací metriky,
- nová a změněná rizika během testovacího období,
- testování plánované pro následující období.
Souhrnný report z testování
Souhrnný report z testování se připravuje v průběhu fáze dokončení testování, kdy jsou projekt, úroveň testování nebo typ testu ukončeny a kdy jsou splněna stanovená výstupní kritéria. Tento report využívá informace z dílčích reportů o postupu prací a doplňuje je o další data. Typické souhrnné reporty z testování obsahují:
- shrnutí testů,
- vyhodnocení testování a kvality produktu,
- odchylky od test plánu,
- překážky a jejich řešení,
- testovací metriky,
- neošetřená rizika a nevyřešené defekty,
- ponaučení relevantní pro testování.
Obsah, četnost či formálnost reportů ovlivňují cílové skupiny. Zprávy uvnitř týmu bývají časté a neformální, zatímco souhrnné reporty jsou formální, strukturované obvykle podle předem definované šablony a podávají se jednou na konci projektu nebo fáze. Šablony reportů lze nalézt například v normě ISO/IEC/IEEE 29119-3.
Komunikování stavu testování
Optimální způsob komunikace o stavu testování závisí na potřebách managementu, strategii testování, regulatorních požadavcích nebo způsobu organizace týmu.

Existuje několik metod komunikace, které mohou být použity samostatně nebo v kombinaci:
- verbální komunikace se členy týmu či dalšími zainteresovanými stranami,
- dashboardy pro vizualizaci stavu testování,
- elektronické komunikační kanály,
- online dokumentace přístupná všem členům týmu,
- formální reporty z testování pro management nebo regulátory.
Formálnější komunikace je často nezbytná pro distribuované týmy, kde osobní setkání není vždy možné kvůli geografické vzdálenosti nebo časovým rozdílům. Různé zainteresované strany mohou vyžadovat odlišné typy informací, takže je důležité přizpůsobit styl a obsah komunikace jejich potřebám.
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, Testovací nástroje, si ukážeme, co je to konfigurační management a management defektů. Vysvětlíme si, jak různé typy testovacích nástrojů podporují testování, a ukážeme si výhody i rizika automatizace testů.