Využití chemie v procesu testování webových aplikací vytvořených pomocí technologií PHP a Java



Podobné dokumenty
Metodiky pro automatické testování webové aplikace. Ondřej Melkes, Martin Komenda

Specifikace. Odevzdání do

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Automatické testování GUI

Aplikace je program určený pro uživatele. Aplikaci je možné rozdělit na části:

Joelův test. 12 kroků k lepšímu programování. Jaroslav Šnajdr

SRSW4IT Inventarizační SW. Prezentace aplikace. Vedoucí DP: ing. Lukáš Macura Autor: Bc. Petr Mrůzek

Uživatelská příručka pro práci s Portálem VZP. Test kompatibility nastavení prohlížeče

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

1. Úvod do Ajaxu 11. Jak Ajax funguje? 13

DELTA - STŘEDNÍ ŠKOLA INFORMATIKY A EKONOMIE, s.r.o. Obor informační technologie AJAX ESHOP. Maturitní projekt. Třída:

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Maturitní projekt do IVT Pavel Doleček

Sísyfos Systém evidence činností

Česká pošta, s.p. na Linuxu. Pavel Janík open source konzultant

MIROSLAV NEJEDLÝ Curriculum Vitae

Testování software. Jaroslav Žáček

ČESKÉ VYSOKÉ UČENÍ TECHNIKÉ Fakulta elektrotechnická. Microsoft Sharepoint 2007 Workflows Průmyslové informační systémy

1. SYSTÉMOVÉ POŽADAVKY / DOPORUČENÁ KONFIGURACE HW A SW Databázový server Webový server Stanice pro servisní modul...

Analýza a Návrh. Analýza

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

Vývoj řízený testy Test Driven Development

CZ.1.07/1.5.00/

programátor vs. vývojář

GIS a nemapové služby

Návod k instalaci. Nintex Workflow Návod k instalaci

UDS for ELO. Univerzální datové rozhraní. >> UDS - Universal Data Source

1.2 Operační systémy, aplikace

Web. Získání informace z internetu Grafické zobrazení dat a jejich struktura Rozšíření funkcí pomocí serveru Rozšíření funkcí pomocí prohlížeče

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

DATA ARTICLE. AiP Beroun s.r.o.

Základní pojmy spojené s webovým publikováním ~ malý slovníček pojmů~ C3231 Základy WWW publikování Radka Svobodová, Stanislav Geidl

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Specifikace požadavků. POHODA Web Interface. Verze 1.0. Datum: Autor: Ondřej Šrámek

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

FAKULTA INFORMAČNÍCH TECHNOLOGIÍ SPOLEČNOST DECADIC PROJEKT FRAMETRIX

Obsah. O autorech 9 Earle Castledine 9 Myles Eftos 9 Max Wheeler 9 Odborný korektor 10. Předmluva 11 Komu je kniha určena 12 Co se v knize dočtete 12

Matematika v programovacích

Nintex Workflow 2007 je nutné instalovat na Microsoft Windows Server 2003 nebo 2008.

Programovací jazyky Přehled a vývoj

Formy komunikace s knihovnami

Úvod do aplikace SMS/MMS Manager

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

Compatibility List. GORDIC spol. s r. o. Verze

Poznámky k vydání. pro Kerio Control 7.2.1

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

Činnost operačních systémů. Beránek Pavel 1. KŠPA

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

MOBILNÍ SKLADNÍK. Příručka k základnímu ovládání. Beta verze popisu produktu Aktualizace dokumentu: z 10

3. HODINA. Prohlížeče Druhy prohlížečů Přehled funkcí Bc. Tomáš Otruba, Informatika 7. třída 1

1. Webový server, instalace PHP a MySQL 13

Korporátní identita - nejcennější aktivum

MVVM pro desktop i web

ABRA Software a.s. ABRA on- line

Technická specifikace

Nápověda k aplikaci EA Script Engine

Měření teploty, tlaku a vlhkosti vzduchu s přenosem dat přes internet a zobrazování na WEB stránce

Vývoj SW pro mobilní zařízení s ios. Petr Hruška, Skymia s.r.o. Teorie a praxe IP telefonie,

INSTALACE PRODUKTU ONTOPIA KNOWLEDGE SUITE

Karel Bittner HUMUSOFT s.r.o. HUMUSOFT s.r.o.

Testování software. Jaroslav Žáček

Inovace výuky prostřednictvím šablon pro SŠ

Informační systém ozdravných pobytů zdravotní pojišťovny

Střední odborná škola a Střední odborné učiliště, Hořovice

Projekt Datové schránky

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

Návrh uživatelského rozhraní Jednoduchý portál s recepty D1 + D2

Richtext editory. Filip Dvořák

Quality assurance a testovací nástroje v praxi. Bohumír Zoubek bohumir.zoubek@profinit.eu

CASE nástroje. Jaroslav Žáček

Generování žádosti o certifikát Uživatelská příručka

PŘEHLED SLUŽEB A PARAMETRŮ INTERNETOVÉHO BANKOVNICTVÍ CREDITAS

Building Your Own Real Remote Experiment Controlled by a Mobile or Touch Enabled Device

Návod na instalaci programu evito Win Service. Instalace programu evito Win Service

Možnosti využití dat RÚIAN poskytovaných VDP pomocí webových služeb

MODERNÍ WEB SNADNO A RYCHLE

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

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

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

ČSOB Business Connector instalační příručka

Správa verzí souborů na cvičení

DUM č. 11 v sadě. 36. Inf-12 Počítačové sítě

Obsah přednášky. Představení webu ASP.NET frameworky Relační databáze Objektově-relační mapování Entity framework

Otevřený katastr (OK)

DNSSEC Validátor - doplněk prohlížečů proti podvržení domény

Historie Internetu instalace prvního uzlu společností ARPA

DOKUMENTACE REDAKČNÍHO SYSTÉMU PINYA

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Hospodářská informatika

Návod na používání webmailu

Instalace a konfigurace

Ruby on Rails. Bc. Tomáš Juřík Bc. Bára Huňková

Identifikátor materiálu: ICT-3-55

Testovací protokol USB Token Cryptomate

ELEKTRONICKÉ PODÁNÍ OBČANA

BRICSCAD V15. Licencování

NÁVOD NA VYPLNĚNÍ ELEKTRONICKÉ ŽÁDOSTI O DOTACI

E-learningovýsystém Moodle

Transkript:

Využití chemie v procesu testování webových aplikací vytvořených pomocí technologií PHP a Java aneb Selenium v akci Michal Špaček, WebExpo 2008, Praha

Proč vůbec testovat?

Náš software nemá žádné chyby, jen si žije svým životem.

Náš software nemá žádné chyby, jen si žije svým životem.

Jaké testování Unit testing testování samostatných modulů, tříd, funkcí Regression testing věci, které fungovaly musejí fungovat i nadále Integration testing ok, samostatně nám to funguje, ale funguje to všechno dohromady? System testing (Functional testing, Acceptance testing) splňuje výsledek specifikace a požadavky?

Co testovat výkon zátěž UI (uživatelské rozhraní) přístupnost použitelnost bezpečnost nová auta

Název přednášky? Spojení nástrojů do jednoho funkčního celku Regression, Integration, System testing UI testing

Název přednášky? Spojení nástrojů do jednoho funkčního celku Regression, Integration, System testing UI testing Použité nástroje Selenium Python hlava prsty klávesnice

Selenium je testovací systém pro webové aplikace sada nástrojů pro automatizaci testování testování na různých platformách dostupné na <selenium.openqa.org>

Selenium bylo stvořeno počátkem 2004 (dnes Selenium Core) nejdříve jako in-house nástroj na testování Javascript Functional Test Runner, ThoughtWorks v současnosti na nástroji pracuje 10+ lidí ze společností jako např. Google, či Oracle používá se ve společnostech Google Skype vytvořeno pro týmy používající agilní techniky ale nejen pro ně

Jak to funguje v prohlížeči se načte testovaná stránka spustí se test v testu je možné programově klikat na odkazy zjišťovat zda je na stránce text provádět a vyhodnocovat XPath dotazy vyplňovat vstupní políčka odesílat formuláře vyrábět screenshoty

Jak to funguje je to vlastně elektronická cvičená opice na steroidech pro každého webového testera a každého 1337 h4x0ra

Podstatní členové rodiny Seleniových Selenium Core děda Selenium IDE táta Selenium Remote Control (RC) vlivný strýc Selenium Grid bratranci

Děda Selenium Core <selenium-core.openqa.org> původní testovací systém pomocí JS a IFRAME testovací engine se přímo vloží do testovaného webu a testy se spouštějí přímo v prohlížeči jistá omezení crossdomain JS, nelze pomocí JS z jedné domény pracovat s formulářem na jiné doméně testy a aplikace na jedné doméně testy se zapisují pomocí Selenese tabulek

Selenese tabulky MyTest open /mypage type namefield John Smith click submitbutton True verifytext name John Smith

Táta Selenium IDE <selenium-ide.openqa.org> rozšíření pro Firefox 2+ pro tvorbu testů umožňuje klikat a nahrávat testy přímo na testované webové stránce klikání se pak zobrazí jako příkazy, které lze přehrát zpět a taky přehrávat a debugovat a editovat lze nahrávat a ukládat v několika formátech Python, PHP a další nahraný kód je možno použít jako základ pro testy pro Selenium RC

Strýc Selenium RC <selenium-rc.openqa.org> pro plně automatizované testy klient/server architektura server napsán v Javě klient pro váš oblíbený jazyk.net, Java, Perl, Python, Ruby

Strýc Selenium RC <selenium-rc.openqa.org> pro plně automatizované testy klient/server architektura server napsán v Javě klient pro váš oblíbený jazyk.net, Java, Perl, Python, Ruby i pro PHP Testing_Selenium v PEAR repository

Strýc Selenium RC <selenium-rc.openqa.org> pro plně automatizované testy klient/server architektura server napsán v Javě klient pro váš oblíbený jazyk.net, Java, Perl, Python, Ruby i pro PHP Testing_Selenium v PEAR repository klient posílá serveru HTTP příkazy http://localhost:4444/selenium-server/driver? cmd=getnewbrowsersession&1=*firefox&2=http://www.skype.com

Stále strýc Selenium RC obsahuje Selenium Core díky své architektuře a proxování obchází zmíněná JS omezení vkládá testovací engine na stejnou doménu, jako je ta, kde beží aplikace, protože Selenium server se používá jako proxy server modifikující stránky

Pořád stýček Selenium RC klient pouze komunikuje se serverem posílá mu příkazy o samotné spouštění testů se většinou stará nějaký klasický unittest framework PHPUnit PyUnit unittest nebo např. Testoob testy, resp. testovací sady tedy mají podobnou stukturu jako unittesty daného frameworku a z psaní testů se stává programování

Bratranci Selenium Grid <selenium-grid.openqa.org> nástroj pro paralelní spouštění testů na více strojích naráz

Selenium a podpora prohlížečů a OS Všechny součásti (Core, IDE, RC) Firefox 2+ Bez Selenium IDE Firefox 2+ Opera 8+ Safari 2+ IE 7(8?) Operační systémy Windows, Mac OS X, Linux, Solaris

Co lze testovat pomocí Selenium? lze testovat pouze to, co lze zobrazit v konvečním prohlížeči jak otestovat doručení mailu? zapojit do testu nějaký webmail napsat jednoúčelový poštovní server pro příjem mailu s jednoduchým webovým interface

Spouštění testů ve Skype aneb konečně chemie testy psané v Pythonu Testoob framework (Testing Out Of The Box) Firefox 2 na Linuxu systém není určen pro testování kompatibility se všemi prohlížeči, ale pro regresní, systémové a UI testování alepoň prozatím, šel by upravit Xvfb X virtual framebuffer operace nezbrazuje, ale provádí v paměti počítače umožňuje nám tedy spouštět více testů naráz bez nutnosti extra železa (a bratranců Seleniových)

Reportování výsledků testů parsování logů a ukládání do databáze dostupnost screenshotů srozumitelné testy hodně abstrakce např. změna stavu uživatele se děje přihlášením do úplně jiné aplikace, než je testovaná ale v kódu je to jeden řádek využití doc commentu pro popis testcase, autora testu a další metadata

Reportování výsledků testů kdykoliv dostupné grafy počty testů které jsou ok přeskočené neimplementované (manuální testování) celkové zdraví přesné místo, kde test selhal screenshoty průběhu testu výsledku

Reportování výsledků testů pro všechny dostupný pro všechny vývojáře team leadery, project managery a managerky

Podobné a související nástroje WebDriver <code.google.com/p/webdriver> bude merdžnut se Seleniem a vznikne Selenium 2.0 PHPUnit <www.phpunit.de> má extenzi pro Selenium FireUnit <www.google.com/search?q=fireunit> od tvůrců Firebugu a nejdříve pro jeho testování nástroj v plenkách WindMill <www.getwindmill.com> testovací framework napsaný v Pythonu, obsahuje IDE

Naše chemie má budoucnost aktuálně nová verze podporující více testovacích prostředí (verzí) aplikace QA pro hotfixy live verze PreQA pro aktuální vývoj ještě lepší propojení se Subversion přehlednější reporting bílá ještě bělejší

Závěrem na závěr: testovat? ano automaticky sledovat, jestli jsme příliš velkou snahou náhodou něco nezbořili minimalizovat ruční testování náchylné na chyby a zapomínání programovat testy, které mají vlastní logiku QA engineering testy spouštět automaticky stálý přehled o stavu aplikace, pseudoměřítko úspěchu ukládat výsledky sledovat logy aplikace

Michal Špaček <skype:spazef0rze>, <www.skype.cz> (bow)