A szoftverfolyamat és a tesztelés Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 11. 19. Ficsor Lajos
swproc / 1
Tartalom A szoftverfolyamat Alaptevékenységek Szoftverfolyamat modellek A tesztelés helye az egyes modellekben
Agilis módszerek, módszertanok
Ficsor Lajos
A szoftverfolyamat
swproc / 2
A szoftverfolyamat (processz) Tevékenységek és azok eredményeinek olyan sorozata, amelyek egy szoftver termék elıállításához vezetnek. A kiindulási alap lehet: egy teljesen új igény felmerülése: a cél egy új rendszer létrehozása már meglévı rendszer: a cél annak kiegészítése és módosítása
Szokásos még a szoftver project elnevezés is. Ficsor Lajos
A szoftverfolyamat
swproc / 3
Alaptevékenységek A szoftverfolyamat végrehajtása sokféleképpen történhet. Vannak alapvetı tevékenységek, amelyek minden folyamatban közösek (bár nem mindig ugyanaz az elnevezésük) szoftverspecifikáció: a szoftver funkcióit és a teljesítendı követelmények definiálása
• szokásos elnevezés még: analízis, követelmény analízis, specifikáció, üzleti modellezés
Ficsor Lajos
A szoftverfolyamat
swproc / 4
Alaptevékenységek (folyt.) szoftvertervezés és implementáció: a szoftver elıállítása Szoftvervalidáció: a szoftver minıségének ellenırzése Szoftverevolúció: az elkészült (és használatba vett) szoftver módosítása a felhasználó újonnan felmerült igényei alapján
• szokásos elnevezés még: karbantartás • ide tartozik még az utólagos hibajavítás is
Ficsor Lajos
A szoftverfolyamat
swproc / 5
Szoftverfolyamat modell Az elıbbi résztevékenységek elvégzésének absztrakt modellje Szokásos elnevezés még: szoftver életciklus modell Gyakran egy nagyobb fejlesztés vegyes modellt (a rendszer egyes részeihez különbözı elméleti modelleket), vagy az elméleti modellek kombinációit használják. Minden fejlesztı szervezet kialakít egy (vagy több) saját konkrét modellt Ficsor Lajos
A szoftverfolyamat
swproc / 6
Szoftverfolyamat modellek Vízesés modell Inkrementális vagy iterációs modell Spirál modell V modell W modell A Unified Process folyamat modellje agilis modellek és persze még sok más … Ficsor Lajos
A szoftverfolyamat
swproc / 7
Folyamat modellek és a tesztelés Minden modellben megjelenik valamilyen formában és helyen a tesztelés vagy a szoftver validáció. A továbbiakban figyeljük meg az egyes modellekben a tesztelés helyét és szerepét!
Ficsor Lajos
A szoftverfolyamat
swproc / 8
Vízesés modell Követelmények meghatározása
Boehm, 1976
Rendszer- és szoftver tervezés Implementáció és egységteszt Integráció és rendszerteszt Mőködtetés és karbantartás
Ficsor Lajos
A szoftverfolyamat
swproc / 9
Vízesés modell (folyt.) A részfázisok szekvenciája A következı fázisba akkor léphetünk, ha az elızıt véglegesítettük. Itt is lehetnek visszalépések (lásd az ábrán a nyilakat), de ezek egyre költségesebbek Elıny: Jól menedzselhetı és ellenırizhetı Minden fázisban jól definiált feladatok Minden fázis jól dokumentálható Ficsor Lajos
A szoftverfolyamat
swproc / 10
Vízesés modell (folyt.) Hátrány: Nagyon sok probléma csak az utolsó fázisban derül ki, így a javítás nagyon költséges. Korán kell jelentıs döntéseket hozni, ez hibás döntésekhez vezethet. Nehéz a rendszert a fejlesztés közben változó követelményekhez igazítani Sok dokumentációs munkát igényel
Elıre jól definiálható követelmények esetén jól alkalmazható. Ficsor Lajos
A szoftverfolyamat
swproc / 11
Vízesés modell (folyt.) A tesztelési tevékenység két fázis résztevékenységeként jelenik meg. A fejlesztés viszonylag késıi szakaszában jelenik meg.
Ficsor Lajos
A szoftverfolyamat
swproc / 12
Inkrementális (vagy iterációs) Analízis Specifikáció
Specifikáció
Tervezés
Implem.
Tervezés Specifikáció
Tesztelés
Implem. Tervezés Tesztelés Implem.
Tesztelés Használat
Ficsor Lajos
A szoftverfolyamat
swproc / 13
Inkrementális (folyt.) az eredeti célhoz egyre közelebb álló rendszerek sorozata minden rendszer átmegy legalább a tervezés implementálás - tesztelés fázisokon csökkenthetı a fejlesztés kockázata az objektum orientált fejlesztési módszertanok általában ezt ajánlják szokás iterációs modellnek is nevezni
Ficsor Lajos
A szoftverfolyamat
swproc / 14
Inkrementális (folyt.) a modern fejlesztésekben gyakran használt modell A tesztelés minden inkrementáció végén megjelenik a felhasználó több, letesztelt részrendszert kaphat a fejlesztık a következı inkrementumot egy letesztelt rendszerbıl kiindulva fejleszthetik mivel a fejlesztést általában a legnagyobb prioritású követelményekkel kezdik, épp ezek lesznek a legtöbbször tesztelve Ficsor Lajos
A szoftverfolyamat
swproc / 15
Spirál modell
Forrás: [1] Ficsor Lajos
A szoftverfolyamat
swproc / 16
Spirál modell (folyt.) Minden kör a fejlesztés egy fázisát reprezentálja Minden fázis négy szektorra oszlik célok kijelölése kockázat kezelés fejlesztés és validálás következı fázis tervezése
A kockázatkezelés explicite megjelenik A validálás minden egyes fázis szerves része Ficsor Lajos
A szoftverfolyamat
swproc / 17
V modell
Forrás: [2] Ficsor Lajos
A szoftverfolyamat
swproc / 18
V modell Valójában egy módosított vízesés modell Megkülönbözteti a fejlesztésen belül a konstrukciós és a tesztelési fázisokat Definiálja a tesztelés szintjeit. (Ezekrıl a késıbbiekben még lesz szó.) Összefüggést tételez fel az egyes konstrukciós fázisok és az egyes tesztelési szintek között.
Ficsor Lajos
A szoftverfolyamat
swproc / 19
W modell
Forrás: [2] Ficsor Lajos
A szoftverfolyamat
swproc / 20
W modell (folyt.) Kiegészíti a V modellt a tesztelés eredményeinek feldolgozásával a hiba helyének megkeresése (debugging) a hiba kijavítása (a program módosítása)
Kihangsúlyozza, hogy a tesztelési tevékenység nem a tesztek végrehajtásával kezdıdik. Megmutatja, hogy az egyes konstrukciós fázisokhoz milyen tesztelési tevékenység kapcsolódik. Megmutatja, hogy a tesztelés végigkíséri a teljes fejlesztési folyamatot! Ficsor Lajos
A szoftverfolyamat
swproc / 21
A RUP modell
Ficsor Lajos
A szoftverfolyamat
swproc / 22
A RUP modell (folyt.) Az egyes fejlesztési tevékenységek ("diszciplinák" vagy "munkafolyamatok") átlapolódnak az idıbeli fázisokban, de a súlyuk nem azonos A tesztelés munkafolyamat itt is a végighúzódik szinte a projekt teljes idıtartamán Ajánlásokat ad a tesztek tervezésére, végrehajtására és a dokumentálására.
Ficsor Lajos
A szoftverfolyamat
swproc / 23
Az agilis módszerek Számos fejlesztési területen a legfontosabb szempont a felhasználói követelményekhez való gyors alkalmazkodás Ez új módszerek kifejlesztését tette szükségessé. A szoftver folyamatokat jellemezhetjük az alkalmazkodás támogatásának szintje szerint
Ficsor Lajos
A szoftverfolyamat
swproc / 24
Az agilis módszerek (folyt.) Prediktív (elıre megjósolt) Elıre megtervezett lépések Minden lépés az EGÉSZRE optimalizálva --> nehézkes változás követés Néha külön változáskezelı bizottság
Adaptív (alkalmazkodó) Nincsen elıre jóslás, hosszú távú tervezés Csak a közvetlen problémára koncentrálnak DE arra hajszál pontosan Csak azt tudják, mit fognak „a héten” csinálni Ficsor Lajos
A szoftverfolyamat
swproc / 25
Agilis módszerek - összehasonlítás Agilis
Vízesés Iteratív
Adaptív (alkalmazkodó)
Prediktív (elıre megjósolt)
Az egyes módszerek között átfedések vannak
Ficsor Lajos
A szoftverfolyamat
swproc / 26
Agilis módszertanok eXtreme Programming (XP) Test Driven Development (TDD) Feature Driven Development … A késıbbiekben még lesz ezekrıl szó Általában nagyon rövid inkrementumokkal dolgoznak A tesztelés hangsúlyos, gyakran ismételt eleme ezeknek a módszertanoknak Ficsor Lajos
A szoftverfolyamat
swproc / 27
Irodalomjegyzék 1. Ian Sommerville: Szoftverrendszerek fejlesztése Panem, Budapest, 2002 2. Paul Baker, Zhen Ru Dai, Jens Grabowski, Øystein Haugen, Ina Schieferdecker, Clay Williams: Model-Driven Testing Springer Berlin Heidelberg New York, 2008
Ficsor Lajos
A szoftverfolyamat
swproc / 28