380 likes | 604 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. Defekt ų valdymas. Defektų šaltiniai Defektų klasės Defekto aprašymas Defekto gyvavimo ciklas Incidentai Defektų valdymo sistemos
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
Defektų valdymas • Defektų šaltiniai • Defektų klasės • Defekto aprašymas • Defekto gyvavimo ciklas • Incidentai • Defektų valdymo sistemos • 80-20 taisyklė (Pareto principas)
Defektas • Neatitikimas komponente ar sistemoje, galintis sukelti sutrikimų komponentui ar sistemai atliekant savo funkcijas. • Defektas, su kuriuo susiduriama vykdant PĮ, gali sukelti komponento ar sistemos trikį.
Kodėl “bug”? • 1946 m. kompiuteryje Mark II rasta klaida • Priežastis – vabzdys, įstrigęs perjungiklyje • Vabzdys buvo išimtas ir pridėtas prie veikimo įrašų (logs):
Defektų šaltiniai Defektų šaltiniai: Žinių/išsilavinimo trūkumas Prasta komunikacija Neapsižiūrėjimas Perrašymas Proceso problemos Įtaka programinei įrangai: Klaidos, defektai, trikiai Įtaka naudotojo požiūriui: Prasta kokybė, nepasitenkinimas
Defektų šaltiniai • Žinių/išsilavinimo trūkumas: • Programavimo kalbos • Verslo logikos • Pvz.: • Nežinoma, kaip realizuoti funkciją • Neteisingai suprasta, kaip turėjo veikti funkcija
Defektų šaltiniai • Prasta komunikacija • Su analitikais • Su projekto vadovu • Su kitais programuotojais • Pvz.: • Du sąveikaujantys moduliai, nesusitarta, kuriame bus atliekamas klaidų apdorojimas
Defektų šaltiniai • Neapsižiūrėjimas • Žioplumo klaidos • Išvis nerealizuotas funkcionalumas • Pvz.: • Praleistas objekto inicializavimas • Neparašytas metodas • Neparašytas reikalavimas
Defektų šaltiniai • Perrašymas • Žinoma ką daryti, tiesiog lieka klaidų • Copy-paste’o klaidos • Pvz.: • Neteisingas kintamojo vardas • Paliktos nereikalingos kodo eilutės
Defektų šaltiniai • Proceso problemos: • Nepakankamai laiko • Prasta organizacija • Nebrandus procesas • Pvz.: • dėl laiko trūkumo prastai aprašyti reikalavimai • pasirenkamas “pigesnis=trumpesnis=rizikingesnis” programavimo variantas
Defektų įtaka • Nuo minimalios: • Rašybos klaida, pasislinkęs grafinis elementas • Iki maksimalios: • Didžiuliai finansiniai nuostoliai, sveikata/gyvybė
Defektų klasės • Reikalavimų/specifikacijos defektai • Projektavimo defektai • Programavimo (kodavimo) defektai • Testavimo defektai
Reikalavimų/specifikacijos defektai • Klaidingas funkcijos aprašymas • PĮ savybių aprašymo defektai • PĮ savybių sąveikos defektai • Sąsajos(-ų) aprašymo defektai: • Su PĮ • Su TĮ • Su naudotoju
Projektavimo defektai • Algoritminiai ar apdorojimo defektai • Valdymo, loginiai ar eilės tvarkos (sequence) defektai • Duomenų defektai • Modulio sąsajos aprašymo defektai • Klaidingas funkcijos aprašymas • Išorinės sąsajos aprašymo defektai
Programavimo defektai • Algoritminiai ar apdorojimo defektai • Valdymo, loginiai ar eilės tvarkos (sequence) defektai • Tipografiniai defektai • Inicijavimo defektai • Duomenų srauto (flow) defektai • Duomenų defektai • Modulio sąsajos defektai • Kodo dokumentavimo defektai • Išorinių sąsajų defektai
Testavimo defektai • Testavimo kodo defektai • Testavimo atvejo ar procedūros defektai
Yra klausimų? Defektų šaltiniai, įtaka Kasyradefektas? Defektų klasės
80-20 taisyklė (Pareto principas) • 80% defektų galima ištaisyti su 20% pastangų
Defektoaprašymas • Kritiškai svarbu gerai aprašyti defektus: • Lengva analizuoti defektų priežastis • Lengva ištaisyti defektus • Išvengiama pakartotinio darbo • Testuotojai sutaupo laiko • Išvengiama defektų dubliavimo • Lengva stebėti defektų srautus/būsenas
Defekto aprašymo struktūra • Defekto valdymuiskirti laukai • Trumpas defekto aprašymas • Detalus defekto aprašymas
Defektą apibūdinantys standartiniai laukai • Autorius / registruotojas • Tipas (pakeitimas, problema, klaida) • Registravimo data • Pataisymo data • Defekto būsena • PĮ versija • Aplinka (pvz., DEV, UAT) • Defekto poveikis (kritinis, svarbus, nesvarbus, kosmetinis)
Trumpas defekto aprašymas • Skirtas lengvai atpažinti defektą, abstrakčiai suvokti problemą • Pvz.: • Su IE7 neveikia puslapiavimas • Užsakant prekę gaunamas klaidos pranešimas
Detalus defekto aprašymas • Aiškiai aprašyta defekto esmė • Detalūs žingniai, kaip atkartoti defektą • Kas būtent negerai • Kaip turėtų veikti • Pastabos: • Atkartojama tik tam tikroje aplinkoje • Ne visada atsikartoja toje pačioje aplinkoje • Tikėtinos defekto įsivėlimo priežastys
Paveikslėlis • Vertas 1000 žodžių • Padeda programuotojams lengviau suprasti problemą • Padeda vėliau pertestuojant • Paveikslėlis turėtų būti aiškus be paaiškinimo • Galima paryškinti konkrečią paveikslėlio vietą:
Kiti galimi laukai • Susiję TA • Defekto priežastis • Defekto klasė • Sistemos modulis • Atsakingas asmuo • ...
Yra klausimų? Defekto aprašymas Būtini laukai, galimi laukai
Defekto gyvavimo ciklas Registruojama nauja problema Aktyvus Problema išanalizuojama Ne defektas Nepavyksta atkartoti Nebus taisoma Dublikatas Trūksta info Defektas taisomas Ištaisytas Patvirtinimo testavimas Uždarytas
Incidentai • Problema (issue) – nebūtinai defektas • Incidentas – bet kas, kam reikia tolesnės analizės • Testuojant registruojami incidentai: • Gali paaiškėti, kad nėra defektai • Analizei vis tiek reikalingi (programuotojų) darbai • Praktikoje dažnai naudojama kaip sinonimai (defektų valdymo sistema, incidentų valdymo sist.)
Defektų valdymo sistemos Tikslai: • Testavimo planavimas • Kontrolė ir stebėjimas • Defektų prevencija • Kokybės nustatymas ir kontrolė • Testavimo matavimas • Testavimo proceso gerinimas
Defektų valdymo sistemos • Testavimo planavimas, kontrolė ir stebėjimas: • Kiek turime defektų? • Kokie defektų prioritetai/kritiškumas? • Kaip efektyviai taisomi defektai? • Priimamas sprendimas: reikia daugiau mažiau testavimo, papildomo laiko/resursų – testuotojų/programuotojų?
Defektų valdymo sistemos • Defektų prevencija: • Registruojam defektų priežastis • Nepilni, neaiškūs reikalavimai • Nepatyrę programuotojai • Nauja platforma • Problemos su trečių šalių kodu • Imamės priemonių pašalinti svarbiausias priežastis
Defektų valdymo sistemos • Kokybės nustatymas ir kontrolė: • Nustatytas kokybės tikslas, apibrėžtas kaip tam tikros su defektais susietos metrikos • Lyginame su realiais defektų skaičiais • Pvz.: <= 20 defektų <= 5 defektai su kritiškumu “normalus” 0 defektų su kritiškumu “kritinis”
Defektų valdymo sistemos • Testavimo matavimas, proceso gerinimas: • Matuojamas rastų defektų skaičius • Lyginamas su testavimo metrikomis: • Kiek laiko testuota • Kiek rasta defektų • Kokio tipo defektų randama • Kuris testuotojas dirba efektyviausiai • Reikia taikyti protingai
Defektų valdymo sistemos • Bugzilla • JIRA • Mantis BT • Eventum • …
80-20 taisyklė (Pareto principas) • Ištaisius 20% defektų galima išspręsti 80% naudotojų problemų