Monday, May 30, 2011

Tesztelés, a kezdetek

A tesztelés a szoftverminőség-biztosítás fontos eleme, melynek lényege: a program végrehajtásának a folyamata azzal a szándékkal, hogy megtalálja a hibákat. Meg kell tanulni azt a szemléletet, hogy a tesztelés csak akkor sikeres, ha találunk hibákat. Az egyik nehéz feladat ezzel kapcsolatban, hogy a fejlesztők is sikerként kezeljék a kiadás előtt jelentkező problémákat. A klasszikus szoftvertesztelés egy már véglegesnek szánt specifikáció alapján történik. A teljesen független tesztelő csapat a leírások alapján tervezi meg a tesztelés módját és eseteit, majd megírják őket és futtatják; ha a tervezés és megírás költségeit fedezi a megtalált hibák kiadás előtti javításával nyert költségmegtakarítás, akkor tekinthető sikeresnek a tesztelés gazdasági szempontból; ha nem képzett tesztelők végzik ezt a munkát, akkor előfordulhat, hogy nincs meg a kellő motiváció és tudás ahhoz, hogy megfelelően működjön a tesztelés. Általában ilyenkor nincs mérés a tesztelés eredményéről, valamint nem a megfelelő elvek mentén halad.

A tesztelés során akkor vagyunk sikeresek, ha találunk hibát. Ha pedig minden teszt jól lefutott de egy fő funkcióban még is van hiba, akkor bizony a tesztelésünk semmit sem ért. Az is sikertelen tesztnek számít, ha írunk egy tesztesetet, ami nem talál hibát. Ne hagyjuk, hogy hamis biztonságérzetet keltsen bennünk az, hogy a tesztek hiba nélkül futottak le, ugyanis az csak azt jelenti hogy néhány meghatározott paraméterrel jól működik a programunk.

Az emberek gyengébben teljesítenek, ha az adott feladatot lehetetlennek vagy nehezen megvalósíthatónak tartják. Megfelelő teszteseteket kell definiálni, amik könnyen megvalósíthatóak kellenek hogy legyenek. A tesztelés inkább romboló tevékenység.

Tesztelési szintekre példa:

module
unit: white box tesztelés részeként tekinthető. A fejlesztő végzi, és külső függőségek nélküli funkcionalitást tesztelnek vele.

integration: Az egyes szoftverelemek kombinálva vannak tesztelve együtt, mint egy csoport. A különböző fejlesztők által írt modulok közti hibát kéne felderítenie.

system:
system testing: A teljesen elkészített rendszer tesztelése abból a szempontból, hogy megfelele-e a követelményeknek.   

system integration testing: A külső alkalmazások bevonásával végzett tesztelés.

acceptance:   
user: A fejlesztői oldalról végzett ellenőrző tesztelés.

automated: Ügyfél tevékenységének szimulálását végző automata eszköz általi tesztelés. Összekeverhető az automatizált integration tesztekkel, a különbség a kettő között, hogy az acceptance teszt rendszer független ( black box ) szempontból, az integration teszt pedig a rendszer alapos ismeretét felhasználva ( white box ) végzi a tesztelést.

contract: A szerződés alapján végzett ellenőrző tesztelés, például egyes elemek megfelelnek-e valamilyen törvény által előírt feltételnek.

alpha: Fejlesztői oldalról végzett kiadás előtti tesztelés.

beta: Ügyfél oldalról végzet tesztelés.

No comments:

Post a Comment