Felhasználói felületek tesztelése

Hasonló dokumentumok
Felhasználói felületek tesztelése

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

A modellellenőrzés érdekes alkalmazása: Tesztgenerálás modellellenőrzővel

Speciális tesztelési feladatok

Automatikus tesztgenerálás modell ellenőrző segítségével

Modell alapú tesztelés mobil környezetben

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

Használati alapú és modell alapú tesztelés kombinálása szolgáltatásorientált architektúrák teszteléséhez az ipari gyakorlatban

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

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

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

Grafikus keretrendszer komponensalapú webalkalmazások fejlesztéséhez

Java Programozó képzés A&K AKADÉMIA 2019.

Tesztelési szintek Tesztautomatizálás

Web-fejlesztés NGM_IN002_1

Választó lekérdezés létrehozása

Alapszintű formalizmusok

Testreszabott alkalmazások fejlesztése Notes és Quickr környezetben

A Feldspar fordító, illetve Feldspar programok tesztelése

Szoftver-modellellenőrzés absztrakciós módszerekkel

Folyamatmodellezés és eszközei. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Mesterséges intelligencia alapú regressziós tesztelés

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

Magyar Nemzeti Bank - Elektronikus Rendszer Hitelesített Adatok Fogadásához ERA. Elektronikus aláírás - felhasználói dokumentáció

WebService tesztelés. SOAPui Pro, GreenPepper és Confluence használatával. Verhás & Verhás Szoftver Manufaktúra KNOW-HOW

Webes alkalmazások fejlesztése. Bevezetés az ASP.NET MVC 5 keretrendszerbe

A szoftver-folyamat. Szoftver életciklus modellek. Szoftver-technológia I. Irodalom

Szoftverminőségbiztosítás

Automatikus infrastruktúra menedzsment és alkalmazástelepítés

DKÜ ZRT. A Portál rendszer felületének általános bemutatása. Felhasználói útmutató. Támogatott böngészők. Felületek felépítése. Információs kártyák

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

Szoftver karbantartási lépések ellenőrzése

OO rendszerek jellemzői

Ajax és Echo 2. Bokor Attila

Projekt beszámoló. Könyvelési Szakértői Rendszer Kifejlesztése Repetitív Könyvelési Feladatok Szabályalapú Feldolgozására

Tartalomjegyzék. Előszó... 10

Intervenciós röntgen berendezés teljesítményszabályozójának automatizált tesztelése

Intelligens biztonsági megoldások. Távfelügyelet

Iman 3.0 szoftverdokumentáció

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Szoftverminőségbiztosítás

A szerzõrõl... xi Bevezetés... xiii

MŰSZAKI KÖVETELMÉNYEK, A KÖRKERESŐ SZOFTVER SPECIFIKÁCIÓJA, KÖLTSÉGVETÉS. A) Műszaki követelmények

Közösség, projektek, IDE

Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem

Kommunikációs rendszerek teljesítőképesség-vizsgálata

ContractTray program Leírás

Szoftverminőségbiztosítás

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

Robusztusság tesztelés

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Információ és kommunikáció

Bevezetés az informatikába

Webes alkalmazások fejlesztése Bevezetés. Célkitűzés, tematika, követelmények. A.NET Core keretrendszer

Dr. Mileff Péter

DebitTray program Leírás

Információ és kommunikáció

Szoftver labor III. Tematika. Gyakorlatok. Dr. Csébfalvi Balázs

Menetrendkezelő Rendszer

Nyilvántartási Rendszer

Valós idejű információk megjelenítése web-alapú SCADA rendszerben Modbus TCP protokollon keresztül

OZW V7.0 firmware frissítés, Remote Tool Access részletes ismertető

Miért ASP.NET? Egyszerű webes alkalmazás fejlesztése. Történet ASP ASP.NET. Működés. Készítette: Simon Nándor

OPENCV TELEPÍTÉSE SZÁMÍTÓGÉPES LÁTÁS ÉS KÉPFELDOLGOZÁS. Tanács Attila Képfeldolgozás és Számítógépes Grafika Tanszék Szegedi Tudományegyetem

Nagy bonyolultságú rendszerek fejlesztőeszközei

Kézikönyv. Szelekciós jegyzék 2.

NHDR-3104AHD-II NHDR-3108AHD-II NHDR-3116AHD-II NHDR-5004AHD-II NHDR-5008AHD-II NHDR-5016AHD-II NHDR-5204AHD NHDR-5208AHD. Telepítői Segédlet

Komponens alapú fejlesztés

Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék

Modellellenőrzés a vasút automatikai rendszerek fejlesztésében. XIX. Közlekedésfejlesztési és beruházási konferencia Bükfürdő

ServiceTray program Leírás

Operációs rendszerek. Tanmenet

NEPTUN MOBIL ALKALMAZÁS FELHASZNÁLÓI SEGÉDLET

Operációs rendszerek. Az X Window rendszer

Digitális aláíró program telepítése az ERA rendszeren

TSIMMIS egy lekérdezés centrikus megközelítés. TSIMMIS célok, technikák, megoldások TSIMMIS korlátai További lehetségek

Interaktív webes térképezés GRASS GIS 7-tel. A Web Processing Service bemutatása

Mozgásvizsgálati mérések internetes megjelenítése. Zemkó Szonja - Dr. Siki Zoltán

Transzformációk integrált alkalmazása a modellvezérelt szoftverfejlesztésben. Ráth István

Prolan Zrt. fejlesztéseiben. Petri Dániel

JAVA webes alkalmazások

MŰSZAKI TESZTTERVEZÉSI TECHNIKÁK STRUKTÚRA ALAPÚ, VAGY FEHÉRDOBOZ TECHNIKÁK TAPASZTALAT ALAPÚ TECHNIKÁK

A Java EE 5 plattform

PASS SCADA bemutatás PICK energiamonitoring és mérésadatgyűjtő rendszer

SZET GYAK1: Követelmények ellenőrzése

Részletes szoftver tervek ellenőrzése

Integrációs mellékhatások és gyógymódok a felhőben. Géczy Viktor Üzletfejlesztési igazgató

Szoftverminőségbiztosítás

Részletes tervek ellenőrzése

ÉRETTSÉGI TÉTELCÍMEK 2018 Informatika

Dinamikus terhelés hatására létrejövő deformáció mérése. Dr. Siki Zoltán Moka Dániel BME Általános- és Felsőgeodézia tanszék

Operációs rendszerek. Tanmenet

Országos Területrendezési Terv térképi mellékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával

Inczédy György Középiskola, Szakiskola és Kollégium Nyíregyháza, Árok u. 53. TANMENET. Informatika szakmacsoport

Projekt beszámoló. NEWSIT News basedearlywarning System forintradaytrading: Hír alapú Korai Figyelmeztető Rendszer Napon belüli Kereskedéshez

PROGRAMOZÁS tantárgy. Gregorics Tibor egyetemi docens ELTE Informatikai Kar

Java alapú hordozható kliens vakok számára, hálózati szolgáltatások elérésére

Okosház Test Plan. Tartalomjegyzék

Országos Területrendezési Terv térképi mel ékleteinek WMS szolgáltatással történő elérése, MapInfo program alkalmazásával Útmutató 2010.

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Átírás:

Szoftverellenőrzési technikák Felhasználói felületek tesztelése Majzik István Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék http://www.inf.mit.bme.hu/

Motiváció Tartalomjegyzék Kihívások a GUI tesztelés során Teszt típusok Operátor alapú tesztelés GUI modell Tesztelés scenariók alapján Állapotgép alapú tesztelés GUI modell Tesztgenerálás fedettségi kritériumok alapján Teszt automatizálás Példák 2

GUI jellegzetességek Felhasználói utasítások fogadása, eredmény megjelenítése Kommunikáció grafikus elemeken keresztül A háttér alkalmazással való interakció Eseményvezérelt működésű Manipuláció főként egérrel Implementációk GUI toolkitek (Qt, GTK+, Swing, WinForms, ) Webes GUI 3

Informális követelmények Tesztelési nehézségek Minták, konvenciók (megszokás) Ergonómiai ajánlások Nagyszámú bemenet, nagy állapottér Ugyanabban a kontextusban sokféle esemény Ugyanaz az esemény sokféle kontextusban Váratlan események Bonyolult GUI funkciók (toolkit mint fekete doboz ) Rejtett, nem dokumentált funkciók (mi várható el) Interaktív teszt végrehajtás Felhasználói közreműködés (pl. egérkattintások) reprodukálása Nehéz kiértékelés Grafikus felület változásai és háttér működés azonosítása 5

Példa: Teszt környezet felhasználói felülethez Prototípus mint specifikáció (PC) Műszerfal implementáció (beágyazott) XML Report 6

Teszt típusok Használhatósági (ellenőrző lista) Jól néz ki az ablak? Könnyen hozzáférhetők az információk? Állapot alapú (belső állapotokra) Ha ezt a gombot megnyomom, akkor elérhetővé válik / tiltott lesz a másik funkció? Integrációs (több modulra) Ha ezt a gombot megnyomom, megnyílik a link a böngészőben? Kommunikációs (modulok között) Ha ezt a gombot megnyomom, megtörténik az interakció? Szinkronizációs Ha ezt a nézetet megváltoztatom, megváltozik a másik is? Terheléses Milyen gyakran kattinthatok rá? Kompatibilitást vizsgáló Más alkalmazásokat nem befolyásol? Más platformon is ilyen jól működik? 7

Szisztematikus teszt tervezés előfeltételei GUI modell felvétele Előnyök: Teszt fedettség definiálható Automatikus tesztgenerálásra is lehetőséget ad Két tipikus modell: Operátor alapú GUI modell Állapotgép alapú GUI modell Teszt módszer rögzítése Előnyök: GUI modellhez való illeszkedés biztosítható Ad-hoc megoldásoknál jobban kézbentartható Két tipikus módszer: Scenario alapú tesztelés: Leggyakoribb használat tesztelése Kombinatorikus tesztelés: Teljes fedésre ad lehetőséget 8

Motiváció Tartalomjegyzék Kihívások a GUI tesztelés során Teszt típusok Operátor alapú tesztelés GUI modell Tesztelés scenariók alapján Állapotgép alapú tesztelés GUI modell Tesztgenerálás fedettségi kritériumok alapján Teszt automatizálás Példák 9

Operátor alapú GUI modell Program objektumok Háttér alkalmazás elemeihez kötött (pl. szövegrészek, fájlok, ) Események Menü események (MM) Műveletek kibontása (pl. File/Save) Fókusz kiterjesztő/kisajátító események (FKE) Munkaablakok (pl. eszköztárak) megjelenítése, új ablak nyitása Rendszerkapcsolati események (RKE) Program objektumok megváltoztatása Operátorok Rendszerkapcsolati operátorok: (MM,FKE)*RKE Program objektumok befolyásolása (pl. Edit/Cut és hatása) Felületi menü/fókusz operátorok: MM, FKE kombinálása Új ablak nyitása egy művelet hatására (pl. File/Open esetén) Összetett (absztrakt) operátorok: Elemi operátorok sorozata Pl. fájl kiírása adott könyvtárba 10

1. Teszt cél meghatározás Scenario alapú tesztelés Operátorok felmérése Objektumok felmérése Jellegzetes használat (kiindulási állapot, célállapot) meghatározása 2. Operátor szekvencia konstruálása Jellegzetes (legvalószínűbb) operátorsorozatok lefedése 3. Konkrét esemény szekvenciára való leképzés Tesztesetek generálása 11

Scenario generálás tervkészítő segítségével A tervkészítés probléma elemei a GUI teszt generáláshoz: Kezdőállapot: Kiindulási GUI és rendszerállapot (objektumok állapota) Célállapot: Elérendő GUI és rendszerállapot Operátorok (feltételek és hatások): GUI események alapján Szabad változókat tartalmazhatnak, hierarchikusak lehetnek Objektumok (lehetnek az operátorok változói): Rendszerállapot Megoldás: Terv (plan): Célállapot elérése a kezdőállapotból Operátor példányok halmaza Részleges rendezési reláció az operátorok között: sorrendi kötöttség Ok-okozati kapcsolatok az operátorok között: hatások és feltételek kötése Operátorok változóinak behelyettesítése: konkrét objektumok A terv teljes sorrendezéssel teszt szekvenciaként használható Linearizálás 12

Kiindulás: Példa egy összetett operátor leképzésére Leképzés: Eredmény: 13

Példa egy másik leképzésre Leképzés: Eredmény: 14

Motiváció Tartalomjegyzék Kihívások a GUI tesztelés során Teszt típusok Operátor alapú tesztelés GUI modell Tesztelés scenariók alapján Állapotgép alapú tesztelés GUI modell Tesztgenerálás fedettségi kritériumok alapján Teszt automatizálás Példák 15

Állapotgép alapú GUI modell GUI mint automata Esemény folyam (elemi műveletek) 16

Tesztelés fedettségi kritériumok alapján: A normál működés tesztelése Átmenetek tesztelése Átmenet párok tesztelése Átmenet sorozatok tesztelése Részleges bejárás Teljes bejárás Valószínűségi tesztelés Legvalószínűbb bejárásokat előre kell venni Markov modell is használható 17

A nem megengedett működés tesztelése Az állapotgép kiterjesztése tiltott átmenetekkel: Sorrend megfordítása Plusz önhurkok felvétele Új sorrendi kapcsolatok felvétele (teljessé tétel) Tiltott átmenetek tesztelése 1. Normál átmenetekkel a tesztelendő tiltott átmenetig 2. Tiltott átmenet végrehajtásának kísérlete 3. Elvárt hibajelzés vagy a nem lehetséges végrehajtás ellenőrzése 18

Állapotgép példa: Kávéautomata Felderíthető gyakorlati problémák: 19

Motiváció Tartalomjegyzék Kihívások a GUI tesztelés során Teszt típusok Operátor alapú tesztelés GUI modell Tesztelés scenariók alapján Állapotgép alapú tesztelés GUI modell Tesztgenerálás fedettségi kritériumok alapján Teszt automatizálás Példák 20

Milyen teszt típusok automatizálhatók? Használhatósági (nehezen automatizálható) Jól néz ki az ablak? Állapot alapú (automatizálható) Ha ezt megnyomom, akkor elérhetővé válik / tiltott lesz a másik funkció? Integrációs (az egyszerűbb esetekre automatizálható) Ha ezt a gombot megnyomom, megnyílik a link a böngészőben? Kommunikációs (az egyszerűbb esetekre automatizálható) Ha ezt a gombot megnyomom, megtörténik az interakció? Szinkronizációs (nehezen automatizálható) Ha ezt a nézetet megváltoztatom, megváltozik a másik is? Terheléses (automatizálható) Milyen gyakran kattinthatok rá? Kompatibilitást vizsgáló (az egyszerűbb esetekre automatizálható) Más alkalmazásokat nem befolyásol? Más platformon is ilyen jól működik? 21

Kézi és automatikus tesztelés Tesztek kézi összeállítása Kézi tesztelés Teszt tervezés Scriptek gépi rögzítése Scriptek integrálása Automatikus tesztelés Scriptek programozása Teszt specifikáció Teszt generálás Teszt végrehajtás 22

Automatizálási lehetőségek Teszt generálás: Script felvétel ( record ) Felhasználói interakciók felvétele Felvett script módosítása, többszörözése Teszt végrehajtás: Script lejátszás ( playback ) Párhuzamosítható Regressziós teszteléshez alkalmazható Eredmény ellenőrzés: Szöveg összevetés : Csak karakteres felületekhez Képfeldolgozás : Grafikus felületekhez Widget alapú Bitmap alapú 24

Teszt automaták (példák) Eszköz Környezet Licensz Abbot Java CPL Squish Java + Web Commercial (Eval) SilkTest (Borland) Multi Commercial (Eval) IBM RFT Multi Commercial (Eval) BadBoy Web FFNP NUnit Forms.Net BSD QuickTest (HP) Java + Windows Commercial (Eval) Ranorex.Net+Web Mixed GUIDancer Java Commercial (Demo) GTT Java GPL Jemmy Java SPL JFCUnit Java LGPL Marathon Java LGPL UISpec4J Java CPL QF-Test Java Commercial (Eval) Selenium Web Apache 2.0 WET Web BSD Sahi Web Apache 2.0 25

Példa: Rational Robot IBM Rational Functional Tester környezet Automatizált feladatok GUI komponensekhez: Teszt szekvencia rögzítése ( record ) Teszt értékeléshez referencia (verifikációs pont) kijelölése Menü, ablak, régió, clipboard, fájl, szöveg szintű elemek Image mask megadható kép összehasonlításhoz Teszt script mentése (módosítható SQABasic scriptek) Kiindulási információ: (Grafikus) felhasználói felület felderítése, objektumok azonosítása Object mapping: Felhasználói objektumokhoz Adatkészlet (data pool) megadható teszt sorozatokhoz Felhasználás: Rögzített teszt szekvenciák lejátszása Módosított szekvenciák lejátszása Regressziós tesztelés 26

Példa: Selenium Selenium IDE: Böngészőn keresztül történő tesztelés webes felületű alkalmazásokhoz Rögzíti a felhasználói interakciókat Módosítás: Szerkesztés, töréspontok Mentés: Ruby, JavaScript, HTML Kód generálás (Java JUnit) Ezek teszteléshez újra lejátszhatók Teszt bemenet: URL megnyitás, kattintás, szövegbevitel, Teszt kimenet (assertion): Widget eltűnés, megjelenés, szöveg megjelenés,.. Selenium Remote Control: A tesztek több böngészőben futtathatók Szerver komponens: Böngészők indítása, HTTP proxy funkció Kliens könyvtár tesztek írásához: Java, PHP, Perl, Python, Ruby nyelvekhez Selenium Grid: A tesztek több szerveren futtathatók a párhuzamos tesztelés érdekében Selenium Hub: Több Remote Controlhoz 27

Példa: GUITAR - GUI Testing FrAmewoRk 28

Összefoglalás Motiváció Kihívások a GUI tesztelés során Teszt típusok Operátor alapú tesztelés GUI modell Tesztelés scenariók alapján Állapotgép alapú tesztelés GUI modell Tesztgenerálás fedettségi kritériumok alapján Teszt automatizálás Példák 30