Miért fontos a szoftver-tesztelés? Nem az a normális, ha nincs hiba? – hasznos 3 perces olvasmány fejlesztési projekt előtt állóknak

Gábor Németh

2021-11-28

A szoftver-tesztelés kapcsán többször kaptuk már meg a kérdést ügyfeleinktől: miért szerepel ez a tevékenység az árkalkulációban? Ez nem a mi (szoftverfejlesztői) belső problémánk, hogy „tesztelni kell” a megoldást, mielőtt az ügyfél átveszi?

Ez a blog bejegyzés a tesztelés, szoftverminőség-biztosítás természetéről, projektre és termékre gyakorolt hatásairól szól. Hasznos 3 perces olvasmány mindenkinek, aki szoftver vagy applikáció fejlesztési projektben gondolkodik.

Jó tudni: a szoftver-tesztelés egy önálló szakma. Nemzetközi szabályozó testülete az ISTQB (International Software Testing Qualifications Board). Mellesleg az ISTQB az Arteries ügyfele is – ez nagy büszkeség számunkra, hiszen ezzel implicite a világ vezető szoftvertesztelési testülete elismeri az Arteries által szállított minőséget!
A szoftver tesztelés nem arról szól csupán, hogy leellenőrizzük az elkészült munkát! Ennél jóval több ez a feladat: elkezdődik már a szerződéskötés előtt, és végigkíséri a teljes projektet. Ezért sem lehet elválasztani a programozók munkájától.

Fontos tény: a tesztelés a szoftverfejlesztési folyamat szerves része, nem annak utólagos ellenőrzése!

Ahhoz, hogy ezt belássuk, fontos áttekinteni, hogy mit csinál egy tesztelő egy szoftverfejlesztői csapatban.

A tesztelő csapat már a projekt elején bekapcsolódik a tervezési folyamatokba: áttekinti az igényspecifikációt, és javaslatot tesz a szoftver vagy rendszer minőségbiztosítási megoldásaira. Ezek sokfélék lehetnek, többek között:

  • Komponens vagy egység (unit) tesztelés
  • Funkcionális tesztelés
  • Regressziós tesztek
  • Smoke tesztelés
  • Black Box tesztelés
  • Interfész tesztelés
  • Integrációs tesztelés
  • Biztonsági tesztelés
  • API séma tesztelés
  • Átvételi tesztelés
  • Stressz-tesztelés

… stb.

Ezen feladattípusok jól szabályozottan igazodnak a szoftvertesztelők munkájához, kiegészítik azokat. Néhány – főleg kisebb – fejlesztő csapatokban ezeket a feladatokat a szoftverfejlesztők maguk végzik, de hatékonyabb, ha erre képzett, speciális tudással rendelkező kollégákat delegálunk.

Ezen folyamatok és feladatok párhuzamosan haladnak a szoftverfejlesztők kódolási feladataival. Jó tudni, hogy ezek közül néhányat ugyan kézzel végeznek el a tesztelők (manuális tesztelés), de a fentiek közül több is programozási feladattal jár: egy-egy „kisebb programot” készítenek a tesztelők az eredeti programunk tesztelésére. Ez furcsán hangozhat elsőre, de a lényege, hogy ne kézzel kelljen ellenőrizni újra és újra egy-egy tesztesetet, hanem végezze el helyettünk egy automatizált teszt-program. Ezeket a feladatokat hívjuk automatizált tesztelésnek.

Miért hasznos a tesztelés ügyfeleinknek?

Ügyfél oldalról, ahogy fent említettem, felmerülhet a kérdés: Miért kell ezért fizessek?! Nem az a dolga a programozónak, hogy jó programot írjon?! 

A válaszunk az, hogy de, ez a dolga, és pontosan a folyamatos tesztelési eljárások biztosítják azt, hogy egy program tényleg olyan minőségű legyen, amit elvártunk tőle.

Szemléletes példa: Gondoljunk bele mi történne, ha a házunk falait építő kőművesnek kikötnénk, hogy nem fizetünk azért, hogy ellenőrizze a rakott fal minőségét, csak rakja a téglákat! Hiszen mi a falért fizetünk, nem a méregetésért!
Könnyen belátható, hogy a végeredmény egy csúnya, girbe-gurba felület lesz, amire aztán a következő munkafázisokat végző szakemberek hangosan panaszkodnának, és az Ő munkájuk sokkal lassabb, és bosszúságokkal teli lenne.

Ahogy az épület falazási munkának is része, hogy ellenőrizzük a téglák helyzetét, és beigazítjuk őket vízszintesre és függőlegesre, valamint a többi tégla síkjához – úgy a szoftverfejlesztési munka sem a kódsorok gondolkodás és ellenőrzés nélküli gépeléséből áll.

Ha így lenne, nagyon gyorsan végeznénk, de abból semmilyen köszönet és hála nem születne!

Az ügyfeleinknek kifejezetten jó, ha professzionális tesztelőket is kap a szoftverfejlesztési csapatba. Minden ebbe fektetett forint hasznos munkát fedez, és könnyebbé, nyugalmasabbá teszi a jövőbeni – a szoftverhez kapcsolódó – feladatokat is.

Miért hasznos a tesztelés nekünk, szoftverfejlesztőknek?

Elsősorban azért, mert nincs jobb az elégedett ügyfélnél. És azért, mert az ügyfél ideje nagyon drága számára. Jó, ha az ügyfél minél kevesebbet tölt azzal, hogy ellenőrzi a neki átadott munka minőségét: egyszóval megbízhat benne, és az azt készítőkben.

Ezen kívül van még egy aspektusa ennek: más mindset-et igényel egy tesztelői munka, mint egy programozó munkája. A két mindset közötti váltást spórolja meg a csapatban az, ha ezeket a feladatokat más-más személy végzi. Stresszmentesebb a munkája mindenkinek, ha a speciális feladatokat az arra kiképzett, és személyiségben is megfelelő munkatársak végzik.

Ezek a döntések végső soron kihatnak a termék minőségére. Ha jó egy termék, akkor elégedett lesz az ügyfél. Az elégedett ügyfél pedig visszatér, és újabb megbízásokat hoz nekünk. Mi más lehetne a célunk?!

A tesztelés tehát Önnek a legfontosabb. Ha nincs, az bajokhoz vezet. Válasszon Ön is olyan csapatot, ahol ezt is szakértők végzik!

Amennyiben szoftverfejlesztési vagy alkalmazásfejlesztési projektben gondolkozol, ne legyen kérdés: jó tesztelők is kellenek egy szoftverfejlesztő csapatba. Kérj konzultációt, és örömmel elmondjuk hogyan zajlanak nálunk a fenti folyamatok, és hogyan segítik a tesztelők a programozóink munkáját azért, hogy minőségi eredményt vehess kézbe!?

Szeretnél még hasonló tartalmat olvasni a jövőben?

Ha tetszett cikkünk, iratkozz fel hírlevelünkre!