A szoftver tesztelés alapjai



Hasonló dokumentumok
Utolsó módosítás:

Utolsó módosítás:

A szoftver tesztelés alapjai

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

6. Tesztelés (Verification and Validation Testing)

Szoftverminőségbiztosítás

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

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

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

Objektumorientált tesztelés

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

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,

Tesztelés fázisai. Passed Informatikai Kft december 4

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

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

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

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

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

Digitális tananyag, e-learning, különbségek, definíciók

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

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

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

Modell alapú tesztelés mobil környezetben

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

Workflow és Petri hálók. Workflow fogalma

Tesztelési szintek Tesztautomatizálás

Bánsághi Anna Bánsághi Anna 1 of 54

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

R3-COP. Resilient Reasoning Robotic Co-operating Systems. Autonóm rendszerek tesztelése egy EU-s projektben

Models are not right or wrong; they are more or less useful.

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

I: Az értékteremtés lehetőségei a vállalaton belüli megközelítésben és piaci szempontokból

Magas hőmérsékletű teljesítmény-korlátozó fűtőkábel

GYÁRTÓ VÁLLALAT VEVŐI AUDITJA

TTMER18 - ATM KAPCSOLÓK MEGFELELŐSÉGI VIZSGÁLATA ELLENŐRZŐ KÉRDÉSEK 1. MI A MEGFELELŐSÉG VIZSGÁLAT, MIKOR, HOL ÉS MIVEL VÉGZIK EZEKET A

Szoftveripar és üzleti modellek

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

Cash Flow Navigátor. Six Sigma módszer bevezetés. Tanácsadó Kft. Tel.: Skype: nfeher01

MODELL ALAPÚ MEGKÖZELÍTÉS TESZT ÚJRAFELHASZNÁLÁSHOZ INTELLIGENS OTTHON ESETÉN

BKI13ATEX0030/1 EK-Típus Vizsgálati Tanúsítvány/ EC-Type Examination Certificate 1. kiegészítés / Amendment 1 MSZ EN :2014


M szaki okú kockázatok kezelése a közlekedésben

KOGGM614 JÁRMŰIPARI KUTATÁS ÉS FEJLESZTÉS FOLYAMATA

NYOMÁSOS ÖNTÉS KÖZBEN ÉBREDŐ NYOMÁSVISZONYOK MÉRÉTECHNOLÓGIAI TERVEZÉSE DEVELOPMENT OF CAVITY PRESSURE MEASUREMENT FOR HIGH PRESURE DIE CASTING

11i Financial Applications Overview

Objektum Orientált Szoftverfejlesztés (jegyzet)

axióma alapú automatizált teszteléssel

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

7. Verifikáci. ció. Ennek része a hagyományos értelemben vett szoftvertesztelés is. A szoftver verifikálásának,

Széchenyi István Szakképző Iskola

AZ ISO/IEC-9126 SZOFTVER MINŐSÉGI SZABVÁNY ÁTTEKINTÉSE

Teszt terv Új funkció implementációja meglévı alkalmazásba

Komponens modellek. 3. Előadás (első fele)

Ülékes szelepek (PN 16) VRG 2 2-utú szelep, külső menettel VRG 3 3-utú szelep, külső menettel

Szoftverminőségbiztosítás

Gyártási folyamatok tervezése

Technical Object Maintenance (TOM) Bihari Róbert november 26.

Szoftverminőségbiztosítás

1002D STRUKTÚRÁJÚ, KRITIKUS ÜZEMBIZTONSÁGÚ RENDSZER (SCS 1 ) ELEMZÉSE DISZKRÉT-DISZKRÉT MARKOV MODELLEL

Mezőgazdasági betakarítási folyamatok szimulációja

Robotot vezérlő szoftverek fejlesztése Developing robot controller softwares

SZOFTVER- MINŐSÉGBIZTOSÍTÁS

Software Engineering Babeş-Bolyai Tudományegyetem Kolozsvár

Osztott alkalmazások fejlesztési technológiái Áttekintés

A CAN mint ipari kommunikációs protokoll CAN as industrial communication protocol

A modern e-learning lehetőségei a tűzoltók oktatásának fejlesztésében. Dicse Jenő üzletfejlesztési igazgató

Robusztusság tesztelés

TELJESÍTMÉNY NYILATKOZAT 0832-CPD-1651

MŰSZAKI TESZTTERVEZÉSI TECHNIKÁK TESZTELÉSI TECHNIKÁK KIVÁLASZTÁSA

SZEMLÉLETES RÉSZINFORMÁCIÓK INTEGRÁCIÓS PROBLÉMÁINAK VIZSGÁLATA A VIRTUÁLIS VALÓSÁGOT TEREMTŐ SZIMULÁTOROK ALAPJÁN

MŰSZAKI OKTATÁS SZEREPE A B KATEGÓRIÁS JÁRMŰVEZETŐ KÉPZÉSBEN FUNCTION OF TECHNICAL TRAINING IN DRIVER S EDUCATION OF CATEGORY B

Dinamikus programozás alapú szivattyú üzemvitel optimalizálási technikák (főként) kombinatorikus vízműhálózatokra

Ellátási-láncok modellezése szimulációval

Gyártórendszerek Dinamikája. Irányítástechnikai alapfogalmak

FIATAL MŰSZAKIAK TUDOMÁNYOS ÜLÉSSZAKA

1 Rendszer alapok. 1.1 Alapfogalmak

IT biztonság 2015/2016 tanév. ELTE IT Biztonság Speci

Információ-architektúra

DECLARATION OF PERFORMANCE No. GST REV 1.03 According to Construction Products Regulation EU No. 305/2011

TRP-C24 Felhasználói Kézikönyv

Ülékes szelepek (PN 16) VRG 2 2-utú szelep, külső menettel VRG 3 3-utú szelep, külső menettel

Ülékes szelepek (PN 16) VRG 2 2-utú szelep, külső menettel VRG 3 3-utú szelep, külső menettel

MIÉRT KELL TESZTELNI?

Szoftvertechnológia 10. előadás. Verifikáció és validáció. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

Kültéri időjárásálló kódkapcsoló DK-2861K és DK-2865K Használati utasítás (MK-II)

eseményvezérelt megoldások Vizuális programozás 5. előadás

ERŐMŰI SZERKEZETI ELEMEK ÉLETTARTAM GAZ- DÁLKODÁSÁNAK TÁMOGATÁSA A TÖRÉSMECHANI- KA ALKALMAZÁSÁVAL

Szoftver min ség és menedzsment

SZOFTVER TESZT AUTOMATIZÁLÁS Eszter Vezdén Budapest, 08 November 2018

Digitális bemenetek: 2 darab 0-5V jelszintű digitális bemenet Pl. nyitásérzékelők, risztóközpontok, mozgásérzékelők, átjelzők, stb.

Eseményvezérelt alkalmazások fejlesztése I 11. előadás. Szoftverek tesztelése

A fejlesztési szabványok szerepe a szoftverellenőrzésben

Szoftver-mérés. Szoftver metrikák. Szoftver mérés

0.1. Mi az a standard be- és kimenet? A két mintafeladat leírása

SZAKMAI BESZÁMOLÓ EVK SZAKKOLLÉGIUM. BESZÁMOLÓ: A 2014/2015 A Pallas Athéné Domus Scientiae Alapítvány pályázatára 2014/2015-ÖS TANÉV

I. BEVEZETÉS, MOTIVÁCIÓ, PROBLÉMAFELVETÉS

TELJESÍTMÉNYNYILATKOZAT. sz HU

Szoftvertesztelés - Bevezető

Átírás:

Szoftverellenőrzési technikák A szoftver tesztelés 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 Tesztelési módszerek és folyamatok A szoftver tesztelés alapjai Specifikáció és struktúra alapú teszttervezési módszerek Integrációs és rendszer tesztek 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 2

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

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.dedicated.adaptavist.com/ Sokkal bővebb definíció Kulcs: Tesztelés egy folyamat Statikus és dinamikus technikák is 5 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. 6

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 Rovarirtó 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 (eredményessége) kontextus függő Hibák hiánya tévedés ( absence-of-errors fallacy ) 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) Tesztelés!= Hibakeresés (debugging) 8

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 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 11

A tesztelési fogalmak áttekintése 13 14

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

Teszt terv (test plan) Teszt stratégia leképezése az aktuális projektre Tesztelési célok, irányelvek, környezet Feladatok szerepekhez rendelése 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/ 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

Tesztesetek tervezése, specifikálása Teszteset célja Kiindulási környezet Teszteset lépései, teszt adatok Elvárt kimenet Még mielőtt elkezdenénk tesztkódot írni Szisztematikus módszer ajánlott 19 Manuális vagy automatikus Van, amit nem éri meg automatizálni Automatikus esetén a teszt a build folyamat része Kimenetek naplózása Idő, teszt környezet Komponensek verziói Rendszer kimenete 20

Incidensek rögzítése Döntés a tesztelés folytatásáról Tesztelés lezárása Tipikusan mérföldkövenként Tapasztalat összegyűjtése Teszt eszközök, környezetek (testware) befejezése 21 22

Tesztelési környezet: Rendszer tesztelése Tesztelt rendszer több modulból állhat (itt M1, M2, M3) Teszt 1 bemenő adat várt eredmény T1 : Tester t1(d1) M1 M2 M3 Teszt kimenet kiértékelés e1 Teszt 2 t2(d2,d21) e2 Teszt szekvencia 23 Tesztelési környezet: Egy modul tesztelése Teszt végrehajtó modul hívása Teszt kiértékelő kimenet figyelése Tesztelendő modul Teszt csonk korlátozott (és célzott) funkcionalitás T1 M2 Stub3 Teszt program vagy teszt script 24

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 25 26

Példák: Teljesítmény, Stressz, Használhatóság, Robusztusság, 27 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

29 Ad hoc tesztelés Felderítő tesztelés (exploratory) Rendszer megismerése Teszt tervezés és alkalmazás futtatása együtt 30

Fekete doboz (black box) / funkcionális tesztelés Csak a specifikációból indulunk ki 31 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 32

Hiba kitalálás 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 33 (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) 34

Ezek kombinációja hatásos általában! 35 36

Ismétlés: A tesztelés 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 Teszt-vezérelt fejlesztés (TDD) Test-first development Folyamatos tesztelés 38

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 Tipikusan kézi munka Automatizálható Lásd majd a modell-alapú tesztelés előadást! 39 Testing @ Google Testing on the Toilet http://googletesting.blogspot.com/2007/01/introducingtesting-on-toilet.html Test Engineering at Google http://googletesting.blogspot.com/2008/10/testengineering-at-google.html 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. 41 További információk International Software Testing Qualifications Board (ISTQB), URL: http://istqb.dedicated.adaptavist.com/ ISTQB Glossary of Testing Terms Foundation Level Syllabus (2010) 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 43