A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an...
Transcript of A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an...
![Page 1: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/1.jpg)
1
A szoftver tesztelés alapjai
Micskei Zoltán, Majzik István
http://www.inf.mit.bme.hu/
Szoftverellenőrzési technikák
![Page 2: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/2.jpg)
2
Hol tartunk a félévi anyagban?
• Követelményspecifikáció ellenőrzése
• Ellenőrzések a tervezési fázisban
• Forráskód verifikáció technikái
• Tesztelési módszerek és folyamatok
– A szoftver tesztelés alapjai
– Specifikáció és struktúra alapú teszttervezési módszerek
– Tesztelés a fejlesztés különböző fázisaiban
– Teszt környezet és teszt automatizálás
– Modell alapú tesztelés
• Validáció – GUI tesztelés
– Stressz és robusztusság tesztelés, hibainjektálás
![Page 3: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/3.jpg)
3
A tesztelés definíciói (1)
„Testing is an activity performed for evaluating product quality, and for improving it, by identifying defects and problems.” – Forrás: IEEE, „Software Engineering Body of Knowledge” (SWEBOK)
URL: http://www.computer.org/portal/web/swebok/
– Általános definíció
– Kulcs: „evaluating product quality”
• Quality: „the degree to which a system, component, or process meets specified requirements”
![Page 4: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/4.jpg)
4
A tesztelés definíciói (2)
„ An activity in which a system or component is executed under specified conditions, the results are observed or recorded, and an evaluation is made of some aspect of the system or component.” – Forrás: IEEE, "IEEE Standard for Software and System Test
Documentation," IEEE Std 829-2008 , 2008
– Kicsit specifikusabb
– Kulcs: végrehajtjuk a rendszert vagy komponenst
![Page 5: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/5.jpg)
5
A tesztelés definíciói (3)
„The process consisting of all lifecycle activities, both static and dynamic, concerned with planning, preparation and evaluation of software products and related work products
- to determine that they satisfy specified requirements,
- to demonstrate that they are fit for purpose and
- to detect defects.
– Forrás: International Software Testing Qualifications Board (ISTQB), URL: http://istqb.org/
– Sokkal bővebb definíció
– Kulcs:
• Tesztelés egy folyamat
• Statikus és dinamikus technikák is
![Page 6: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/6.jpg)
6
A tesztelés lehetséges céljai
A tesztelés lehetséges céljai – Bizonyosságot szerezni a rendszer minőségi állapotáról
– Információ a döntéshozáshoz (pl. release / no release)
– Hibák keresése
– Hibák megakadályozása
Mottók: – Dijkstra: A tesztelés a hibák jelenlétét, és nem a
hibamentességet tudja kimutatni.
– Hoare: A tesztelés egy induktív bizonyítás része: Ha a program jól működik egy adott teszt adatra, akkor várhatóan hasonló adatokra is jól működik.
![Page 7: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/7.jpg)
7
Alapelvek (7 testing principles)
• Csak a hibák meglétét tudja kimutatni
• A kimerítő tesztelés legtöbbször lehetetlen
– Hány teszt kéne egy 3 integer paraméterű függvényhez?
• Tesztelés már a korai fázisokban szükséges
• Hibák csoportosulása (defect clustering)
– A komponensek egy kis részében van a hibák nagy része
• Féregirtó paradoxon (pesticide paradox)
– Teszt újra és újra futtatva egyre kevésbé hatékony
– Minden módszer után marad még valami más típusú hiba
• A tesztelés függ a körülményektől (context dependent)
• Hibamentes rendszer téveszméje
– Hibamentes tesztlefutás még nem jelent jó rendszert
![Page 8: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/8.jpg)
8
Alapfogalmak
• Teszteset (test case) – Bemeneti értékek és végrehajtási előfeltételek
– Várt eredmények és végrehajtási utófeltételek halmaza
• Tesztkészlet (test suite)
• Orákulum (test oracle) – Várt eredmények származtatása, összehasonlítása
• Eredmény (verdict) – Sikeres (pass), sikertelen (fail)
– Nem meggyőző (inconclusive), hiba (error)
• Tesztelés != Hibakeresés (debugging)
Teszt
bemenet SUT
Teszt
kimenet Eredmény Orákulum
![Page 9: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/9.jpg)
9
Tesztelési környezet (eszközök)
![Page 10: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/10.jpg)
10
Alap problémák
• Teszt kiválasztás (test selection) – Milyen teszt bemeneteket használjunk?
– Ld. működési profil szerepe
• Kilépési feltétel (exit criteria) – Meddig teszteljünk?
• Specifikáció fedése, kód fedése, hibák fedése?
– Ld. megbízhatóság előrejelzése
• Orákulum – Honnan lesz jó teszt orákulum?
• Tesztelhetőség (testability) – Megfigyelhetőség (observability)
– Vezérelhetőség (controllability)
![Page 11: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/11.jpg)
11
A megbízhatóság előrejelzése
• Alapkérdés: A tesztelési folyamat során hogyan változik a szoftver megbízhatósága? – Hibák detektálása és javítása:
Meghibásodási gyakoriság csökken
• Megbízhatóság növekedési modellek – Legegyszerűbb: Lépcsős függvény modell
• Tökéletes hibajavítás
• Azonos gyakoriságú hibák
– Komplikáltabb: Véletlen ugrású lépcsős függvény
• A hibajavítás újabb hibát bevihet
• A javított hibák különböző gyakoriságúak
– Folytonos modellek
• Adott feltételek mellett alkalmazhatók (feladattípus, paradigma, komplexitás, fejlesztők, …)
• Mért hibajavítási adatok illesztése szükséges
![Page 12: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/12.jpg)
12
A megbízhatóság előrejelzése
• Alapkérdés: A tesztelési folyamat során hogyan változik a szoftver megbízhatósága? – Hibák detektálása és javítása:
Meghibásodási gyakoriság csökken
• Megbízhatóság növekedési modellek – Legegyszerűbb: Lépcsős függvény modell
• Tökéletes hibajavítás
• Azonos gyakoriságú hibák
– Komplikáltabb: Véletlen ugrású lépcsős függvény
• A hibajavítás újabb hibát bevihet
• A javított hibák különböző gyakoriságúak
– Folytonos modellek
• Adott feltételek mellett alkalmazhatók (feladattípus, paradigma, komplexitás, fejlesztők, …)
• Mért hibajavítási adatok illesztése szükséges
![Page 13: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/13.jpg)
13
Szoftver tesztelés
Tesztelés folyamata
Tesztelés szintjei
Tesztelési típusok
Teszttervezési technikák
Tesztelés az életciklusban
A tesztelési fogalmak áttekintése
![Page 14: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/14.jpg)
14
Szoftver tesztelés
Tesztelés folyamata
Planning and Control
Analysis and Design
Imlementation and Execution
Evaluating Exit Criteria and Reporting
Test Closure Activities
Tesztelés szintjei
Tesztelési típusok
Teszttervezési technikák
Tesztelés az életciklusban
![Page 15: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/15.jpg)
15
Szoftver tesztelés
Tesztelés folyamata
Planning and Control
Analysis and Design
Imlementation and Execution
Evaluating Exit Criteria and Reporting
Test Closure Activities
Tesztelés szintjei
Tesztelési típusok
Teszttervezési technikák
Tesztelés az életciklusban
![Page 16: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/16.jpg)
16
Tesztelési stratégia
• Általános irányelvek – Milyen metodológiát?
– Milyen típusú teszteket?
– Milyen eszközöket?
– Ki fogja használni?
– Milyen kilépési feltétellel?
– Milyen dokumentáció kell?
– …
• Példák az irányelvekre: – Test-driven development
– Modul & rendszer
– JUnit & GUI Tester
– Fejlesztő és teszt csapat
– 90% utasítás lefedettség & minden használati eset
![Page 17: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/17.jpg)
17
Teszt terv (test plan)
• Teszt stratégia leképezése az aktuális projektre
– Tesztelési célok, irányelvek, környezet…
– Tesztelendő funkciók
– Erőforrások, szerepek, ütemezés
• Tesztelési fázisok definiálása
– Fázisok hossza
– Kilépési feltétel
– Tesztelés minőségét hogyan fogjuk mérni
• Egyszerű példa: http://bazman.tripod.com/
![Page 18: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/18.jpg)
18
Teszt dokumentáció
• IEEE 829 - Standard for Software and System Test Documentation (1998)
– Test Plan (SPACEDIRT: Scope, People, Approach, Criteria, Environment, Deliverables, Incidentals, Risks, Tasks)
– Test specifications: Test Design, Test Case, Test Procedure Specifications
– Test reporting: Test Item Transmittal Report, Test Log, Test Incident Report, Test Summary Report
![Page 19: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/19.jpg)
19
Szoftver tesztelés
Tesztelés folyamata
Planning and Control
Analysis and Design
Imlementation and Execution
Evaluating Exit Criteria and Reporting
Test Closure Activities
Tesztelés szintjei
Tesztelési típusok
Teszttervezési technikák
Tesztelés az életciklusban
• Mit lehet és kell tesztelni?
• Tesztesetek tervezése, specifikálása – Teszteset célja – Kiindulási környezet – Teszteset lépései, teszt adatok – Elvárt kimenet
• Mielőtt elkezdenénk tesztkódot írni • Szisztematikus módszer ajánlott
![Page 20: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/20.jpg)
20
Szoftver tesztelés
Tesztelés folyamata
Planning and Control
Analysis and Design
Imlementation and Execution
Evaluating Exit Criteria and Reporting
Test Closure Activities
Tesztelés szintjei
Tesztelési típusok
Teszttervezési technikák
Tesztelés az életciklusban
• Manuális vagy automatikus • Van, amit nem éri meg
automatizálni
• Tesztek végrehajtása • Kimenetek naplózása
• Idő, teszt környezet • Komponensek verziói • Rendszer kimenete • …
• Incidensek rögzítése
![Page 21: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/21.jpg)
21
Szoftver tesztelés
Tesztelés folyamata
Planning and Control
Analysis and Design
Imlementation and Execution
Evaluating Exit Criteria and Reporting
Test Closure Activities
Tesztelés szintjei
Tesztelési típusok
Teszttervezési technikák
Tesztelés az életciklusban
• Döntés a tesztelés folytatásáról • Összefoglaló jelentés
• Tesztelés lezárása
• Tipikusan mérföldkövenként • Tapasztalat összegyűjtése • Teszt eszközök, környezetek
(testware) befejezése
![Page 22: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/22.jpg)
22
Szoftver tesztelés
Tesztelés folyamata
Tesztelés szintjei
Unit / Modul
Integrációs
Rendszer
Átvételi (Acceptance)
Alfa és béta
Tesztelési típusok
Teszttervezési technikák
Tesztelés az életciklusban
![Page 23: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/23.jpg)
25
Szoftver tesztelés
Tesztelés folyamata
Tesztelés szintjei
Unit / Modul
Integrációs
Rendszer
Átvételi (Acceptance)
Alfa és béta
Tesztelési típusok
Teszttervezési technikák
Tesztelés az életciklusban
• Akár a megrendelő által • Végleges (vagy nagyon
hasonló) környezet • Teljes rendszer (minden
függőséggel együtt) • Követelmények alapján
![Page 24: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/24.jpg)
26
Szoftver tesztelés
Tesztelés folyamata
Tesztelés szintjei
Tesztelési típusok
Funkcionális
Nem- funkcionális
Regressziós
…
Teszttervezési technikák
Tesztelés az életciklusban
![Page 25: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/25.jpg)
27
Szoftver tesztelés
Tesztelés folyamata
Tesztelés szintjei
Tesztelési típusok
Funkcionális
Nem- funkcionális
Regressziós
…
Teszttervezési technikák
Tesztelés az életciklusban
Példák: • Teljesítmény, • Stressz, • Használhatóság, • Robusztusság, • …
![Page 26: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/26.jpg)
28
Szoftver tesztelés
Tesztelés folyamata
Tesztelés szintjei
Tesztelési típusok
Funkcionális
Nem- funkcionális
Regressziós
…
Teszttervezési technikák
Tesztelés az életciklusban
• Módosítások után • Korábbi funkciót nem rontottunk el • Teljes tesztkészlet egy részét csak • Teszt készlet minimalizálás
![Page 27: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/27.jpg)
29
Szoftver tesztelés
Tesztelés folyamata
Tesztelés szintjei
Tesztelési típusok
Teszttervezési technikák
Tesztelő tapasztalata
Specifikáció alapú
Struktúra alapú
Hiba alapú
Valószínűségi
Tesztelés az életciklusban
![Page 28: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/28.jpg)
30
Szoftver tesztelés
Tesztelés folyamata
Tesztelés szintjei
Tesztelési típusok
Teszttervezési technikák
Tesztelő tapasztalata
Specifikáció alapú
Struktúra alapú
Hiba alapú
Valószínűségi
Tesztelés az életciklusban
• Ad hoc tesztelés • Felderítő tesztelés
(exploratory) • Rendszer megismerése • Teszt tervezés és alkalmazás
futtatása együtt
![Page 29: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/29.jpg)
31
Szoftver tesztelés
Tesztelés folyamata
Tesztelés szintjei
Tesztelési típusok
Teszttervezési technikák
Tesztelő tapasztalata
Specifikáció alapú
Struktúra alapú
Hiba alapú
Valószínűségi
Tesztelés az életciklusban
• Fekete doboz (black box) / funkcionális tesztelés
• Csak a specifikációból indulunk ki
![Page 30: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/30.jpg)
32
Szoftver tesztelés
Tesztelés folyamata
Tesztelés szintjei
Tesztelési típusok
Teszttervezési technikák
Tesztelő tapasztalata
Specifikáció alapú
Struktúra alapú
Hiba alapú
Valószínűségi
Tesztelés az életciklusban
• Fehér doboz (white box) / strukturális tesztelés
• Belső működést is ismerjük
• Forráskód, részletes terv, belső modell ismert
![Page 31: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/31.jpg)
33
Szoftver tesztelés
Tesztelés folyamata
Tesztelés szintjei
Tesztelési típusok
Teszttervezési technikák
Tesztelő tapasztalata
Specifikáció alapú
Struktúra alapú
Hiba alapú
Valószínűségi
Tesztelés az életciklusban
• Hibasejtés (error guessing) • Pl. korábbi hibák alapján
• Mutációs tesztelés • Kód mutálása
– tesztek értékelése • Teszt mutálása
– új tesztesetek készítése
![Page 32: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/32.jpg)
34
Szoftver tesztelés
Tesztelés folyamata
Tesztelés szintjei
Tesztelési típusok
Teszttervezési technikák
Tesztelő tapasztalata
Specifikáció alapú
Struktúra alapú
Hiba alapú
Valószínűségi
Tesztelés az életciklusban
• (Ortogonális kategória) • Tesztesetek származtatása:
• Determinisztikus vagy • Valószínűségi módon
• Módszerek • Véletlenszerű (random) • Működési (operational) • Statisztikai (random +
kritérium)
![Page 33: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/33.jpg)
35
Szoftver tesztelés
Tesztelés folyamata
Tesztelés szintjei
Tesztelési típusok
Teszttervezési technikák
Tesztelő tapasztalata
Specifikáció alapú
Struktúra alapú
Hiba alapú
Valószínűségi
Tesztelés az életciklusban
Ezek kombinációja
hatásos általában!
![Page 34: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/34.jpg)
36
Szoftver tesztelés
Tesztelés folyamata
Tesztelés szintjei
Tesztelési típusok
Teszttervezési technikák
Tesztelés az életciklusban
V modell
Agilis
…
![Page 35: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/35.jpg)
37
Ismétlés: A tesztelés tervezése
Követelmények
elemzése
Rendszer
specifikálás
Architektúra
tervezés
Modul
tervezés
Modul
implementáció
Modul teszt
tervezés
Integrációs teszt
tervezés
Rendszerteszt
tervezés
Rsz. validáció
tervezés
Modul
verifikáció
Rendszer
integrálás
Rendszer
verifikáció
Rendszer
validáció
Üzemeltetés,
karbantartás
![Page 36: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/36.jpg)
38
Szoftver tesztelés
Tesztelés folyamata
Tesztelés szintjei
Tesztelési típusok
Teszttervezési technikák
Tesztelés az életciklusban
V modell
Agilis
…
• Teszt-vezérelt fejlesztés (TDD) • Test-first development
• Folyamatos tesztelés
![Page 37: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/37.jpg)
39
Tesztelés gyakorlati kérdései
• Tesztelés a fejlesztési költség több mint 50%-a! – Teszt adatok generálása
– Teszt kód írása
– Tesztek futtatása
– Eredmények kiértékelése
• Az automatizálás alapja: pl. UML modell – Osztálydiagram: modul interfészek Teszt vezérlők és teszt csonk váz generálása
– Szekvencia diagram: modulok együttműködése Teszt szekvencia származtatása
• Lásd majd a modell-alapú tesztelés előadást!
Tipikusan kézi
munka
Automatizálható
![Page 38: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/38.jpg)
40
Testing @ Microsoft
• Software Developer Engineer in Test (SDET)
• Kb. ugyanannyi tesztelő, mint fejlesztő
• Fejlesztőivel egyenrangú karrierút – Tesztelő nem belépő pozíció
– Teszt menedzser nem előléptetés, hanem külön út
• 10 éves támogatási ciklus az OS verziókhoz – Megéri automatizálni a tesztelést
„How we test software at Microsoft”, Microsoft Press, ISBN 0735624259, 2008.
![Page 39: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/39.jpg)
41
Testing @ Google
• Software Engineer in Test (SET) és Test Engineer (TE) szerepek
• „The burden of quality is on the shoulders of those writing the code.”
• „Ne vegyünk fel túl sok tesztelőt”
![Page 40: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/40.jpg)
42
További információk
• International Software Testing Qualifications Board (ISTQB), URL: http://istqb.org/ – ISTQB Glossary of Testing Terms
– Foundation Level Syllabus (2011)
– Magyarul is: http://www.hstqb.com/index.php?title=Downloads
• IEEE, Software Engineering Body of Knowledge (SWEBOK), URL: http://www.computer.org/portal/web/swebok/ – Chapter 5: Software Testing
• IEEE, Software and Systems Engineering Vocabulary (SE VOCAB), URL: http://pascal.computer.org/sev_display/ – Definíciók kereshető jegyzéke
![Page 41: A szoftver tesztelés alapjai - inf.mit.bme.hu · 3 A tesztelés definíciói (1) „Testing is an activity performed for evaluating product quality, and for improving it, by identifying](https://reader030.fdocuments.net/reader030/viewer/2022040418/5d674b8588c993d0688ba825/html5/thumbnails/41.jpg)
43
Összefoglalás Szoftver tesztelés
Tesztelés folyamata
Planning and Control
Analysis and Design
Imlementation and Execution
Evaluating Exit Criteria and Reporting
Test Closure Activities
Tesztelés szintjei
Unit / Modul
Integrációs
Rendszer
Átvételi (Acceptance)
Alfa és béta
Tesztelési típusok
Funkcionális
Nem- funkcionális
Regressziós
…
Teszttervezési technikák
Tesztelő tapasztalata
Specifikáció alapú
Struktúra alapú
Hiba alapú
Valószínűségi
Tesztelés az életciklusban
V modell
Agilis
…