200 likes | 429 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. Tema pagal pageidavimą. Testavimas programuotojams. Testavimas programuotojams. Modulių (unit) testai Test-driven development
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
Tema pagal pageidavimą Testavimas programuotojams
Testavimas programuotojams • Modulių (unit) testai • Test-driven development • Kita: • Rankinis testavimas • Konfigūracijos testavimas • Testavimo procesas
Modulių testai • Buvo 3 paskaitoje ir seminare • Esmė: • “Grynas” modulio testas testuoja TIK tą modulį • Reikalingi imituojantys objektai (mock objects), fiktyvūs metodai (method stubs) ir fiktyvūs kvietėjai (drivers, test harnesses) • Bet svarbiausia, kad būtų ištestuota
Modulių testai • Įrankiai/karkasai: • xUnit: JUnit, NUnit, CppUnit, PyUnit, XMLUnit, ... • Savi karkasai
Modulių testai • Testavimo idėjos, patarimai: • Testo pavadinimas – kuo aiškesnis: funkcionalumas ir testavimo sąlyga • Testo kodas – kuo trumpesnis, su kuo mažiau logikos: jei per ilgas, skaidom į trumpesnius • Laukiami rezultatai – konstantos, o ne skaičiuojami teste • Laukiami rezultatai turėtų būti šalia duomenų • Exception’ai testuose negaudomi
Modulių testai • Testavimo idėjos, patarimai: • Ekvivalentiškumo klasės, ribinės reikšmės, ... • Klaidingos situacijos • Testus rašyti toms vietoms, kuriose rasta daug defektų • Parašyti testą, kai defektas “praslysta” į produkciją • ...
Modulių testai • Knygos: • Johannes Link and Peter Frohlich,Unit Testing in Java: How Tests Drive the Code • Paul Hamill, Unit Test Frameworks • ...
Test-driven development • Buvo seminare • Esmė: • Pirmiau rašomas testas, po to – sistemos kodas • Testas nepraeina • Parašomas minimalus sistemos kodas, reikalingas, kad testas praeitų • Atliekamas kodo pertvarkymas • Testas vis dar turi praeiti
Rankinis testavimas • Modulių testavimas ne visada atliekamas • Kažkaip ištestuoti kodą reikia, prieš atiduodant testuotojams • Programuotojų “baziniai testai”: • Ar veikia pagrindinės funkcijos • Ar veikia “slidžios” vietos (specifinės programuotojo žinios)
Konfigūracijos testavimas • Programuotojai testuoja savo aplinkoje • Testuotojai – testavimo aplinkoje • Galimos problemos: • Nekorektiški adresai, prisijungimo duomenys: • Pvz., localhost • Nenukopijuojama dalis failų • ...
Dalyvavimas testavimo procese • Laiku pateikti kodą testuotojams • Naują • Pataisymus • Defektų aprašymus papildyti naujomis būsenomis ir komentarais: • Defekto priežastis ir sprendimas, kt. • Pagalba testuotojams: • Informacija apie susijusias funkcijas • Techninė pagalba • ... • Dalyvavimas priimant sprendimus
Egzaminas • Data: 2011-01-11 (antradienis) • Laikas: 9 – 11 val. • Vieta: 101 a.
Egzaminas • 2 val. (1,5 val. gryno atsakinėjimo į klausimus) • 5 balai • 5 variantai • 10 testo klausimų - po 0,1 - 1 balas • 8 atviri klausimai - po 0,4-0,6 balo - 4 balai
Egzaminas • Klausimų turinys: • 5-tukui nepakaks mintinai mokėti skaidres, bet 4-tukui pakaks • 5-tukui pakaks to, ką pasakojau per paskaitas (arba papildomų žinių iš kitur, arba labai gero skaidrių medžiagos interpretavimo)
Egzaminas • Nusirašinėjimas: • Pagavus – iškart lauk iš egzamino ir universiteto • Aptikus taisant egzaminą – jei akivaizdu, lauk iš universiteto, jei ne – aiškinsimės
Ką galima būtų pagerinti kurse • Skaidrėse • Paskaitose • Seminaruose • Laboratoriniuose • Kt.