5. Testimine

iDevide ikoon Eesmärgid

1) Mõista automaatsete testimisvahendite põhifunktsioone

2) Teada ja osata kasutada testimismetoodikad

3) Mõista mooduli, lingi ja süsteemi testimise põhifunktsioone


Testimise vajadus tarkvara arenduses tuleneb eelkõige faktist, et inimese teevad vigu. Nii on testimise faasi peamine ülesanne veenduda, et loodud tarkvaralahendus ei sisaldaks vigu.

Testimine peab tagama tarkvara usaldusväärsuse ja lõpptoote vastavuse vajaduste kirjeldusele.

Esmaselt kontrollitakse, et programmi kood vastab selle keele spetsifikatsioonile. Selle kontrolli teostab tavaliselt kompilaator ja sellise kontrolli vigadeta ning hoiatusteta läbimine ei taga programmi veatust. Kui programm ei anna etteantud sisendandmete korral oodatud tulemust, kuid viga ei tulene süntaksi vigadest, vaid hoopis programmi loogikas esinevatest eksimustest, siis seda olukorda nimetatakse tõrkeks.

Staatiline analüüs on testimise tehnika, kui programme ei käivitata vaid uuritakse ainult nende lähtekoodi. Dünaamilise analüüsi korral uuritakse programmi käitumist erinevates olukordades ja analüüsitakse väljundi vastavust oodatule. Tavaliselt kasutatakse viimasel juhul ettevalmistatud sisendväärtusi, milliste korral oodatav väljund on teada.

Musta kasti testimise korral testitakse tarkvara selliselt, et uuritakse ainult väliseid omadusi, sisemistele protsessidele tähelepanu ei pöörata. Valge kasti testimise korral testitakse ainult programmi  struktuuri ja loogikat, ilma sisendite ja väljundite kontrollita.

Seoste testimise korral testitakse, kuidas moodul töötab koostöös teiste moodulitega. See on eriti oluline juhul, kui programm koosneb moodulitest, mida on arendatud eraldi.

Kontrollimaks testimisvahendeid kasutatakse  mutanttestimist: sellisel juhul lisatakse programmi uued vead ja vaadeldakse siis kui efektiivselt toimivad testprotseduurid ja –skriptid.

Silur (debugger) on tarkvaravahend programmi vigade leidmiseks ja selle vahendi abil koodis vigade otsimist nimetatakse silumiseks (debugging).