Význam měř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ěř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 Shrnutí Popis chyby Závažnost Popis pole Stručné shrnutí chyby do jedné věty Podrobný popis chyby s postupem simulace 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 Komponenta Objeveno ve verzi Opravit do verze Test Prostředí Vlastník Přiřazená osoba Doba opravy Stav chyby Indikace, jak rychle je třeba chybu opravit, obvykle slovní nebo číselná, hodnoty jsou definované pravidly na projektu Ve kteréčásti aplikace byla chyba objevena Ve které verzi aplikace byla chyba objevena Ve které verzi aplikace má být nasazena oprava Provázání s testem, který kontroluje přítomnost chyby Na jakém prostředí byla chyba objevena Kdo chybu nahlásil Kdo se momentálně zabývá vyřešením chyby Kolik času zabrala programátorovi oprava 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 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 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 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 ené na kóduk 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 podobnosti hledat duplikace hledat odchylky hledat 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