Regressioonitestimine

Regressioonitestimine (inglise keeles regression testing, ladina keeles regressio – liikumine tagasi) on üldnimetus kõikide tarkvara testimise tüüpidele, mis on suunatud vigade avastamisele varem testitud rakenduses või programmikoodis.

Põhiprintsiip 

Regressioonitestimise idee kohaselt kontrollitakse programmi uut versiooni teist korda juba olemasolevate testidega.

Eesmärgid
 Veenduda, et programmi uue versiooni integreerimine ei toonud endaga kaasa vigade tekkimist juba testitud koodis.
 Veenduda, et muutunud süsteem vastab endiselt nõuetele. Vigu, kus programm pärast muutuste integreerimist ei tööta enam nii nagu peaks, nimetatakse regressioonivigadeks (ingl regression bugs).

Regressioonitestimine algatatakse pärast esimest uuendust ja lõpetatakse lõppversiooniga. Pärast iga versiooniuuendust regressioonitestide hulk suureneb. Sellepärast pikeneb ka nende täitmise aeg ja teiste ressursside vajadus. Regressioonitestimine võib koosneda ainult edukalt sooritatud testidest: ei ole mõtet kontrollida mooduli funktsionaalsust, kui eelnevas versioonis see ei töötanud.

Automatiseerimine 

Tavaliselt kasutatakse regressioonitestimiseks testjuhtumeid (ingl test case), mis kirjutati programmi väljatöötamise alguses. Samuti on soovitatav regressioonitestid automatiseerida, sest neid on vaja kasutada programmi igas järgmises versioonis. Tihedaks automaattestimiseks kasutatakse spetsiifilist tarkvara, mis paneb teste käima teatud ajavahemiku järel. Väikeses projektis võib see toimuda pärast iga õnnestunud kompilatsiooni, suuremas projektis igal ööl või igal nädalal.

Cem Kaneri arvamus 

Florida Tehnoloogia Instituudi tarkvaratehnika professor Cem Kaner on arvatavasti tuntuim tarkvara kasutatavuse ja testimise spetsialist.

Kaner kirjeldas kolme regressioonitestimise põhitüüpi: 
 vea regressioon (ingl bug regression) – katse tõestada, et parandatud viga tegelikult ei ole parandatud;
 vanade vigade regressioon (ingl old bug regression) – katse tõestada, et koodi või andmete viimane uuendus lõhkus vanade vigade parandust, n-ö vanad vead on uuesti tekitatavad;
 kõrvalnähu regressioon (ingl side effect regression) – katse tõestada, et koodi või andmete viimane uuendus lõhkus teisi rakenduse osi.

Regressioonitestimise kohta on Cem Kaneril ja James Bachil presentatsioon "Musta kasti tarkvara testimine: Osa 11 – regressioonitestimine" (Black Box Software Testing: Part 11 - Regression Testing).

Regressioonitestimise kasutamine 

 Regressioonitestimine on ekstreemprogrammeerimise lahutamatu osa.
 Regressioonitestimist võib kasutada mitte ainult korrektsuse kontrollimiseks, vaid ka tulemuse kvaliteedi hindamiseks. Näiteks kompilaatori kirjutamise korral kasutatakse regressioonitestimist saadud koodi suuruse, selle täitmise kiiruse ja iga testi näidiste kompilatsiooni aja vaatlemiseks.

Viited

Välislingid 
 "Black Box Software Testing: Part 11 - Regression Testing" (inglise keeles)
 Cem Kaneri koduleht (inglise keeles)

Tarkvara testimine