Szoftverek minősége és szoftvertesztelés - Szoftver Tippek

Szoftverek minősége és szoftvertesztelés

A mai napig ráz a hideg, ha visszagondolok, hogy ezelőtt pár évvel az egyetemen egyik csoporttársam úgy programozott, hogy írt 2-300 sor kódot anélkül, hogy legalább azt ellenőrizte volna, hogy kompilálódik-e a projekt vagy sem, tesztelésről nem is beszélve…

Igazából az egyetemen is a legelső óra arról szólt, hogy egy programozó mekkora hibákat képes elkövetni, illetve azoknak mennyire súlyos következményei lehetnek, egy apró kis hiba néha dollár milliárdokba vagy akár emberi életekbe is kerülhet, gondoljunk csak az űrkutatásra vagy csupán egyes járművek, repülők szoftvereire. Ezért kellene a szoftvertesztelés kulcsfontosságú legyen bármilyen szoftver fejlesztése során. Az átlagfelhasználónak szinte fogalma sincs, hogy néha mennyire össze van dobva a szoftver amivel dolgozik, ő csupán akkor mondja rá, hogy “szar”, ha esetleg nem túl kifinomult vagy nem túlságosan felhasználóbarát a GUI vagy talán túl lassú. Úgy vélem, hogy csak egy programozó tudja igazán elképzelni, hogy néha egy gyönyörű és felhasználóbarát UI mögött mennyire ócska kód lapul…

Hogy milyen minőségű kész szoftvert vásárolunk, azt nem tudhatjuk. Ebben az esetben nem ismerjük a fejlesztőket, gyakran még a fejlesztő céget se. A szoftver fejlesztéséről semmit se tudunk. De ebben az esetben nem is a felhasználó dolga, hogy a szoftver minőségét megállapítsa. A fejlesztők feladata, hogy kellőképpen leteszteljék a szoftvert minden lehetséges helyzetre. Azonban kicsit más a helyzet, ha egyedi szoftvert rendelünk, hiszen abban az esetben mi választjuk ki a fejlesztő céget. Az egyedi szoftver fejlesztése nem olcsó, legyen szó egy egyszerű weboldalról vagy egy olyan applikációról, aminek a fejlesztése akár több hónapig is eltarthat, ezért fontos, hogy egyszer végeztessük el a munkát és jól, még ha nem is a legolcsóbb fejlesztőt vagy fejlesztőcsoportot választjuk. Gyakran hallom, hogy valaki inkább egyetemista ismerőst kér meg weboldal építésére vagy szoftverfejlesztésre, mert viszonylag olcsón dolgozik, aztán fél vagy egy év múlva az egészet újra kell csináltatni egy tapasztaltabb programozóval vagy céggel. Engem is szoktak olyan kéréssel megkeresni, hogy fejezzek be egy projektet, amit egy egyetemista elkezdett, de abbamaradt vagy, hogy javítsak olyan hibákat, amiket az előző programozó nem vett észre. Néha sokkal egyszerűbb lenne elölről kezdeni az egészet, mint azt a tákolmányt foltozni, de erre nem minden esetben van keret vagy idő. Pedig hosszú távon úgyis az fog következni, főleg ha a meglévő szoftvert tovább szeretnék fejleszteni.

És az ócskán nem azt értem, hogy csúnya a programozó stílusa, hanem hogy sok hibalehetőség nincs lekezelve, aminek a legtöbbször az oka, hogy nem vevődik észre az az eset, amikor kiakadhat a szoftver. Bebizonyítani, hogy egy szoftver tökéletes nem lehet, főleg nagyon komplex szoftverek esetében, de a fejlesztés alatt végig arra kell törekednünk, hogy a lehető legkisebb legyen a hibalehetőség és ennek a legegyszerűbb módja a tesztelés. A legtöbb programozó megtanulja, hogy nem egy levegővételből kell a fél projektet lekódolni, hanem kicsit kódolunk és azt teszteljük, majd megint kódolunk és megint tesztelünk. Ideális esetben kicsit kódolunk és arra a kódra tesztet írunk, így ha később netalán valamit változtatunk, akkor pillanatok alatt lefuttathatjuk a teszteket minden esetre, nem kell nekünk végignézni mindent. Ezzel rengeteg időt spórolhatunk meg és azonnal észrevehetjük, ha valamilyen módosítás miatt hiba keletkezett a projektben. Teszteket írva még a fejlesztés elején észrevehetjük a hibákat, amikor is azok javítása kevésbé költséges, mint a fejlesztés további szakaszaiban.

Java programozóként számomra a JUnit elengedhetetlen eszköz, ha meg weboldalakat építek, akkor nagyon egyszerűen létrehozhatok Selenium teszteket, amiket aztán lefuttathatok bármilyen kis módosítás után, így megbizonyosodva, hogy minden rendben van. De PHP fejlesztés során is használható például a PHPUnit. Ha esetleg olyan technológiával dolgozunk, amire még nem érhető el teszt framework, akkor is érdemes időt szánni egy kisebb teszt alkalmazásra.



A hozzászólások lezárultak.