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:
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