1 / 38

Programų sistemų testavimas ir konfigūracijos valdymas ( PSTV7134 )

Programų sistemų testavimas ir konfigūracijos valdymas ( PSTV7134 ). Andrius Adamonis http://www.mif.vu.lt/~adamonis#pstv Tema01 – Testavimo pagrindai 2013/2014 m.m. rudens semestras. Apšilimas. Kuris apibrėžimas teisingas?.

blanca
Download Presentation

Programų sistemų testavimas ir konfigūracijos valdymas ( PSTV7134 )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Programų sistemų testavimas irkonfigūracijos valdymas (PSTV7134) Andrius Adamonis http://www.mif.vu.lt/~adamonis#pstv Tema01 – Testavimo pagrindai 2013/2014 m.m. rudens semestras

  2. Apšilimas

  3. Kuris apibrėžimas teisingas? • A. Testavimas yra procesas, skirtas įrodyti, kad programinėje įrangoje klaidų nėra • B. Testavimo paskirtis yra įrodyti, kad programa vykdo specifikuotas funkcijas teisingai • C. Testavimas yra procesas, skirtas įrodyti, kad programinė įranga atlieka tai, ką ji skirta atlikti • Testavimas – programinės įrangos vykdymo procesas su tikslu surasti defektus

  4. Defektas (arba bugas) yra: • A. Žmogaus padaryta klaida • B. Problema, su kuria susidūrė PĮ naudotojas • C. Klaidos rezultatas • D. Rezultatas sutrikimo, kuris gali sukelti klaidą

  5. Testavimo rezultatas (išdava) yra: • A. Programinės įrangos kokybės padidėjimas • B. Išvada apie programinės įrangos kokybę • C. Identifikuoti kaltieji dėl programinės įrangos sutrikimų • D. Išvada, kad programinėje įrangoje nelikę klaidų

  6. Kas yra pertestavimas? • A. To paties teksto įvykdymas tomis pačiomis aplinkybėmis, siekiant atkartoti problemą • B. Paviršutinis testavimo paketo įvykdymas, siekiant įsitikinti, ar neatsirado naujų klaidų • C. Patikrinimas, ar iš anksto apibrėžti testavimo fazės kriterijai yra įvykdyti • D. Anksčiau nepraėjusio testo pakartojimas su nauja programinės įrangos/duomenų/dokumentų versija, siekiant įsitikinti, kad problema išspręsta

  7. Kam reikalingas testavimas?

  8. Diskusija - kam reikalingas testavimas? • Kaip programinės įrangos defektai gali paveikti žmones, aplinką ar įmonę? Pavyzdžiai? • Kas yra defekto priežastis ir kas yra poveikis? • Pavyzdžiai, kodėl testavimas yra būtinas. • Kodėl testavimas yra kokybės užtikrinimo sudedamoji dalis ir kaip prisideda prie kokybės gerinimo? • Kas yra klaida, defektas, trūkumas, trikis, sutrikimas, bugas?

  9. Kodėl programinė įranga lūžinėja? • Ariane 5 raketos nesėkmingas paleidimas 1996 metais • Web svetainių lūžimai dėl apkrovų • Finansinių sistemų klaidos

  10. Sąsajos • Žmogaus klaida  PĮ defektas  Sutrikimas

  11. Sąvokos • Klaida (error) – programų autoriaus apsirikimas, klaidingas požiūris, supratimas. • Defektas/trūkumas (defect/fault) – atsiranda dėl klaidos. Programa gali veikti neteisingai, ne pagal specifikaciją. • Trikis/sutrikimas (failure) – sistemos ar jos komponento negalėjimas atlikti funkcijos pagal iškeltus reikalavimus.

  12. Testavimo principai

  13. Diskusija - kas yra testavimas? • Testavimo tikslai. • Testavimo skirtinguose PĮ gyvavimo ciklo etapuose tikslų pavyzdžiai. • Kuo testavimas skiriasi nuo derinimo (debug)? • Kokios yra pagrindinės testavimo veiklos ir užduotys (pradedant testavimo planavimu ir baigiant užbaigimu)?

  14. Testavimas ir kokybė • Testavimas tiesiogiai kokybė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ų • Derinimas – defektų priežasčių paieška, siekant lokalizuoti ir ištaisyti

  15. Testavimo tipai • Statinis testavimas – testavimas nevykdant kodo • Inspektavimas, peržiūros, peer-review • Dinaminis testavimas – programinės įrangos kodo vykdymas su testiniais duomenimis • Struktūrinis testavimas (white-box testing) • Funkcinis testavimas (black-box testing)

  16. Testuojamumas • Ne viską įmanoma ištestuoti • Neaiškūs, prieštaringi reikalavimai • Techninės kliūtys • Resursų trūkumas • Išsamus testavimas – ištestuotos visų galimų reikšmių (leistinų ir neleistinų) visos galimos kombinacijos • Neįmanoma!

  17. Kiek testuoti? • Resursų trikampis: • Naujų defektų tikimybė proporcinga surastų defektų kiekiui • Testavimas ir rizika – kuo didesnės defekto pasekmės, tuo daugiau testuoti reikia Kaina Funkcio-nalumas (features) Laikas Kokybė

  18. Testavimo nutraukimo problema Sprendimas: • Planuoti testavimą • Parinkti testavimo strategijas • Apsibrėžti testavimo pabaigos kriterijus • Testuoti atsižvelgiant į rizikas

  19. Pavyzdys Acceptance Test II Regression coverage

  20. Pavyzdys Acceptance Test II Regression Exit criteria • Will use more or less same structure and process as for previous test phases • Acceptable levels of Executed and Passed Test cases per stream will be according to the below. Actually all test cases chosen for this regression testing are considered as priority 1.

  21. Ankstyvas testavimas

  22. Defektų klusterizavimas • Defektų priežastys: • Sistemos sudėtingumas • Neatsparus pakeitimams programos kodas („suraizgytas“) • Pakeitimo įtaka kitiems pakeitimams • Programuotojų patirtis • Programuotojų patirties trūkumas • Pareto principas: 80% defektų randama 20% kodo • Defektų pasiskirstymas turėtų būti nustatomas ir testavimo pastangos turėtų būti sutelkiamos pagal jį

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

  24. Testavimo procesas

  25. Testavimo procesas Testavimo planavimas ir valdymas Analizė ir testų kūrimas Testavimo vykdymas Rezultatų įvertinimas, ataskaitos Testavimo pabaigos veiklos

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

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

  28. 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ą

  29. Rezultatų į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

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

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

  32. Psichologija ir etika

  33. Diskusija - testavimo principai • Kokie yra psichologiniai faktoriai, įtakojantys testavimo sėkmę? • Kuo skiriasi programuotojo ir testuotojo mąstymo pobūdis?

  34. Psichologiniai faktoriai • Nuostatos: • Programuotojas – parašyti ir įrodyti, kad veikia • Testuotojas – įrodyti, kad yra defektų • Testavimas gali būti efektyvesnis, kai vykdomas ne tų žmonių, kurie parašė kodą • Dėl nuostatų • Dėl nepriklausomumo • Testuotojai oponuoja programuotojams? • Neturėtų: tikslas yra kartu sukurti kokybišką produktą

  35. Išvados

  36. Testavimo principai • 1. Testavimas yra programinės įrangos vykdymas, naudojant parengtus testus, siekiant (1) surasti defektus, (2) įvertinti kokybę • 2. Kai testavimo tikslas yra surasti klaidas, tuomet geras testas yra toks, kuris turi dideles galimybes atrasti dar nežinomus defektus • 3. Testavimo rezultatai turi būti kruopščiai tikrinami (ir interpretuojami) • 4. Testas turi apibrėžti laukiamą programos rezultatą

  37. Testavimo principai • 5. Testai turi būti kuriami ir korektiškoms, ir nekorektiškoms įvestims • 6. Tikimybė, kad programinėje įrangoje yra dar nežinomų defektų, yra proporcinga jau surastų tame komponente defektų skaičiui • 7. Testavimą turi atlikti nuo programuotojų nepriklausomi testuotojai • 8. Testai turi būti atkartojami ir perpanaudojami • 9. Testavimas turi būti planuojamas

  38. Testavimo principai • 10. Testavimo veiklos turi būti integruojamos į programinės įrangos gyvavimo ciklą • 11. Testavimas yra kūrybinis ir kupinas iššūkių darbas!

More Related