350 likes | 575 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. Testavimo pagrindai. Testavimo istorija trumpai I šsamus testavimas, testavimo nutraukimo problema
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
Testavimo pagrindai • Testavimo istorija trumpai • Išsamus testavimas, testavimo nutraukimo problema • Testavimas atsižvelgiant į rizikas • Testavimo procesas • Testavimo vieta PĮ gyvavimo cikle • Skirtingų PĮ tipų testavimas
Testavimo istorija • Iki 1956: derinimas (debugging) • 1957–1978: demonstracinis testavimas • 1979–1982: destruktyvus testavimas • 1983–1987: vertinamasis testavimas • Nuo 1988: prevencinis testavimas
Išsamus testavimas • Ištestuotos visų galimų reikšmių (leistinų ir neleistinų) visos galimos kombinacijos • Neįmanoma • Pvz.: if (a > b) print (a) else print (b)
Išsamus testavimas • Testavimastiesiogiaikokybės negerina • Testavimas neparodo, kad defektų nėra – bet sistematiškas testavimas leidžia prognozuoti, ar yra ir kiek • Testavimas parodo, kad defektų yra – kokybė gerinama juos ištaisius • Tikslas – surasti kuo daugiau svarbių defektų
Išsamus testavimas • Resursų trikampis Kaina Funkcionalumas (features) Pasirinkite du Laikas Kokybė
Testavimo nutraukimo problema • Kada baigti testuoti? • Naujų defektų tikimybė proporcinga surastų defektų kiekiui
Testuojamumas • Ne viską įmanoma ištestuoti • Neaiškūs, prieštaringi reikalavimai • Techninės kliūtys • Resursų trūkumas • Sprendimas: • Reikalavimų peržiūros • Apsibrėžti, kas bus ištestuota, kas ne
Testavimo nutraukimo problema • Sprendimas: • Planuoti testavimą • Parinkti testavimo strategijas • Apsibrėžti testavimo pabaigos kriterijus • Testuoti atsižvelgiant į rizikas
Testavimas atsižvelgiant į rizikas • Rizika – faktorius, susijęs su galimomis neigiamomis pasekmėmis • Rizikos tipai: • Saugos, saugumo, ekonominė, politinė, techninė... • Produkto ir projekto
Testavimas atsižvelgiant į rizikas • Rizika matuojama įvertinant tikimybę ir poveikį • Rizikų matrica: Tikimybė Poveikis
Testavimas atsižvelgiant į rizikas • Rizikų matricos trūkumai: • Nepakankama raiška • Klaidos • Dviprasmiški duomenys ir rezultatai • Sprendimas: • Naudoti atsargiai, su išsamiais paaiškinimais • Viduryje esančioms rizikoms reikalingas papildomas tyrimas
Testavimas atsižvelgiant į rizikas • Testavimas – rizikos mažinimo būdas • Natūralu: sudėtingesnis projektas daugiau rizikų reikia daugiau testavimo
Testavimas atsižvelgiant į rizikas • Testavimas atsižvelgiant į rizikas (risk based testing): • Nustatom rizikų lygius • Atitinkamai prioritetizuojam testavimą • Bet kuriuo laiko momentu turim mažiausią įmanomą riziką
Pasikartojam • Visko ištestuoti neįmanoma • Svarbu planuoti testavimą: • Apsibrėžti, ką testuosim • Prioritetus teikti atsižvelgiant į rizikas
Pesticidų efektas • Kuo daugiau testuojam, tuo sistema tampa atsparesnė testams: • Programuotojai mokosi nedaryti tokių pat klaidų (daro kitas) • Ieškant su tais pačiais testais, defektų neberandama • Sprendimas – nuolat kurti naujus, kitokius testus
Testavimo procesas Testavimo planavimas ir valdymas Analizė ir testų kūrimas Testavimo vykdymas Rezultatų įvertinimas, ataskaitų rengimas Testavimo pabaigos veiklos
Testavimo planavimas ir valdymas • Testavimo planavimas: • Tikslų, apimties apibrėžimas, rizikų identifikavimas • Testavimo būdas (metodai, komanda, aplinka, įrankiai) • Grafiko sudarymas • Testavimo pabaigos kriterijai • Testavimo valdymas: • Rezultatų analizė • Laukiamo ir realaus progreso palyginimas, palyginimas su testavimo pabaigos kriterijais • Sprendimo priėmimas, jei kažkas negerai
Analizė ir testų kūrimas • Reikalavimų, techninių specifikacijų ir kt. peržiūra • Testavimo sąlygų ir duomenų identifikavimas • Testų kūrimas • Reikalavimų ir sistemos testuojamumo įvertinimas • Testavimo aplinkos ir infrastruktūros projektavimas/realizavimas
Testavimo vykdymas • Testavimo aplinkos patikrinimas • Testavimo atvejų vykdymas numatyta tvarka (rankiniu ar automatiniu būdu) • Testavimo rezultatų registravimas • Testavimo veiklų kartojimas esant reikalui – atlikus pakeitimą ar ištaisius defektą
Rez. įvertinimas, ataskaitos • Ar pasiekti apibrėžti pabaigos kriterijai • Ar reikia daugiau testų, ar reikia pakeisti pabaigos kriterijus • Testavimo ataskaitos suinteresuotiems asmenims parengimas: • Apibendrinti rezultatai • Kas buvo ir nebuvo testuota
Testavimo pabaigos veiklos • Užtikrinimas, kad visa dokumentacija tvarkinga • Konstatavimas, kad sistema priimta • Testavimo aplinkos ir įrankių uždarymas/archyvavimas • Sistemos perdavimas palaikymo komandai • Išmoktų pamokų aptarimas/dokumentavimas
Pasikartojam Testavimo planavimas ir valdymas Analizė ir testų kūrimas Testavimo vykdymas Rezultatų įvertinimas, ataskaitų rengimas Testavimo pabaigos veiklos
Testavimo vieta PĮ gyvavimo cikle • Kada testuoti? • Kai pilnai suprogramuota? • Rizikos pvz. – nekorektiški reikalavimai • Gera praktika – testavimą įtraukti kuo anksčiau • Projekto planavimas • Reikalavimų peržiūros • Iteratyvus testavimas
PĮ gyvavimo ciklo modeliai V modelis Iteratyvus modelis Produkto tikslai ir prioritetai Reikalavimai Priėmimo testavimas 1 iteracija Sistemos specifikacija Sistemos testavimas Progr. Test. Techninė specifikacija Integracijos testavimas n iteracija Modulio projektas Modulio testavimas Progr. Test. Programavimas Produktas
Judrusis (Agile) PĮ kūrimas • Scrum, XP... • Trumpos iteracijos • Mažiau planavimo, daugiau grįžtamojo ryšio • Test-driven development: • Pirmiausia programuojam testus • Tada PĮ kodą • Pademonstruojam suinteresuotiems asmenims, vėl programuojam testus
Pasikartojam • Testavimo vieta PĮ gyvavimo cikle – kiek įmanoma anksčiau • Gera praktika – programuoti ir testuoti iteratyviai
Skirtingų PĮ tipų testavimas • Skirtinga PĮ skirtingos savybės skirtingas testavimas • Asmeninių kompiuterių (AK) PĮ • Superkompiuterių (mainframe) PĮ • Klientų-serverių PĮ • Internetinės sistemos
Asmeninių kompiuterių PĮ • PĮ veikia viename kompiuteryje • Testuojant atsižvelgti: • PC/Mac architektūros, skirtingos OS • Suderinamumas su kitomis programomis • Resursų naudojimas
Superkompiuterių PĮ • Fiziškai dideli, galingi kompiuteriai • Ribota naudotojo sąsaja • Aukštas pasiekiamumo, saugumo lygis, galimybė sujungti kelis superkompiuteris • Testuojant atsižvelgti: • Sudėtingos testavimo aplinkos sukūrimas • Didelės apimties testavimo duomenys • Patikimumo ir klaidų toleravimo, plečiamumo, saugumo testavimas
Klientų-serverių PĮ • Ryšys per tinklą, serveris laukia klientų užklausų • “Ploni” ir “stori” klientai • Testuojant atsižvelgti: • Klientų užklausų simuliavimas • Ilgalaikio pasiekiamumo testavimas • Saugumo ir našumo testavimas • Testavimas tinkle su daug klientų
Internetinės sistemos • Iš esmės klientų-serverių PĮ l. dideliame tinkle su “plonu” klientu (šiais laikais “storėja” – JavaScript, ActiveX) • Dinamiškai generuojamas turinys • Testuojant atsižvelgti: • Atstumas iki serverio ir tarp klientų • Itinskirtingosaplinkosirnaršyklės • Našumo, saugumo, patogumo testavimas, pritaikymas neįgaliesiems