A szoftverfolyamat és s a tesztelés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 11. 19. swproc / 1
A szoftverfolyamat Alaptevékenységek Tartalom Szoftverfolyamat modellek A tesztelés helye az egyes modellekben Agilis módszerek, módszertanok A szoftverfolyamat swproc / 2
A szoftverfolyamat (processz( 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. A szoftverfolyamat swproc / 3
Alaptevékenys 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 A szoftverfolyamat swproc / 4
Alaptevékenys 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 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 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 A szoftverfolyamat swproc / 7
Folyamat modellek és 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! A szoftverfolyamat swproc / 8
Vízesés 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 A szoftverfolyamat swproc / 9
Vízesés 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ó A szoftverfolyamat swproc / 10
Hátrány: Vízesés s modell (folyt.) 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ó. A szoftverfolyamat swproc / 11
Vízesés 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. A szoftverfolyamat swproc / 12
Inkrementális (vagy iteráci ciós) Analízis Specifikáció Tervezés Specifikáció Implem. Tervezés Specifikáció Tesztelés Tesztelés Implem. Tervezés Implem. Tesztelés Használat 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 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 A szoftverfolyamat swproc / 15
Spirál l modell Forrás: [1] A szoftverfolyamat swproc / 16
Spirál 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 A szoftverfolyamat swproc / 17
V modell Forrás: [2] 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. A szoftverfolyamat swproc / 19
W modell Forrás: [2] 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! A szoftverfolyamat swproc / 21
A RUP modell 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. A szoftverfolyamat swproc / 23
Az agilis módszerekm 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 A szoftverfolyamat swproc / 24
Az agilis módszerek m (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 A szoftverfolyamat swproc / 25
Agilis módszerek m - összehasonlítás Agilis Iteratív Vízesés Adaptív (alkalmazkodó) Prediktív (elıre megjósolt) Az egyes módszerek között átfedések vannak A szoftverfolyamat swproc / 26
Agilis módszertanokm 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 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 A szoftverfolyamat swproc / 28