Professional Documents
Culture Documents
ISTQB
ISTQB
Készült:
A szoftvertesztelés alapjai (2009),
Hivatalos magyar nyelvű tanterv (2012)
Szoftvertesztelés egységesített kifejezéseinek gyűjteménye (2014)
Training360 online tanfolyam (2013)
alapján.
1 A tesztelés alapjai
1.1 Miért szükséges a tesztelés? (K2)
1.1.1 Szoftverrendszerek környezete (K1)
A tesztelés függ a körülményektől (6. tesztelési alapelv):
Különböző körülmények esetén különböző módon hajtják végre a tesztelést.
Kockázat (risk): Egy lehetséges probléma; az a tényező, amely a jövőben negatív
következményeket okozhat. Általában, mint hatás és valószínűség jelenik meg.
o Két dolgot kell figyelembe venni: egyrészt, hogy mekkora a bekövetkezés
valószínűsége, és hogy mik a lehetséges hatások.
o A problémák egy része a szoftverhasználat során jelentéktelen, de akadnak olyanok
is, amelyek költségesek, károsak, idő, pénz és üzleti hírnév elvesztését eredményezik,
de akár sérülést vagy halált is okozhatnak.
Emberi eredetű hiba (error, mistake): Emberi tevékenység, amely során helytelen eredmény
jön létre.
Program hiba (bug, defect, fault): A program olyan belső hibája, amely azt eredményezheti,
hogy a szoftver nem tudja teljesíteni az elvárt viselkedést, azaz a program meghibásodásához
vezethet.
Meghibásodás (failure): Bármely programhibának lehetnek olyan következményei, amelyek
azt eredményezik, hogy a rendszer nem azt teszi, amit kellene.
A komponens, illetve a rendszer eltér az elvárt eredménytől vagy szolgáltatástól.
Egy ERROR DEFECT-hez vezethet, mely FAILURE-t okozhat.
Meghibásodást okozhatnak a környezeti viszonyok is: a sugárzás, a mágnesesség, az
elektromos mezők és a szennyezés a hardvertulajdonságok megváltoztatásával
hibaeseményeket okozhatnak, vagy befolyásolhatják a szoftver futását.
1
o Hardver
o Dokumentáció
A szoftvertesztelésre szükség lehet akkor is, ha a szoftvernek szerződésben foglalt, vagy jogi
előírásoknak, ipari és kódolási szabványoknak kell megfelelnie.
IDŐ PÉNZ
2
Ha magas a minőség, és sok pénzünk van, akkor sok időt kell a tesztelésbe beleölni.
A minőség rántja magával a másik két feltételt: ha minőségi terméket akarunk előállítani,
akkor megfelelő mennyiségű időt és pénzt kell áldozni rá.
Nem lehetséges a kimerítő teszt (2. tesztelési alapelv):
Mindenre kiterjedő tesztelés – a triviális eseteket leszámítva – nem lehetséges. Helyette
kockázat elemzéseket és prioritásokat kell alkalmazni, növelve a hatékonyságot.
Kimerítő teszt (exhaustive testing): Olyan tesztelés, amely során a tesztkészletünk magában
foglalja a bemeneti értékek és előfeltételek összes kombinációját.
Ahhoz, hogy eldönthessük, mennyi tesztelés elegendő, figyelembe kell vennünk a kockázati
szintet, beleértve a technikai- és vállalati termékek, projektek kockázatát valamint a
projektek időre és költségvetésre vonatkozó megkötéseit
A tesztelésnek elegendő információt kell biztosítania a projekt résztvevői számára:
o Mikorra várható, hogy a termék kiadható?
o Kibocsátható-e a szoftver egy adott pillanatban?
o Melyek a problémás területek?
o Mi az, ami jól működik?
3
dinamikus, amikor futtatjuk a szoftverkódot
statikus pl. a dokumentumok felülvizsgálata
o Felülvizsgálat (review): egy termék vagy projekt státuszának értékelése. Célja, hogy
feltérképezze az eltéréseket a tervezett eredményekhez képest, valamint ajánlást
tegyen a továbblépéshez. Több típusa van, például: menedzsment felülvizsgálat,
informális felülvizsgálat, technikai felülvizsgálat, inspekció, átvizsgálás.
[IEEE 1028 alapján]
o Tervezés: Menedzselni kell a tesztelést
o Előkészítés: El kell döntenünk, hogy milyen jellegű tesztelést végzünk, ki kell
választanunk a tesztelési feltételeket, és meg kell tervezni a teszteseteket.
o Teszteset (test case): bemeneti értékek, végrehajtási előfeltételek, várt eredmények
és végrehajtási utófeltételek halmaza, amelyeket egy konkrét célért vagy a tesztért
fejlesztettek (például egy program forgatókönyv végrehajtása, vagy egy
követelménynek való megfelelés). [IEEE 610 alapján]
4
tartoznak: a tesztelést a tesztelők, a hibakeresést a fejlesztők végzik.
Bár tesztelés kimutathatja a hibák jelenlétét, de azt nem képes igazolni, hogy nincsenek hibák. A
teszteléssel csökken annak az esélye, hogy a szoftverben felfedezetlen hibák maradnak, de ha nem
találnak hibát, az nem annak a bizonyítéka, hogy a rendszer tökéletes (értsd: valóban nincs benne
hiba)
A rendszerben a hibák eloszlása nem egyenletes, a megtalált hibák többsége néhány modulban van,
vagy legalábbis ezen modulok felelősek a működési hibák többségéért.
Pareto-elv: A hibák 80%-a a modulok 20%-ában van.
A tesztelés során a kritikus modulokra kell koncentrálni.
Ha mindig ugyanazokat a teszteket hajtjuk végre, akkor az azonos a tesztkészlet egy idő után nem fog
új hibákat találni. A „féregirtó paradoxon” megjelenése ellen a teszteseteket rendszeresen felül kell
vizsgálni, és új, eltérő teszteseteket kell írni annak érdekében, hogy a szoftver vagy a rendszer
különböző részei kerüljenek futtatásra, és ezáltal további programhibákat találhassanak.
A tesztelést különböző körülmények esetén különbözőképpen hajtják végre. Például egy olyan
rendszert, ahol a biztonság kritikus szempont, másképp tesztelnek, mint egy e-kereskedelmi oldalt.
5
1.4 A tesztelés alapvető folyamata (K2)
A tesztelés leglátványosabb része a tesztek végrehajtása. A hatékonyság érdekében azonban a
teszttervekben elegendő időt kell biztosítani a tesztterv elkészítésére, a tesztesetek tervezésére, a
végrehajtásra való felkészülésre és az állapot értékelésére.
6
o Tesztelési irányelv és/vagy a tesztelési stratégia megvalósítása. A tervezés során
biztosítani kell, hogy amit végre akarunk hajtani, az megfelel a meglévő
irányelveknek és stratégiának.
o A teszteléshez szükséges javak meghatározása, pl. csapat összetétele,
tesztkörnyezethez szükséges szoftverek, hardverek, stb.
o A teszt elemzésének, a műszaki tervezés feladatainak, a teszt megvalósításának,
végrehajtásának és értékelésének ütemezése. Szükségünk lesz ütemtervre
o Kilépési feltételek meghatározása.
Kilépési feltétel (exit criteria): általános és speciális feltételek halmaza,
amelyet minden érintettel egyeztetve egy folyamat hivatalos befejezési
feltételének tekintünk. A célja, hogy megakadályozzuk az olyan feladatok
befejezettnek tekintését, amelyeknek még vannak függőben levő, be nem
fejezett részei. A kilépési feltételeket a tesztelés leállításának tervezéséhez és
jelentéséhez használjuk.
Tesztirányítás: Folyamatos tevékenység. A lényeges előrehaladást össze kell hasonlítanunk a
tervezettel, és a tesztelés aktuális állásáról jelentést kell tennünk a projekt menedzsereknek
és az ügyfélnek.
o Tesztirányítás (test control): a tesztelési tervtől való eltérések esetén javító
tevékenységeket alkalmazandó teszt menedzselési feladat annak érdekében, hogy a
teszt projekt nyomon követhető legyen
o Tesztelés felügyelete (test monitoring): a tesztelési projekt státuszát rendszeresen
vizsgáló, a tesztelési tevékenységet kezelő tesztmenedzsment feladat. A
tesztmonitorozás részét képezi az elvárt eredményeket az aktuális eredményekkel
összehasonlító jelentés készítése. Lásd még: tesztmenedzsment.
A tesztirányítás alapvető feladatai:
o A felülvizsgálatok és a tesztelés eredményeinek elemzése, mérése.
Tudnunk kell, hogy mennyi felülvizsgálatot és tesztet végeztünk el, és hogy hány volt
sikeres, hány bukott meg, mennyire volt súlyos a programhiba, milyen típusú volt,
stb.
o Felügyeleti és dokumentációs folyamat, tesztlefedettség és kilépési feltételek.
A teszt eredményeket az egész csapat számára elérhetővé kell tenni
o Információnyújtás a tesztelésről
Rendszeres és rendkívüli jelentéseket kell adnunk a projekt szponzorának, ügyfélnek
és a többi kulcsszereplőnek.
o Javítások kezdeményezése
o Döntéshozatal
Eredményekre és információkra alapozva döntéseket hozunk, vagy mások számára
tesszük lehetővé a döntéshozatalt. Ilyen pl. a teszt folytatása vagy leállítása.
7
dokumentumok, amelyeken a tesztesetek alapulnak. Ha egy ilyen dokumentumot
csak formális változáskezelési folyamat során módosíthatnak, a tesztbázist ún.
fagyasztott tesztbázisnak nevezik. [TMap alapján]
A tesztbázis és a tesztelés tárgyának értékelése tesztelhetőség szempontjából. A
tesztelhetőség különböző tényezőktől függ: egyrészt, hogy felállítható-e a rendszer egy a
működési környezettel azonos környezetben, másrészt, hogy megérthető-e, valamint
tesztelhető-e a rendszer bármely lehetséges konfigurációja, illetve a használatának összes
lehetséges módja.
A tesztelési feltételek meghatározása és priorizálása a tesztelemek, a specifikáció, a
viselkedés és a struktúra elemzése alapján.
o Tesztelési feltétel (test condition): a rendszer egy olyan eleme, vagy eseménye,
amelyet egy tesztesettel ellenőrizni lehet, például funkció, tranzakció, jellemző,
minőségi attribútum vagy strukturális elem.
Tesztesetek megtervezése és priorizálása. A kiválasztás során a tesztelési feltéteket vesszük
alapul, valamint mélyebben belemegyünk a részletekbe.
A tesztelési feltételek és a tesztesetek támogatásához szükséges tesztadatok
meghatározása. Tesztadatok pl.: egyes tesztesetek specifikus bemeneti adatai; dinamikus
adatbázisok, statikus adattáblák, stb. Funkcionális teszt esetén a lehető legkisebb
adatbázissal próbálunk dolgozni, hogy a teszteredményeket könnyebben ellenőrizhessük.
Érdemes az adatbázisokat úgy megtervezni, hogy újból felhasználhatók legyenek.
A tesztkörnyezet kialakításának megtervezése valamint a szükséges infrastruktúra és
eszközök meghatározása. Ez magában foglalja a tesztelési eszközöket, egyéb felhasznált
eszközöket (táblázatkezelő, szövegszerkesztő, projekttervező eszközök) és nem IT-s
eszközöket is.
Tesztbázis és tesztesetek összekapcsolása (traceability):
8
o Tesztelési eljárások fejlesztése és priorizálása, tesztadatok létrehozása valamint
opcionálisan a tesztelési alapkörnyezet elkészítése és automatizált tesztszkriptek
írása.
o Tesztkészletek létrehozása a tesztelési eljárásokból a hatékony tesztvégrehajtás
érdekében.
Tesztkészlet (test suite): rendszerre vagy rendszerkomponensekre készített
tesztesetek halmaza, amelyben gyakran az egyik teszt utófeltétele egyben a
másik teszt előfeltétele
Tesztvégrehajtás (test execution): a rendszeren vagy annak komponensén
végzett tesztelés folyamata, amelyből megkapjuk az aktuális eredményeket.
o Annak ellenőrzése, hogy a tesztkörnyezetet megfelelően kialakították.
Végrehajtás:
o A tesztelési eljárások a megtervezett sorrend szerinti végrehajtása manuálisan vagy
tesztvégrehajtási eszközökkel.
o A tesztvégrehajtás eredményeinek naplózása és a tesztelt szoftver, a teszteszközök
és a tesztelési környezet azonosítóinak és verzióinak feljegyzése.
Tesztelési napló (test log, test record): a tesztvégrehajtáshoz kapcsolódó
részletek időrendi rögzítése
o A kapott és az elvárt eredmények összehasonlítása.
o Az eltérések incidensként való jelentése és elemzése a kiváltó ok felderítése
érdekében (például hiba volt a kódban, meghatározott tesztadatokban, a teszt
dokumentumban, vagy a teszt végrehajtásában történt tévedés).
Incidens (incident): bármely olyan történés, amely vizsgálódást tesz
szükségessé [IEEE1008]
o A tesztelési tevékenység ismétlése minden eltérésnél a lépések megtétele után.
Például: az előzetesen sikertelen teszt újrafuttatása a javítás ellenőrzésére (ellenőrző
teszt), a javított teszt végrehajtása és/vagy tesztek végrehajtása annak ellenőrzésére,
hogy nem kerültek-e hibák a szoftver változatlanul hagyott területeibe, illetve hogy a
hiba javításával nem jelentek-e meg további hibák (regressziós teszt).
Ellenőrző teszt/újratesztelés (confirmation testing/re-testing): tesztelés,
amikor azokat a teszteseteket futtatjuk, amelyek a legutóbbi tesztfuttatásnál
elbuktak. Célja a hibajavítás sikerességének ellenőrzésére.
Regressziós teszt (regression testing): Egy korábban már letesztelt program,
módosítást követő tesztelése, annak biztosítása érdekében, hogy a
módosulás nem okozott hibát a szoftver nem módosított részeiben. A teszt
végrehajtása a szoftver vagy a szoftverkörnyezet változtatásakor történik.
I
N
Szükséges további tesztelés?
N
I 9
Teszt összefoglaló készítése (összesített eredmény, statisztikák, stb.)
A kilépési feltétel értékelésének fő feladatai:
A tesztelési naplók és a tesztelési tervezetben foglalt kilépési feltételek összehasonlítása.
Annak megállapítása, hogy szükséges-e további tesztek futtatása, vagy a kilépési feltételek
megváltoztatása.
Teszt összefoglaló jelentés elkészítése a projektben résztvevőknek.
o Teszt összefoglaló jelentés (test summary report): a tesztelési tevékenységeket és
eredményeket tartalmazó dokumentum. Ebben a dokumentumban található a
kilépési feltételeknek megfelelően ellenőrzött tesztelési elemek kiértékelése is.
Bizonyos fokú függetlenséggel (a szerzői elfogultság kizárásával) gyakran hatékonyabban találják meg
a hibákat és a meghibásodásokat. A függetlenség azonban nem helyettesíti a jártasságot, a fejlesztők
saját kódjukban sok hibát hatékonyan megtalálnak.
10
Más szervezeti csoporthoz (például egy független tesztelő csapathoz) tartozó személy(ek)
vagy tesztelési szakértők (például használhatósági vagy teljesítményteszt) által tervezett
tesztek.
Más szervezethez vagy céghez tartozó személy(ek) által tervezett tesztek (outsourcing vagy
egy külső testület tanúsítványa).
A tesztelés során tapasztalt meghibásodások feltárását gyakran a termék vagy a szerző elleni
kritikának fogják fel. Emiatt a tesztelést gyakran destruktív tevékenységnek tekintik, annak ellenére,
hogy valójában konstruktív a termék kockázatának kezelésében. Egy rendszer programhibáinak
kutatása kíváncsiságot, szakszerű pesszimizmust, kritikus szemléletet, a részletekre való odafigyelést,
a fejlesztőkkel való jó kommunikációt és a hibasejtéseket megalapozó tapasztalatot kíván.
Hibasejtés (error guessing): olyan műszaki teszttervezési módszer, amely során a tesztelők
tapasztalata alapján próbáljuk megsejteni a tesztelendő szoftverben levő hibákat, illetve ez
alapján próbálunk megfelelő teszteket tervezni
11
Minden fejlesztési ciklusban a tesztelés egy része a verifikációs, egy másik pedig a validációs
tesztelésre összpontosít:
Verifikáció (verification): az adott követelmények teljesülésének vizsgálata és konfirmálása
„A rendszer megfelel-e a specifikációnak” - [ISO 9000]
Validáció (validation): „Helyes-e a specifikáció”
Annak vizsgálata, és konfirmálása, hogy a szoftver tervezett felhasználási céljának megfelelő
követelmények teljesülnek-e - [ISO 9000]
V modell:
12
Bár a V-modellnek többféle változata létezik, az általános V-modellnél négy tesztelési szintet
alkalmaznak, melyek a négy fejlesztési szinthez tartoznak:
Tesztelési szint (test level): közös szervezés és menedzsment alatt álló
tesztelési tevékenységek csoportja. A tesztelési szint felelősségi körökhöz
kapcsolódik a projekten belül. Tesztelési szintekre példa a komponens-
tesztelés, integrációs teszt, rendszerteszt és felhasználó teszt. [TMap
alapján]
o komponens (egység) teszt: a külön-külön tesztelhető szoftverkomponensekben kutat
programhibák után, és ellenőrzi azok működését.
o integrációs teszt: a tesztek a komponensek közötti, a rendszer különböző részei
közötti, vagy maguk a rendszerek közötti kölcsönhatásokat vizsgálják.
o rendszerteszt: a rendszer/termék egészének a viselkedését vizsgálja.
o átvételi teszt: validációs tesztelés, mely figyelembe veszi a felhasználók igényeit, a
követelményeket. (Segít eldönteni, hogy átvegyék-e a rendszert vagy nem)
A gyakorlatban a projekttől és a szoftverterméktől függően a V-modellnek lehet ennél több,
kevesebb, vagy eltérő fejlesztési és tesztelési szintje. Például a komponensteszt után
következhet komponens integrációs teszt vagy a rendszerteszt után rendszer integrációs
teszt.
Egy kereskedelmi dobozos (COTS) szoftvertermék rendszerbe történő integrációja esetén a
vevő adott esetben megelégedhet azzal, hogy rendszerszinten csupán az integrációs tesztet
végzi el, az átvételi tesztet pedig majd egy későbbi szinten hajtja végre.
o Dobozos szoftver (COTS – commercial off-the-shelf software): egy, az általános piaci
igényeknek megfelelő szoftver termék, pl.: nagyszámú vevő. Hasonló elérhetőséggel,
illetve megjelenéssel rendelkezik minden vásárló számára
13
alapját egy vagy több tesztelési szinten. Az általános szoftvertermékekre referencia az
integrált képességi-érettségi modell (CMMI) vagy a szoftver életciklus folyamatokat leíró
szabványban („Software life cycle processes”, IEEE/IEC 12207). A verifikációt és a validációt
(és a korai műszaki teszttervezést) a szoftver termékek fejlesztése alatt lehet elvégezni.
14
2.2 Tesztelési szintek (K2)
2.2.1 Komponensteszt (K2)
A komponensteszt hibákat keres az önállóan tesztelhető szoftverekben (pl. modulok,
programok, objektumok, osztályok), és ellenőrzi működésüket. A fejlesztési életciklus
körülményeitől és a rendszertől függően a rendszer többi részétől elkülönítve is végezhető.
Használhatók csonkok, meghajtók és szimulátorok.
B
E
C A
F
D
15
2.2.2 Integrációs teszt (K2)
Az integrációs teszt során a komponensek közötti interfészeket, egy rendszer más részeivel
– mint az operációs rendszer, fájlrendszer, hardver – való kölcsönhatásait vagy a rendszerek
közötti interfészeket tesztelik.
o Integráció (integration): a komponensek, vagy rendszerek nagyobb egységbe
történő összeolvasztásának folyamata
o Integrációs teszt (integration testing): olyan tesztelés, amelynek célja az integrált
egységek közötti interfészekben, illetve kölcsönhatásokban lévő hibák megtalálása.
B E G
C D F
Az integrációs tesztnek több szintje lehet, és különböző méretű lehet a tesztelési tárgya is.
Például:
o A komponens integrációs teszttel a szoftverkomponensek közötti kölcsönhatásokat
tesztelik; a komponensteszt után végzik;
o A rendszer integrációs teszttel a különböző rendszerek közötti kölcsönhatásokat
tesztelik; a rendszerteszt után végezhetik. Ebben az esetben előfordulhat, hogy a
fejlesztő szervezet csak az interfész egyik oldalát kontrollálja, így a változtatások
ronthatják a stabilitást. A munkafolyamatként kivitelezett vállalati folyamatok,
rendszerek egész sorát foglalhatják magukba. A platformokat átölelő problémák nagy
jelentőséggel bírhatnak.
Minél nagyobb az integráció mértéke, annál nehezebb egy adott komponenshez vagy
rendszerhez visszavezetni a meghibásodásokat, ez pedig magasabb kockázati faktort
jelenthet.
A „nagy bumm” (big bang) módszer: Az összes komponenst vagy rendszert szimultán
integráljuk, majd pedig egységes egészként teszteljük
o Előnye: az integrációs teszt megkezdésekor már nincs szükség befejezetlen részek
szimulálására
o Hátránya: időigényes végrehajtani, és a késői integráció miatt nehéz feltárni a
meghibásodások okát.
Inkrementális tesztelés: Minden programot egyesével integrálunk, és minden lépés után
végrehajtunk egy tesztet.
o Előnye: a programhibákat korábban találjuk meg, még a kisebb összeállításokban
o Hátránya: időigényes lehet, mivel a fejlesztés során csonkokat és meghajtókat kell
kifejleszteni és használni.
Felülről lefelé haladó: a tesztelés felülről lefelé halad, követve a vezérlési folyamatot vagy a
felépítési struktúrát. A komponenseket vagy a rendszereket csonkok helyettesítik.
16
Alulról felfelé haladó: A tesztelés a vezérlési folyamat alján kezdődik és felfelé halad. A
komponenseket vagy rendszereket meghajtók helyettesítik.
Funkcionális inkrementális: az integrációt és a tesztelést a funkciókra vagy a funkcionalitásra
alapozva végezzük, a funkcionális specifikációk dokumentációja alapján
Egyes nem-funkcionális jellemzők tesztelése (pl. teljesítmény) is része lehet az integrációs
tesztnek.
Az integráció minden fázisában a tesztelők kizárólag magára az integrációra koncentrálnak.
Például A modul és B modul egyesítésénél a két modul közötti kommunikáció tesztelésére
figyelnek, nem pedig az egyes modulok működésére. A funkcionális és a strukturális
megközelítés egyaránt alkalmazható.
Ideális esetben a tesztelők ismerik a rendszer felépítését, és befolyással bírnak az integráció
tervezésére. Ha az integrációs teszteket még a komponensek vagy rendszerek kifejlesztése
előtt megtervezik, akkor ezeket a leghatékonyabb tesztelésnek megfelelő sorrendben lehet
kifejleszteni.
17
o Tesztkörnyezet (test environment): a tesztelést támogató eszközök együttese,
beleértve minden hardver és szoftver eszközt (IEEE 610).
18
szoftver megfelel-e a felhasználók piaci igényeinek. Gyakran megfelel a dobozos
(OTS) szoftverek külső átvételi tesztjének
Az egyes szervezetek különböző megnevezéseket használhatnak, mint működési átvételi
teszt és helyszíni átvételi teszt, azokra a rendszerekre, melyeket az ügyfélnek történő átadás
előtt és után is tesztelnek.
19
o Üzleti folyamat: a vállalati folyamatokra vonatkozó ismereteket használjuk fel.
A funkcionális teszt az ISO 9126-os szabvány alapkán összpontosíthat az alkalmasságra,
együttműködő képességre, biztonságra, pontosságra és megfelelőségre.
o Biztonsági teszt: védve van-e a rendszer a rosszindulatú külső (pl. vírus) ellen (tűzfal)
Biztonság (security): A szoftver termék azon képessége, hogy elfogadható
szintű kockázatot biztosítson az emberekkel, üzlettel, tulajdonnal vagy a
környezettel, a megadott használati környezetben. [ISO 9126]
o Együttműködő-képességi teszt: hogyan tud a rendszer együttműködni más
rendszerekkel
Együttműködő képesség (interoperability): a szoftver azon jellemzője, hogy
egy, vagy több adott komponenssel, illetve rendszerrel milyen az egymásra
hatásuk [ISO 9126 szerint].
Funkcionális tesztelés során általában specifikáció alapú technikákat alkalmazunk, de
használhatunk tapasztalat alapú technikákat is.
20
o Karbantarthatóság (maintainability): egy alkalmazás azon tulajdonsága, hogy milyen
egyszerűen lehet hibákat javítani benne, új vagy megváltozott követelmények illetve
környezet miatt szükséges módosításokat eszközölni. [ISO 9126]
o Megbízhatóság (reliability): a szoftvertermék azon képessége, hogy a szükséges,
előírt funkcionalitást meghatározott időtartam vagy meghatározott műveletszám
mellett az előre megállapított követelmények szerint képes ellátni. [ISO 9126]
o Hordozhatóság (portability): Egy szoftvertermék átmozgatásának mértéke
(hardverről egy másikra, vagy egyik szoftver környezetből egy másikba). [ISO 9126]
Az ISO 9126 szabvány hat minőségi mutatót ad meg, amelyek további alosztályokra
bonthatók, minden alosztályban számos jellemzővel:
o Funkcionalitás: öt aljellemzőre oszlik: alkalmasság, pontosság, biztonság,
együttműködés és megfelelőség.
o Megbízhatóság: érettség (robosztusság), hibatűrés, visszaállíthatóság és
megfelelőség
o Használhatóság: érthetőség, tanulhatóság, működtethetőség, megjelenés és
megfelelőség
o Hatékonyság: időbeli viselkedés (teljesítmény), erőforrás kihasználtság és
megfelelőség
o Karbantarthatóság: elemezhetőség, változtathatóság, stabilitás, tesztelhetőség és
megfelelőség
o Hordozhatóság: adaptálhatóság, telepíthetőség, koegzisztencia, helyettesíthetőség
és megfelelőség
21
2.3.4 Változásokhoz kapcsolódó tesztelés (ellenőrző teszt (újratesztelés) és regressziós
teszt) (K2)
Egy hiba felismerése és javítása után a szoftvert újra kell tesztelni, ezáltal meggyőződve arról,
hogy a hiba eltűnt. Ezt hívják ellenőrző tesztnek. A hibakeresés nem tesztelési, hanem
fejlesztési tevékenység.
o Ellenőrző teszt/újratesztelés (confirmation testing/re-testing): tesztelés, amikor
azokat a teszteseteket futtatjuk, amelyek a legutóbbi tesztfuttatásnál elbuktak. Célja
a hibajavítás sikerességének ellenőrzésére.
A regressziós teszt egy már letesztelt program módosítása után történő ismételt tesztelése, a
változtatás(ok) eredményeként bekerült vagy feltárt hibák megtalálásának érdekében. Ezek a
hibák lehetnek a tesztelt szoftverben vagy egy másik, a tesztelt szoftverrel kapcsolatban lévő,
vagy attól független szoftverkomponensben. A regressziós tesztet akkor alkalmazzák, ha a
szoftvert vagy környezetét megváltoztatják. A regressziós teszt mértéke azon alapul, hogy
találnak-e hibákat az előzőleg jól működő szoftverben.
o Regressziós teszt (regression testing): Egy korábban már letesztelt program,
módosítást követő tesztelése, annak biztosítása érdekében, hogy a módosulás nem
okozott hibát a szoftver nem módosított részeiben. A teszt végrehajtása a szoftver
vagy a szoftverkörnyezet változtatásakor történik.
A teszteknek megismételhetőknek kell lenniük, ha ellenőrző tesztre vagy regressziós teszt
támogatására kívánják őket alkalmazni.
A regressziós teszt minden tesztelési szinten végrehajtható, és alkalmazható a funkcionális,
nem-funkcionális és strukturális tesztre. A regressziós tesztkészleteket sokszor futtatják le, és
többnyire lassan fejlődnek ki, így a regressziós tesztnél fontos lehet az automatizálás.
22
2.4.1 Hatáselemzés és regressziós teszt
A karbantartási teszt általában két részből áll:
o Változtatások kezelése
o Regressziós tesztelés – annak a tesztelése, hogy a karbantartási munkák kihatással
voltak-e a rendszer többi részére.
A karbantartási teszt, a változtatások tesztelése mellett a javítások által nem érintett részek
széles körű regressziós tesztjét is magában foglalja. A karbantartási teszt mértéke függ a
változtatások okozta kockázattól, a meglévő rendszer méretétől és a változtatás mértékétől.
A változtatásoktól függően a karbantartási tesztet bármely illetve minden tesztelési szinten,
bármely és minden teszttípusra elvégezhetik.
Hatáselemzés alatt értjük annak meghatározását, hogy a változtatások milyen befolyással
lesznek a már létező rendszerre; ez segít annak eldöntésében, hogy mennyi regressziós
tesztet kell végezni.
o Hatáselemzés (impact analysis): a szoftverváltozás kihatásának elemzése a
fejlesztési dokumentáció, a teszt dokumentáció, illetve a komponensek tekintetében,
a követelmények változásainak implementálása érdekében
A karbantartási tesztet jelentősen megnehezíti, ha a specifikációk elavultak, vagy egyáltalán
nem állnak rendelkezésre.
Tervezett módosítások: A karbantartási munkák 90%-át teszik ki.
o Tökéletesítő módosítások: a szoftvernek a felhasználói elvárásokhoz való igazítása,
pl. funkciók telepítése, vagy teljesítmény növelése.
o Adaptív módosítások: a szoftvernek a környezet változásaihoz való igazítása, pl. új
hardverhez, új rendszerszoftverhez, új szabályrendszerhez.
o Tervezett javító módosítások: Programhibák későbbre halasztható javítása.
Ad hoc javító módosítások: Az azonnali megoldást kívánó programhibák javításával
kapcsolatosak, pl. hálózat összeomlás, hirtelen leállás, stb.
23
3 Statikus technikák (K2)
3.1 A statikus technikák és a tesztelési folyamat (K2)
A dinamikus teszttel ellentétben – melyhez a szoftver futtatása szükséges –a statikus teszt
technikák a kód- vagy a projekt dokumentációk manuális vizsgálatára (felülvizsgálatok) és
automatizált elemzésére (statikus elemzés) támaszkodnak.
o Dinamikus teszt (dynamic testing): olyan teszt, amely magába foglalja egy
komponens, vagy rendszer szoftverének végrehajtását.
o Statikus teszt (static testing): Egy komponens vagy rendszer tesztelése specifikáció,
vagy implementáció szinten a szoftver futtatása nélkül. Például felülvizsgálat vagy
statikus forráskód elemzés.
A felülvizsgálatot teljesen manuálisan is végre lehet hajtani, de léteznek a felülvizsgálatot
támogató eszközök. A legfőbb manuális tevékenység a projekt-termékek megvizsgálása és
észrevételezése. Bármely szoftver projekt-termék felülvizsgálható, úgy, mint a követelmény-
specifikációk, tesztterv-specifikációk, kód, teszttervek, tesztspecifikációk, tesztesetek,
tesztszkriptek, felhasználói útmutatók vagy weboldalak.
o Felülvizsgálat (review): egy termék vagy projekt státuszának értékelése. Célja, hogy
feltérképezze az eltéréseket a tervezett eredményekhez képest, valamint ajánlást
tegyen a továbblépéshez. Több típusa van, például: menedzsment felülvizsgálat,
informális felülvizsgálat, technikai felülvizsgálat, inspekció, átvizsgálás. [IEEE 1028]
A felülvizsgálatok előnyei:
o Hibák korai megtalálása és javítása
o Fejlesztési termelékenység javítása
o Fejlesztési időtartamok csökkenése
o Tesztelési költségek és idő csökkenése
o A teljes élettartam költségeinek csökkenése
o Kevesebb hiba
o Jobb kommunikáció
o A felülvizsgálatokkal megtalálhatóak a hiányosságok, például a követelményekben,
melyeket a dinamikus teszttel valószínűleg nem találnának meg.
A felülvizsgálatoknak, a statikus elemzésnek és a dinamikus tesztnek azonosak a céljaik – a
hibák azonosítása. Ezek a módszerek kiegészítik egymást: különböző technikák különböző
típusú hibák hatékony megtalálását segítik elő. A dinamikus teszttel összehasonlítva, a
statikus technikák inkább a meghibásodások okát találják meg, nem magukat a
meghibásodásokat.
Az alábbi típushibákat könnyebb felülvizsgálattal megtalálni, mint dinamikus teszteléssel:
o Szabványoktól való eltérések
o Követelményekkel kapcsolatos hibák
o Tervezési hibák
o Karbantarthatóság hiánya
o Hibás interfész-specifikációk.
24
3.2 A felülvizsgálat folyamata (K2)
A felülvizsgálatok típusai a nagyon informálistól (pl. ha a felülvizsgálatot végzőknek
nincsenek írásos utasításai) a nagyon formálisig (jól strukturált és szabályozott) terjednek. A
felülvizsgálati folyamat formalitása összefügg az olyan tényezőkkel, mint a fejlesztési
folyamat állapota, jogi, rendelkezési követelmények illetve az audit nyomvonal
szükségessége.
o Informális felülvizsgálat (informal review): olyan felülvizsgálat, amely nem formális
(dokumentált) eljáráson alapul
o Formális felülvizsgálat (formal review): dokumentált eljárásokkal és
követelményekkel (pl. inspekcióval) jellemzett felülvizsgálat
Formális felülvizsgálat: audit.
A felülvizsgálat végrehajtási módja a megegyezés szerinti célkitűzéstől függ (pl. hibák
megtalálása, megismerése vagy megvitatása és döntések meghozása konszenzus alapján).
25
3.2.2 Feladatok, felelősségi körök (K1)
Egy tipikus formális felülvizsgálat a következő feladatköröket tartalmazza:
Menedzser: dönt a felülvizsgálatok végrehajtásával kapcsolatban, kijelöli az időpontokat a
projekt ütemtervében, s dönt arról, hogy a felülvizsgálat célkitűzéseit teljesítették-e.
Moderátor (inspekció vezető): vezeti a dokumentum(ok) felülvizsgálatát, ezzel együtt a
felülvizsgálat tervezését, a megbeszélés lebonyolítását és a találkozó utáni visszaellenőrzést.
A moderátor szükség esetén közvetít a különböző álláspontok között, és gyakran rajta múlik a
felülvizsgálat sikere.
o Moderátor (moderator): egy inspekció, vagy felülvizsgálat levezetéséért felelős
kulcsember vagy vezető.
Szerző: a felülvizsgálandó dokumentum(ok) írója vagy fő felelőse.
Felülvizsgálati résztvevők: meghatározott technikai vagy vállalati háttérrel rendelkező
személyek (nevezik őket vizsgálónak, vagy felülvizsgálónak is), akik a szükséges felkészülés
után meghatározzák és bemutatják a termék felülvizsgálatának eredményeit (pl. hibákat). A
felülvizsgálókat úgy kell kiválasztani, hogy különböző szempontokat és szerepköröket
képviseljenek; minden felülvizsgálati megbeszélésen részt kell venniük.
o Felülvizsgáló (reviewer): az a felülvizsgálaton (átvizsgáláson) résztvevő személy, aki
azonosítja és leírja a termékben vagy projektben azonosított eltéréseket. A
felülvizsgálókat célszerű úgy kiválasztani, hogy többféle nézőpontot, szerepkört
képviseljenek.
Jegyzőkönyvvezető (vagy írnok): minden, a találkozó alatt felmerült ügyet, problémát és
nyitott kérdést dokumentál.
o Jegyzőkönyvvezető (scribe, recorder): Az a személy, aki rögzíti a felülvizsgálat során
megemlített összes hibát és azokat a javaslatokat, amik a folyamat javítására
irányulnak, naplózási formában. A jegyzőnek biztosítani kell, hogy a naplózás
olvasható és érthető legyen.
Informális felülvizsgálat:
o nincs formális eljárás;
o lehetséges páros programozás vagy technikai irányítás a tervek és a kód
felülvizsgálatára;
o a dokumentáció opcionális;
o a hatékonyság a felülvizsgálatot végzőtől függően változó lehet;
o fő cél: költségkímélő módszerrel némi eredményt elérni.
Átvizsgálás:
26
o Átvizsgálás (walkthrough): egy dokumentum szerzője által végzett lépésenkénti
bemutató abból a célból, hogy információt gyűjtsön, valamint közös álláspontot
alakítson ki. [Freedman és Weinberg, IEEE 1028].
o Főbb jellemzői:
a találkozót a szerző vezeti;
forgatókönyvek, képzeletbeli futtatások, egyenrangú csoport;
nem zárt szakaszok;
opcionális: a felülvizsgálatot végzők találkozó előtti felkészülése,
felülvizsgálati jelentés, az eredmények listája, jegyzőkönyvvezető (a szerző
nem lehet ez a személy);
a gyakorlatban a formája a nagyon informálistól a nagyon formálisig
terjedhet;
fő célok: megismerés, megértés, hibák megtalálása.
Technikai felülvizsgálat:
o Technikai felülvizsgálat (technical review): csoportos megbeszélés, amely a
technikai megközelítés tekintetében törekszik közös álláspontra jutni [Gilb és
Graham, IEEE 1028]
o Főbb jellemzői:
dokumentált, definiált hibakeresési folyamat, egyenrangú kollégák és
technikai szakértők részvételével;
egyenrangú felülvizsgálatként is végrehajtható, a menedzsment részvétele
nélkül;
ideális esetben képzett moderátor vezeti (nem a szerző);
találkozó előtti felkészülés;
opcionális: ellenőrző lista használata, felülvizsgálati jelentés, eredmények
listája és a menedzsment részvétele;
a gyakorlatban a formája a nagyon informálistól a nagyon formálisig
terjedhet;
fő célok: megvitatás, döntéshozatal, alternatívák értékelése, hibák
megtalálása, technikai problémák megoldása és annak ellenőrzése, hogy a
specifikációk megfelelnek-e a szabványoknak.
Inspekció:
o Inspekció (inspection): az egyenrangú felülvizsgálat egy típusa, amely a dokumentum
vizuális vizsgálatán alapul, hogy megtaláljuk a hibákat, vagy pl. a szabványokhoz
képest meglevő különbségeket, illetve a magasabb szintű dokumentációktól való
eltéréseket. A leginkább formális felülvizsgálati módszer, amely emiatt mindig
dokumentált eljáráson alapul. [IEEE 610, IEEE 1028 szerint]
o Főbb jellemzői:
képzett moderátor vezeti (nem a szerző);
általában egyenrangú vizsgálat;
definiált szerepkörök;
metrikákat is magában foglal;
formális eljárás, a bemeneti és kimeneti feltételekre vonatkozó szabályok
és ellenőrző listák alapján;
találkozó előtti felkészülés;
inspekció jelentés, eredmények listája;
formális visszaellenőrző eljárás;
opcionálisan: folyamatjavítás
27
Az átvizsgálást, technikai felülvizsgálatot és az inspekciót végre lehet hajtani egyenrangú
csoporton belül – ugyanazon szervezeti szinthez tartozó kollégák részvételével. Ezt a típusú
felülvizsgálatot nevezik „egyenrangú felülvizsgálatnak”.
o Egyenrangú felülvizsgálatnak (peer review): A szoftverfejlesztés alatt végzett
tevékenységek felülvizsgálata nem a tevékenységet elvégző által, melynek célja, hogy
hibákat fedezzen fel illetve javító javaslatokat hozzon. Példák: inspekció, technikai
felülvizsgálat, átvizsgálás.
28
o Korai figyelmeztetések a kód vagy a terv gyanús tényezőiről a metrikák. számításával,
például a magas komplexitás mérése.
o Olyan hibák azonosítása, melyeket dinamikus teszttel nehéz megtalálni.
o Függőségi viszonyok és összeférhetetlenségek felismerése a szoftvermodellekben,
például linkek.
o A kód és a terv jobb karbantarthatósága.
A statikus elemző eszközök által felismert tipikus hibák:
o meghatározatlan értékű változóra való hivatkozás;
o összeférhetetlen interfész modulok és komponensek között;
o soha nem használt változók;
o nem elérhető (halott) kód;
o hibás vagy hiányzó logika (potenciálisan végtelen ciklus)
o túl nagy komplexitás
o programozási szabványok megsértése;
o biztonsági rések;
o szintaxis megsértése a kódban vagy a szoftvermodellekben.
o nem megfelelő kommentezés
A statikus elemző eszközöket általában a fejlesztők használják (előre meghatározott
szabályoknak és programozási szabványoknak való megfelelés ellenőrzése céljából) a
komponens- és integrációs teszt előtt és után, illetve a tervezők a szoftver-modellezés
során. A statikus elemző eszközök számos figyelmeztető üzenetet generálhatnak, melyeket
megfelelően kell kezelni az eszköz hatékony használata érdekében.
3.3.2 Kódmetrikák
Statikus kódelemzés sokán a kód szerkezeti jellemzőiről nyerünk információkat, például a
megjegyzések gyakoriságáról, a beágyazás mélységéről, a ciklomatikus számról és a sorok
számáról a kódban.
Sokféle szerkezeti mérőszám létezik, amelyből megtudhatjuk, hogy mennyi munkával jár a
kód megírása, a kód megértése változások estén, vagy a kód tesztelése egyes eszközök vagy
technikák használatával.
Tapasztalt programozók tudják, hogy a kód 20%-a okozza a problémák 80%-át, és
komplexitás-analízis segítségével megtalálható ez a 20%. Komplexitás-metrikák segítségével
azonosítjuk a magas kockázatú, komplex területeket.
o Komplexitás (complexity): a szoftver tervének, illetve belső struktúrájának
összetettsége megértés, karbantartás, valamint verifikálás szempontjából.
A ciklomatikus komplexitás (McCabe) metrikája a programban lévő döntéseken alapul. Ez
fontos a tesztelőknek, mivel ez alapján fel tudják becsülni, hogy mennyi tesztelés szükséges
ahhoz, hogy a gyakorlatban elkerülhetőek legyenek a programhibák. Másképp kifejezve a kód
komplexebbnek azonosított részeit küldik felülvizsgálatokra és kiegészítő dinamikus
tesztelésre.
29
o Ciklomatikus komplexitás (cyclomatic complexity): a független útvonalak száma a
programban. A ciklomatikus komplexitás definíciója: L – N + 2P, ahol
L = az élek/kapcsolatok száma a gráfban
N = a csomópontok száma a gráfban
P = a nem kapcsolódó részek (független komponensek) a gráfban, pl egy
meghívott gráf és alprogram
Példa:
IF A =354
THEN IF B > C
THEN A = B
ELSE A = C
ENDIF
ENDIF
Print A
Ábrázolása
A programból generált vezérlési folyam hét csomópontot és nyolc élet tartalmaz, és nem
szerepel meghívott gráf sem alprogramként, ezért P=1, így a ciklomatikus komplexitás
képletét használva 8 – 7 + 2 = 3 eredményt kapjuk.
o Vezérlési folyam (control flow): az események (útvonalak) sorrendje a végrehajtás
során
Kiszámolhatjuk még döntési pontok alapján is az eredményt, itt két döntési pont van, ezért a
ciklomatikus komplexitás 2 + 1 = 3.
3.3.3 Kódszerkezet
A kód szerkezetével kapcsolatban több szempontot is érdemes figyelembe venni
o a vezérlési folyam szerkezetét
o az adatfolyam szerkezetét
o az adatszerkezetet
A vezérlési folyam szerkezete határozza meg az utasítások végrehajtásának sorrendjét.
Elérhetetlen (halott) kódok azonosítására is kiválóan alkalmazható.
Az adatfolyam szerkezete egy adatelem útját követi nyomon, ahogy a kód hozzáfér és
módosítja. Sokszor az adatokon alkalmazott tranzakciók sokkal bonyolultabbak, mint az őket
végrehajtó utasítások. Az adatfolyam-szerkezeti mérőszámok alkalmazásával azonban
kimutatható, hogy miként viselkednek az adatok, miközben átalakítja őket a program. Olyan
programhibákat is meg lehet találni, mint a meghatározatlan értékű változóra való
hivatkozások, és felfedezhetők a program által sosem használt változók is.
30
o Adatfolyam (data flow): Az adatobjektumok állapotsorrendjének, valamint
lehetséges változásainak absztrakt megjelenítése, ahol az objektum állapota
létrehozás, használat, illetve megszüntetés lehet
Az adatszerkezet nagy mennyiségű információt biztosít az adatkezelő programok írásának
nehézségeiről, valamint a program megfelelő működését kimutatni hivatott tesztesetek
műszaki tervezésének nehézségeiről. Azaz egy program néha azért bonyolult, mert bonyolult
adatszerkezettel rendelkezik, és nem pedig az adatfolyam bonyolult irányítása miatt.
31
4 Műszaki teszttervezési technikák (K3)
4.1 A teszt fejlesztési folyamata (K2)
Az ebben a fejezetben bemutatott eljárást különböző módokon lehet végrehajtani, a kevéssé, vagy
egyáltalán nem dokumentált jelentő nagyon informális módtól a nagyon formálisig (mint azt lentebb
tárgyaljuk). A formalitás szintje a tesztelés tényezőitől függ, ide tartozik a szervezet, a tesztelés és a
fejlesztési folyamat érettsége, az időbeli megkötések és a résztvevő személyek.
32
(IEEE 829) tárgyalja a (tesztelési feltételeket is tartalmazó) műszaki tesztterv (test design)
specifikációk és a teszteset specifikációk tartalmát.
o Műszaki tesztterv specifikáció (test design specification): a tesztelési feltételeket és
követelmények teljesítését definiáló dokumentáció, amely tartalmazza a tesztelés
megközelítését és a magas szintű teszteseteket (IEEE 829 alapján)
Egy teszteset specifikációjának részeként meg kell határozni az elvárt eredményeket,
melyeknek tartalmazniuk kell kimeneti értékeket, az adatok és állapotok változásait, valamint
a teszt minden más következményét is. Ha az elvárt eredmények nincsenek meghatározva,
akkor lehet, hogy egy kézenfekvő, de hibás eredmény jó eredményként lesz értelmezve. Az
elvárt eredményeket lehetőleg a teszt végrehajtása előtt meg kell határozni.
o Teszteset specifikáció (test case specification): egy tesztelemre vonatkozó, a
teszteseteket meghatározó dokumentáció (cél, bemenetek, tesztelési
tevékenységek, várt eredmények, végrehajtás előfeltételei) [IEEE 829 alapján].
33
Feketedoboz/specifikáció alapú teszttervezési technika (black-box/specification-based test
design technique): azon módszer, amelynél a szoftver specifikáció alapján, a program belső
szerkezetének ismerete nélkül tervezünk funkcionális vagy nem funkcionális teszteket.
o A funkcionális tesztelés arra összpontosít, amit a rendszer csinál, vagyis annak a
jellemzőire és funkcióira.
o A nem funkcionális tesztelés pedig arra, hogy mennyire jól csinál valamit a rendszer,
vagyis a teljesítményre, a felhasználhatóságra, a hordozhatóságra, a
karbantarthatóságra, stb.
A tesztelés minden szintjén alkalmazhatóak, ahol van valami specifikáció
34
A technika azon az elgondoláson alapul, hogy a tesztelési feltételek egy halmazát azonosnak
tekinthető csoportokra vagy halmazokra osztjuk (azaz partícionáljuk). Ezeket a rendszer
azonosan (ekvivalensen) kezeli. Innen az ekvivalencia osztály elnevezés.
o Ekvivalencia osztály/partíció (equivalence partition): bemeneti, vagy kimeneti
értéktartomány, amelyre a specifikáció alapján a rendszernek ugyanúgy kell
viselkednie
Ekvivalencia partíciók (vagy osztályok) léteznek az érvényes adatokra és az érvénytelen –
elutasítandó – adatokra is. A partíciók alkalmazhatók továbbá kimenetekre, belső értékekre,
idővel kapcsolatos értékekre (pl. egy esemény előtt vagy után) valamint interfész
paraméterekre (pl. integrációs teszt alatt). A partíciók lefedésére tesztek tervezhetők
Az ekvivalencia partícionálás alkalmazása során minden egyes osztályból elég csak egyetlen
feltételt tesztelnünk, mivel azt feltételezzük, hogy egy osztályon belül minden feltételt
azonos módon kezelt a szoftver.
A szoftvernek tudnia kell megfelelően kezelni az érvénytelen osztályba eső értékeket is úgy,
hogy hibaüzenetet küld.
35
Döntési táblák létrehozásakor elemzik a specifikációt, és meghatározzák a rendszer
feltételeit és műveleteit. A bemeneti feltételek és műveletek leggyakrabban oly módon
vannak megadva, hogy csak igaz, vagy hamis értékek lehetnek (Boolean).
A döntési tábla tartalmaz kiváltó okokat, melyek gyakran az összes bemeneti feltétel igaz
illetve hamis értékeinek kombinációi, valamint a feltételek kombinációihoz tartozó
eredményeket. A tábla minden oszlopa egy üzleti szabályhoz tartozik, amely megadja a
feltételek egy egyedi kombinációját, ez pedig az ahhoz a szabályhoz tartozó műveletek
végrehajtását eredményezi. A döntési tábla tesztnél leggyakrabban alkalmazott lefedettségi
szabvány szerint legalább egy tesztnek kell lennie oszloponként, amely általában minden
kiváltó ok kombinációt lefed.
A döntési tábla teszt legfőbb előnye az, hogy a feltételek olyan kombinációit hozza létre,
melyeket a tesztelés során esetleg nem érintenének. Minden olyan helyzetben alkalmazható,
ahol a szoftver által végrehajtott művelet különböző logikai döntéseken alapul.
36
o Összes átmenet lefedése, a lehető legkevesebb lépéssel:
S1, S1, S2, S2, S3, S3, S4, S4, S3, S2, S1
o Érvénytelen átmenetek száma: 6
37
a származtatott tesztesetek meghatározott utasításokat hajtanak végre, általában az utasítás
lefedettség növelése érdekében.
o Utasításlefedettség (statement coverage): A tesztkészlet által kipróbált futtatható
utasítások százaléka.
Alacsonyabb tesztelési szinteken alkalmazzák
Eszköztámogatás szükséges
A tesztelés minősége a lefedettség növelésével javítható
Tipikus elvárás: 70-100%
Képlete:
38
A kód strukturális tesztjében hasznos az eszköztámogatás.
Lefedettség példák
1. példa:
A=? A=?
B=?
if A > B B=?
then
C=A–B if A > B
else I H
C=B–A
C=A-B C=B-A
endif
print C
Print C
Utasításlefedettség:
o 1. teszteset: A = 4, B = 2 A feltétel igaz lesz, ezért C-nek úgy ad értéket, hogy A-ból
kivonja a B-t, és kiírja, hogy a C 2.
Az igaz ág fut le, a 6 utasításból 5-öt érintettünk, ezért a lefedettség 83 %-os.
o 2. teszteset: A = 4, B =4 A hamis ág fut le, a maradék 1 utasítás is lefut, így már
100%-os a lefedettség.
Döntési lefedettség:
o 1 teszteset: A > B az igaz ág fut le, így a döntési lefedettség 50%,
o 2 teszteset: B > A a hamis ág fut le, így már megvan a 100%
2. példa:
… C=0
C=0
if A > B then
if A > B
C=A–B H
I
else
if B > A then C=A-B if B > A
C=B–A H I
endif
C=B-A
endif
print C
… Print C
Utasításlefedettség:
o 1. teszteset: A = 4, B = 2 A feltétel igaz lesz, az igaz ág fut le, a 6 utasításból 4-et
érintettünk, ezért a lefedettség 66 %-os
39
o 2. teszteset: B = 3, A = 2 A nem nagyobb, mint B, a hamis ágra megyünk, ahol
megvizsgáljuk, hogy B tényleg nagyobb, mint A, ezért C = B – A lefut, és C kap egy 1-
es értéket. Így már 100%-os a lefedettség.
o Ha csak a 2. tesztesetet futtatom, akkor a lefedettség 83%.
Döntési lefedettség:
o 1. teszteset: A > B az első if igaz ága letesztelve (4 esetből 1): 25%
o 2. teszteset: B > A első if hamis ága, és második if igaz ága: 75%
o 3. teszteset: B = A első if hamis ága, és második if hamis ága: 100%
40
4.6 Tesztelési technikák kiválasztása (K2)
A tesztelési technika kiválasztásánál számos tényezőt vesznek figyelembe, ilyenek a rendszer típusa,
a szabályzó rendelkezések, ügyfél követelményei, illetve a szerződésben foglalt követelmények, a
kockázat szintje és típusa, a tesztelési cél, a rendelkezésre álló dokumentáció, a tesztelők
ismeretei, az idő és a költségvetés, a fejlesztési életciklus, a használati eset modellek és a
tapasztalat a talált hibák típusairól.
Egyes tesztek jobban használhatók adott szituációkban illetve tesztelési szinteken; mások minden
tesztelési szinten alkalmasak.
5 Tesztmenedzsment (K3)
5.1 Tesztelő szervezet (K2)
5.1.1 Tesztelő szervezet és a függetlenség (K2)
A tesztek és felülvizsgálatok útján való hibakeresés hatékonysága független tesztelők
alkalmazásával növelhető. A függetlenség változatai:
o Nincsenek független tesztelők. A fejlesztők tesztelik saját kódjukat.
o Független tesztelők vannak a fejlesztői csapaton belül.
o Független tesztelő csapat vagy csoport van a szervezeten belül, amely a
projektmenedzsment vagy a vállalati vezetés (menedzsment) felé tesz jelentést.
o Független tesztelők az üzleti szervezettől vagy a felhasználói körből.
o Független, különböző tesztelési célokra szakosodott tesztelői szakértők, mint pl.
használhatósági tesztelők, biztonsági tesztelők vagy tanúsítvány tesztelők (akik a
szoftvertermék szabványoknak és előírásoknak való megfelelését tanúsítják).
o Kiszervezett, vagy szervezeten kívüli független tesztelők.
A nagyméretű, komplex, vagy biztonság-kritikus projekteknél általában a legjobb megoldás a
többszintű tesztelés alkalmazása, ahol néhány vagy az összes tesztelési szintet független
tesztelők hajtják végre. A fejlesztők részt vehetnek a tesztelésben, különösen az alacsonyabb
szinteken, objektivitás híján azonban korlátozott a hatékonyságuk. A független tesztelőknek
hatáskörébe tartozhat a tesztelési folyamatok és szabályok igénylésére és meghatározása, de
ezen folyamatokkal kapcsolatos feladatokat csak akkor végezhetik el, ha arra megbízásuk van
a vezetőségtől.
A függetlenség előnyei közé tartoznak a következők:
o A független tesztelők más, különböző hibákat látnak meg, és elfogulatlanok.
o Objektivitás
o Nagyobb rálátás a projektre: egy független tesztelő ellenőrizni tudja azokat a
feltételezéseket, amelyeket különböző szereplők tettek a rendszer specifikációja és
megvalósítása során.
o Destruktív hozzáállás
Hátrányok:
o Izoláció a fejlesztői csapattól (amennyiben teljesen független).
o A független tesztelők szűk keresztmetszetként jelenthetnek meg az utolsó
ellenőrzési pontnál. A fejlesztők elveszthetik a minőség iránti felelősségérzetüket.
41
o Csúszáskor a tesztelő csapat lehet a bűnbak.
A tesztelés feladatait végezhetik tesztelő feladatkört betöltők vagy más beosztásúak is,
mint pl. egy projekt-menedzser, minőségbiztosító, fejlesztő, vállalati szakértő vagy az üzleti
terület szakértője, infrastrukturális vagy IT műveletek szakembere.
o Tesztelő (tester): egy képzett szakértő, aki a rendszer vagy rendszerkomponens
tesztelésében vesz részt.
o Tesztmenedzser (test manager): a tesztelési tevékenységekért, erőforrások
menedzseléséért valamint a tesztelés vizsgálatáért felelős személy. A tesztmenedzser
irányítja, adminisztrálja, tervezi és menedzseli a tesztelés tárgyának vizsgálatát.
42
o Tesztkörnyezet kialakítása (együttműködésben a rendszeradminisztrátorokkal és a
hálózat menedzserekkel).
o Tesztadatok előkészítése, felvétele.
o Tesztek kidolgozása minden tesztelési szinten, tesztek végrehajtása és naplózása,
eredmények értékelése, az elvárt eredményektől való eltérések dokumentálása.
o Szükség esetén tesztelési adminisztrációs vagy menedzsment eszközök, valamint
tesztmonitorozási eszközök használata.
o Tesztek automatizálása (ebben támogatást nyújthat egy fejlesztő vagy egy
tesztautomatizálási szakértő).
o Komponensek és rendszerek teljesítményének mérése (ha lehetséges).
o Mások által kifejlesztett tesztek felülvizsgálata.
A tesztelemzéssel, műszaki teszttervezéssel, speciális teszttípusokkal illetve
tesztautomatizálással foglalkozó személyek általában szakértők a saját területükön. A
tesztelési szinttől és a termékkel kapcsolatos kockázatoktól függően különböző személyek
vehetik át a tesztelői feladatokat, bizonyos fokú függetlenség megtartásával.
Általában a komponens és integrációs szintű tesztelők a fejlesztők, az átvételi tesztelők
vállalati szakértők és felhasználók, a működési átvételi tesztelők pedig operátorok lehetnek.
43
o Döntéshozatal arról, hogy mit tesztelünk, mely szerepkörbe tartozók hajtják végre a
tesztelési tevékenységeket, és ezen tevékenységeket hogyan kell végrehajtani, hogy
fogják kiértékelni a teszteredményeket.
o A teszt elemzési és a tervezési tevékenységek ütemterve.
o A tesztmegvalósítás, végrehajtás és értékelés ütemterve.
o Erőforrások hozzárendelése a definiált tevékenységekhez.
o A teszt dokumentáció mennyiségének, részletességének, struktúrájának
meghatározása, minták megadása.
o Metrikák kiválasztása a teszt előkészítés és végrehajtás felügyeletéhez és
irányításához, a hibák és a kockázatok kezeléséhez.
o A teszteljárások részletességének meghatározása annak érdekében, hogy elegendő
információ álljon rendelkezésre a tesztek ismételt előkészítéséhez és
végrehajtásához.
44
o A szakértő alapú megközelítés: a feladatok becslését az azokat ismerő személy vagy
szakértők hajtják végre.
A teszteléshez szükséges ráfordítások becslése után következik a szükséges erőforrások és
az ütemterv meghatározása.
45
o Regresszió elkerülő megközelítéseknél újra alkalmazzák a meglévő tesztanyagot,
széles körben automatizálják a funkcionális regressziós teszteket és a standard
tesztkészleteket.
A különböző megközelítéseket kombinálhatják, például: kockázat alapú dinamikus
megközelítés.
A tesztelési megközelítés megválasztásánál figyelembe kell venni a következő
összefüggéseket:
o A projekt sikertelenségének kockázata, a termékre vonatkozó veszélyek, illetve a
termék sikertelenségének következményei az emberekre, a környezetre és a
vállalatra nézve.
o A személyek szaktudása és tapasztalata a javasolt technikákkal, eszközökkel és
metódusokkal kapcsolatban.
o A tesztelés célkitűzései és a tesztelő csapat feladata.
o Előírások a fejlesztési folyamatra vonatkozó külső és belső szabályzók.
o A termék és az üzlet természete, jellemzői
46
5.3.2 Tesztjelentés (Test summary report) (K2)
A tesztjelentés összefoglalja a teszteléssel kapcsolatos információkat úgy, mint:
o Mi történt a tesztelés adott szakaszában, mint például a kilépési feltétel
teljesülésének időpontja.
o Feldolgozott információk és metrikák az elkövetkező lépésekkel kapcsolatos
ajánlások és döntések elősegítésére, mint például elemzés a fennmaradó hibákról, a
további tesztelés gazdasági előnyei, jelentősebb kockázatok, a tesztelt szoftver
megbízhatósági szintje.
A teszt összefoglaló jelentés fő pontjait a „Szoftverteszt Dokumentáció Szabvány” (IEEE 829)
tartalmazza.
A metrikákat gyűjteni kell az adott tesztelési szint folyamán és végén, a következők elemzése
érdekében:
o Megfelelőek-e az adott tesztelési szint célkitűzései.
o Megfelelőek-e az alkalmazott tesztelési megközelítések.
o A tesztelés hatékonysága a célkitűzésekre való tekintettel.
47
o Konfigurációs irányítás (configuration control): a konfiguráció menedzsment része,
amely a konfigurációs elemeknek a konfigurációs állapot formális rögzítése utáni
változásainak kiértékelését, koordinálást, jóváhagyását, vagy éppen elutasítását,
továbbá a megvalósítását foglalja magába.
A tesztelésnél a konfiguráció menedzsment a következők biztosítását jelentheti:
o A tesztkörnyezet minden eleme pontosan meghatározott, verziókövetés alá vont, a
benne történt változások nyomonkövethetők, az elemek kapcsolódnak egymáshoz és
a fejlesztési elemekhez (tesztelés tárgyaihoz), hogy a nyomonkövethetőség
fenntartható legyen a tesztelés folyamán.
o A teszt dokumentációban egyértelmű hivatkozás található minden létező
dokumentumra és szoftver elemre.
A konfiguráció menedzsment segíti a tesztelőt a tesztelt elemek, a teszt dokumentumok, a
tesztek és a teszt alapkörnyezet egyértelmű meghatározásában és reprodukálásában.
A teszttervezés során kell megválasztani, dokumentálni és megvalósítani a konfiguráció
menedzsment eljárásokat és infrastruktúrát (eszközöket).
Kockázat (risk): az a tényező, amely a jövőben negatív következményeket okozhat. Általában, mint
hatás és valószínűség jelenik meg.
48
(IEEE 829)-ban található teszttervezési vázlathoz meg kell állapítani a kockázatokat és a
mérséklésükre hozott intézkedéseket.
49
Ezeken felül a tesztelés támogathatja az új kockázatok azonosítását, és annak
meghatározását, hogy mely kockázatokat kell csökkenteni, valamint csökkentheti a
kockázatokkal kapcsolatos bizonytalanságot.
Kockázat elemzés: folyamatos tevékenység.
50
o Globális problémák, mint például további területek, melyekre az incidens okozta
változások hatással lehetnek.
o A változtatások története: a projektcsapat tagjainak tevékenységei az incidens
izolálására, javítására, javításának ellenőrzésére.
o Referenciák, melyekbe beletartozik a problémát felfedő teszteset-specifikáció
azonosítása is.
Az incidens jelentés struktúráját a „Szoftverteszt Dokumentáció Szabvány” (IEEE 829) is
tartalmazza.
Hibaészlelési arány (DDP – defect detection percentage): egy teszt fázisban talált hibák száma
osztva az adott teszt fázisban és később talált kódhibák számával
Prioritás (priority): Egy elemhez rendelt (üzleti) fontosság, például hiba prioritás.
Súlyosság (severity): Egy hiba hatásának a mértéke a rendszer vagy komponens fejlesztésére
vagy működésére. [IEEE 610]
51
6.1.2 Teszteszközök osztályozása (K2)
Számos eszköz létezik a tesztelés különböző szempontból való támogatására:
o Az eszközöket az alapján csoportosítjuk, hogy melyik tesztelési tevékenységet, vagy
területet támogatják. Egyes eszközök csak egy tevékenységet támogatnak, mások
többet is, ezeket ahhoz a tevékenységhez sorolják, amelyhez leginkább köthetők.
o Cél
o Beszerzés: kereskedelmi, ingyenes, nyílt forráskódú (shareware)
o Kik használják: tesztelők, fejlesztők
o A teszteszközök egyes típusai lehetnek beavatkozók olyan értelemben, hogy maga az
eszköz befolyásolhatja a teszt aktuális eredményét. A beavatkozó eszközök
használatának következményét mérési mellékhatásnak nevezik.
Mérési mellékhatás (probe effect): egy rendszer vagy komponens mérése
során a mérőeszköz által okozott hatás; például teljesítményteszt során a
tesztelő illetve mérőeszköz rontja a rendszer vagy komponens teljesítményét
(még ha nem is onnan futtatjuk, de monitorozzuk).
Tesztmenedzsment eszközök
Tesztmenedzsment eszköz (test management tool): olyan szoftver eszköz, amely támogatja a
teszt menedzsmentet és irányítja a tesztfolyamat egy részét. Gyakran rendelkezik olyan
funkciókkal, mint a tesztelési környezet menedzsmentje, tesztek ütemezése, eredmények
naplózása, folyamatkövetés, hibakezelés és teszteredmények jelentése.
Funkciói és jellemzői (néhány eszköz minden felsorolt funkciót támogat, mások csak egyet,
kettőt):
o a tesztek menedzsmentje (pl. egy adott tesztkészlethez kapcsolódó adatok nyomon
követése: milyen teszteket kell futtatni, mennyi a futtatott, átment, megbukott
tesztesetek száma, stb.)
o az elvégzendő tesztek ütemezése (manuálisan, vagy egyéb eszközzel)
o a tesztelési tevékenységek menedzsmentje (a tervezésre és végrehajtásra fordított idő
megfelel-e az ütemtervben, költségvetésben foglaltaknak)
o interfészek vagy kölcsönhatások más eszközökkel
o tesztek, teszteredmények és programhibák visszakövetése a követelményekig
o teszteredmények listázása
o státuszjelentés készítése
52
Mivel a tesztek követelményeken alapulnak, ezért minél jobb a követelmények minősége, annál
könnyebb belőlük teszteket írni.
Funkciói és jellemzői:
o követelményutasítások tárolása
o a követelmény jellemzőivel kapcsolatos információ tárolása
o a követelmények konzisztenciájának vizsgálata
o meghatározatlan, hiányzó, vagy „később meghatározandó” követelmények megtalálása
o a követelmények prioritási sorrendbe sorolása tesztelési szempontból
o a követelmények nyomonkövethetőség a tesztekig, illetve a tesztek
nyomonkövethetősége a követelményekig, funkciókig, jellemzőkig.
o nyomonkövethetőség a követelmények szintjein keresztül
o tesztmenedzsment-eszközökkel való együttműködés
o (néha) a követelmények lefedettsége egy tesztkészlettel.
53
o hozzáférés vezérlése
Felülvizsgálati eszközök
Felülvizsgáló eszköz (review tool): olyan eszköz, ami a felülvizsgálat folyamatát támogatja.
Jellemzően a felülvizsgálatok tervezését, a változáskövetést, a felülvizsgálók közötti
kommunikációt, közös felülvizsgálat végzését támogatja. Ezek mellett a mérőszámok egyfajta
gyűjtőhelyeként, valamint az azokat tartalmazó jelentések alapjául is szolgál.
Funkciói és jellemzői:
o egységes hivatkozás a különböző helyzetekben alkalmazandó felülvizsgálati
folyamatra vagy folyamatokra
o a felülvizsgálat során keletkező megjegyzések tárolása és csoportosítása
o a megjegyzések megfelelő személyhez juttatása
o online felülvizsgálatok koordinálása
o a megjegyzések – köztük a megtalált hibák – nyomon követése, és a velük
kapcsolatos statisztikai adatok biztosítása
o a megjegyzések, felülvizsgálati dokumentumok és a kapcsolódó dokumentumok
közötti nyomonkövethetőség biztosítása
o a felülvizsgálatokban felhasználandó szabályok, eljárások és ellenőrző listák,
valamint belépési és kilépési feltételek eltárolása
o a felülvizsgálat állapotának ellenőrzése (elfogadott, korrekcióval elfogadott)
o mérhető adatok gyűjtése és a kulcstényezőkkel kapcsolatos jelentés
54
Funkciói és jellemzői:
o szoftver modell validálása
o inkonzisztenciák és hibák azonosítása a modellben
o a modell tesztelendő területei meghatározásának és prioritásának segítése
o a rendszer különböző szituációkban adott válaszainak, viselkedésének előrejelzése
o segítség a rendszer funkcióinak megértésében, a tesztelési feltételek
meghatározásának megkönnyítése egy modellezési nyelv (UML) felhasználásával
Tesztadat-előkészítő eszközök
Tesztadat előkészítő eszköz (test data preparation tool): olyan teszteszköz, amellyel a
teszteléshez adatot állíthatunk elő egy már meglévő adatbázisból. Az eszköz alkalmas lehet
egyéb adatok generálására, adatok manipulálására, valamint szerkesztésére is.
Funkciói és jellemzői:
o fájlokból és adatbázisokból kiválasztott adatrekordok kiemelése
o az adatrekordok megváltoztatása, anonimizálása, hogy lehetetlenné váljon valódi
személyekkel történő beazonosításuk (adatvédelem)
o rekordok különböző rendben való csoportosításának, ill. elrendezésének lehetővé
tétele
o új rekordok generálása pszeudóvéletlen adatok telepítésével, vagy valamely
útmutató (pl. működési profil) alapján történő adatlétrehozással
o nagyszámú hasonló rekord létrehozása sablon alapján mennyiségi tesztekhez
55
A tesztvégrehajtási eszközök szkriptnyelvet használnak az eszköz vezérléséhez. A szkriptelés
előnye, hogy a tesztek képesek az egyes műveletek (ciklikus) megismétlésére.
Legjobban a regressziós tesztelésben alkalmazhatók, mert leggyakrabban korábban már
elvégzett teszteket futtatnak le újra.
Funkciói és jellemzői:
o tesztbemenetek felvétele (átvétele) a tesztek manuális futtatása közben
o elvárt eredmény tárolása egy képernyőmentés vagy adatobjektum formájában,
amivel össze lehet hasonlítani a teszt későbbi futtatása során kapott eredményt
o tesztek végrehajtása a tárolt szkriptekből és esetlegesen a szkriptek számára
hozzáférhető adatfájlokkal meghajtott tesztek végrehajtása
o képernyőmentések, elemek, linkek, vezérlők, objektumok és értékek dinamikus
összehasonlítása (a teszt futása közben)
o a végrehajtás utáni összehasonlítás kezdeményezése
o a lefuttatott tesztek naplózási eredményei (siker/bukás, eredmény különbségek)
o a tényleges és az elvárt eredmények részhalmazainak maszkolása vagy szűrése
o időzítések mérése a teszthez
o a bemenetek bevitelének szinkronizálása a tesztelt alkalmazásokkal
o összefoglaló eredmények küldése egy tesztmenedzsment eszköznek
56
Funkciói és jellemzői:
o a teszt végrehajtása alatt bekövetkező átmeneti események dinamikus
összehasonlítása
o fájlokban vagy adatbázisokban tárolt adatok végrehajtás utáni összehasonlítása
o tényleges és elvárt eredmények egy részének maszkolása, szűrése
o teszt-orákulum: megmondja, hogy mi az elvárt eredmény (lehet egy szakértő, vagy a
rendszer egy korábbi verziója, stb.)
Biztonsági eszközök
Biztonság (security): a szoftvertermékek azon tulajdonságai/attribútumai, amik a
programokhoz és adatokhoz való jogosulatlan hozzáférést előzik meg. A hozzáférés lehet
szándékos vagy akár véletlen is. Lásd még: funkcionalitás. [ISO 9126]
Biztonsági eszköz (security tool): olyan eszköz, ami a működési biztonságot támogatja.
Biztonsági teszt (security testing, safety testing): olyan teszt, amivel a szoftvertermék
biztonságát határozzuk meg. Lásd még: funkcionalitási teszt
Biztonsági teszteszköz (security testing tool): olyan eszköz, ami a biztonsági karakterisztikák
és sebezhetőségek teszteléséhez nyújt támogatást.
Biztonsági karakterisztika:
o adatbiztonság
o adatintegritás
o hitelesítés
o engedélyezés
o rendelkezésre állás
o válaszmegtagadás
Funkciói és jellemzői:
o vírusok azonosítása
o behatolók felismerése (pl. DoS támadás)
o különböző típusú külső támadások szimulálása
o nyitott portok, és egyéb külsőleg látható támadási pontok kipróbálása
o a jelszófájlokban és jelszavakban lévő gyengeségek meghatározása
o biztonsági ellenőrzések a működés közben (pl. fájlok sérthetetlensége)
A biztonsági eszközök általában a különböző technológiákra, platformokra és célokra
koncentrálnak.
57
Dinamikus elemző eszköz (dynamic analysis tool): a szoftverkód állapotáról futási időben
információt szolgáltató eszköz. Leggyakrabban érvénytelen mutatók, memóriafoglalások – és
törlések, illetve memóriaszivárgások felderítésére használják.
Funkciói és jellemzői:
o memóriaszivárgások felderítése
o mutatók aritmetikai hibáinak (null mutatók) azonosítása
o időbeli függőségek meghatározása
Általában a komponens, vagy komponens integrációs tesztnél használják, valamint köztes
rétegű teszteknél.
Felügyeleti eszközök
A használatban lévő rendszer státuszának folyamatos nyomon követésére használják.
Felügyeleti eszköz (monitor, monitoring tool): egy szoftver, vagy hardver eszköz, amely
párhuzamosan fut a tesztelés alatt levő komponenssel vagy rendszerrel, ez utóbbiakat
felügyeli, elmenti és/vagy elemzi azok viselkedését. [IEEE 610 alapján].
Funkciói és jellemzői:
o problémák azonosítása és figyelmeztető üzenet küldése az adminisztrátornak
o valós idejű és történeti információk naplózása
58
o optimális beállítások keresése
o a hálózaton lévő felhasználók számának figyelése
o a hálózati forgalom felügyelete
59
A kritikus eszközök, mint pl. a követelmény menedzsment, verziókövető, incidens
menedzsment, hibakövető, illetve a különböző eszközforgalmazóktól származó eszközök
kapcsolatából, illetve együttműködéséből származó problémák elhanyagolása.
Az eszköz forgalmazójának üzleti kockázata, mint pl. tönkremegy, nem támogatja tovább az
eszközt, vagy eladja egy másik félnek.
A forgalmazó gyenge minőségű support, upgrade, illetve hibajavító szolgáltatása
Előre nem látható problémák, mint például egy új platform támogatásának hiánya
60
Kulcsszó-alapú teszt (action word driven testing, keyword-driven testing):
egy olyan, szkripteken alapuló tesztelési technológia, amelynél a teszt-
szkriptekben nemcsak tesztadatok és az elvárt eredmény található, hanem az
alkalmazással kapcsolatos vezérlő kulcsszavak is. Az akciószavak értelmezését
a teszthez tartozó vezérlő szkriptek által meghívott speciális támogató
szkriptek végzik. Lásd még: adatvezérelt teszt.
Technikai szaktudás a szkriptnyelvhez minden esetben szükséges (vagy a tesztelő, vagy a
teszt automatizálási specialista részéről).
Függetlenül a használt szkript technikától, minden teszthez tárolni kell az elvárt eredményt
későbbi összehasonlítás céljából.
Tesztmenedzsment eszközök
A tesztmenedzsment eszközöknek kapcsolódniuk kell más eszközökhöz, vagy
adatbázisokhoz, hogy a szervezet aktuális igényeinek megfelelő formátumban biztosíthassa
az információkat.
61
Az eszköz részletesebb megismerése.
Annak értékelése, hogy az eszköz hogyan illeszkedik a meglévő folyamatokba és gyakorlatba;
a szükséges változtatások meghatározása.
Az eszköz és a teszteléssel kapcsolatos elemek szabványos használati, menedzselési, tárolási
és karbantartási módjának meghatározása (pl. fájlok és tesztek elnevezési szabályai,
könyvtárak létrehozása, tesztkészletek modularitásának definiálása).
Annak értékelése, hogy az előnyöket elfogadható kiadásokkal érik-e el.
62
IEEE 610
Minőség (quality)
Követelmény (requirement)
Teszteset (test case)
Működési teszt (operational testing)
Csonk (stub)
Robosztusság (robustness)
Tesztkörnyezet (test environment)
Teljesítmény (performance)
Stressz teszt (stress testing)
Inspekció (inspection)
Állapotdiagram (state diagram)
Súlyosság (severity)
Felügyeleti eszköz (monitor, monitoring tool)
IEEE 1008
Incidens (incident)
IEEE 1028
Felülvizsgálat (review)
Átvizsgálás (walkthrough)
Technikai felülvizsgálat (technical review)
Inspekció (inspection)
IEEE 1219
Karbantartás (maintenance)
63
EEE/IEC 12207
ISO 9000
Verifikáció (verification)
Validáció (validation)
Biztonság (security)
Együttműködő képesség (interoperability)
Karbantarthatóság (maintainability)
Megbízhatóság (reliability)
Hordozhatóság (portability)
ISO 14598
Metrika (metric)
64