Felhasználói felületek tesztelése

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

Speciális tesztelési feladatok

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

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

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

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

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

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

Web-fejlesztés NGM_IN002_1

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

Tesztelési szintek Tesztautomatizálás

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

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

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

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

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

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

Közösség, projektek, IDE

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

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

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

Szoftverminőségbiztosítás

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

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

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

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

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

Alapszintű formalizmusok

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

Ajax és Echo 2. Bokor Attila

Szoftverminőségbiztosítás

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

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

OO rendszerek jellemzői

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

Szoftverminőségbiztosítás

ContractTray program Leírás

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

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

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

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

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

Robusztusság tesztelés

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

DebitTray program Leírás

Operációs rendszerek. Tanmenet

Nyilvántartási Rendszer

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

Operációs rendszerek. Az X Window rendszer

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

Nagy bonyolultságú rendszerek fejlesztőeszközei

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

Microsoft SQL Server telepítése

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

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

Komponens alapú fejlesztés

ServiceTray program Leírás

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Menetrendkezelő Rendszer

Prolan Zrt. fejlesztéseiben. Petri Dániel

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

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

Információ és kommunikáció

JAVA webes alkalmazások

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

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

A Java EE 5 plattform

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

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

Információ és kommunikáció

Részletes szoftver tervek ellenőrzése

Dr. Mileff Péter

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

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

Image Processor BarCode Service. Felhasználói és üzemeltetői kézikönyv

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

A CAPICOM ActiveX komponens telepítésének és használatának leírása Windows 7 operációs rendszer és Internet Explorer 9 verziójú böngésző esetén

Operációs rendszerek. Tanmenet

Rendszermodellezés. Modellellenőrzés. Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Részletes tervek ellenőrzése

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

Szoftver-technológia II. Szoftver újrafelhasználás. (Software reuse) Irodalom

RIA Rich Internet Application

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

Programfejlesztési Modellek

Iman 3.0 szoftverdokumentáció

Tesztelési feladatok és kihívások a FALCON projektben

Webes alkalmazások fejlesztése. 9. előadás Bevezetés az ASP.NET MVC keretrendszerbe

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

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

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

MVC Java EE Java EE Kliensek JavaBeanek Java EE komponensek Web-alkalmazások Fejlesztői környezet. Java Web technológiák

Bevezetés az informatikába

CIB Internet Bank asztali alkalmazás Hasznos tippek a telepítéshez és a használathoz Windows operációs rendszer esetén

Szoftverminőségbiztosítás

Informatikai technológiák szakirány Rendszertervezés ágazat

Gyakorlati vizsgatevékenység A

Á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átorok tesztelése Scenario alapú tesztelés Állapotgép alapú tesztelés 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 program funkcionalitásához nem ad hozzá 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 Mit tesztelhetünk? Funkció engedélyezés/tiltás Láthatóság Fókusz Méretezés Elhelyezés Keretrendszer eseményei Adat validáció Frissesség Konzisztencia 4

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 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 Ellenőrző lista (ld. példa) Jól néz ki az ablak? Navigációs Ha ezt a gombot megnyomom, akkor eltűnik/megjelenik ez az ablak? Állapot alapú (belső állapotok) Ha ezt 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, végrehajtódik a parancs? 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 tesztelés előfeltételei GUI modell felvétele Előnyök: Teszt fedettség definiálható Automatikus tesztgenerálásra 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átorok tesztelése Scenario alapú tesztelés Állapotgép alapú tesztelés 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érműködé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ő események (FKTE) Munkaablakok (pl. eszköztárak) Fókusz kisajátító események (FKSE) Új ablak nyitása (pl. fájl megnyitási ablak) Rendszerkapcsolati események (RKE) Program objektumok megváltoztatása Operátorok Rendszerkapcsolati operátorok: (MM,FKTE,FKSE)*RKE Program objektumok befolyásolása (pl. Edit/Cut és hatása) Absztrakt operátorok: (MM,FKTE)*FKSE Új ablak nyitása egy művelet hatására (pl. File/Open esetén) 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 (elő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

Példa egy leképzésre Kiindulás: 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átorok tesztelése Scenario alapú tesztelés Állapotgép alapú tesztelés 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 Markovmodell 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) Helytelen átmenetek tesztelése 1. Normál átmenetekkel a tesztelendő helytelen átmenetig 2. Helytelen átmenet végrehajtásának kísérlete 3. Elvárt hibajelzés vagy 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átorok tesztelése Scenario alapú tesztelés Állapotgép alapú tesztelés Tesztgenerálás fedettségi kritériumok alapján Teszt automatizálás Példák 20

Milyen teszt típusok automatizálhatók? Ellenőrző lista (nehezen automatizálható) Jól néz ki az ablak? Navigációs (automatizálható) Ha ezt a gombot megnyomom, akkor eltűnik/megjelenik ez 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, végrehajtódik a parancs? 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