Automatizace testov´an´ı Radek Maˇr´ık CA CZ, s.r.o.
September 14, 2007
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
1 / 34
Obsah 1
Motivace Stav a c´ıle
2
Pojem automatizace Obecn´a definice a jej´ı interpretace
3
Automatizace testov´an´ı softwaru Proˇc (ne)automatizovat? Praktick´a ˇreˇsen´ı
4
Automatizace n´avrhu test˚ u Z´akladn´ı principy N´ahodn´e testov´an´ı - opice
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
2 / 34
Motivace
Stav a c´ıle
Proces v´yvoje a proces testov´an´ı
Trendy Komplexita softwaru pˇrekotnˇe stoup´a. Jednoduch´a modifikace implementace software m˚ uˇze zp˚ usobit velk´e mnoˇzstv´ı zmˇen v testovac´ıch skriptech. N´astroje V´yvoj´aˇri pouˇz´ıvaj´ı pokroˇcil´e techniky jako pr˚ uvodce, CASE n´astroje. Testeˇri k´oduj´ı kaˇzdou ˇr´adku manu´alnˇe.
Pouˇzit´ı abstrakce Software pouˇz´ıv´a abstraktn´ı metody, aby pokryl velk´e mnoˇzstv´ı pˇr´ıpad˚ u. Testware se mus´ı implementovat kaˇzd´y pˇr´ıpad zvl´aˇsˇt.
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
4 / 34
Motivace
Stav a c´ıle
Poˇzadovan´e z´akladn´ı vlastnosti procesu testov´an´ı
ˇ ad´a se, stˇeˇzuje se na, diskutuje se, ... Z´ Opakovan´ e pouˇ zit´ı: testovac´ı metodika by nemˇela b´yt vyv´ıjena pouze pro jedin´y projekt. Flexibilita: vyj´adˇren´ı nov´ych koncept˚ u, n´avrhov´ych ˇsablon. Adaptivita: mal´e modifikace v implementaci softwaru by mˇely b´yt pokryty automatizovanˇe. Komplexita: pokryt´ı dostateˇcn´e ˇc´asti testovac´ıch pˇr´ıpad˚ u je ˇcasto za moˇznostmi manu´aln´ı pˇr´ıpravy.
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
5 / 34
Motivace
Stav a c´ıle
Poˇzadovan´e odvozen´e vlastnosti procesu testov´an´ı Potˇrebn´e pro ˇr´ızen´ı projekt˚ u ´ Udrˇ zba: potˇrebn´e u ´sil´ı je nepˇr´ımo u ´mˇern´e flexibilitˇe a adaptivitˇe, pˇr´ımo u ´mˇern´e komplexitˇe testovan´eho produktu.
Prezentace stavu: dokumentace pravidelnˇe obnovovan´a, napˇr. WWW str´anky. N´ astroje: integrovan´a ˇreˇsen´ı adresuj´ıc´ı v´yˇse uveden´e poloˇzky. Cena/ˇ cas: efektivnost vyj´adˇren´a pomoc´ı v´yˇse uveden´ych poloˇzek. Proveditelnost: trh/cena/ˇcas/zdroje/kvalita efektivnost. Nepˇretrˇ zit´ y bˇ eh: rychl´a odezva, nˇekolik f´az´ı (zahoˇrovac´ı, . . . , regresn´ı, dokumentace pravidelnˇe obnovovan´a, napˇr. WWW str´anky.
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
6 / 34
Pojem automatizace
Obecn´ a definice a jej´ı interpretace
Co je to automatizace?
Automatizace je proces, pˇri kter´em se pˇriˇrazuj´ı stroj˚ um ˇci syst´em˚ um aktivity, kter´e vykon´avali jeˇstˇe doned´avna lid´e.
Z´akladn´ı stavebn´ı bloky form´aln´ı modely, zpˇetn´a vazba, programov´an´ı.
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
8 / 34
Pojem automatizace
Obecn´ a definice a jej´ı interpretace
´ Urovnˇ e automatizace
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
9 / 34
Automatizace testov´ an´ı softwaru
Proˇ c (ne)automatizovat?
Automatizace testov´an´ı ? V´yhody 1 2 3 4 5 6 7
Bˇeh regresn´ıch test˚ u na nov´e verzi programu. ˇ Castˇejˇs´ı testov´an´ı. Proveden´ı testu, kter´y by jinak bylo obt´ıˇzn´e prov´est. Lepˇs´ı vyuˇzit´ı prostˇredk˚ u. Konzistence opakovatelnosti test˚ u. V´ıcen´asobn´e pouˇzit´ı test˚ u. Zkr´acen´ı doby uveden´ı na trh.
Probl´emy 1 2 3 4
Nere´aln´a oˇcek´av´an´ı. Slab´a testovac´ı praxe. Oˇcek´av´an´ı, ˇze automatizovan´y test nalezne mnoho nov´ych defekt˚ u. ´ zba automatizovan´ych test˚ Udrˇ u.
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
11 / 34
Automatizace testov´ an´ı softwaru
Proˇ c (ne)automatizovat?
Porovn´an´ı postup˚ u Vlastnost Cena pˇr´ıpravy testovac´ı sady Kombinatorick´e pokryt´ı Flexibilita a adaptivita Cena bˇehu Vstupy Detekˇcn´ı schopnost
Manu´aln´ı testov´an´ı N´ızk´ a (omezen´y rozsah) Neschopn´ e Vysok´ a (lid´e)
Radek Maˇr´ık (
[email protected])
Vysok´ a V´ agn´ı Vysok´ a
Automatizovan´y bˇeh Vyˇsˇs´ı
Velmi omezen´ e Zanedbateln´ a (pˇrejmenov´an´ı) N´ızk´ a V´ agn´ı N´ızk´ a
Automatizace testov´ an´ı
Automatizovan´y n´avrh Velmi vysok´ a N´ızk´ a (existuj´ıc´ı ˇreˇsen´ı) ˇ ızen´ R´ e Vysok´ a N´ızk´ a Modely softwaru Stˇredn´ı
September 14, 2007
12 / 34
Automatizace testov´ an´ı softwaru
Proˇ c (ne)automatizovat?
Charakteristiky manu´aln´ıho testov´an´ı
Vysoce flexibiln´ı a adaptivn´ı (lid´e) Vysok´a detekˇcn´ı rychlost defekt˚ u Lid´e jsou schopni ovl´adat software a vyhled´avat chyby i za situace, kdy software je ve velmi ˇspatn´em stavu. Pouˇzit´ı objevn´eho testov´an´ı (exploratory testing) bˇehem poˇc´ateˇcn´ıch v´yvojov´ych f´az´ı.
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
13 / 34
Automatizace testov´ an´ı softwaru
Proˇ c (ne)automatizovat?
Charakteristiky automatizovan´eho bˇehu
N´ızk´a cena opakovan´ych bˇeh˚ u. Obt´ıˇzn´a u ´drˇzba testovac´ıch skript˚ u: Struktur´aln´ı zmˇeny znamenaj´ı plnohodnotnou manu´alnˇe vedenou reimplementaci skript˚ u. Souˇcasn´e komerˇcn´ı n´astroje umoˇzn ˇuj´ı pouze pˇrejmenov´av´an´ı poloˇzek s poloautomatizovanou detekc´ı.
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
14 / 34
Automatizace testov´ an´ı softwaru
Proˇ c (ne)automatizovat?
Probl´em u´drˇzby
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
15 / 34
Automatizace testov´ an´ı softwaru
Proˇ c (ne)automatizovat?
´ ı v´yvoje Usil´
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
16 / 34
Automatizace testov´ an´ı softwaru
Proˇ c (ne)automatizovat?
Charakteristiky automatizovan´eho n´avrhu Poˇc´ateˇcn´ı investice do pˇr´ıpravy technologie V souˇcasnosti, vysok´ a cena pˇr´ıpravy (ˇrada technologi´ı nen´ı jestˇe dostateˇcnˇe zmapov´ana). V budoucnosti, n´ızk´ a cena pˇr´ıpravy vzhledem k moˇznostem opakovan´eho pouˇzit´ı jej´ıch komponent. Schopnost adresovat kombinatorick´ e probl´ emy (v´aˇzen´ı ˇcas/prostor/risk) Stˇredn´ı detekˇ cn´ı rychlost defekt˚ u v r´amci cel´eho v´yvojov´eho procesu. Flexibilita a adaptivita ˇr´ızen´a testovac´ımi modely testovan´ eho softwaru. Modely testovan´eho softwaru pom´ahaj´ı v porozumˇ en´ı softwaru. N´ızk´ a cen´ au ´drˇ zby testovac´ıch skript˚ u (napˇr. opakovan´e generov´an´ı). Prakticky zanedbateln´ a cena u ´drˇzby a bˇeh˚ u regresn´ıho testov´an´ı. Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
17 / 34
Automatizace testov´ an´ı softwaru
Proˇ c (ne)automatizovat?
Testov´an´ı kontra Verifikace Testov´an´ı softwaru Neform´aln´ı/form´aln´ı oraculus pro validaci skuteˇcn´ych v´ysledk˚ u. ˇ ızen´ R´ e vzorkov´ an´ı chov´an´ı softwaru za u ´ˇcelem sn´ıˇzen´ı pravdˇ epodobnosti selh´an´ı softwaru ˇci m´ıry nespokojenosti z´akazn´ıka. Verifikace softwaru Zaloˇzen´a na form´aln´ıch modelech softwaru. Matematick´y d˚ ukaz, ˇze model softwaru je spr´avn´y. Pouze omezen´a mnoˇzina pouˇziteln´ych technologi´ı: Vnoˇren´y software zaloˇzen´y na koneˇcn´ych automatech. Verifikace protokol˚ u.
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
18 / 34
Automatizace testov´ an´ı softwaru
Praktick´ a ˇreˇsen´ı
Automatizace proveden´ı test˚ u - vˇseobecnˇe propagov´ana komerˇcn´ımi v´yrobci, pouˇz´ıv´ana v praxi, zvl´aˇstˇe pro regresn´ı testy, velmi citliv´ a na zmˇ eny specifikac´ı a implementace softwaru, testov´an´ı ˇr´ızen´e tabulkami (funkce, hodnoty parametr˚ u) testov´an´ı ˇr´ızen´e daty (ˇsablony skript˚ u, hodnoty promˇenn´ych) mapy grafick´ych rozhrann´ı (fyzick´e adresy - logick´a jm´ena)
dobr´a vazba na navazuj´ıc´ı podporu spr´ava log˚ u, hl´aˇsen´ı probl´em˚ u.
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
20 / 34
Automatizace testov´ an´ı softwaru
Praktick´ a ˇreˇsen´ı
Automatizace proveden´ı test˚ u - n´astroje Komerˇcn´ı automatizaˇcn´ı n´astroje 2 operaˇcn´ı f´aze: 1 2
programov´an´ı pomoc´ı simulace bˇehu automatick´e testov´an´ı
IBM Rational Robot, IBM Functional Tester, Mercury WinRunner, Compuware TestPartner. Automatizaˇcn´ı ovladaˇce na u ´rovni komponent Expect, nUnit, jUnit, pyUnit, JavaTest, PyTest, ParaSoft, Rational Robot & Quality Architect ˇsablony test˚ u dosazov´an´ı parametr˚ u podle kombinaˇcn´ıch tabulek Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
21 / 34
Automatizace testov´ an´ı softwaru
Praktick´ a ˇreˇsen´ı
Distribuce zdroj˚ u
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
22 / 34
Automatizace testov´ an´ı softwaru
Praktick´ a ˇreˇsen´ı
Automatizace n´avrhu test˚ u - pohled manaˇz´era
Kratˇs´ı perioda v´yvoje softwarov´eho produktu. Vyˇsˇs´ı spolehlivost Standardizovan´a rozhrann´ı softwaru Redukce ceny v´yvoje testwaru vzhledem k moˇznostem opakovan´eho pouˇzit´ı. Moˇznost jasnˇejˇs´ıch formalizovan´ych specifikac´ı komponent softwaru. Zmenˇsen´ı z´atˇeˇze tester˚ u-lid´ı, kter´e by jinak museli vyvinout obrovsk´e mnoˇzstv´ı test˚ u pro sloˇzit´e softwarov´e aplikace a str´adat jejich u ´drˇzbou. OO: dˇediˇcnost, polymorfizmus tˇr´ıd kombinovan´y s asociacemi, GUI: ”t´ahni a pusˇt” akce s r˚ uzn´ymi zdroji a c´ıli, GUI: spousta formul´aˇr˚ u generovan´ych podle formul´aˇr˚ u.
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
23 / 34
Automatizace testov´ an´ı softwaru
Praktick´ a ˇreˇsen´ı
Automatizace n´avrhu test˚ u - pohled testera Proˇc? pˇr´ıprava velk´eho mnoˇzstv´ı test˚ u: GUI testing
OO testing 10 tˇr´ıd,
102 formul´ aˇr˚ u,
103 relac´ı,
102 pˇrechod˚ u,
101 vlastnost´ı nebo metod,
101 atribut˚ u nebo akc´ı,
2
5
104 a 106 test˚ u.
6
10 a 10 test˚ u.
modifikace skript˚ u pˇri zmˇen´ach softwarov´e specifikace, nebo implementace (GUI).
pomˇernˇe vysok´e n´aklady technologie nedospˇela do plnˇe rozvinut´e komerˇcn´ı f´aze.
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
24 / 34
Automatizace n´ avrhu test˚ u
Z´ akladn´ı principy
Automatizovan´y n´avrh test˚ u - postup
1
volba testovac´ı strategie - testovac´ı katalog,
2
urˇcen´ı testovac´ıho pˇr´ıpadu, doplnˇen´ı na testovac´ı specifikaci:
3
1 2 3 4
vytvoˇren´ı nezbytn´eho prostˇred´ı pro testovan´y objekt, uveden´ı objektu do poˇzadovan´eho stavu, proveden´ı testu, uveden´ı testovan´e komponenty do p˚ uvodn´ıho stavu,
4
transformace testovac´ı specifikace do sekvence,
5
urˇcen´ı oˇcek´avan´ych v´ysledk˚ u,
6
kompilace k´odu testovac´ıho skriptu,
7
vytvoˇren´ı doprovodn´e dokumentace.
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
26 / 34
Automatizace n´ avrhu test˚ u
Z´ akladn´ı principy
Automatizovan´y n´avrh test˚ u
Reverse Engineering
System Testware
Architecture
Test Rules
Structural Formal Description
Test Generator
Abstract Tests
Code
Test Execution
Test Suite
Test Suite Generator
Test Results
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
27 / 34
Automatizace n´ avrhu test˚ u
Z´ akladn´ı principy
Form´aln´ı specifikace softwaru - testovac´ı modely manu´aln´ı vstup, pln´a specifikace b´yv´a n´aroˇcnˇejˇs´ı neˇz pˇr´ım´e k´ odov´an´ı, zat´ım nezbytn´e pro modely chov´an´ı,
anal´yza vhodn´ych model˚ u a dat softwaru, UML, IDL, SQL, XML, anal´yza textov´ych specifikac´ı ve vhodn´em form´atu,
rekonstrukce pomoc´ı reverzn´ıho inˇzen´yrstv´ı a validace modelu, COM rozhran´ı vlastnost´ı objekt˚ u, deterministick´e koneˇcn´e automaty, probl´emy se skryt´ymi stavy, probl´emy s kombinatorickou exploz´ı stav˚ u jednoduch´ych automat˚ u,
form´aln´ı metody
[Jac97, WD96]
,
aplikace logiky a jednoduch´e matematiky na programov´an´ı, z´apis form´aln´ıho popisu programu, uˇz´ıv´any pro modelov´an´ı, n´avrh a verifikaci dokazov´an´ım. Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
28 / 34
Automatizace n´ avrhu test˚ u
N´ ahodn´ e testov´ an´ı - opice
Metoda pokusn´e opice Myˇslenka Pokud mili´on opic bude po mili´on let n´ahodnˇe ”buˇsit” do kl´avesnice, mohly by statisticky nakonec napsat nˇejakou Shakespearovu hru ˇci Jir´askovo Temno. Hloup´a opice Nev´ı o testovan´em softwaru v˚ ubec nic. Jednoduch´a 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ˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
30 / 34
Automatizace n´ avrhu test˚ u
N´ ahodn´ e testov´ an´ı - opice
Chov´an´ı opic a typy aplikac´ı
Hierarchie
Radek Maˇr´ık (
[email protected])
S´ıˇt
Automatizace testov´ an´ı
September 14, 2007
31 / 34
Automatizace n´ avrhu test˚ u
N´ ahodn´ e testov´ an´ı - opice
Zv´yˇsen´ı inteligence opice
z´aznamy do protokolu, zamˇeˇren´ı akce na konkr´etn´ı aplikaci, detekce, kde se opice nach´az´ı, co na tomto m´ıstˇe m˚ uˇze udˇelat, kam m˚ uˇze pˇrej´ıt, kde jiˇz byla, jestli to, co vid´ı, opravdu spr´avn´e, pˇreˇcten´ı (zjiˇstˇen´ı) mapy stav˚ u a pˇrechod˚ u dan´eho softwaru
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
32 / 34
Automatizace n´ avrhu test˚ u
N´ ahodn´ e testov´ an´ı - opice
Hranice metody pokusn´e opice
Radek Maˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
33 / 34
Automatizace n´ avrhu test˚ u
N´ ahodn´ e testov´ an´ı - opice
Literatura I
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ˇr´ık (
[email protected])
Automatizace testov´ an´ı
September 14, 2007
34 / 34