1 / 34

Program ų sistemų testavimas

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 metodų klasifikavimas. Statinis / dinaminis testavimas Pozityvus / negatyvus testavimas

zeno
Download Presentation

Program ų sistemų testavimas

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 Aistė Stikliūtė aiste.stikliute@mif.vu.lt http://web.vu.lt/mif/a.stikliute +370 604 17281 VU MIF Programų sistemų katedra

  2. Testavimo metodų klasifikavimas • Statinis / dinaminis testavimas • Pozityvus / negatyvus testavimas • Juodos / baltos / pilkos dėžės testavimas • Aprašytas / neaprašytas testavimas • Rankinis / automatizuotas testavimas

  3. Statinis / dinaminis testavimas • Statinis testavimas – programos (specifikacijos arba kodo) testavimas nevykdant programos • Peržiūros • Statinė kodo analizė • Dinaminis testavimas – PĮ testavimas vykdant šią PĮ

  4. Statinio testavimo privalumai • Paprastaitrunkatrumpiauneidinaminis • Pasiekia 100% kodosakiniųpadengimą gan greitai – dinaminis paprastai pasiekia < 50% • Gali būti atliekamas prieš kompiliavimą • Gali rasti klaidas, kurių d.t. negali: sintaksės klaidas, sunkiai palaikomą ir standartų neatitinkantį kodą • Pigesnis, įrankių naudojimas labiau atsiperka • Statinistestavimas– profilaktika, dinaminis – vaistai 

  5. Dinaminio testavimo privalumai • “Tikri”, o ne potencialūs defektai • Gali rasti defektus, kurių negali rasti statinis t. • Paprasčiausias d.t. gali būti atliekamas be specialių įrankių

  6. Statinis ar dinaminis testavimas? • Teisingas atsakymas – abu • Papildo vienas kitą • Laikui spaudžiant: • Paprastai renkamasi dinaminį testavimą • Efektyvesnis – statinis testavimas

  7. Pozityvus / negatyvus testavimas • Pozityvus testavimas: • Tikslas – parodyti, kad sistema veikia. • Testuojama įvedantkorektiškusduomenis. • Kitaip – praeinantis testas ("test to pass“). • Negatyvus testavimas: • Tikslas – parodyti, kad sistemaneveikia. • Testuojama įvedantnekorektiškusduomenis. • Kitaip – nepraeinantis testas ("test to fail“).

  8. Pozityvus ar negatyvus testavimas? • Teisingas atsakymas – abu • Papildo vienas kitą • Laikui spaudžiant: • Paprastai renkamasi pozityvų testavimą • Reikėtų įvykdyti su didžiausia rizika susijusius negatyvius scenarijus

  9. Pavyzdys • Reikalavimas: jei naudotojas įveda blogus duomenis, sistema pateikia klaidos pranešimą • Testai: • T: Sistema rodo klaidą, kai turi rodyti • N: Sistema nerodo klaidos, kai neturi rodyti • Pamastymui: • Sistema rodo klaidą, kai neturi rodyti? • Sistema nerodo klaidos, kai turi rodyti?

  10. Pasikartojam  • Statinis / dinaminis testavimas • Skirtumai • Privalumai, trūkumai • Pozityvus / negatyvus testavimas • Skirtumai • Privalumai, trūkumai

  11. Juodos/baltosdėžės testavimas • Juodos dėžės testavimas – testavimas nežinant programos struktūros (kodo) ar ją ignoruojant • Baltos dėžės testavimas – testavimas, paremtas programos vidinės struktūros analize

  12. Pilkos dėžės testavimas • Mišri technika • Pvz.: beveik juodos dėžės testavimas, bet patikrinant duomenis DB

  13. Juodos dėžės privalumai • Testuotojui nereikia žinoti apie realizaciją, įskaitant specifines programavimo kalbas • Testuotojas ir programuotojas nepriklauso vienas nuo kito • Testuojama iš naudotojo perspektyvos • Testavimo atvejai gali būti kuriami iškart kai tik turima specifikacija

  14. Juodos dėžės trūkumai • Gali būti ištestuota tik maža aibė įvesties reikšmių – visoms prireiktų ~begalybės laiko • Gali būti neištestuota daug kelių per programą • Be tikslių ir aiškių specifikacijų sunku sukurti testavimo atvejus • Gali kartotis testavimo atvejai – testuotojas nežino, ką programuotojas jau testavo

  15. Juodos dėžės metodai. Pvz.: • Scenarijų testavimas • Testavimas pagal reikalavimų specifikaciją • Našumo, apkrovos testavimas • Atsiktinis testavimas • ...

  16. Atsitiktinis testavimas • Testuojama parenkant atsitiktines įvesties reikšmes • Tikslas – ištestuoti be jokių žmogiškų prielaidų • Kad ir kokios nekorektiškos reikšmės ar veiksmų seka – programa turi nelūžti • Tinka aptikti saugumo spragoms • Dažnai automatizuojamas – ta pati vieta testuojama su įvairiomis reikšmėmis

  17. Baltos dėžės testavimas • Atsižvelgia į vidinį sistemos ar modulio mechanizmą • Reikalingos programavimo žinios, norint identifikuoti visus įmanomus kelius per programą • Parenkami tokie įvesties duomenys, kad būtų ištestuoti įvairūs keliai per programą; apibrėžiami teisingi rezultatai

  18. Baltos dėžės privalumai • Lengva atrasti įvesties duomenis, padedančius efektyviai ištestuoti programą • Pvz.: surandam duomenis DB • Pvz.: pažiūrim kode, ko tikisi metodas • Padeda optimizuoti kodą (ir atitinkamai sumažinti potencialių defektų skaičių)

  19. Baltos dėžės trūkumai • Reikalingas patyręs testuotojas  brangiau kainuoja • Sunku peržiūrėti kiekvieną kodo gabalėlį  randama tik dalis klaidų • Neranda klaidų, kilusių dėl to, kad kažkas buvo praleista

  20. Baltos dėžės metodai. Pvz.: • Sakinių testavimas • Sprendimų/atšakų (branches) testavimas • Kelių testavimas • Modifikuotas sprendimų testavimas • ...

  21. Baltos ir juodos dėžės metodai. Pvz: • Patikimumo (robustness) testavimas • Ribinių reikšmių metodas • Defektų įterpimo metodas • ...

  22. Defektų įterpimo metodas • Į kodą tyčia įterpiami defektai: • Žinomi defektai. Testavimo efektyvumui matuoti ir PĮ kokybei prognozuoti • Specialus kodas ištestuoti sunkiai atkartojamoms klaidų situacijoms • Kodo mutacija (naudojant įrankius) • Svarbu nepamiršti įterptus defektus pašalinti!

  23. Kodo mutacijos pvz.: • Pakeičiamas kodas: • a + 1 a – 1 • a  b • Defektai generuojami PĮ vykdymo metu: • imituojamas RAM sugadinimas • imituojamas OS kvietimas

  24. Pasikartojam  • Juodos / baltos/pilkos dėžės testavimas: • Privalumai, trūkumai • Metodai • Vėlgi: vienas kitą papildo

  25. Aprašytas / neaprašytas testavimas • Aprašytas testavimas (scripted testing) – iš anksto dokumentuoti testavimo žingsniai • Neaprašytas testavimas (unscripted testing) – nedokumentuoti testavimo žingsniai, jie kuriami ir atliekami eigoje • Vienas kitą papildo

  26. Aprašytas testavimas • Lengva atkartoti konkretų testą: • Programuotojams taisant • Testuotojams atliekant pakartotinį testavimą • Struktūriškesnis pateikimas, lengviau padengti visus reikalavimus • Reikalinga pradinė investicija TA aprašymui

  27. Neaprašytas testavimas • Sunku atkartoti konkretų testą • Sunku padengti visus reikalavimus • Nereikia pradinės laiko investicijos • Testavimas kūrybiškesnis

  28. Rankinis / automatizuotas testavimas • Rankinis testavimas • testavimą atlieka testuotojas, pats vykdydamas PĮ • seniausias ir tiksliausias testavimo būdas • Automatizuotas testavimas • testavimas atliekamas naudojant įrankį/įrankius

  29. Automatizuotas testavimas • Įrankių tipai: • Automatinio TA generavimo įrankiai • Modulių testavimo įrankiai • GUI testavimo įrankiai: • Interneto aplikacijų • Asmeninių kompiuterių PĮ • Našumo testavimo įrankiai • ...

  30. Automatizuotas testavimas • Privalumai: • Leidžia išvengti žmogiškojo faktoriaus (žioplumas , pamiršimas) • Tą patį testą galima atlikti daug kartų (defektų atkartojimas, regresinis testavimas) • Galima testuoti tą patį scenarijų su daug skirtingų reikšmių • Randa netikėtas klaidas

  31. Automatizuotas testavimas • Trūkumai: • Reikalinga didelė pradinė investicija (laiko, resursų) • Ne visada atsiperka, tinka (testo nereikės/nepavyks vykdyti daug kartų  automatizuoti nereikėtų) • Aptinka ne visus defektus (neieškom  nerandam)

  32. Automatizuotas testavimas • Automatizuoti verta, kai: • Testas bus vykdomas daug kartų: • Regresinis testavimas • Skirtingos konfigūracijos (OS, naršyklės) • Reikalavimai nesikeis • Testas skirtas patikrinti ne logiką, o funkcionalumą palaikantį kodą

  33. Pasikartojam  • Aprašytas / neaprašytas testavimas: • Skirtumai, privalumai, trūkumai • Rankinis / automatizuotas testavimas: • Privalumai, trūkumai • Automatizuoto testavimo įrankiai

  34. Klausimai ir idėjos

More Related