Szoftvertesztelés
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ésA 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ésA 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ésA 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ésA szoftvertesztelés gyakorlata
szerkesztésA szoftvertesztelés módszertani felosztása
szerkesztésA szoftvertesztelés szintjei
szerkesztésA kockázat és kezelése
szerkesztésA 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ésForrások
szerkesztésKülső hivatkozások
szerkesztésAngolul:
- Home of Tester
- NASA, Software Metrics Tutorials
- ISO 9126 Archiválva 2008. november 13-i dátummal a Wayback Machine-ben
- ISTQB - International Software Testing Qualifications Board
- ISQTB-CTFL Foundation exam (Hungary)
Magyarul