410 likes | 674 Views
Program ų sistemų testavimas. Aist ė Stikliūtė aiste.stikliute @ mif.vu.lt http://web.vu.lt/mif/a.stikliute +370 604 17281 VU MIF Programų sistemų katedra. Matavimai ir metrikos. Kas yra , kokios būna metrikos? Kod ėl reikalingi matavimai? Kaip naudoti konkrečias metrikas?
E N D
Programų sistemų testavimas Aistė Stikliūtė aiste.stikliute@mif.vu.lt http://web.vu.lt/mif/a.stikliute +370 604 17281 VU MIF Programų sistemų katedra
Matavimai ir metrikos • Kas yra, kokios būna metrikos? • Kodėl reikalingi matavimai? • Kaip naudoti konkrečias metrikas? • Ką daryti su gautais duomenimis? • Kaip įvesti matavimus?
Kas yra metrikos? • Metrika – matavimo skalė ir matavimui naudojamas metodas [ISO 14598] • Metrika – matas, matavimo priemonė • Naudojama sąvoka “metrikų rinkimas”. • Šiuo atveju metrika = matavimo rezultatas
Metrikų pvz.: • Produkto kokybės metrikos • KLOC • Defektų skaičius • Defektų tankis • … • Proceso kokybės metrikos • Užduoties įvykdymo vidutinis greitis • Vėluojančių užduočių skaičius • Defektų, kylančių iš reikalavimų, skaičius • ... • Kliento pasitenkinimo metrikos • ...
Kodėl reikalingi matavimai? • PĮ kūrimas – verslo procesas su rizikomis • Reikalauja valdymo • “You can’t control what you can't measure.” [Tom DeMarco] • Matuojant atrandamos silpnosios vietos. Pvz.: • Defektų taisymas • Neatliekamas neigiamas testavimas • ...
Kodėl reikalingi matavimai? • Norint išlikti, reikia tobulėti • Visada kažkas bus geriausias: • Greičiausias (time to market) • Funkcionaliausias (features) • Kokybiškiausias (quality) • Geriausias iš konkurentų sąrašo gali kisti • Kaip sužinoti, ar tobulėji? • Reguliariai “lipti ant svarstyklių”
Kodėl reikalingi matavimai? • Testavimo užduotis – teikti informaciją • Vietoje nuojautos ir spėjamų skaičių – konkreti kiekybinė informacija • “Did u test it?” “Yes I tested it.” “What did u test?” • “Ar daug defektų yra?” “Em... Normaliai ” • “Ar galėsim išleist sistemą už 2 savaičių?” “Hm... Reik pasižiūrėtį Bugzillą”.
Matavimų trūkumai/iššūkiai • Kaip vertinsi žmogų, taip jis ir elgsis • Reikalingas visų proceso dalyvių noras gerinti • Gali būti brangu
Pamąstymui “A number is better than no number”?
Konkrečių metrikų naudojimas • Defektų metrikos • Efektyvumo metrikos • PĮ patikimumo matavimas
Defektų metrikos • Defektų registavimo greitis • Didėja testavimo pradžioje • Projekto pabaigoje turėtų kristi • Kristi gali dėl skirtingų priežasčių: • Pasiekta priimtina kokybė • Mažiau testuojama (pvz., atimti resursai)
Defektų metrikos • Išspręstų,bet neuždarytų defektų skaičius • Rodiklis, kad testuotojai nespėja testuoti • Būtina išsiaiškinti, kodėl: • Testuotojai atsipalaidavo • Testuotojai gavo kitų darbų • Testuotojų skaičius neatitinka programuotojų • Praeitą savaitę buvo surasta daug defektų ir visi labai greitai ištaisyti
Defektų metrikos • Defektų registravimo greitis pagal kritiškumą/prioritetą • Parodo, kur koncentruojasi testuotojai • Pradžioje dauguma turėtų būti K1/P1 • Vėliau K1/P1 mažėja, daugėja K2/P2 ir K3/P3
Defektų metrikos • Defektų pasiskirstymas pagal kritiškumą/prioritetą (pie-chart): • Prastas kodas? • Neteisingai priskiriami defektų atributai? • Testuotojai blogai informuoti apie reikšmes • Ne K1/P1 defektai netaisomi • Testavimas baigiamas per anksti? • “Sveikas” pasiskirstymas: • K1 <= 40%, K2 <= 40%, likę K3
Defektų metrikos • Defektų pasiskirstymas pagal modulius: • Kur randama daugiausia defektų? • Testavimo vadovas ten skiria daugiau dėmesio testavimui • Programavimo vadovas aiškinasi priežastis
Defektų metrikos • Defektų skaičius, tenkantis programuotojui • Ne visada teisinga: • Sudėtingas senas kodas • Sudėtingas funkcionalumas • Vis tiek gali būti vertinga, su papildomomis žiniomis • Paprastas funkcionalumas, bet daug defektų? • Gal kyla komunikacijos problemų?
Defektų metrikos • Defektų skaičius, tenkantis testuotojui • Ne visada teisinga: • Sudėtingas funkcionalumas • Trūksta dokumentacijos • Vis tiek gali būti vertinga: • Padeda atsekti problemas • Padeda perskirstyti resursus
Defektų metrikos • Defektų sprendimo pasiskirstymas (pie-chart): • Išspręsta, nebus sprendžiama, dublikatas, ... • Normalu, jei “išspręsta”75%-80% • Jei išsprendžiama 100%: • Vis dar randami beveik vien K1/P1? • Projektui numatyta per daug laiko?
Efektyvumo metrikos • Klausimas: ar jūsų įmonėje/projekte testavimui skiriama laiko, pastangų ir pinigų: • per daug • per mažai • tiek, kiek reikia?
Efektyvumo metrikos • Klausimas: ar kaip nors matuojate testavimo efektyvumą? • Jei ne, į pirmą klausimą atsakyti praktiškai neįmanoma
Efektyvumo metrikos • Pastebėjimai: • Daugumoje organizacijų sąmoningai testavimo efektyvumas nėra matuojamas • Visos testavimo efektyvumo metrikos turi trūkumų • Nepaisant to, jos reikalingos – ir reikia atrasti tinkamą jų rinkinį
Efektyvumo metrikos Testavimo efektyvumo matavimas • Klientų pasitenkinimo metrikos: • Apklausos • Helpdesk skambučiai • Defektų metrikos: • Rasti testavimo metu • Rasti klientų • Defektų pasiskirstymas pagal kritiškumą, amžių, etc.) • Padengimo metrikos: • Kodo • Testavimo atvejų • Reikalavimų
Efektyvumo metrikos • Klientų apklausos: • Svarbu iš anksto parengti tinkamus klausimus • Atsakymai priklauso nuo: • Klausimų tvarkos, formulavimo, ilgio • Apklausos ilgio • Egzistuoja atskira disciplina, reikalinga eksperto pagalba • Neatskiriamas testavimo efektyvumas ir PĮ kokybė
Efektyvumo metrikos • Helpdesk skambučiai • Neatskiriamas testavimo efektyvumas ir PĮ kokybė • Daug helpdesko skambučių – nekokybiška sistema? • Jei nebūtų skambučių, gal sistema tiek nekokybiška, kad niekas nenaudoja • Kiekvienas atvejis turi būti išanalizuotas: • Nepakako mokymų? • Per daug funkcionalumo?
Efektyvumo metrikos • Defektų metrikos: • Defektas defektui nelygu – reikalingi svoriai • Rastų defektų skaičius priklauso nuo egzistuojančių defektų skaičiaus • Galima prognozuoti defektų skaičių pagal praeities projektus ir rezultatus lyginti su prognozėmis • Reikia atsižvelgti į apimtį ir sudėtingumą
Efektyvumo metrikos • Defektų radimo efektyvumas: • Svarbu atsižvelgti į kritiškumą • Kuriame testavimo lygmenyje pradedame skaičiuoti defektus? • Ar išmetame defektus, kurie negali būti randami testavimo metu?
Efektyvumo metrikos • Padengimo metrikos: • Efektyviausios, nes matuojama ne po PĮ išleidimo • Pvz.: • reikalavimų padengimas matuojamas po TA parašymo • TA ir kodo padengimas matuojamas prieš baigiant testavimą • !Kodo padengimas nereiškia, kad kodas daro tai, ką turi daryti
Efektyvumo metrikos • Nė viena metrika nėra pakankama testavimo efektyvumui matuoti • Reikia naudoti metrikų kombinacijas ir atlikti papildomą analizę
PĮ patikimumo matavimas • MTTF: vid. laikasikiklaidos (mean time to failure) • MTTR: vid. pataisymolaikas (mean time to repair) • MTBF = MTTF + MTTR: vid. laikas tarp klaidų (mean time between failures) • Koeficientai: • R (reliability, patikimumas) = MTBF / (1+MTBF) • A (availability, prieinamumas)= MTBF / (MTBF+MTTR) • M (maintainability, palaikymas) = 1 / (1+MTTR)
Pasikartojam • Kas yra, kokios būna metrikos? • Kodėl reikalingi matavimai? • Kaip naudoti konkrečias metrikas: • Defektų metrikos • Efektyvumo metrikos • PĮ patikimumo metrikos
Ką daryti su gautais duomenimis? • Apibendrinti duomenis • Pateikti duomenis suinteresuotiems asmenims
Duomenų apibendrinimas • Pvz. 1. Palyginkime: • Vakar vykdyta 50 testų. 40 praėjo, 10 ne. Šiandien vykdyta 40 testų. 30 praėjo, 10 ne. Liko įvykdyti 90 testų, testavimui liko 2 dienos. • Šiuo metu yra rasta 20 defektų ir tikimės rasti dar 20. Turėtume suspėti ištestuoti, jei bus sąlygos išlaikyti tą patį tempą.
Duomenų apibendrinimas • Pvz. 2. Palyginkime: • Liko įvykdyti keturias užduotis
Duomenų apibendrinimas • Ką daryti su ne visai korektiškais ar trūkstamais duomenimis? • Rankinis darbas – pvz., vietoj filtravimo peržiūrėti įrašus po vieną • Imtis klaidingų duomenų prevencijos – pvz., užtikrinti, jog defekto prioritetas visada nustatomas korektiškai (mokymai, etc.) • Susitaikyti – jei paklaida pakankamai maža, kad ją būtų galima ignoruoti
Duomenų pateikimas • Informacija turi būti prieinama visiems, kam reikia • Vidinė metrikų svetainė • Rezultatų aptarimai • Informacija turi būti suprantama visiems, kam reikia • Techniniams žmonėms • Netechniniams žmonėms
Matavimų įvedimo principai • Matavimai neturėtų atitraukti nuo kasdienių darbų • Gerinti po truputį: • Dalis proceso / dalis žmonių • Nedaug, bet naudingos metrikos
Kaip pasirinkti metrikas? • Reikia būti pasiryžus atlikti šiuos žingsnius: • Apibrėžti tikslus • Apibrėžti metrikas • Surasti duomenų šaltinius ir rinkti duomenis • Įžvelgti tendencijas • Imtis veiksmų • Jei bent vieno žingsnio kuriai nors metrikai daryti nepavyks – tos metrikos nenaudoti!
Pavyzdys: bandytos metrikos • Kliento pasitenkinimas • Praleistų defektų skaičius • Našumas ir leistina apkrova • Specifiniai scenarijai • Aktyvų išsaugojimas • Aktyvų nuvertėjimas • Aktyvų poreikio prognozė • Proceso efektyvumas ir gerinimas • Testavimo eigos būsena • Atidarytų defektų skaičius • Stabilumas • Defektų klasifikacija • Defektų taisymo sėkmingumas • Personalo produktyvumas • Grafiko tendencija
Pavyzdys: pasirinktos metrikos • Privalomos metrikos: • Praleistų defektų skaičius • Našumas ir leistina apkrova • Testavimo eigos būsena • Atidarytų defektų skaičius • Kitos metrikos: • Priklauso nuo aplinkybių • Pavyzdyje pateiktoje įmonėje kai kurias naudojo
Matavimų programa produktų ir proceso kokybei palaikyti • Nustatyti kompanijos/projekto tikslus • Priskirti atsakomybes – kas atsakingas už programą • Surinkti pradinę informaciją programos sukūrimui • Apsibrėžti pradines metrikas • Apsimesti pardavėju ir įtikinti techninį personalą apie programos naudingumą • Įsigyti/pasidaryti duomenų rinkimo ir analizavimo įrankius • Apmokyti personalą • Parodyti matavimų programos sėkmę • Sukurti matavimų duomenų bazes • Suteikti matavimų programai pastovų aptarnavimą