Szerkesztő:Lnyitrai/tuti

A Wikipédiából, a szabad enciklopédiából

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]

A módosítatlan vízesés (waterfall) modell.

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]

  1. 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
  2. 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
  3. 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

Tesztelés adaptív fejlesztési folyamatban[szerkesztés]

A tesztelés szerepe és célja az Extreme Programming modellben[szerkesztés]

A folyamata az Extreme Programming modellben[szerkesztés]

A szoftvertesztelés jellemző típusai[szerkesztés]

A szoftvertesztelés iskolái[szerkesztés]

Exploratory Testing[szerkesztés]

Session based Testing[szerkesztés]

A tesztelés és a minőségbiztosítás kapcsolata[szerkesztés]