1 / 36

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 apimtis. Visko ištestuoti neįmanoma Skirtingų tipų sistemoms reikalingi skirtingi: Testavimo metodai/įrankiai

adriel
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 apimtis • Visko ištestuoti neįmanoma • Skirtingų tipų sistemoms reikalingi skirtingi: • Testavimo metodai/įrankiai • Testavimo lygiai, sudėtingumas • Projekto pradžioje apibrėžiama testavimo apimtis – ką testuosime

  3. Testavimo apimtis • Testavimo lygis, testavimo objektas • Testavimo tikslai • Verifikavimas, validavimas • Bazinis (smoke) testavimas • Patvirtinimo testavimas, regresinis testavimas • Alfa, beta testavimas • Sistemos parengtumo darbui testavimas • Testavimas sistemos palaikymo metu

  4. Testavimo lygmuo • Testavimo objektas • modulis • modulių integracija • sistema • sistemų integracija • Sąryšis su V modeliu Reikalavimai Priėmimo testavimas Sistemos specifikacija Sistemos testavimas Techninė specifikacija Integracijos testavimas Modulio projektas Modulio testavimas Programavimas

  5. Modulio (unit) testavimas • Modulis: • Procedūra, funkcija, metodas, ... • Atliekamas programuotojų • Ar modulis atitinka specifikaciją? • Ar visas modulio kodas gali būti vykdomas? • Defektai neregistruojami – tiesiog ištaisomi

  6. Modulių testavimo privalumai • Lengva daryti pakeitimus – jei testai praeina, reiškia nieko nesugadinom • Palengvina integracijos testavimą • Testai - aktuali sistemos dokumentacija • Tekstinė dokumentacija daugiau kam suprantama, tačiau labiau linkusi pasenti • Test-driven development atveju – vietoje projektavimo

  7. Modulio (unit) testavimas • Idealiu atveju – moduliai tarpusavyje nesusiję • Realybėje: • Objektai kviečia kitų objektų metodus • Reikalingi imituojantys objektai (mock objects), fiktyvūs metodai (method stubs) ir fiktyvūs kvietėjai (drivers, test harnesses)

  8. Fiktyvūs metodai • Pvz.: Time = GetCurrentTime(); if(Time >= ’07:00’){ AlarmRing(“Get up!”); } GetCurrentTime() { return 07:00 }

  9. Fiktyvūs kvietėjai • Pvz., turime objektą, neturime, kas kviečia jo metodus: AlarmClock ac = new AlarmClock(); ac.AlarmRing(“Morning!”); AlarmRing(string Text) { Beep(10); Print(Text); }

  10. Imituojantys objektai • Svarbuatskirti: • interfeisą nuo realizacijos • vieną sistemą nuo kitos • Jei modulis kviečia DB: • Sukuriamas abstraktus DB užklausų interfeisas • Sukuriama šio interfeiso realizacija – imituojantis objektas • Modulio testas nekviečia DB, kviečia imituojantį objektą

  11. Integracijos testavimas • Apjungiami moduliai • Integracijos strategijos: • Visko iškart integracija (big-bang) • Integracija iš viršaus į apačią • Integracija iš apačios į viršų

  12. Visko iškart integracija • Visi moduliai apjungiami iškart į pilną sistemą • Neskiriamas dėmesys atskirų modulių sąsajoms • Sunku izoliuoti problemas • Prastas pasirinkimas 

  13. Integracija iš viršaus į apačią • Sistema surenkama etapais: pirmiausia moduliai, kviečiantys kitus modulius • Testuojama pradedant nuo “paviršiaus” • Reikalingifiktyvūs moduliai (stubs) 1 2 3 4 5 6 7

  14. Integracija iš apačios į viršų • Sistema surenkama etapais: pirmiausia moduliai, kuriųniekasnekviečia • Testuojama pradedant nuo “apačios” • Reikalingifiktyvūs kvietėjai (drivers) 1 2 3 4 5 6 7

  15. Sistemos testavimas • Ištestuoti pavienių modulių tarpusavio integraciją - nepakankama • Testuojama visa sistema: • Funkcionalumas pagal funkcinę specifikaciją • Nefunkcinis testavimas • Aplinka – kuo panašesnė į realaus naudojimo • Atlieka nepriklausoma testavimo komanda

  16. Sistemų integracijos testavimas • Testuojama skirtingų sistemų sąveika. Pvz.: • Banko sąskaitų valdymo sistemos integracija su bankomatu • Jei sistemas kuria skirtingos komandos: • Kas atsakingas už SIT? • Saveikos būdai: • Webservice, Message Queuing, Batch files, ...

  17. Sistemų integracijos testavimas • Testuojama: • Sistemų suderinamumas (ar sujungtos nelūžta) • Sistemų jungiamumas (ar perduodami duomenys) • Duomenų nuoseklumas (ar atitinka visose sist.) • Duomenų nuoseklumas konkrečiu laiko momentu • Duomenų formatų nuoseklumas (perduodant duomenis formatas nesikeičia arba keičiasi korektiškai)

  18. Pasikartojam  • Testavimo lygmuo  testavimo objektas • Testavimo objektai: • Modulis • Modulių integracija • Sistema • Sistemų integracija

  19. Testavimo tikslai • Kokią sistemos savybę norime ištestuoti: • Sistemos tinkamumas • Panaudojamumas • Našumas • Saugumas • Klaidų toleravimas • Diegimas • …

  20. Sistemos tinkamumo testavimas • Ar tinka numatytoms užduotims atlikti? • Ar tinkama realiems naudotojams? • Ar pagerina darbo procesą? • Patogu testuoti pagal panaudojimo atvejus

  21. Verifikavimas ir validavimas • Verifikavimas – patvirtinimas, kad PĮ atitinka specifikuotus reikalavimus • Ar kuriam PĮ teisingai? • Validavimas – patvirtinimas, kad PĮ atitinka konkrečius naudotojų poreikius • Ar kuriam teisingą PĮ?

  22. Panaudojamumo testavimas • Useability • Ar patogu? • Ar aišku ir paprasta? • Ar pritaikyta neįgaliesiems? • Specialios testavimo metodikos: • Naudotojų stebėjimas • Geriausių praktikų sąrašai (checklists) • Atitikimas panaudojamumo standartams

  23. Našumo testavimas • Kaip efektyviai dirba sistema: • Esant tikėtinam apkrovimui • Esant ekstremaliai dideliam apkrovimui • Ar pakankamai trumpas reakcijos laikas? • Ar neįvyksta klaidų? • Ar sumažėjus apkrovimui sistemos veikimas atsistato į normalų? • Reikalingi specialūs įrankiai

  24. Saugumo testavimas • Testuojamas: • Konfidencialumas • Duomenų integralumas • Autentifikacija • Autorizacija • Nepaneigiamumas (non-repudiation) • Reikalingos specialios žinios ir įrankiai

  25. Klaidų toleravimo testavimas • Klaidos: • Įvesti nekorektiški duomenys • Nėra priėjimo prie serverio (DB, etc.) • Resursų nepasiekiamumas (timeout, deadlock) • ... • Kaip klaida pateikiama naudotojui • suprantamas pranešimas • galimybė pratęsti darbą

  26. Diegimo testavimas • Ar pavyksta sėkmingai sudiegti į įvairias OS? • Ar galima pakeisti diegimo katalogą? • Ar yra visi reikalingi žingsniai ir tik jie? • Jei sistema jau įdiegta..? • Ar korektiškai išdiegiama? • Sudėtingoms sistemoms: • Diegimo procedūrų dokumentai (sinchronizuojami duomenys, keičiama DB schema...)

  27. Pasikartojam  • Testavimo tikslai – ką norime ištestuoti:

  28. Bazinis (smoke) testavimas • Gamyboje – pripildom dūmų, kad patikrinti, ar nėra įtrūkimų – ar galima toliau testuoti • PĮ kūrime – atliekam bazinius visos sistemos testus, kad įsitikinti, ar galima/verta toliau testuoti • Ar sistema nelūžta vykdant paprasčiausius scenarijus

  29. Bazinis (smoke) testavimas • Dažnai: • Naudojamas regresiniam testavimui • Automatizuojamas • Atliekamas sistemos surinkimo (build) metu

  30. Patvirtinimo ir regresinis testavimas • Patvirtinimo testavimas – anksčiau nepraėjusių TA vykdymas, siekiant patvirtinti, jog defektai ištaisyti • Regresinis testavimas – pakartotinis PĮ testavimas po padarytų pakeitimų, siekiant patvirtinti, jog neatsirado naujų defektų nekeistose PĮ vietose

  31. Alfa ir beta testavimas • Alfa testavimas – testuoja potencialūs naudotojai PĮ kūrimo aplinkoje • Beta testavimas – testuoja potencialūs naudotojai savo aplinkoje, reikalinga jiems prieinama defektų raportavimo sistema • Paprastai taikoma produktams (COTS PĮ) • Gali būti keletas iteracijų

  32. Parengtumo darbui testavimas • Beta testavimas labiau tinka produktams • Dideliems projektams atliekamas parengtumo darbo testavimas (operational readiness testing) • Pvz.: banko sistemų atnaujinimas • Dar kitaip – sistemos paleidimo repeticija • Ar viskas sumigruota? • Ar veikia visi procesai?

  33. Testavimas sistemos palaikymo metu • Po sistemos paleidimo – palaikymas (maintenance) • Pakeitimai: • Reikalingas papildomas funkcionalumas • Sistema perkeliama į naują aplinką/platformą • Migruojama į kitą sistemą (duomenų perkėlimas/archyvavimas) • Randami nauji defektai

  34. Testavimas sistemos palaikymo metu • Po pakeitimų: • Patvirtinimo testavimas • Regresinis testavimas (reikalinga įtakos analizė) • Galimos problemos atliekant įtakos analizę: • Pasenusios specifikacijos • Pasikeitusi projekto komanda

  35. Pasikartojam  • Bazinis testavimas • Patvirtinimo ir regresinis testavimas • Alfa ir beta testavimas • Parengtumo darbui testavimas • Testavimas sistemos palaikymo metu

  36. Klausimai ir idėjos

More Related