S01-9 Szoftverfejlesztés minőségi aspektusai

Tartalom

  1. A szoftverminőség komplex kérdésköre, termék és folyamat alapú megközelítés.
  2. A szoftverfejlesztés és a tesztelés kapcsolata, V modell, agilitás.
  3. A tesztelés szintjei.
  4. A tesztelés életciklusa.
  5. Teszttervezési technikák.
  6. Specifikáció alapú: ekvivalencia-osztályozás, határérték elemzés, döntési táblák, állapotgépek, használati eset tesztelés; struktúra alapú: utasítás és döntési lefedettség.
  7. Review technikák, statikus tesztelés.
  8. A tesztelés dokumentálása.
  9. Teszteszközök.

1. A szoftverminőség komplex kérdésköre, termék és folyamat alapú megközelítés.

Az, hogy milyen a minőségi szoftver attól függ, hogy kit kérdezünk meg. pl.:

Két fő megközelítése van a szoftverminőségnek: termék és folyamat alapú megközelítés.

1.1 Folyamat alapú megközelítés

1.2 Termék alapú megközelítés

ISO/IEC 25010:2011

ISO/IEC 25010:2011

2. A szoftverfejlesztés és a tesztelés kapcsolata, V modell, agilitás.

2.1 V-modell

V-modell

V-modell

2.2 Agilitás

3. A tesztelés szintjei.

3.1 Egységtesztelés (Unit testing)

3.2 Integrációs tesztelés (Integration testing)

3.3 Rendszertesztelés (System testing)

3.4 Átvételi tesztelés (Acceptance testing)

4. A tesztelés életciklusa

4.1 Tervezés és irányítás

4.2 Elemzés és műszaki tervezés

4.3 Megvalósítás és végrehajtás

4.4 Kilépési feltételek értékelése és jelentés készítése

4.5 Teszt lezárása

5. Teszttervezési technikák.

5.1 Tesztdokumentáció formalitása

5.2 Tesztelési feltételek meghatározása

5.3 Tesztesetek meghatározása

5.4 Teszt megvalósítása és végrehajtása

5.5 Teszttervezési kategóriák

Specifikáción alapuló tesztelés: tesztesetek generálása a szoftver specifikációja alapján

Struktúra alapú tesztelés: tesztesetek generálása a struktúra alapján

Az elvárt kimenetet az orákulum segítségével tudhatjuk meg. Az orákulum megmondja, hogy mi az elvárt kimenete az adott programnak. Ez alapján összetudjuk hasonlítani a teszteset aktuális kimenetét az elvárt, orákulum által adott kimenettel és dönteni, hogy jó-e vagy sem. Orákulum használata nem mindig lehetséges.

6. Specifikáció alapú és struktúra alapú tesztelés

6.1 Specifikáció alapú

6.1.1 Ekvivalencia-osztályozás

6.1.2 Határérték-elemzés

6.1.3 Döntési tábla

Példa:

Bemenetek
Valid felhasználónév I I I I H H H H
Valid jelszó I I H H I I H H
Tagja a csoportnak I H I H I H I H
Bemenetek
Valid felhasználónév H I I I
Valid jelszó * H I I
Tagja a csoportnak * * H I
Bemenetek
Valid felhasználónév H I I I
Valid jelszó * H I I
Tagja a csoportnak * * H I
Műveletek
Sikeres belépés H H I I
Hozzáférés korlátozás * * I H
Címkék A B C D

6.1.4 Állapotgépek

Teszteset 1 2 ...
Kezdőállapot start wait for pin ...
Input insert card enter pin ...
Végállapot wait for pin first try ...
Állapotgép

Állapotgép

6.1.5 Használati eset

7. Review technikák, statikus tesztelés.

7.1 Review technikák

7.2 Statikus tesztelés

8. A tesztelés dokumentálása.

Műszaki tesztterv specifikáció: Tesztelési feltételek és a követelmények,
tesztelés megközelítése és magas szintű tesztesetek.

Teszteset-specifikáció: 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)

Teszteljárás specifikáció: Tesztelés futtatásának tevékenységsorozatát rögzítődokumentum. (tesztszkript néven is ismert)

Tesztterv (test plan): A tesztelés hatáskörét, megközelítését, erőforrásait, valamint a tevékenységek tervezett ütemezését tartalmazó dokumentum. Ezen kívül meghatározza a tesztelési elemeket, a tesztelendő funkciókat, feladatokat, a tesztelést végrehajtó személyek függetlenségét, a tesztelési környezetet, a műszaki teszttervezési technikákat, a belépési és kilépési feltételeket, valamint a kockázatokat.

Tesztnapló: Tesztvégrehajtáshoz kapcsolódó részletek időrendi rögzítése.

Tesztösszefoglaló: A tesztelési tevékenységet és eredményeket tartalmazó dokumentum.

Tesztelem kiadás jelentés: Kiadott tesztelemek, kiadás dátuma és ki engedélyezte.

Tesztincidens jelentés: Hiba leírása, előfordulás körülményei, reprodukálás, súlyosság, gyakoriság.

9. Teszteszközök

9.1 Tesztelést és tesztirányítást támogató eszközök

Tesztmenedzsment eszközök:

Tesztek ütemezése, eredmények naplózása, folyamatkövetés, incidensmenedzsment és tesztjelentések elkészítése

Követelménymenedzsment eszközök:

Követelményeknek, a követelmény jellemzőinek (pl. prioritás, tudásgazda) rögzítése és magyarázó jegyzetek készítése.

Incidenskezelő eszközök:

Megkönnyíti az incidensek felismerését és állapotainak nyomon követését.

Konfigurációkezelő eszközök:

Támogatja a konfigurációs elemek meghatározását és ellenőrzését, ezek változásainak ill. verziók státuszainak nyomon követését, valamint felügyeli a konfiguráció elemeit tartalmazó alapverziók kiadását.

9.2 Statikus tesztelést segítő eszközök

Felülvizsgálatokat segítő eszközök:

Felülvizsgálat tervezés, a változáskövetés, a felülvizsgálók közti kommunikáció, a közösen végzett felülvizsgálatok támogatása.

Statikuselemző eszközök:

Egy eszköz, ami statikus elemzést hajt végre. Ilyen például a Clang Static Analyzer ami felderítheti például a következő hibákat: nullával osztás, null paraméter, nem inicializált visszatérési érték, stb.

9.3 Tesztspecifikálást támogató eszközök

Teszttervező eszközök:

A műszaki teszt tervezési tevékenységet támogató eszköz, amely tesztelési bemeneteket generál egyéb forrásokból pl. case eszközökből, követelménymenedzsment eszközből valamint magából a programkódból.

Tesztadat előkészítő eszközök:

Olyan tesztelési eszköz, amellyel a teszteléshez adatokat állíthatunk elő meglévő adatbázisunkból. Az eszköz alkalmas lehet egyéb adatok generálására, adatok manipulálására, valamint szerkesztésére is.

9.4 Tesztvégrehajtás és naplózás támogató eszközök

Tesztelés végrehajtó eszközök:

Olyan tesztelési eszköz, amely képes másik szoftvert futtatni egy automatizált szkript (pl. felvétel/lejátszás) segítségével.

Unit teszt keretrendszerek:

Olyan környezetet biztosító keretrendszer, amelyben egy komponens egyaránt tesztelhető különállóan, valamint megfelelő segédprogramokkal. Hibakeresési funkciójával támogatja a szoftverfejlesztők munkáját is.

Teszt összehasonlító eszközök:

Egy tesztelési eszköz, amellyel a teszt elvárt és aktuális eredményeit automatikusan össze lehet hasonlítani.

Lefedettség mérő eszközök:

Olyan eszköz, amely objektíven méri, hogy mely strukturális elemeket - pl. utasításokat, elágazásokat - hajtja végre a teszt készlet.

Biztonsági eszközök:

Eszköz, ami a biztonsági karakterisztikák és sebezhetőségek teszteléséhez nyújt támogatást.

9.5 Teljesítményt és monitorozást támogató eszközök

Dinamikus elemző eszközök:

A szoftverkód állapotáról futási időben információt szolgáltató eszköz. Leggyakrabban érvénytelen mutatók, memória foglalások és törlések, ill. a memóriaszivárgások felderítésére használják.

Teljesítmény tesztelő eszközök:

Az eszköz terhelést generál több felhasználó szimulálásával illetve nagy mennyiségű bemenő adat elküldésével. A futás során kiválasztott tranzakciók válaszidejét mérik és naplózzák, amelyekből teljesítményjelentés készül, diagramokkal, pl. a terhelés és válaszidők aránya.

Stressz tesztelő eszközök:

A rendszert előre elvárt vagy annál nagyobb terheléssel vagy csökkentett erőforrás rendelkezése bocsátásával teszteljük. pl. korlátozott szerver memória hozzáférés.

Monitorozó eszközök:

Egy szoftver vagy hardver eszköz, amely párhuzamosan fut a tesztelés alatt lévő komponenssel vagy rendszerrel, ez utóbbiakat felügyeli, elmenti és/vagy elemzi azok viselkedését.

További források