Význam měření v testování softwaru Mgr. Anna Borovcová doc. Ing. Alena Buchalcevová, Ph.D VŠE Praha
Motivace
The Standish Group reporty za roky 1994 – 2009 1994 1996 1998 2000 2002 2004 2006 2009
Úspěšných
16%
27%
26%
28%
34%
29%
35%
32%
Problémových
53%
33%
46%
49%
51%
53%
46%
44%
Neúspěšných
31%
40%
28%
23%
15%
18%
19%
24%
Měření – nástroj pro řízení kvality procesu
„Co nejde měřit, nejde řídit“
Měření – nástroj pro řízení kvality procesu Testování – nástroj pro zjištění aktuálního stavu produktu
Kvalita procesu se v průběhu vývoje řídí na základě kvantitativních měřítek. Kvalitativní poskytují zpětnou vazbu, nejsou dostatečné pro řízení.
Proč měřit?
Minulost a do velké míry i současnost: ◦ ◦ ◦ ◦
„Jak to vypadá?“ „Dobře, otestovali jsme to.“ „A co jste otestovali?“ „Všechno.“
Mentalita lidí ◦ Nedělat to, co nikdo nekontroluje ◦ Nepřiznat skutečný stav, pokud prozrazuje, že jsem neudělal vše, co jsem měl nebo mohl ◦ Přílišná důvěra ve vlastní práci, kterou jsem skutečně udělal
Měřit znamená
Znát: ◦ Ukazatel, který měříme (a jak jej můžeme sledovat či měřit) ◦ Metriku, která bude pro měření použita ◦ Hodnotu, která je akceptační hladinou,...
Ale hlavně musíme znát důvod měření ◦ Proto je důležité pochopit, co nám měření může přinést ◦ A jaká rizika nese neměření
Příklad
Příklad
Co měříme
Kolik je naimplementováno Kolik je otestováno a jak testy dopadly Objevené chyby Náklady na jednotlivé činnosti
Zdroje dat:
◦ ◦ ◦ ◦ ◦
Systémy pro správu hlášení chyb Systémy pro řízení testování Vývojové prostředí Systémy účetní a pro vykazování …
Parametry hlášení chyby Pole
Popis pole
Shrnutí
Stručné shrnutí chyby – do jedné věty
Popis chyby
Podrobný popis chyby s postupem simulace
Závažnost
Indikace, jak podstatné jsou dopady chyby. Dělení chyb dle závažnosti závisí na pravidlech daného projektu, např. závažnost může být na kritická (1 nebo A), vysoká (2 nebo B), normální (3 nebo C), nízká (4 nebo D), velmi nízká (5 nebo E).
Priorita
Indikace, jak rychle je třeba chybu opravit, obvykle slovní nebo číselná, hodnoty jsou definované pravidly na projektu
Komponenta
Ve které části aplikace byla chyba objevena
Objeveno ve verzi
Ve které verzi aplikace byla chyba objevena
Opravit do verze
Ve které verzi aplikace má být nasazena oprava
Test
Provázání s testem, který kontroluje přítomnost chyby
Prostředí
Na jakém prostředí byla chyba objevena
Vlastník
Kdo chybu nahlásil
Přiřazená osoba
Kdo se momentálně zabývá vyřešením chyby
Doba opravy
Kolik času zabrala programátorovi oprava chyby
Stav chyby
Momentální stav chyby, neustále se mění v průběhy životního cyklu chyby. U chyby se uchovávají všechny přechody stavů včetně data a času změny.
Kategorizace dle použitých dat
Kategorizace metrik dle použitých dat:
Metriky založené na chybách ◦ Sledují projekt z hlediska parametrů a počtu chybových hlášení
Metriky založené na testech ◦ Sledují projekt z hlediska úspěšnosti provedených testů ◦ Sledují efektivitu zvolené množiny testů
Metriky založené na kódu ◦ Sledují projekt z hlediska zdrojového kódu
Metriky založené na chybách
Jednoduchá sumarizace nahlášených chyb nad zvolenými atributy: ◦ ◦ ◦ ◦
Např. : Počet chyb dle stavu a priority Počet chyb dle stavu a času Počet neopravených chyb dle komponenty a priority ◦…
Metriky založené na chybách
Sledování změn životního cyklu ◦ Průměrné stáří chyby do vyřešení = suma počtu dní (hodin) od zahlášení chyby do vyřešení chyby za všechny chyby / počet chyb ◦ Rychlost nalezení chyby = počet nalezených chyb / počet hodin strávených jejich hledáním
Sledování nákladů ◦ Průměrná cena nalezení a opravy chyby = náklady na testování a opravy / počet opravených chyb
Metriky založené na testech
Stav projektu ◦ Akceptační připravenost = počet úspěšných testů / počet všech testů
Sledování efektivity ◦ Efektivnost testu = (počet chyb nalezené testem / celkový počet nalezených chyb) * 100 ◦ Účinnost testovacího úsilí = počet opravených chyb během testování/ celkový počet chyb vůbec kdy nalezených v aplikaci * 100
Metriky založené na kódu
Intenzita chyb – (počet chyb / délka kódu) ◦ Délku kódu měříme např. v tisících řádcích kódu (KLOC) nebo v předaných zdrojových instrukcích (SSI)
Pokrytí kódu ◦ Pokrytí příkazů, hran, podmínek, cest, funkcí…
Co s naměřenými hodnotami?
Analyzovat je: ◦ ◦ ◦ ◦ ◦
hledat hledat hledat hledat ...
podobnosti duplikace odchylky „skryté informace“
Sumarizovat je z různých pohledů Vyhodnocovat je, zda vyhovují A na tomto základě se rozhodovat,... ...tedy skutečně řídit
DISKUZE A DOTAZY Děkuji za pozornost
Mgr. Anna Borovcová doc. Ing. Alena Buchalcevová, Ph.D VŠE Praha