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

Program ų sistemų testavimas

Embed Size (px)

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. Testavimo planavimas ir valdymas. Testavimo planavimas ir darb ų apimties vertinimas ( estimation ) - PowerPoint PPT Presentation

Citation preview

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

Testavimo planavimas ir valdymas

• Testavimo planavimas ir darbų apimties vertinimas (estimation)

• Progreso stebėjimas ir valdymas

Page 3: Program ų sistemų testavimas

Testavimo planavimas ir valdymas

• Testavimo planavimas:– Tikslų, apimties apibrėžimas, rizikų identifikavimas– Testavimo būdas (metodai, komanda, aplinka,

įrankiai)– Grafiko sudarymas– Testavimo pabaigos kriterijai

Page 4: Program ų sistemų testavimas

Testavimo planavimas ir valdymas

• Testavimo valdymas:– Rezultatų analizė– Laukiamo ir realaus progreso palyginimas,

palyginimas su testavimo pabaigos kriterijais– Sprendimo priėmimas, jei kažkas negerai

Page 5: Program ų sistemų testavimas

Testavimo planavimas. Strategija

• Testavimo strategija – KAIP bus testuojama• Testavimo strategija gali būti sudaroma:– Organizacijai– Projektų/produktų grupei– Projektui

• Testavimo strategija gali būti sudaroma:– Iš anksto (prevencinė)– Pradedant testavimą (reakcinė)

Page 6: Program ų sistemų testavimas

Testavimo planavimas. Strategija

• Galimos strategijos:– Remtis specifiniais standartais– Remtis PĮ kūrimo proceso praktikomis:

• Agile, krioklys ...

– Naudoti modelius, statistinę informaciją– Perpanaudoti TA iš anksčiau– Koncentruotis į tiriamąjį testavimą– Remtis ekspertų/ambasadorių konsultacijomis– ...– Kombinacijos

Page 7: Program ų sistemų testavimas

Testavimo planavimas. Strategija

• Renkantis strategiją atsižvelgti į:– Rizikas– Testuotojų žinias ir įgūdžius– Testavimo tikslą– Reguliacinius reikalavimus– Produkto ir verslo specifiką

Page 8: Program ų sistemų testavimas

Testavimo planavimas. Strategija

• Testavimo strategija gali būti atskiras dokumentas arba projekto testavimo plane

• Turinys aptartas paskaitoje apie testavimo dokumentaciją

Page 9: Program ų sistemų testavimas

Testavimo planas

• Svarbiausia testavimo vadovo veikla – testavimo plano sudarymas

• Testavimo planas leidžia numatyti užduotis, jų atlikimo grafiką, resursus

Page 10: Program ų sistemų testavimas

Testavimo planas

• Projekto testavimo planas gali būti vienas arba• Bendras projekto testavimo planas + etapų

testavimo planai• Turinys aptartas paskaitoje apie testavimo

dokumentaciją

Page 11: Program ų sistemų testavimas

Darbų apimties vertinimas

• Norint sudaryti testavimo planą, reikia įvertinti, kiek reikės darbų:– Žmonių– Laiko

Page 12: Program ų sistemų testavimas

Darbų apimties vertinimas

• Įvertinimas – spėjimas, pagrįstas turimomis žiniomis apie situaciją

• Realus skaičius paaiškėja tik pabaigus darbus

Page 13: Program ų sistemų testavimas

Darbų apimties vertinimas

• Vertinant atsižvelgiant į projekto dydį ir specifiką numatoma, kiek reikės laiko

• Jei įvertinimas stipriai skiriasi nuo projekto termino, reikia kažką daryti:– Keisti apimtį– Keisti terminą– Abu

Page 14: Program ų sistemų testavimas

Darbų apimties vertinimas

• Vertinimo parametrai:– Programavimo darbų apimtis (matuojama laiku,

LOC, kodo sudėtingumu)– Kodo pakartotinis panaudojimas– Išėjimo kriterijų griežtumas– Automatizavimo apimtis– Testuotojų patirtis– Aplinka (jos stabilumas)– Numatoma PĮ kokybė prieš testavimą

Page 15: Program ų sistemų testavimas

Darbų apimties vertinimas

• Į vertinimą įtraukiama:– Testavimo atvejų kūrimas– Testavimo atvejų vykdymas– Defektų registravimas– Patvirtinimo testavimas– Regresinis testavimas

Page 16: Program ų sistemų testavimas

Darbų apimties vertinimas

• Vertinant taip detaliai išnagrinėti kiekvieną projektą – neįmanoma

• Egzistuoja efektyvesnės/paprastesnės vertinimo metodikos

• Remiantis metodikomis, vis tiek reikia žinoti minėtus aspektus, kad nenuklysti į lankas

Page 17: Program ų sistemų testavimas

Darbų apimties vertinimas

• Metodikos:– Remiantis intuicija– Bendras sutarimas– Remiantis metrikomis– Detalus darbų skaidymas– Remiantis programavimo darbų apimtimi– Testavimo taškų analizė (TTA (angl. TPA))

Page 18: Program ų sistemų testavimas

Darbų apimties vertinimas remiantis intuicija

• Pagrįstas patirtimi• Vertinimas gali būti tikslus, gali būti netikslus• Tikslesnis jeigu:– atliekamas žmogaus, kuris testuos– tas žmogus jau turėjo panašią užduotį– yra gera dokumentacija

Page 19: Program ų sistemų testavimas

Darbų apimties vertinimas bendru sutarimu

• Kiek saugiau nei pavienio žmogaus intuicija• Išvengiama kraštutinių vertinimų– Per didelių– Per mažų

• Tikslesnis, jei vertinantys žmonės turi tinkamą patirtį ir žinias

Page 20: Program ų sistemų testavimas

Darbų apimties vertinimas remiantis metrikomis

• Remiamasi metrikomis, surinktomis ankstesnių projektų/užduočių metu

• Tikslumas priklauso nuo:– Surinktų metrikų tikslumo– Ankstesnių projektų/užduočių panašumo į šią

Page 21: Program ų sistemų testavimas

Darbų apimties vertinimas remiantis detaliu darbų skaidymu

• Idėja – lengviau įvertinti mažos paprastos užduoties trukmę

• Skaidome visas užduotis į mažesnes, kurias galime lengvai įvertinti

• Reikalavimas – gerai žinoti, kas tiksliai turi būti padaryta (detali specifikacija)

• Bendras įvertinimas – įvertinimų suma (bottom-up)• Paklaidos vertinant kiekvieną užduotį sumuojasi!

Page 22: Program ų sistemų testavimas

Darbų apimties vertinimas remiantis detaliu darbų skaidymu

Testavimas

Funkcinis

Pagal specifikaciją

TA rašymas

TA vykdymas

Patirtimi paremtas

Našumo

Testų sukūrimas

Testų vykdymas

Ataskaitos

Page 23: Program ų sistemų testavimas

Darbų apimties vertinimas remiantis programavimo darbų apimtimi

• Testavimo apimtis – procentas programavimo apimties:– Pagal vidinę patirtį– Pagal standartines normas (35-50%)

• Top-down• Labai bendras įvertinimas, neaišku, kiek tenka

kokioms testavimo veikloms• Naudojama, kai beveik nieko nežinoma, bet

daugmaž žinoma programavimo darbų apimtis

Page 24: Program ų sistemų testavimas

Darbų apimties vertinimas pagal TPA

• Vertinama pagal formulę (Bottom-up):– TPf = FPf * Df * Qd

• Reikalavimai:– Detali specifikacija– Detalus testavimo užduočių žinojimas– Testuotojų patirtis

• Prasideda nuo funkcinių taškų analizės (FPA), kiekvienam funkciniam taškui išskiriami testavimo taškai, tuomet vertinamas kiekvienas taškas remiantis jo sudėtingumu ir testuotojo patirtimi

Page 25: Program ų sistemų testavimas

Darbų apimties vertinimas pagal TPA

• TPf = FPf * Df * Qd

– TPf – funkcijai priskirtų testavimo taškų skaičius

– FPf – funkcijai priskirtų funkcinių taškų skaičius

– Df – nuo funkcijos priklausančių veiksnių svoris

– Qd – nuo dinaminių kokybės charakteristikų priklausančių veiksnių svoris

Page 26: Program ų sistemų testavimas

Kurią metodiką rinktis?

• Priklauso nuo to turimų žinių ir laiko• Geriausia vertinti naudojant > 1 metodiką ir

palyginti rezultatus:– Jei skiriasi, gal daromos kažkokios prielaidos – ar

jos teisingos?

Page 27: Program ų sistemų testavimas

Pasikartojam

• Testavimo planavimas• Testavimo darbų apimties vertinimas– Vertinimo parametrai– Metodikos

Page 28: Program ų sistemų testavimas

Progreso stebėjimas ir valdymas

• Testavimo metu stebimas progresas, tam kad:– Žinoti projekto progresą– Laiku imtis veiksmų kilus rizikoms

Page 29: Program ų sistemų testavimas

Progreso stebėjimas ir valdymas

• Testavimas turi du pagrindinius kriterijus:– Susijusius su laiku ir kaštais: ar projektas bus

baigtas laiku ir neviršijant biudžeto?– Susijusius su kokybe: ar sukurtas produktas bus

priimtinas jo naudotojams?

Page 30: Program ų sistemų testavimas

Laiko ir kaštų stebėjimas

• Lyginame realų laiką ir kaštus su skaičiais iš įvertinimų:– Testavimo strategijų ir planų rengimo– TA ir testavimo procedūrų rengimo– Testavimo aplinkų ruošimo– Testavimo vykdymo– Defektų, reikalaujančių pertestavimo, skaičiaus– Testavimo ataskaitų rengimo

Page 31: Program ų sistemų testavimas

Laiko ir kaštų stebėjimas

• Iš minėtų metrikų išvedamos dar svarbesnės:– Įvykdytų vs. planuotų įvykdyti testų skaičius– Testų praeinamumo koeficientas– Defektų, užregistruotų vienam testui, skaičius– Defektų sprendimo greitis

Page 32: Program ų sistemų testavimas

Laiko ir kaštų stebėjimas

• Vaizdžiai pateikus šias metrikas (galbūt grafiškai):– Galima prognozuoti ateities skaičius– Galima įvertinti, ar projektas bus baigtas laiku ir

neviršys biudžeto

Page 33: Program ų sistemų testavimas

Kokybės stebėjimas

• Matuojama:– Kodo padengimas– Verslui svarbių funkcijų / reikalavimų padengimas– Defektų radimo ir taisymo greitis

Page 34: Program ų sistemų testavimas

Kokybės stebėjimas

• Prognozuojama kokybė projekto pabaigoje pagal išvestines metrikas (tendencijas):– Realus vs. planuotas kodo padengimas– Reikalavimų padengimo procentas– Kritinių defektų radimo greitis– Kritinių defektų taisymo greitis– Prognozuojamas išėjimo kriterijų pasiekimo laikas

Page 35: Program ų sistemų testavimas

Bendros projekto būsenos nustatymas

• Laiko/kaštų ir kokybės matavimų rezultatai:– Abu geri – viskas aišku – Abu blogi – viskas aišku – Kiti variantai įdomesni

Page 36: Program ų sistemų testavimas

Bendros projekto būsenos nustatymas

• Testavimo progresas atitinka planą, bet kokybės rodikliai gerokai prastesni:– Pabaigoje turbūt netenkinsim išėjimo kriterijų– Ar testavimui pateiktas prastesnės nei planuota

kokybės kodas?– Neatliekamas regresinis testavimas?– ...?– Reikia atitinkamų veiksmų

Page 37: Program ų sistemų testavimas

Bendros projekto būsenos nustatymas

• Testavimo progresas atitinka planą, o kokybė aukštesnė, nei planuota:– Atrodo, puiku– O galbūt nepakankamai kruopščiai testuojama?

Page 38: Program ų sistemų testavimas

Testavimo valdymas - veiksmai

• Svarbu, kad veiksmai būtų efektyvūs ir laiku• Testavimo vadovo galia gali būti ribota• Testavimo vadovas gali pats:– Perskirstyti testavimo prioritetus– Galbūt priskirti daugiau resursų

• Reikės bent projekto vadovo, kad:– Pakeisti kuriamo produkto apimtį– Pakeisti terminą

• Kad įtikinti aukščiau esančius asmenis, reikia tinkamos ataskaitos su skaičiais ir argumentais

Page 39: Program ų sistemų testavimas

Pasikartojam

• Progreso stebėjimas ir valdymas:– Kokie kriterijai vertinami stebint testavimo eigą?– Kaip pagal juos įvertinti bendrą projekto būseną?– Kokių veiksmų gali būti imamasi, kas už juos

atsakingas?

Page 40: Program ų sistemų testavimas

Klausimai ir idėjos