Během celého procesu testování software je potřebné kontrolovat a hodnotit aktuální stav projektu. Důvody ke kontrole jsou zřejmé. Nejběžnější důvod bývá kontrola kapacit testerů a programátorů podílejících se na testování projektu. Pokud je chyb mnoho, je dobré doplnit tým o další pracovníky. V opačném případě lze přesunout volné kapacity na jiné projekty.
K průběžnému hodnocení testů se využívá tří základních metrik. Tyto metriky jsou založeny na:
- Chybách
- Testech
- Kódu
Metriky založené na chybách
Chceme-li znát současný stav testů na projektu, můžeme vycházet z aktuálního počtu nalezených chyb. Ovšem samotný údaj o množství nalezených chyb pro nás nemá dostatečný význam (viz například tabulka a). Jen těžko lze vyvozovat další důsledky z informace o 150 nalezených chybách, měsíc před plánovaným ukončením testů projektu.
Tabulka 1: Příklad prostého údaje o počtu nalezených chyb během testů
Období | Název testovaného softwaru | Celkový počet chyb |
20.3.-1.4.2011 | Účtenky beta | 150 |
Proto se u metrik založených na chybách, kromě údaje o počtu nalezených chyb, využívá také rozdělení chyb podle funkční oblasti, v které se vyskytují, jejich závažnosti na běh aplikace a stavu jejich opravy. Z těchto informací již lze bezpečně vytvořit sadu užitečných měřítek, jejichž porovnání a poměry jsou dostačující pro hodnocení testů. Příklad takového rozdělení uvádím v tabulce 2.
Tabulka 2: Příklad rozdělení chyb použitím metrik založených na chybách
Funkční oblast | Vysoká závažnost | Střední závažnost | Nízká závažnost | Neopraveno | Celkem |
Správa pohledávek | 4 | 12 | 16 | 8 | 32 |
Tisk a export | 0 | 4 | 6 | 4 | 10 |
Osobní zprávy | 1 | 9 | 25 | 15 | 35 |
Hatchensnová [1] uvádí několik užitečných metrik založených na chybách:
Bug fix rate = množství opravených chyb / množství nalezených chyb
„Bug fix rate“ vyjadřuje, kolik procent z celkového počtu nalezených chyb již bylo opraveno. Do čitatele ve vzorci se v praxi dosazuje počet jakkoliv vyřešených chyb. Tedy i například chyby, které byly zamítnuty s odůvodněním, že se jedná o vlastnost aplikace.
Efektivnost testu – množství nalezených chyb pomocí testu / množství chyb nalezených celkem
Efektivnost testu určuje, kolik procent chyb bylo nalezeno za pomoci testu. Tento údaj slouží k porovnání jednotlivých testů nebo k porovnání s časem stráveným prováděním testu. Testy, u kterých je zjištěno, že dlouhodobě nepřináší výsledky, jsou nahrazeny jinými.
Rychlost objevení chyby = množství nalezených chyb / doba vykonávání testu
Rychlost objevení chyby informuje o tom, kolik chyb je průměrně nalezeno za hodinu. Tento údaj nelze přeceňovat. V praxi je zpravidla tato hodnota nejvyšší na počátku testování projektu a postupně klesá s blížícím se koncem testování.
Metriky založené na testech
Aplikace připravenými testy projde za předpokladu, že neobsahuje žádné chyby (po ukončení testů jsou všechny nalezené chyby opraveny) a je připravena k předání do provozu nebo naše testy nedostatečně pokrývají všechny funkce software (v praxi častější případ). Pokud tedy předem známe počet testů (testovacích případů), kterými musí aplikace během testovacího cyklu projít, lze snadno určit, v jakém stádiu se testování projektu nachází a kolik procent testů již bylo splněno. V praxi se však testy rozdělují do několika kategorií, přičemž všechny nemají stejnou váhu, což musí být v hodnocení zohledněno. Proto tato metrika není vhodná pro všechny kategorie testů. Často se v praxi využívá jen u kategorie funkčních testů. Jako jednotka počtu testů se zde používá testovací případ, případně test suit.
Metriky založené na programovém kódu
Metriky vycházející z programového kódu aplikace, vyjadřují kolik procent tohoto kódu je již otestováno a jakou část ještě zbývá ověřit. Metriky založené na kódu bývají často označovány též jako „pokrytí kódu“ (anglicky code coverage). Podle způsobu, jakým hodnotíme pokrytí kódu, lze metriky rozdělit do několika podtypů:
- Pokrytí příkazů
- Pokrytí hra
- Pokrytí podmínek
- Pokrytí cest
Uvedené podtypy charakterizují z jakého pohledu je na kód pohlíženo. Metriky založené na zdrojovém kódu, se běžně využívají při testování jednotek (Unit test).
[1] HUTCHESON, Hutcheson. Software Testing Fundamentals : Methods and Metrics. Wiley Pub. 2003. 408 s. ISBN 047143020X