A szoftver tesztelés alapjai



Hasonló dokumentumok
A szoftver tesztelés alapjai

Utolsó módosítás:

Utolsó módosítás:

Alapszintű tesztelői tanfolyam Bodrogközi László CEO, Neuron Software

A SZOFTVERTESZTELÉS-KÉPZÉS HELYE A HAZAI FELSŐOKTATÁSBAN ÉS

Szoftverminőségbiztosítás

Project Management

Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék. Tesztelés és profiling

Teszttervezés. Majzik István, Micskei Zoltán. Integrációs és ellenőrzési technikák (VIMIA04) Méréstechnika és Információs Rendszerek Tanszék

Teszttervezés. Majzik István, Micskei Zoltán. Integrációs és ellenőrzési technikák (VIMIA04) Méréstechnika és Információs Rendszerek Tanszék

SW process Feladatok. SW process Feladatok

Gyakorlat és házi feladat tájékoztató

6. Tesztelés (Verification and Validation Testing)

Digitális technika (VIMIAA01) Laboratórium 1

A pedagógus-előmeneteli rendszer informatikai támogató rendszerének fejlesztése Fűrész Edit Budapest, október 27.

programozástechnika Kezdetek Fı célja 1. Kommunikáció Kezdetek - Adaptivitás

Vállalkozásfinanszírozás

Objektumorientált tesztelés

Dr. Kulcsár Gyula. Virtuális vállalat félév. Projektütemezés. Virtuális vállalat félév 5. gyakorlat Dr.

ingatlan-gazdaságtani előadások projekt menedzsment módszerek

Fábián Zoltán Hálózatok elmélet

Orvosi eszközök gyártmányfejlesztése Aktív orvosi eszköz szoftver verifikálása, validálása (V&V) Dolgos Márton Budapest,

TANTÁRGYI ÚTMUTATÓ. Prezentáció és íráskészségfejlesztés. tanulmányokhoz

Kinek szól a könyv? Hogyan épül fel a könyv? Megjelenés előtti szoftver A hálózati kézikönyv tartalma A könyv támogatása Kérdések és megjegyzések

Képzés leírása. Képzés megnevezése: DFMEA - PFMEA Jelentkezés

Statikus technikák és Műszaki teszttervezési technikák

Az informatika oktatás téveszméi

Verifikáció és validáció Általános bevezető

14. Tűzgátló lezárások 17. Tűzvédelmi célú bevonati rendszerek TSZVSZ - Tűzvédelmi Szakmai Napok Marlovits Gábor

Specifikáció alapú teszttervezési módszerek

MOBIL CROWDSENSING ÉS BIG DATA TÁVKÖZLÉSI ÉS MÉDIAINFORMATIKAI TANSZÉK BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM

Unit Teszt. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Unit Teszt / 22

Specifikáció alapú teszttervezési módszerek

VÁLTOZIK AZ ISO 9001-ES SZABVÁNY. KINEK JÓ EZ?

Tantárgyi program 2014/2015. tanév, 1. félév

Alapszintű tesztelői tanfolyam Boda Béla CTO, Neuron Software

Programozási technológia II 7. előadás. Verifikáció és validáció Giachetta Roberto

Dr. Rainer Wiedemann Varga Zoltán

Szoftver verifikáció és validáció. Bevezető áttekintés

Prop-Tech. Vázmérő. Telepítési és eltávolítási útmutató

A KUTATÁS EREDMÉNYEI ZÁRÓJELENTÉS

A KÖZOP projekt rövid bemutatása

Korszerű geodéziai adatfeldolgozás Kulcsár Attila

Az MSZ EN ISO 19011:2012 szabvány változásai. Támpontok az auditorok értékeléséhez Előadó: Turi Tibor, az MSZT/MCS 901 szakértője

Ismeretanyag Záróvizsgára való felkészüléshez

Többfelhasználós adatbázis környezetek, tranzakciók, internetes megoldások

Fejlesztési projektek menedzselése IBM Rational CLM termékekkel. Ker-Soft Kft. Kaszás Orsolya - üzleti tanácsadó

Tanulmányi keretrendszer az APPI-ban

A Hozzárendelési feladat megoldása Magyar-módszerrel

Halmazok és függvények

Minőségbiztosítás a Méliusz Könyvtárban május 9. Dr. Csontosné Skara Ilona skara.ilona@meliusz.hu

EPER E-KATA integráció

Átalakuló HR szervezet, változó Business Partneri szerepek

Junior Szoftvertesztelő mérnök

Beszámoló: a kompetenciamérés eredményének javítását célzó intézkedési tervben foglaltak megvalósításáról. Őcsény, november 20.

Tantárgyi program. 9. A tantárgy hallgatásának előfeltétele, előképzettségi szint: 10. A tantárgy tartalma:

Modell alapú tesztelés mobil környezetben

Közszolgálati egyéni teljesítményértékelés

Megbízhatósági modellezés és analízis: Mire jó ez egyáltalán?

Füzesabony Város Polgármesteri Hivatalának szervezetfejlesztése (ÁROP-1.A.2/A )

Dialízis gép software komponensét alkotó unitok modul tesztje követelmény és struktúra alapon

evosoft Hungary Kft.

Óravázlat. A szakmai karrierépítés feltételei és lehetőségei. Milyen vagyok én? Én és te. heterogén csoportmunka

Open Trusted Computing avagy mitől lesz bizalomra méltó a számítástechnika? Hornák Zoltán OpenTC tanszéki ismertető 2007 november 28

Tesztelési szintek Tesztautomatizálás

Informatika szigorlati témakörök gazdasági informatika egyetemi képzés hallgatói részére

Jelentéskészítő TEK-IK () Válaszadók száma = 610

Modell alapú tesztelés: célok és lehetőségek

TANTÁRGYI ÚTMUTATÓ. Logisztika. tanulmányokhoz

Szervezeti formák bemutatása

LOGIKAI TERVEZÉS. Előadó: Dr. Oniga István egyetemi docens I félév

SZOFTVER- MINŐSÉGBIZTOSÍTÁS

AZ ÖNÉRTÉKELÉS SZEREPE ÉS FOLYAMATA AZ INTÉZMÉNYFEJLESZTÉSBEN M&S Consulting Kft.

ITIL alapú szolgáltatás menedzsement megvalósítása a KELER Zrt-ben

AutoNet (2CE201P1) Innováció Együttműködés - Képviselet. Regionális Információs Nap, , Ajka

SAP JAM. Felhasználói segédlet

Kockázatkezelés és biztosítás

Esti 11. A területi fejlettség különbség jellemzői, az eltérő gazdasági fejlettség okainak feltárása; a regionális politika lényegének megértése.

Címzett: Markus Goddemeier Fax: +49 (0)

A TŰZVÉDELMI TERVEZÉS FOLYAMATA. Dr. Takács Lajos Gábor okl. építészmérnök BME Építészmérnöki Kar Épületszerkezettani Tanszék

Vasúti információs rendszerek gyakorlat

Számítógép hálózatok gyakorlat

Gyakorlat és házi feladat tájékoztató

Ultrahangos mérőfej XRS-5. Használati utasítás SITRANS. XRS-5 mérőfej Használati utasítás

A TÁMOP KIEMELT PROJEKT KERETÉBEN KIALAKÍTOTT INFORMATIKAI RENDSZER

Tartalom. Újrafelhasználás alapú tervezés. Újrafelhasználás alapú tervezés Komponens alapú fejlesztés. Példák. Szoftvertechnológia előadás

MIÉRT KELL TESZTELNI?

Informatika szigorlati témakörök gazdasági informatika egyetemi képzés hallgatói részére

ONLINE VIDEÓ MÉRÉSE. a tévével együtt. GfK 2016 Online videó mérése tévével együtt Média Hungary Bacher János 1

Software Engineering

3. HÉT: CRM RENDSZEREK A GYAKORLATBAN FUNKCIONALITÁSOK

NIIF VoIP projekt aktualitások

axióma alapú automatizált teszteléssel

Az MPM hálótechnika (I. előadás)

Festetics Kristóf ÁMK Pókaszepetk Óvoda iskola átmenet segítő mikro-csoport

A SZERZŐDÉS TELJESÍTÉSÉRE VONATKOZÓ INFORMÁCIÓK

A robbanékony és a gyorserő fejlesztésének elmélete és módszerei

Felvételi előkészítő tájékoztató 2012.

TELJESÍTMÉNY NYILATKOZAT 0832-CPD-1651

Elektronikus öltözőszekrényzárak

Átírás:

Szoftverellenőrzési A szoftver alapjai Micskei Zoltán, Majzik István http://www.inf.mit.bme.hu/ 1

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 i módszerek és folyamatok A szoftver alapjai Specifikáció és struktúra alapú teszttervezési módszerek a fejlesztés különböző fázisaiban Teszt környezet és teszt automatizálás Modell alapú Validáció GUI Stressz és robusztusság, hibainjektálás 2

A 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 3

A 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 4

A 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: egy folyamat Statikus és dinamikus is 5

A lehetséges céljai A 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 a hibák jelenlétét, és nem a hibamentességet tudja kimutatni. Hoare: A 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. 6

Alapelvek (7 testing principles) Csak a hibák meglétét tudja kimutatni A kimerítő legtöbbször lehetetlen Hány teszt kéne egy 3 integer paraméterű függvényhez? 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 függ a körülményektől (context dependent) Hibamentes rendszer téveszméje Hibamentes tesztlefutás még nem jelent jó rendszert 7

Alapfogalmak Teszt bemenet SUT Teszt kimenet Orákulum Eredmény 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)!= Hibakeresés (debugging) 8

i környezet (eszközök) 9

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) 10

A megbízhatóság előrejelzése Alapkérdés: A i 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 11

A megbízhatóság előrejelzése Alapkérdés: A i 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 12

A i fogalmak áttekintése Szoftver i az 13

Szoftver i az Planning and Control Analysis and Design Imlementation and Execution Evaluating Exit Criteria and Reporting Test Closure Activities 14

Szoftver i az Planning and Control Analysis and Design Imlementation and Execution Evaluating Exit Criteria and Reporting Test Closure Activities 15

i 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 16

Teszt terv (test plan) Teszt stratégia leképezése az aktuális projektre i célok, irányelvek, környezet Tesztelendő funkciók Erőforrások, szerepek, ütemezés i fázisok definiálása Fázisok hossza Kilépési feltétel minőségét hogyan fogjuk mérni Egyszerű példa: http://bazman.tripod.com/ 17

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 18

Szoftver i az Planning and Control Analysis and Design Imlementation and Execution Evaluating Exit Criteria and Reporting 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 Test Closure Activities 19

Szoftver i az Planning and Control Analysis and Design Imlementation and Execution Evaluating Exit Criteria and Reporting Test Closure Activities 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 20

Szoftver i az Planning and Control Analysis and Design Imlementation and Execution Evaluating Exit Criteria and Reporting Döntés a folytatásáról Összefoglaló jelentés lezárása Tipikusan mérföldkövenként Tapasztalat összegyűjtése Teszt eszközök, környezetek (testware) befejezése Test Closure Activities 21

Szoftver i az Unit / Modul Integrációs Rendszer Átvételi (Acceptance) Alfa és béta 22

Szoftver i az Unit / Modul Integrációs Rendszer Átvételi (Acceptance) 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 Alfa és béta 25

Szoftver i az Funkcionális Nemfunkcionális Regressziós 26

Szoftver i az Funkcionális Nemfunkcionális Példák: Teljesítmény, Stressz, Használhatóság, Robusztusság, Regressziós 27

Szoftver i az Funkcionális Nemfunkcionális Regressziós 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 28

Szoftver i az Tesztelő tapasztalata Specifikáció alapú Struktúra alapú Hiba alapú Valószínűségi 29

Szoftver i az Ad hoc Felderítő (exploratory) Rendszer megismerése Teszt tervezés és alkalmazás futtatása együtt Tesztelő tapasztalata Specifikáció alapú Struktúra alapú Hiba alapú Valószínűségi 30

Szoftver i az Tesztelő tapasztalata Fekete doboz (black box) / funkcionális Csak a specifikációból indulunk ki Specifikáció alapú Struktúra alapú Hiba alapú Valószínűségi 31

Szoftver i az Tesztelő tapasztalata Fehér doboz (white box) / strukturális Belső működést is ismerjük Forráskód, részletes terv, belső modell ismert Specifikáció alapú Struktúra alapú Hiba alapú Valószínűségi 32

Szoftver i az Tesztelő tapasztalata Hibasejtés (error guessing) Pl. korábbi hibák alapján Mutációs Kód mutálása tesztek értékelése Teszt mutálása új tesztesetek készítése Specifikáció alapú Struktúra alapú Hiba alapú Valószínűségi 33

Szoftver i az Tesztelő tapasztalata (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) Specifikáció alapú Struktúra alapú Hiba alapú Valószínűségi 34

Szoftver i az Ezek kombinációja hatásos általában! Tesztelő tapasztalata Specifikáció alapú Struktúra alapú Hiba alapú Valószínűségi 35

Szoftver i az V modell Agilis 36

Ismétlés: A tervezése Üzemeltetés, karbantartás Követelmények elemzése Rsz. validáció tervezés Rendszer validáció Rendszer specifikálás Rendszerteszt tervezés Rendszer verifikáció Architektúra tervezés Integrációs teszt tervezés Rendszer integrálás Modul tervezés Modul teszt tervezés Modul verifikáció Modul implementáció 37

Szoftver i az V modell Teszt-vezérelt fejlesztés (TDD) Test-first development Folyamatos Agilis 38

gyakorlati kérdései 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 Tipikusan kézi munka Automatizálható Lásd majd a modell-alapú előadást! 39

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 t How we test software at Microsoft, Microsoft Press, ISBN 0735624259, 2008. 40

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 41

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 42

Összefoglalás Szoftver i az Planning and Control Unit / Modul Funkcionális Tesztelő tapasztalata V modell Analysis and Design Integrációs Nemfunkcionális Specifikáció alapú Agilis Imlementation and Execution Rendszer Regressziós Struktúra alapú Evaluating Exit Criteria and Reporting Átvételi (Acceptance) Hiba alapú Test Closure Activities Alfa és béta Valószínűségi 43