Szerkesztő:Lnyitrai/tuti
A szoftvertesztelés egy rendszer vagy program kontrollált körülmények melletti futtatása, és az eredmények kiértékelése. Célja:
- elméleti szempontból: a szoftver, azon belül is a kód minőségének meghatározása és mérése.
- gyakorlati szempontból: a fejlesztés során keletkező hibák minél korábbi felismerése, javításuk költségének csökkentése érdekében.
A szoftvertesztelés a szoftverfejlesztés módszertanától függetlenül annak mindig része, akár a skála egyik végét jelentő végletekig prediktív Waterfall modellt, akár ennek ellentétét, az adaptivitásra kihegyezett Extreme Programming megközelítést alkalmazzák a fejlesztés során. A szoftvertesztelés így tárgya a szoftverminőség-biztosításnak is.
Nem csak a fejlesztési modellek sokszínűsége miatt különbözőek a tesztelési projektek: magának a szoftvertesztelésnek is megvannak a maga iskolái, melyeket gyakran egymást kiegészítve alkalmaznak a projektek során.
Gyakori, hogy a minőségbiztosítás és a tesztelés között elmosódnak a határok, hisz a kód minőségének ellenőrzésekor derül fény a fejlesztési folyamat teljes időtartama alatt elkövetett összes hibára is.
Ez a szócikk a szoftverfejlesztés módszertanai, a szoftverminőség és minőségbiztosítás témáival csak oly mértékben foglalkozik, amennyire azok feltétlenül szükségesek a tesztelés témakörének leírásához.
A szoftveriparra jellemző szoros határidők, a projektcélok folyamatos változása és a dokumentáció elégtelen volta a tesztelés elmélete és gyakorlata között komoly különbségeket okoz. Fokozza ezt az a tény, hogy a tesztelés legtöbbször a projektek egyik utolsó lépése, amikorra már nyilvánvalóvá válik a határidők tarthatatlansága. Ilyenkor nagyon komoly a nyomás a minőségi tesztelés feladására és látszateredmények, szép statisztikák felmutatására.
Tesztelés a fejlesztési módszertan függvényében[szerkesztés]
Ez a szekció leírja a fent megadott skála két végpontján található módszertanban a tesztelés célját és folyamatát. További fejlesztési módszertanokhoz lásd a szoftverfejlesztés módszertanai cikket.
Tesztelés prediktív fejlesztési folyamatban[szerkesztés]
Prediktívnek nevezzük azokat a megközelítéseket, melyek a fejlesztési folyamat legelső szakaszában definiálják és részleteiben rögzítik a projekt teljes folyamatát. A minőségbiztosítás ezekben a folyamatokban nagyrészt a dokumentáció és a lefektetett szabályok követését és betartatását jelenti, a projekt előrehaladtát az egyes szakaszok lezárását összegző terjedelmes dokumentációk, (angol: artifact) jelzik.
Nehézkessége és bürokratikus volta ellenére ennek a megközelítésnek számos előnye van, nem véletlenül elterjedt mind a mai napig. Legjellemzőbb képviselője a prediktív fejlesztési folyamatnak a Waterfall modell.
A tesztelés szerepe és célja Waterfall modellben[szerkesztés]
A modell elterjedtségét jelzi, hogy ha külön nem jelöljük, akkor szoftvertesztelésen az ebben a modellben alkalmazott módszereket értjük.
Mint az az ábrán jól látszik, a tesztelés (verifikáció, verification, azaz a elkészült program és az azt előzetesen leíró dokumentáció összevetése) a projekt egy precízen elhatárolt szakasza. Kezdetét és lezárását is formális dokumentáció jelzi.
A validáció (validation) az elvárások és az azokat leíró dokumentáció egybevetése - nem része a tesztelési folyamatnak.
A tesztelés célja tehát ebben a modellben az "abszolútnak" elfogadott dokumentáció összevetése az elészült programmal és a különbség dokumentációja.
A tesztelés folyamata Waterfall modellben[szerkesztés]
- Tesztelés elkezdéséhez szükséges dokumentáció, létrehozásuk sorrendjében:
- BR, Business Requirements - projekt céljainak meghatározása
- FES, Feasibility Study - megvalósíthatósági tanulmány
- IA, Impact Assesment - a fejlesztés jelen rendszerre gyakorolt hatása
- FUS, Functional Specification - a fejlesztés felhasználói leírása
- TES, Technical Specification - a feljesztés technikai leírása
- A teszteléshez szükséges környezet
- Teszteszközök - végrehajtáshoz és dokumantációhoz
- Tesztkörnyezet - a valós környezet tesztelésre fenntartott másolata
- Tesztadatok - a valós környezet adatbázisainak tesztelésre fenntartott másolata
- Tesztelés
- Integration - a rendszer komponenseinek kapcsolatainak meglétét ellenőrzi
- Smoke vagy sanity - a rendszer alapvető funkcióinak meglétét ellenőrzi
- ST, System - konkrét (új) funkcionalitást teljesen lefedő tesztelés
- E2E, end-to-end - folyamatalapú, ST részletességű, minden érintett komponenst ellenőriz
- Regression - annak ellenőrzése, hogy az új fejlesztés módosított-e régi funkcionalitást
- UAT, User Acceptance - BR és User Experience alapú tesztelés, gyakran a megrendelő végzi