Szoftvertesztelés

A tantárgy angol neve: Software Testing

Adatlap utolsó módosítása: 2021. április 24.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar
BProf képzés, Üzemmérnök-informatikus szak
Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIIIBB01 4 2/2/0/v 5  
3. A tantárgyfelelős személy és tanszék Dr. Balla Katalin,
4. A tantárgy előadója

Sógorné Dr. Balla Katalin 

Egyetemi docens

Irányítástechnika és Informatika Tanszék (IIT)

5. A tantárgy az alábbi témakörök ismeretére épít

A programozás alapjai / Kódolás /( Szükséges legalább egy programozási nyelv ismerete)

Szoftvertechnológia és -technikák

6. Előtanulmányi rend
Kötelező:
Training.Code=("5N-A9") ÉS

Szakirany("BPINteszt", _)

A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.

Ajánlott:

A tanterv részeként rögzített.

7. A tantárgy célkitűzése

Készség szintű tudás átadás a szoftvertesztelés folyamata, alapvető technikái, támogató eszközei és a tesztelés menedzsmentjének területén, ami alkalmassá teszi a tárgyat sikeresen elvégzőket a manapság egyre keresettebb tesztmérnöki munkakörbe való zökkenőmentes bekapcsolódásra. A gyakorlatok segítenek az elméleti tudás elmélyítésében.  

 

A tárgy fő témakörei szerinti bontásban a következő  tudásszinteket célozza meg :

A szoftvertesztelés fogalma, szükségessége, alapelvei

A tesztelés tipikus céljainak meghatározása - ismeret szint - K1

A tesztelés és a hibajavítás megkülönböztetése - megértés szint - K2

A tesztelés és minőségbiztosítás megkülönböztetése - megértés szint - K2

A tesztelés szükségességének felismerése, mások számára érthető megfogalmazása konkrét esettanulmány alapján - megértés szint - K2

A tesztelés 7 alapelvének ismerete - ismeret szint - K1

A tesztelés alapelveinek felismerése esettanulmányban - megértés szint - K2

 A tesztelés alapfogalmai

Belső és külső hiba, emberi hiba, hibaok fogalmainak ismerete - ismeret szint- K1

Különbségtétel hibaok és hiba között - megértés szint - K2

A tesztelés pszichológiája

Annak felismerése, hogy miért fontos a hibák kommunikálási módja - megértés szint - K2

A szoftverfejlesztői és a tesztelői gondolkodásmód összehasonlítása, a különbségek megértése - alkalmazási szint - K3

Az alapvető szoftvertesztelési folyamat

A szoftvertesztelés tevékenységeinek felismerése (név szerint) - ismeret szint - K1

A szoftvertesztelési tevékenységek azonosítása az ismert szoftverfejlesztési életciklus modellekben - K2

Annak megértése, hogy a szoftvertesztelés tervezett, szisztematikusan végrehajtott, követett, mért tevékenységsorozat - megértés szint - K2

Szoftvertesztelési folyamat összeállítása klasszikus és agilis projektek esetében - konstrukciós szint - K4

Tesztelési szintek

A különböző tesztelési szintek megértése, a közöttük levő különbségek felismerése - megértés szint - K2

Regressziós és progressziós, valamint karbantartási teszt sajátos elemeinek felismerése - megértés szint - K2

A tesztelési folyamat alapvető dokumentumai

A tesztelés legfőbb dokumentumainak felidézése és az életciklusban való helyük ismerete  -- ismeret szint - K1

 Teszt terv és hibaleírás elemeinek ismerete- ismeret szint - K1

A szemlék fontossága

Szemlézésre alkalmas munkatermékek felismerése a tesztelési folyamatban - megértés szint - K2

A páros szemlék és inspekciók lépéseinek ismerete és alkalmazása - alkalmazási szint - K3

Dinamikus tesztelés

 A dinamikus tesztelési technikák felidézése - ismeret szint - K1

Funkcionális tesztelés

Teszt esetek meghatározása határérték alapú technikával - alkalmazási szint - K3

Teszt esetek meghatározása ekvivalencia particiók alapján - alkalmazási szint - K3

Teszt esetek meghatározása állapot-átmenetek alapján - alkalmazási szint - K3

Teszt esetek meghatározása use-case alapon - alkalmazási szint - K3

Strukturális tesztelés

A  strukturális alapon történő teszt tervezés elemeinek felidézése - ismeret szint - K1

A strukturális tesztek szerepének megértése a teszt lefedettség mérésében - megértés szint - K2

A tesztelés menedzsmentje

A tesztek tervezési, követési és vezérlési elemeinek felidézése - ismeret szint - K1 

Tesztelés során alkalmazható becslési technikák felidézése - ismeret szint - K1

Szabványos teszt terv elkészítése - alkalmazási szint - K3

A hatékony tesztelési folyamat elemeinek felismerése - megértés szint - K2

A tesztelési folyamat mérőszámainak felismerése, értelmezése - megértés szint - K2

Teszt tervezés projekt- és termék - kockázatok alapján - alkalmazási szint - K3

 A független tesztelői szervezet jellemzőinek felismerése - ismeret szint - K1

Tipikus , teszteléshez kapcsolódó konfigurációs elemek azonosítása - megértés szint - K2

Agilis tesztelés

Az agilis tesztelés sajátosságainak felidézése - ismeret szint - K1

Agilis tesztelési terv összeállítása - alkalmazási szint - K3

Agilis és hagyományos tesztelői csapat jellemzőinek összehasonlítása - alkalmazási szint - K3

A tesztelési folyamat fejlesztése

A TMMi modell elemeinek felidézése - ismeret szint - K1

A TMMi modell érettségi szintjeinek azonosítása esettanulmányban - alkalmazási szint - K3

A tesztelési folyamat érettségi szintjének felismerése - konstrukciós szint - K4

Fejlesztendő elemek azonosítása a tesztelési folyamatban - konstrukciós szint - K4

 

8. A tantárgy részletes tematikája

Az előadások tematikája:

Előadás

Előadás anyaga

1.

A szoftvertesztelés fogalma, szükségessége, alapelvei.

2.

A tesztelés alapfogalmai. Belső és külső hiba, emberi hiba, hibaok. A tesztelés pszichológiája.

3

 Az alapvető tesztelési folyamat. A tesztelés helye a szoftverfejlesztési folyamatban.

4

Tesztelési szintek. A tesztelési folyamat alapvető dokumentumai.

5

Teszt típusok. Statikus tesztelés. Szemlék.

6

Dinamikus tesztelési technikák. Funkcionális és strukturális tesztelés.

7

Funkcionális tesztelési technikák: határérték tesztelés, ekvivalencia partíciók, döntési táblák. 

8

Funkcionális tesztelési technikák: állapot-átmenet és use-case alapú tesztelés. A funkcionális tesztek tervezésének és futtatásának ráfordítása.

9

Strukturális tesztelési technikák: utasítás alapú, döntés alapú, adatfolyam alapú tesztelés. A tesztek lefedettsége.  A strukturális tesztek tervezésének és futtatásának ráfordítása.

10

A tesztelés menedzsmentje.  Tesztelés tervezése, követése, vezérlése.  A tesztelői szervezet.

11

Kockázatkezelés, konfigurációkezelés, mérés a tesztelés szolgálatában.

12

Tesztelési stratégia kialakítása egy szoftvercégnél. A hatékony tesztelési folyamat. A tesztelési folyamat mérése, elemzése és folyamatos fejlesztése. A tesztelés értéke és költsége.

13

Az agilis tesztelés elemei. Az agilis tesztelés és a hagyományos tesztelés kapcsolata. Agilis tesztelési módszerek.

14

A tesztelési folyamat fejlesztése. A TMMi modell. TMMi agilis környezetben.

A gyakorlatok (laborok) tematikája:

Gyakorlat

Gyakorlat anyaga

1.

A tesztelés fontosságának felismerése esettanulmány alapján.

2.

 A hibák megtalálása, a kommunikálás fontossága.

3 - 4

Szoftvertesztelési folyamat összeállítása alapelemekből, klasszikus és agilis projektek esetében.

5

A különböző tesztelési szintekhez kapcsolódó dokumentumok vizsgálata.

6

A karbantartási teszt szükségességére utaló elemek felismerése esettanulmány alapján. Karbantartási teszt tervezése.

7

Szemle végrehajtása.

8

Határérték elemzés és ekvivalencia partíció alapú tesztek tervezése és végrehajtása

9

Állapot átmenet alapú tesztek tervezése és végrehajtása

10

Tesztek tervezése use -case alapon. 

11

Átfogó teszt terv készítése megadott feltételek alapján.

12

Teszt eredmények elemzése esettanulmányban.

13

Agilis tesztelési elemek alkalmazása a tesztek tervezésében.

14

A TMMi modell értelmezése egy esettanulmány alapján. A TMMi modellnek való megfelelés értékelése az esettanulmányban.

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

A tárgy oktatása során arra törekszünk, hogy a hallgatók a valós szoftvertesztelői problémákkal találkozzanak. Az előadások keretében is sok, valós gyakorlatból származó példát ismertetünk. Tervezünk legalább egy alkalommal vendég-előadót is meghívni, aki aktív szoftvertesztelő.

A gyakorlatokon a hallgatók mindegyikét bevonjuk a munkavégzésbe. Minden gyakorlaton 3-5 fős csoportokban  kell - az előzőekben elhangzott elméleti előadásokhoz kapcsolódó - feladatokat megoldaniuk, majd a gyakorlat végén minden csoport bemutatja eredményét a többieknek. A félév során minden hallgató sorra kerül bemutatás tartásában, ilyenformán felkészítjük a hallgatókat arra, hogy tesztelőként rendszerezzék és kommunikálják álláspontjukat (mely attitűd különbözik a szoftverfejlesztőétől).

A tárgyat sikeresen abszolválók, valamint Tesztelés és üzemeltetés  specializáció 5. félévében sorra kerülő Tesztelés és üzemeltetés labort abszolválók felkészültek lesznek az ISTQB alapszintű  (ISTQB-CTFL) letételére.

Igény esetén megszervezzük, hogy a Magyar Szoftvertesztelői Tanács a BME-n tartson ISTQB-CTFL vizsgát (magyar és / vagy angol nyelven). 
10. Követelmények

A szorgalmi időszakban:

Aktív részvétel a csoportos gyakorlatokon. A gyakorlatok eredményének bemutatása  (csoportonként) a gyakorlat végén.

A bemutatott gyakorlatokra külön pontszámot nem adunk; a gyakorlat eredménye: „teljesített" / „nem teljesített".

A félév végi aláírás feltételei:

A gyakorlatok legalább 2/3-ának- elvégzése (jelenlét a gyakorlaton + eredmények bemutatása, azaz a gyakorlat „teljesített" státusza).

A vizsgaidőszakban: 

A vizsgaidőszakban írásbeli vizsgát  tartunk.

Az osztályzat megállapításának módja:

A vizsgán elérhető pontszámok alapján számoljuk az érdemjegyet:

85%-100% jeles

70%-84%: jó

55%-69%: közepes

40%-54%: elégséges

0-39%: elégtelen.

11. Pótlási lehetőségek -
12. Konzultációs lehetőségek

A tárgy oktatóinak konzultációs napján.

13. Jegyzet, tankönyv, felhasználható irodalom

-         A tárgy honlapján megtalálható diák

-         International Software testing and Qualifications Board -aktuális dokumentumok - www.istqb.org

-         D. Graham, E. van Veenendaal, I. Evans, R. Black: Foundation of Software Testing: ISTQB Certification, Cengage Learning Inc., 2007

-         B. Hambling (ed.), P. Morgan, A. Samaroo, G. Thompson, P. Williams - Software Testing: An ISEB Certified Foundation Guide 3rd Edition, BCS, 2015

-         P.C. Jorgensen: Software Testing: A Craftsman's Approach 4th Edition, CRC Press, 2014

-         Certified Tester Foundation Level Extension Syllabus Agile Tester. Version 2014. www.istqb.org

-         Test Maturity Model integration (TMMi) - https://www.tmmi.org/wp-content/uploads/2016/09/TMMi.Framework.pdf

-         Erik van Veenendaal and Jan Jaap Cannegieter: The Little TMMi - Objective-Driven Test Process Improvement, 2011, UTN Publishers, Den Bosch, The Netherlands

-         TMMi in the Agile world. https://www.tmmi.org/wp-content/uploads/2018/05/TMMi-in-the-Agile-world-V1.1.pdf

14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka
Kontakt óra56
Félévközi készülés órákra16
Felkészülés gyakorlatra
28
Házi feladat elkészítése0
Önálló tananyag feldolgozás 10
Vizsgafelkészülés40
Összesen150
15. A tantárgy tematikáját kidolgozta

Sógorné Dr. Balla Katalin

Egyetemi docens

IIT