A telepítés azoknak a tevékenységeknek a leírása, amelyek ahhoz szükségesek, hogy a kifejlesztett szoftvertermék elérhető legyen a végfelhasználók számára. A munkafolyamat a szoftver telepítésének többféle módját fedi le. A telepítés tervezése során az alábbi tevékenységeket hajtjuk végre:
− A telepítési terv elkészítése. Meghatározza, hogy mikor és milyen módon lesz elérhető a szoftvertermék a végfelhasználók számára.
− Az ügyfelekkel való együttműködés kialakítása. A telepítési terv elkészítéséhez szükségesek az ügyfelek előkészületei is. Gyakran a szoftver fejlesztésétől független tényezők határozzák meg egy szoftvertermék bevezetését, például a hardver infrastruktúra hiánya, vagy a nem megfelelően képzett felhasználók.
− A rendszer támogatása. A felhasználók képzésére vonatkozó tevékenységek beépítését jelenti a telepítési tervbe.
A kifejlesztett szoftverrendszert a felhasználó számára kell bocsátani. A szoftvertermék szerves részét képezi a hozzá tartozó dokumentáció, a szoftver átadáskor elvégzett átvételi tesztek, a hardver komponensekre való telepítést biztosító telepítő script elkészítése és maga a szoftver átadása stb. A kifejlesztett szoftver átadását, a szoftver piaci bevezetését ennek megfelelően az alábbi kapcsolódó tevékenységek egészítik ki:
− A rendszer használatához szükséges eszközök, dokumentációk elkészítése.
− Minden olyan információ biztosítása, amely szükséges a végfelhasználóknak a rendszer telepítéséhez, használatához és karbantartásához. Ide sorolhatjuk a különböző oktatási anyagokat is.
− Átvételi teszt végrehajtása. Annak biztosítása, hogy a kifejlesztett szoftver megfelel az átvételi követelményeknek. Ezt a tesztelést a fejlesztés helyén, a fejlesztési környezetben is végre kell hajtani, valamint a telepített terméket tesztelni kell az ügyfél telephelyén is, a célkörnyezetben.
− Telepítési csomag kidolgozása. A telepítési csomag a kifejlesztett szoftver mellett azokat a szoftvereket is tartalmazza, amelyek az installáláshoz és a használathoz szükségesek. A telepítő szoftver biztosítja a szoftver komponensek hozzárendelését a megfelelő hardver elemekhez, amelyet a telepítési diagram határoz meg. A telepítési csomag több célból is létrejöhet. Létrehozhatjuk béta tesztelés, vagy végső telepítés céljából is.
− A termék csomagolása. A dobozos termék telepítéséhez szükséges tevékenységek meghatározása. A munkafolyamat során el kell készíteni a telepítési csomagot, az installáló scriptet, a felhasználói kézikönyvet, majd mindezekből elő kell állítani a kész szoftverterméket.
− A termék megrendelésének és letöltésének lehetővé tétele az interneten keresztül.
− A termék bétatesztelése. Egy béta program előkészítése, amely lehetővé teszi, hogy a fejlesztés alatt álló termékkel kapcsolatban hozzájussunk a potenciális felhasználók visszajelzéseihez. A béta program létrehozása lehet felhasználói igény is.
121
9.7 Ellenőrző kérdések
1. Sorolja fel az elemzési és tervezési fázis főbb lépéseit!
2. Mi jelent a szoftver architektúra?
3. Mit jelent az osztályok felelőssége?
4. Mit jelent a használati eset megvalósítás?
5. Mi jelent a szoftverkomponensek függősége?
6. Mi a sztereotípia?
7. Soroljon fel tipikus sztereotípiákat, amelyeket az elemzési fázis során alkalmazunk!
8. Milyen elemi vannak az együttműködési diagramnak és mi a fő funkciójuk az elemzés során?
9. Milyen elemei vannak az állapot-átmeneti diagramnak?
10. Mi a funkciója az asszociációs osztályok használatának?
11. Mi a különbség az aggregációs és kompozíciós kapcsolatok között?
122
10 SZOFTVERTESZTELÉS
A szoftver tesztelésének elsődleges célja a szoftver megfelelő minőségének biztosítása. A tesztelés folyamata nagymértékben függ a fejlesztés során alkalmazott fejlesztési módszertantól. Egyes módszertanok, mint például a V-modell vagy az Extrém Programozás nagy hangsúlyt fektetnek a szoftvertesztek elkészítésére még az implementáció előtt. Viszont a vízesés modell esetén a tesztelési folyamat az összes benne foglalt tevékenységgel együtt csak az implementációs fázis után kezdődik. Függetlenül azonban az alkalmazott szoftverfolyamattól a szoftverek tesztelése minden esetben a szoftver különálló komponenseinek tesztelésével kezdődik, majd a szoftver egészének tesztelésével fejeződik be.
A komponenstesztelési fázis célja, hogy a komponensek hibás működését felfedezzük. A komponensek egy vagy több függvényből vagy objektumból álló egységek. Gyakran a komponenstesztelést egységtesztnek nevezik. A rendszer tesztelése során a komponenseket alrendszerekké szervezzük vagy a kész komponenst egy már meglévő rendszerbe vagy alrendszerbe integráljuk. A rendszertesztelés során azt vizsgáljuk, hogy a rendszer működése megfelel-e a vele szemben támasztott funkcionális és nem-funkcionális követelményeknek. A rendszertesztelés is, különösen az iteratív fejlesztések esetén, felfedezhet olyan komponens hibákat, amelyek a komponensek tesztelése során nem derültek ki [1].
A szoftvertesztelésnek két fő célja vagy típusa van:
1. Validációs tesztelés. A validációs tesztelésben a funkcionális és nem-funkcionális követelmények mindegyikére egy tesztesetet készítenek, és azt vizsgálják, hogy a szoftver megfelel-e a vele szemben támasztott követelményeknek illetve a szoftver funkciói a felhasználó céljainak megfelelően működnek. A tesztelés során azt várjuk a rendszertől, hogy az olyan tesztesetekre, amelyek az általános használatát tükrözik, helyesen működjön, és akkor nevezzük a tesztelést sikeresnek, ha ez teljesül.
2. Hiányosság tesztelés. Ennek a tesztelésnek az a célja, hogy felfedezzük azokat a hibákat, amelyek a szoftver helytelen viselkedését okozzák, azaz a működése nem felel meg a specifikációjának. Ebben az esetben a teszteseteket úgy tervezik meg, hogy azok nem feltétlenül tükrözik a szoftver normális használatát. Hiányosságtesztelés esetén a tesztet akkor nevezzük sikeresnek, ha az felderít egy olyan hibát vagy hiányosságot, amely a rendszer helytelen működését eredményezi.
9.1. ábra. A szoftvertesztelési folyamat modellje.
A tesztelési folyamat lépéseit a 9.1. ábra mutatja. A folyamat a tesztesetek tervezésével indul, amelynek során elkészülnek a teszthez szükséges inputok és az inputokra várt outputok specifikációi. Azt, hogy a szoftver teljesen hibátlan csak egy teljes körű tesztelés bizonyíthatná, amelyben az inputok minden kombinációjával tesztelnénk a szoftvert, de a teljes tesztelés nem kivitelezhető. Ezért a tesztelés a lehetséges tesztesetek csak egy
123
részhalmazán alapul. A komponenstesztelés az előre meghatározott követelmény specifikációkon illetve a fejlesztők tapasztalatán és gyakorlatán alapul. A rendszertesztelésnek azonban szigorúan a rendszer-specifikációkon kell alapulnia, amely meghatározza a szoftver funkcionális és nem-funkcionális működését.