Automatizace testování

Podobné dokumenty
Úvod do testování a verifikace

Obsah. Úvod 9 Poděkování 10 Co je obsahem této knihy 10 Pro koho je tato kniha určena 11 Zpětná vazba od čtenářů 11 Errata 11

CASE nástroje. Jaroslav Žáček

CASE. Jaroslav Žáček

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Testování Java EE aplikací Petr Adámek

2 Životní cyklus programového díla

Zajištění kvality programového vybavení - testování

1 Úvod 1.1 Vlastnosti programového vybavení (SW)

Testování a verifikace softwaru

3. Je defenzivní programování technikou skrývání implementace? Vyberte jednu z nabízených možností: Pravda Nepravda

Metriky softwarové kvality

7 Jazyk UML (Unified Modeling Language)

7 Jazyk UML (Unified Modeling Language)

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Vývoj řízený testy Test Driven Development

Modelem řízený vývoj. SWI 1 Jan Kryštof

Formální Metody a Specifikace (LS 2011) Formální metody pro kyber-fyzikální systémy

Návrh softwarových systémů - architektura softwarových systémů

RDF DSPS ROZVOJ PORTÁLU

CA CZ, s.r.o. May 21, Radek Mařík Testování konečných automatů May 21, / 36

9. Praktická verifikace

Návrh softwarových systémů - architektura softwarových systémů

X36SIN: Softwarové inženýrství. Životní cyklus a plánování

A1 Marketingové minimum pro posílení výchovy k podnikavosti (8h)

Využití SysML pro tvorbu modelů v systémovém inženýrství

10. Techniky formální verifikace a validace

Testování SW produktů. Jiří Sochor, Jaroslav Ráček 1

Zátěžové testy aplikací

Analýza a Návrh. Analýza

DF FA Novinky v Simotion Scout

SOFTWAROVÉ INŽENÝRSTVÍ 1

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

Java/QE Akademie - Osnova

Testování softwaru. 10. dubna Bořek Zelinka

5 Požadavky a jejich specifikace

Náklady na odstranění chyby stoupají, v čím pozdější fázi životního cyklu aplikace je chyba nalezena.

Simulace a návrh vyvíjejících Nadpis se 1. Nadpis 3. Božetěchova 2, Brno

Microsoft Word základní

12 Zajištění kvality programového vybavení

12 Zajištění kvality programového vybavení

Testování software. Jaroslav Žáček

EXTRAKT z mezinárodní normy

CA AppLogic platforma typu cloud pro podnikové aplikace

Virtuální ověřování výroby Robotika Process Simulate Virtual Commissioning Virtuelle Inbetriebnahme

Centrum kompetence automobilového průmyslu Josefa Božka - AutoSympo a Kolokvium Božek až , Roztoky -

POČÍTAČOVÁ SIMULACE PODNIKOVÝCH PROCESŮ. Ing. V. Glombíková, PhD.

Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda

ÚVOD DO SOFTWAROVÉHO INŽENÝRSTVÍ

Kurz je rozdělen do čtyř bloků, které je možné absolvovat i samostatně. Podmínkou pro vstup do kurzu je znalost problematiky kurzů předešlých.

Globální strategie, IT strategie, podnikové procesy. Jaroslav Žáček

Prezentace 2. Slide 1. Slide 2. Slide 3. Slide 4. Prezentace pdf. nazev projektu jmena atd.. Obsah

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Výzkum a vývoj ověřených modelů požáru a evakuace osob a jejich praktická aplikace při posuzování požární bezpečnosti staveb

Řízení reálných projektů, agilní metodiky

Obsah. Zpracoval:

Jaký programovací jazyk učit jako první a jak ho učit?

KIV/ASWI 2007/2008 Pokročilé softwarové inženýrství. Cíle předmětu Organizační informace Opakování

1 Systém správy lidských zdrojů (HONEYWELL+HRLE)

Nové jazykové brány do Caché. Daniel Kutáč

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Příprava dat v softwaru Statistica

7. Pracovní postupy. Fakulta informačních technologií MI-NFA, zimní semestr 2011/2012 Jan Schmidt

5 Požadavky a jejich specifikace

Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace. Maturitní otázky z předmětu INFORMATIKA A VÝPOČETNÍ TECHNIKA

Pokročilá průmyslová automatizace

Unifikovaný modelovací jazyk UML

PŘÍLOHA C Požadavky na Dokumentaci

Témata týmových prací třetích ročníků oboru Informační technologie 2012/2013

PROGRAMOVATELNÉ LOGICKÉ OBVODY

Požadavky pro výběrová řízení TerraBus ESB/G2x

Metadata. RNDr. Ondřej Zýka

Projekt z předmětu Testování softwarových systémů

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

Nástroje pro průběžnou integraci a testování

Principy UML. Clear View Training 2005 v2.2 1

VZOROVÝ STIPENDIJNÍ TEST Z INFORMAČNÍCH TECHNOLOGIÍ

Chyby software. J. Sochor, J. Ráček 1

Jiří Mašek BIVŠ V Pra r ha

KIV/ASWI 2007/2008 Techniky zajištění kvality software. Kvalita software Techniky včasné detekce

TIA na dosah Advanced Engineering System. SIMATIC PCS 7 Verze 8.01

CobiT. Control Objectives for Information and related Technology. Teplá u Mariánských Lázní, 6. října 2004

Kvalita SW produktů. Jiří Sochor, Jaroslav Ráček 1

Projekt JetConf REST API pro vzdálenou správu

Implementace a využití automatizovaného testování. Staňková Gabriela Home Credit International a.s. 4.listopadu, 2009

Analýza a návrh webových aplikací I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

Programování II. Abstraktní třída Vícenásobná dědičnost 2018/19

Vyřešené teoretické otázky do OOP ( )

Obsah. October 2, Polymorfizmus. Typologie testování. Problém polymorfizmu. Vady/Anomálie. Vazební sekvence ČVUT FEL, K13132

Magisterský studijní program, obor

U Úvod do modelování a simulace systémů

Připravte se na konjunkturu se systémem řízení údržby SGM. SGM moderní nástroj pro řízení údržby nejen výrobních zařízení

Část IV - Bezpečnost 21. Kapitola 19 Bezpečnostní model ASP.NET 23

Software pro analýzu energetických dat W1000

Common Object Request Broker Architecture

Testování komponent. May 21, CA CZ, s.r.o. Radek Mařík Testování komponent May 21, / 45

Komprese a dotazování nad XML dokumenty

Transkript:

Automatizace testování Radek Mařík CA CZ, s.r.o. September 14, 2007 Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 1 / 34

Obsah 1 Motivace Stav a cíle 2 Pojem automatizace Obecná definice a její interpretace 3 Automatizace testování softwaru Proč (ne)automatizovat? Praktická řešení 4 Automatizace návrhu testů Základní principy Náhodné testování - opice Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 2 / 34

Motivace Proces vývoje a proces testování Stav a cíle Trendy Komplexita softwaru překotně stoupá. Jednoduchá modifikace implementace software může způsobit velké množství změn v testovacích skriptech. Nástroje Vývojáři používají pokročilé techniky jako průvodce, CASE nástroje. Testeři kódují každou řádku manuálně. Použití abstrakce Software používá abstraktní metody, aby pokryl velké množství případů. Testware se musí implementovat každý případ zvlášť. Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 4 / 34

Motivace Stav a cíle Požadované základní vlastnosti procesu testování Žádá se, stěžuje se na, diskutuje se,... Opakované použití: testovací metodika by neměla být vyvíjena pouze pro jediný projekt. Flexibilita: vyjádření nových konceptů, návrhových šablon. Adaptivita: malé modifikace v implementaci softwaru by měly být pokryty automatizovaně. Komplexita: pokrytí dostatečné části testovacích případů je často za možnostmi manuální přípravy. Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 5 / 34

Motivace Stav a cíle Požadované odvozené vlastnosti procesu testování Potřebné pro řízení projektů Údržba: potřebné úsiĺı je nepřímo úměrné flexibilitě a adaptivitě, přímo úměrné komplexitě testovaného produktu. Prezentace stavu: dokumentace pravidelně obnovovaná, např. WWW stránky. Nástroje: integrovaná řešení adresující výše uvedené položky. Cena/čas: efektivnost vyjádřená pomocí výše uvedených položek. Proveditelnost: trh/cena/čas/zdroje/kvalita efektivnost. Nepřetržitý běh: rychlá odezva, několik fází (zahořovací,..., regresní, dokumentace pravidelně obnovovaná, např. WWW stránky. Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 6 / 34

Co je to automatizace? Pojem automatizace Obecná definice a její interpretace Automatizace je proces, při kterém se přiřazují strojům či systémům aktivity, které vykonávali ještě donedávna lidé. Základní stavební bloky formální modely, zpětná vazba, programování. Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 8 / 34

Úrovně automatizace Pojem automatizace Obecná definice a její interpretace Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 9 / 34

Automatizace testování softwaru Automatizace testování? Proč (ne)automatizovat? Výhody 1 Běh regresních testů na nové verzi programu. 2 Častější testování. 3 Provedení testu, který by jinak bylo obtížné provést. 4 Lepší využití prostředků. 5 Konzistence opakovatelnosti testů. 6 Vícenásobné použití testů. 7 Zkrácení doby uvedení na trh. Problémy 1 Nereálná očekávání. 2 Slabá testovací praxe. 3 Očekávání, že automatizovaný test nalezne mnoho nových defektů. 4 Údržba automatizovaných testů. Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 11 / 34

Porovnání postupů Automatizace testování softwaru Proč (ne)automatizovat? Vlastnost Manuální Automatizovaný Automatizovaný testování běh návrh Cena Nízká Vyšší Velmi vysoká přípravy (omezený Nízká testovací sady rozsah) (existující řešení) Kombinatorické Neschopné Velmi omezené Řízené pokrytí Flexibilita Vysoká (lidé) Zanedbatelná Vysoká a adaptivita (přejmenování) Cena běhu Vysoká Nízká Nízká Vstupy Vágní Vágní Modely softwaru Detekční Vysoká Nízká Střední schopnost Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 12 / 34

Automatizace testování softwaru Proč (ne)automatizovat? Charakteristiky manuálního testování Vysoce flexibilní a adaptivní (lidé) Vysoká detekční rychlost defektů Lidé jsou schopni ovládat software a vyhledávat chyby i za situace, kdy software je ve velmi špatném stavu. Použití objevného testování (exploratory testing) během počátečních vývojových fází. Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 13 / 34

Automatizace testování softwaru Proč (ne)automatizovat? Charakteristiky automatizovaného běhu Nízká cena opakovaných běhů. Obtížná údržba testovacích skriptů: Strukturální změny znamenají plnohodnotnou manuálně vedenou reimplementaci skriptů. Současné komerční nástroje umožňují pouze přejmenovávání položek s poloautomatizovanou detekcí. Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 14 / 34

Problém údržby Automatizace testování softwaru Proč (ne)automatizovat? Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 15 / 34

Úsiĺı vývoje Automatizace testování softwaru Proč (ne)automatizovat? Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 16 / 34

Automatizace testování softwaru Proč (ne)automatizovat? Charakteristiky automatizovaného návrhu Počáteční investice do přípravy technologie V současnosti, vysoká cena přípravy (řada technologíı není jestě dostatečně zmapována). V budoucnosti, nízká cena přípravy vzhledem k možnostem opakovaného použití jejích komponent. Schopnost adresovat kombinatorické problémy (vážení čas/prostor/risk) Střední detekční rychlost defektů v rámci celého vývojového procesu. Flexibilita a adaptivita řízená testovacími modely testovaného softwaru. Modely testovaného softwaru pomáhají v porozumění softwaru. Nízká cená údržby testovacích skriptů (např. opakované generování). Prakticky zanedbatelná cena údržby a běhů regresního testování. Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 17 / 34

Automatizace testování softwaru Testování kontra Verifikace Proč (ne)automatizovat? Testování softwaru Neformální/formální oraculus pro validaci skutečných výsledků. Řízené vzorkování chování softwaru za účelem snížení pravděpodobnosti selhání softwaru či míry nespokojenosti zákazníka. Verifikace softwaru Založená na formálních modelech softwaru. Matematický důkaz, že model softwaru je správný. Pouze omezená množina použitelných technologíı: Vnořený software založený na konečných automatech. Verifikace protokolů. Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 18 / 34

Automatizace testování softwaru Praktická řešení Automatizace provedení testů - všeobecně propagována komerčními výrobci, používána v praxi, zvláště pro regresní testy, velmi citlivá na změny specifikací a implementace softwaru, testování řízené tabulkami (funkce, hodnoty parametrů) testování řízené daty (šablony skriptů, hodnoty proměnných) mapy grafických rozhranní (fyzické adresy - logická jména) dobrá vazba na navazující podporu správa logů, hlášení problémů. Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 20 / 34

Automatizace testování softwaru Praktická řešení Automatizace provedení testů - nástroje Komerční automatizační nástroje 2 operační fáze: Automatizační ovladače na úrovni komponent 1 programování pomocí simulace běhu 2 automatické testování IBM Rational Robot, IBM Functional Tester, Mercury WinRunner, Compuware TestPartner. Expect, nunit, junit, pyunit, JavaTest, PyTest, ParaSoft, Rational Robot & Quality Architect šablony testů dosazování parametrů podle kombinačních tabulek Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 21 / 34

Distribuce zdrojů Automatizace testování softwaru Praktická řešení Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 22 / 34

Automatizace testování softwaru Praktická řešení Automatizace návrhu testů - pohled manažéra Kratší perioda vývoje softwarového produktu. Vyšší spolehlivost Standardizovaná rozhranní softwaru Redukce ceny vývoje testwaru vzhledem k možnostem opakovaného použití. Možnost jasnějších formalizovaných specifikací komponent softwaru. Zmenšení zátěže testerů-lidí, které by jinak museli vyvinout obrovské množství testů pro složité softwarové aplikace a strádat jejich údržbou. OO: dědičnost, polymorfizmus tříd kombinovaný s asociacemi, GUI: táhni a pusť akce s různými zdroji a cíli, GUI: spousta formulářů generovaných podle formulářů. Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 23 / 34

Automatizace testování softwaru Praktická řešení Automatizace návrhu testů - pohled testera Proč? příprava velkého množství testů: OO testing GUI testing 10 2 tříd, 10 3 relací, 10 1 vlastností nebo metod, 10 2 formulářů, 10 2 přechodů, 10 1 atributů nebo akcí, 10 5 a 10 6 testů. 10 4 a 10 6 testů. modifikace skriptů při změnách softwarové specifikace, nebo implementace (GUI). poměrně vysoké náklady technologie nedospěla do plně rozvinuté komerční fáze. Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 24 / 34

Automatizace návrhu testů Základní principy Automatizovaný návrh testů - postup 1 volba testovací strategie - testovací katalog, 2 určení testovacího případu, 3 doplnění na testovací specifikaci: 1 vytvoření nezbytného prostředí pro testovaný objekt, 2 uvedení objektu do požadovaného stavu, 3 provedení testu, 4 uvedení testované komponenty do původního stavu, 4 transformace testovací specifikace do sekvence, 5 určení očekávaných výsledků, 6 kompilace kódu testovacího skriptu, 7 vytvoření doprovodné dokumentace. Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 26 / 34

Automatizace návrhu testů Automatizovaný návrh testů Základní principy Architecture Test Rules System Testware Reverse Engineering Structural Formal Description Test Generator Abstract Tests Test Suite Generator Code Test Execution Test Suite Test Results Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 27 / 34

Automatizace návrhu testů Základní principy Formální specifikace softwaru - testovací modely manuální vstup, plná specifikace bývá náročnější než přímé kódování, zatím nezbytné pro modely chování, analýza vhodných modelů a dat softwaru, UML, IDL, SQL, XML, analýza textových specifikací ve vhodném formátu, rekonstrukce pomocí reverzního inženýrství a validace modelu, COM rozhraní vlastností objektů, deterministické konečné automaty, problémy se skrytými stavy, problémy s kombinatorickou explozí stavů jednoduchých automatů, formální metody [Jac97, WD96], aplikace logiky a jednoduché matematiky na programování, zápis formálního popisu programu, užívány pro modelování, návrh a verifikaci dokazováním. Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 28 / 34

Metoda pokusné opice Automatizace návrhu testů Náhodné testování - opice Hloupá opice Myšlenka Neví o testovaném softwaru vůbec nic. Pokud milión opic bude po milión let náhodně bušit do klávesnice, mohly by statisticky nakonec napsat nějakou Shakespearovu hru či Jiráskovo Temno. Jednoduchá implementace RANDOMIZE TIMER FOR i=1 TO 10000 PLAY {CLICK + STR$(INT(RND+640)) +. + STR$(INT(RND*480)) + } PLAY CHR$(RND*256) NEXT i Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 30 / 34

Automatizace návrhu testů Chování opic a typy aplikací Náhodné testování - opice Hierarchie Síť Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 31 / 34

Automatizace návrhu testů Zvýšení inteligence opice Náhodné testování - opice záznamy do protokolu, zaměření akce na konkrétní aplikaci, detekce, kde se opice nachází, co na tomto místě může udělat, kam může přejít, kde již byla, jestli to, co vidí, opravdu správné, přečtení (zjištění) mapy stavů a přechodů daného softwaru Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 32 / 34

Automatizace návrhu testů Hranice metody pokusné opice Náhodné testování - opice Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 33 / 34

Literatura I Automatizace návrhu testů Náhodné testování - opice Jonathan Jacky. The Way of Z: Practical Programming with Formal Methods. Cambridge University, 1997. Jim Woodcock and Jim Davies. Using Z: Specification, Refinement, and Proof. Prentice Hall, 1996. Radek Mařík (Radek.Marik@ca.com) Automatizace testování September 14, 2007 34 / 34