A szoftvertesztelés a szoftverminőség-biztosítás és így a szoftverfejlesztés részét képezi. A tesztelés egy rendszer vagy program kontrollált körülmények melletti futtatása, és az eredmények kiértékelése. A hagyományos megközelítés szerint a tesztelés célja az, hogy a fejlesztés során létrejövő hibákat minél korábban felfedezze, és ezzel csökkentse azok kijavításának költségeit.

Jelenleg a tesztelői munka egyre inkább eltolódik a fejlesztők és a döntéshozók információkkal való támogatásának irányába. Fontos szerepek még a fejlesztés állapotának pontos és egzakt mérése és a kockázatkezelés és -becslés. Különösen így van ez az Agile Programming projektek esetén, ahol klasszikus tesztelésről a specifikáció hiánya miatt nem beszélhetünk.

Bevezetés a szoftvertesztelésbe

szerkesztés

A szoftvertesztelés definíciói

szerkesztés
  • Felhasználhatósági szemszög: "Alkalmasság a felhasználó által szánt célra."
  • Tesztelői szemszög: "Egyezés a specifikációval."

A szoftverminőség definíciói

szerkesztés
  • Felhasználói szemszög: "Alkalmasság a felhasználó által szánt célra."
  • Programozói szemszög: "Egyezés a specifikációval."
  • Tulajdonosi szemszög: "A minőség attól függ, miért fizet a vevő."

A szoftvertesztelés célja

szerkesztés

A klasszikus szoftvertesztelés célja a szoftverhibák felfedezése. A fejlesztésnek minél korábbi szakaszában derül fény egy hibára, annál olcsóbb annak korrigálása. Újabb keletű elvárás a szoftverminőség mérése. Főleg az Agile Programming módszertanával futó projektek esetén a tesztelés a kockázatok becslését és menedzselését is magába foglalja.

A szoftvertesztelés alapfogalmai

szerkesztés

A tesztelési folyamat ezen egyszerűsített modelljében a megrendelő (business) felállítja a szoftverrel szemben támasztott elvárásait (business requirement). Ezen elvárásokat a megrendelő megbízottja (business analyst, BA) tolmácsolja a fejlesztők (developers) felé a fejlesztő csapat vezető programozójának (architect) műszaki segítségével. Ezen munka eredménye a megvalósíthatósági tanulmány (feasibility study), mely az adott üzleti problémára javasol műszaki megoldásokat.

A létrejövő programot elkészültekor fejlesztők átadják (handover) a tesztelő csapatnak (testing team). Az átadásban segíthet az tesztkörnyezet felállításáért felelős csapat (environment team) és az új szoftver régi környezethez illesztéséért felelős csapat (integration team). Az átadás része a funkcionális specifikáció (functional specification, FUS) és a technikai specifikáció (technical specification, TES). Black-box testing-hez és a megrendelő elvárásainak teljesülését ellenőrző teszteléshez (User Acceptance Testing) elegendő a FUS, white- és grey-box system testing-hez szükséges a TES is.

A tesztelő csapat az átadott dokumentáció alapján elkészíti a tesztelési tervezetet (test plan), valamint becslést (estimation) ad a tesztelés idő- és munkaerőigényéről. Ezek elfogadása esetén létrehozza a teszt szkripteket, (test script) melyek az adott és elvárt mértékben fedik le (test coverage) a tesztelendő funkcionalitásokat. A teszt szkriptek vagy más néven teszt esetek (test case) összessége a test suite, ezek összessége a tesztkampány (test campaign).

Szószedet

szerkesztés
business
A szoftvert megrendelő szervezet
business analyst, BA
A megrendelő elvárásait közvetítő megbízott
business requirements
A megfogalmazott elvárások
Software Quality Assurance, SQA
Szoftverminőség-biztosítás
test requirements
A tesztelendő funkcionalitások listája
test coverage
Funkcionalitás tesztekkel való lefedésének mértéke
test plan
Előzetes tesztelési terv a megfelelő test coverage elérése érdekében
test scenario
Egy alternatív tesztelési módszertan, a scenario testing esetében – és csak ott – hasonló szerepet tölt be, mint a test suite. Részletek itt.
test script
Ezt a kifejezést helytelenül használják az automated test case helyett. A scripted testing ellentéte nem a manual testing, hanem az exploratory. A test script a test case szinonimája. Részletek itt.
test case
Egy elvárás egy adott részének működését ellenőrző dokumentum. Nagyon pontosan leírt feltételek és inputok mellett nagyon pontosan leírt funkcionalitást és outputot vár az ellenőrzött szoftvertől.
test suite
Egy adott funkcionalitást leíró test case-ek összessége a test suite.
validation
Ellenőrzés: "you built the right product" – tehát a specifikáció tényleg a megrendelő elvárásait tartalmazza
verification
Ellenőrzés: "you built the product right" – tehát a programozó a specifikáció szerint írta meg a szoftvert
fault
Programozási hiba, mely funkcionális hibával nem jár.
failure
Programozási hiba, mely a funkcionalitásra hatással van.
defect
Tesztelő által észlelt failure, programozó által vissza nem igazolt
bug
Defect, mely a programozó szerint is az

A szoftvertesztelés története

szerkesztés

A szoftvertesztelés gyakorlata

szerkesztés

A szoftvertesztelés módszertani felosztása

szerkesztés

A szoftvertesztelés szintjei

szerkesztés

A kockázat és kezelése

szerkesztés

A kockázat a veszteség valószínűsége, és ennek mértéke. A kockázatkezelés a kockázati tényezők azonosítása, besorolása, priorizálása, és életciklusuk követése.

Kapcsolódó szócikkek

szerkesztés

Külső hivatkozások

szerkesztés

Angolul:

Magyarul