Program ų sistemų testavimas

38
Programų sistemų testavimas Aistė Stikliūtė [email protected] http://web.vu.lt/mif/a.stikliute +370 604 17281 VU MIF Programų sistemų katedra

description

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 - PowerPoint PPT Presentation

Transcript of Program ų sistemų testavimas

Page 1: Program ų sistemų testavimas

Programų sistemų testavimas

Aistė Stikliūtė[email protected]

http://web.vu.lt/mif/a.stikliute+370 604 17281

VU MIFProgramų sistemų katedra

Page 2: Program ų sistemų testavimas

Defektų valdymas

– Defektų šaltiniai– Defektų klasės– Defekto aprašymas– Defekto gyvavimo ciklas– Incidentai– Defektų valdymo sistemos– 80-20 taisyklė (Pareto principas)

Page 3: Program ų sistemų testavimas

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į.

Page 4: Program ų sistemų testavimas

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):

Page 5: Program ų sistemų testavimas

Defektų šaltiniaiDefektų šaltiniai:Žinių/išsilavinimo trūkumasPrasta komunikacijaNeapsižiūrėjimasPerrašymasProceso problemos

Įtaka programinei įrangai:Klaidos, defektai, trikiai

Įtaka naudotojo požiūriui:Prasta kokybė, nepasitenkinimas

Page 6: Program ų sistemų testavimas

Defektų šaltiniai

• Žinių/išsilavinimo trūkumas:– Programavimo kalbos– Verslo logikos

• Pvz.:– Nežinoma, kaip realizuoti funkciją– Neteisingai suprasta, kaip turėjo veikti funkcija

Page 7: Program ų sistemų testavimas

Defektų šaltiniai

• Prasta komunikacija– Su analitikais– Su projekto vadovu– Su kitais programuotojais

• Pvz.:– Du sąveikaujantys moduliai, nesusitarta, kuriame

bus atliekamas klaidų apdorojimas

Page 8: Program ų sistemų testavimas

Defektų šaltiniai

• Neapsižiūrėjimas– Žioplumo klaidos– Išvis nerealizuotas funkcionalumas

• Pvz.:– Praleistas objekto inicializavimas– Neparašytas metodas– Neparašytas reikalavimas

Page 9: Program ų sistemų testavimas

Defektų šaltiniai

• Perrašymas– Žinoma ką daryti, tiesiog lieka klaidų– Copy-paste’o klaidos

• Pvz.:– Neteisingas kintamojo vardas– Paliktos nereikalingos kodo eilutės

Page 10: Program ų sistemų testavimas

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

Page 11: Program ų sistemų testavimas

Defektų įtaka

• Nuo minimalios:– Rašybos klaida, pasislinkęs grafinis elementas

• Iki maksimalios:– Didžiuliai finansiniai nuostoliai, sveikata/gyvybė

Page 12: Program ų sistemų testavimas

Defektų klasės

• Reikalavimų/specifikacijos defektai• Projektavimo defektai• Programavimo (kodavimo) defektai• Testavimo defektai

Page 13: Program ų sistemų testavimas

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

Page 14: Program ų sistemų testavimas

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

Page 15: Program ų sistemų testavimas

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

Page 16: Program ų sistemų testavimas

Testavimo defektai

• Testavimo kodo defektai• Testavimo atvejo ar procedūros defektai

Page 17: Program ų sistemų testavimas

Yra klausimų?

Kas yra defektas?

Defektų šaltiniai,

įtaka

Defektų klasės

Page 18: Program ų sistemų testavimas

80-20 taisyklė (Pareto principas)

• 80% defektų galima ištaisyti su 20% pastangų

Defektų tipas0

10

20

30

40

50

60

70

80

Page 19: Program ų sistemų testavimas

Defekto apraš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

Page 20: Program ų sistemų testavimas

Defekto aprašymo struktūra

• Defekto valdymui skirti laukai• Trumpas defekto aprašymas• Detalus defekto aprašymas

Page 21: Program ų sistemų testavimas

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)

Page 22: Program ų sistemų testavimas

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

Page 23: Program ų sistemų testavimas

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

Page 24: Program ų sistemų testavimas

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ą:

Page 25: Program ų sistemų testavimas

Paveikslėlis

Page 26: Program ų sistemų testavimas

Pavyzdys: defekto aprašasID D059

Trumpas aprašymas Mac OS X diegiant programą parenkamas neteisingas katalogas

Užregistravo Vardenis Pavardenis

Data 2010-09-11

Būsena Atidarytas

Sistemos versija v0.9.3

Aplinka DEV_mac

Kritiškumas Kritinis

Prioritetas 2

Detalus aprašymas DEV_mac aplinkoje (Mac OS X Snow Leopard) paleidus diegimo vedlį, žingsnyje, kai turi būti pasirenkamas diegimo katalogas, pagal nutylėjimą pasirinktas C:\Windows\Program Files. Turėtų būti atitinkamas Mac OS katalogas.

Page 27: Program ų sistemų testavimas

Kiti galimi laukai

• Susiję TA• Defekto priežastis• Defekto klasė• Sistemos modulis• Atsakingas asmuo• ...

Page 28: Program ų sistemų testavimas

Yra klausimų?

Defekto aprašymas

Būtini laukai, galimi laukai

Page 29: Program ų sistemų testavimas

Defekto gyvavimo ciklas

Aktyvus

Ištaisytas

Uždarytas

Registruojama nauja problema

Problema išanalizuojama

Nedefektas

Nepavyksta atkartoti

Nebus taisoma Dublikatas Trūksta

info

Defektas taisomas

Patvirtinimo testavimas

Page 30: Program ų sistemų testavimas

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.)

Page 31: Program ų sistemų testavimas

Defektų valdymo sistemos

Tikslai:• Testavimo planavimas• Kontrolė ir stebėjimas• Defektų prevencija• Kokybės nustatymas ir kontrolė• Testavimo matavimas• Testavimo proceso gerinimas

Page 32: Program ų sistemų testavimas

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ų?

Page 33: Program ų sistemų testavimas

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

Page 34: Program ų sistemų testavimas

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”

Page 35: Program ų sistemų testavimas

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

Page 36: Program ų sistemų testavimas

Defektų valdymo sistemos

• Bugzilla• JIRA• Mantis BT• Eventum• …

Page 37: Program ų sistemų testavimas

80-20 taisyklė (Pareto principas)

• Ištaisius 20% defektų galima išspręsti 80% naudotojų problemų

Defektų tipas0

1020304050607080

Page 38: Program ų sistemų testavimas

Klausimai ir idėjos