Szoftvertesztelés

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

A szoftvertesztelés (angol: software testing) a szoftverminőség-biztosítás (angol: SQA, Software Quality Assurance) és így a szoftverfejlesztés (angol: software development) 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 (angol: software metrics), és a kockázatkezelés és -becslés (angol: risk management and assessment). 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 | forrásszöveg szerkesztése]

A szoftvertesztelés definíciói[szerkesztés | forrásszöveg szerkesztése]

A szoftverminőség definíciói[szerkesztés | forrásszöveg szerkesztése]

  • 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 | forrásszöveg szerkesztése]

A klasszikus szoftvertesztelés célja a szoftverhibák felfedezése (angol: failure, fault). 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 (angol: software metrics). 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 (angol: risk assesment and management) is magába foglalja.

A szoftvertesztelés alapfogalmai[szerkesztés | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

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 | forrásszöveg szerkesztése]

A szoftvertesztelés gyakorlata[szerkesztés | forrásszöveg szerkesztése]

A szoftvertesztelés módszertani felosztása[szerkesztés | forrásszöveg szerkesztése]

A szoftvertesztelés szintjei[szerkesztés | forrásszöveg szerkesztése]

A kockázat és kezelése[szerkesztés | forrásszöveg szerkesztése]

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

Lásd még[szerkesztés | forrásszöveg szerkesztése]

Források[szerkesztés | forrásszöveg szerkesztése]

Külső hivatkozások[szerkesztés | forrásszöveg szerkesztése]

Angolul:

Magyarul