Mis on tarkvara regressioon?

Tarkvara regressioon on tarkvara programmeerimise viga, mis põhjustab tarkvara tõhusa taandumise ühes või mitmes valdkonnas. Tarkvara regressioonil on kaks peamist tüüpi: funktsionaalne ja mittefunktsionaalne. Funktsionaalne tähendab, et programm töötab õigel kiirusel, kuid üks või mitu funktsiooni ei tööta, samas kui mittefunktsionaalne tähendab, et kõik funktsioonid töötavad, kuid kiirus on järsult vähenenud. Sündmus, näiteks versiooniuuendus, on tavaliselt taandarengu põhjuseks. Regressioonitestimine kontrollib tarkvara, et tagada, et regressiooni ei toimu ega toimu.

Funktsionaalne tarkvara regressioon on üks viise, kuidas programmi regressioon avalduda saab. Kui see juhtub, jätkab programm täiskiirusel töötamist, nii et kasutaja ei pruugi alguses taandarengut märgata. Selles manifestatsioonis on teatud funktsioone, mis enam ei tööta. Näiteks kui programm suudab faile otsida, ei pruugi see funktsioon enam töötada. See võib mõjutada lisafunktsioone – neid, mida tavaliselt ei kasutata – või programmi põhifunktsiooni.

Mittefunktsionaalne tarkvara regressioon on ohtlikum ja kergemini märgatav, kuigi kõik funktsioonid veel töötavad. Selles manifestatsioonis muudab regressioon programmi töö aeglasemaks või programmi väljund on oluliselt väiksem. Kiiruse puudumine tähendab, et programm võib muutuda haavatavaks ka pahatahtliku kodeerimise ja rünnakute suhtes, seades häkkimise ohtu nii programmi kui ka arvuti, millel see töötab. Kiirus võib muutuda nii aeglaseks, et programmi kasutamine võib osutuda võimatuks.

Tarkvara regressiooni toimumiseks peab toimuma nn sündmus. See sündmus muudab tarkvara kodeerimist ja toob need vead sisse kas tahtlikult (mis on haruldane) või tahtmatult. Arendaja võib üritada viga parandada või versiooni värskendada, kuid sisestab valesti koodi, mis programmi taandab. Kõige tüüpilisem sündmus on versiooniuuendus, kuna see mõjutab otseselt programmi kodeerimist. Muud sündmused hõlmavad versiooni või konfiguratsiooni muudatusi.

Tarkvara regressiooni võimaluste vähendamiseks kasutatakse tavaliselt regressioonitesti. Seda tüüpi testimisel vaadeldakse uut programmi ja võrreldakse seda programmi kõigi vanade versioonidega. Seejärel käivitab see programmeerimise läbi testi, et näha, kas on regressiooni märke, ja veenduda, et kogu kodeerimine töötab. Kõik märgid taandarenenud või mittetöötavast koodist tuuakse tagasi arendajale või kasutajale ja teatatakse, mis on taandarenenud või kus taandareng leiti.