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ésbeSzerkesztés
A szoftvertesztelés definícióiSzerkeszté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óiSzerkeszté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éljaSzerkeszté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 alapfogalmaiSzerkeszté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ószedetSzerkeszté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éneteSzerkesztés
A szoftvertesztelés gyakorlataSzerkesztés
A szoftvertesztelés módszertani felosztásaSzerkesztés
A szoftvertesztelés szintjeiSzerkesztés
A kockázat és kezeléseSzerkeszté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ócikkekSzerkesztés
ForrásokSzerkesztés
Külső hivatkozásokSzerkesztés
Angolul:
- Home of Tester
- NASA, Software Metrics Tutorials
- ISO 9126
- ISTQB - International Software Testing Qualifications Board
- ISQTB-CTFL Foundation exam (Hungary)
Magyarul