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

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

Specifikace. Odevzdání do

Jak testovat software v praxi. aneb šetříme svůj vlastní čas

Testování software. Jaroslav Žáček

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

Testování software. Jaroslav Žáček

Vývoj řízený testy Test Driven Development

Jak testovat software v praxi

Automatické testování GUI

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

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

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

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

Automatické testování webového informačního systému

TECHNICKÉ POŽADAVKY NA NÁVRH, IMPLEMENTACI, PROVOZ, ÚDRŽBU A ROZVOJ INFORMAČNÍHO SYSTÉMU

Agenda. Smysl teoretických cvičení Klasifikace Obecná pravidla Bugzilla Klasické problémy Poznámky k jednotlivým pojmům Antipatterns Testování testů

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

Ročníkový projekt. Jaroslav Žáček

MBI - technologická realizace modelu

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

PHP framework Nette. Kapitola Úvod. 1.2 Architektura Nette

Projekt JetConf REST API pro vzdálenou správu

PŘÍLOHA C Požadavky na Dokumentaci

End-to-end testování. 26. dubna Bořek Zelinka

Základy programovaní 3 - Java. Unit testy. Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. 26.,27.

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

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

Bioadresář. Specifikace požadavků. Verze Datum Projektový tým Bc. Martin Ventruba Bc. Ondřej Veselý Bc. Stratos Zerdaloglu

Publikování map na webu - WMS

Formy komunikace s knihovnami

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

Bakalářská práce Automatizace testování webových projektů

Ročníkový projekt. Jaroslav Žáček

Instalace a konfigurace web serveru. WA1 Martin Klíma

Testování SOA systémů v Oracle SOA Suite

CASE nástroje. Jaroslav Žáček

KIV/PIA 2012 Ing. Jan Tichava

Webový knihovní systém. Ing. Jiří Šilha, LANius s.r.o.

CA AppLogic platforma typu cloud pro podnikové aplikace

Zátěžové testy aplikací

A7B36SI2 Tematický okruh SI08 Revidoval: Martin Kvetko

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

CASE. Jaroslav Žáček

Rozklad na prvočinitele. 3. prosince 2010

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

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

Bc. Martin Majer, AiP Beroun s.r.o.

nástroj pro jednoduchou správu a vedení agendy studentských počítačových sítí na kolejích SU OPF Karviná Ing.

Novinky ve Visual Studio Tomáš Kroupa

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

Seznámení s prostředím dot.net Framework

Tvorba internetových aplikací s využitím framework jquery

2012 (červen) Microsoft Sharepoint Portal Server. Microsoft Live Communications Server 2003 Řešení pro online komunikaci. Microsoft Exchange

Softwarové komponenty a Internet

programátor vs. vývojář

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

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

Jádrem systému je modul GSFrameWork, který je poskytovatelem zejména těchto služeb:

IS pro podporu BOZP na FIT ČVUT

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


Návrh softwarových systémů - úvod, motivace

3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY

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

Systémová administrace portálu Liferay

Přehled technologií mapových serverů ve státní správě

Odbor informatiky a provozu informačních technologií

Redakční systém pro skautské weby Poptávka

Katalog služeb a procesů města Sokolov A. Popis současné praxe práce s procesy B. Vytvoření a implementace Katalogu služeb a procesů města Sokolov

Proč webový filtr? 77 % českých firem uvažuje o nasazení webového filtru. Kvalitní řešení URL filtrace je dnes pro efektivní řízení nutností.

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

Sísyfos Systém evidence činností

SYLABUS IT V. Jiří Kubica. Ostrava 2011

}w!"#$%&'()+,-./012345<ya

HLÁŠENÍ DODÁVEK LÉČIVÝCH PŘÍPRAVKŮ UVEDENÝCH NA TRH V ČR DRŽITELI ROZHODNUTÍ O REGISTRACI LP - REG13

Technická specifikace

Služba Rychlý výpis umožňuje on-line službám získat elektronický a snadno zpracovatelný výpis z bankovního účtu klienta.

Microsoft Office 2003 Souhrnný technický dokument white paper

Vzdálený přístup k počítačům

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

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

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

Prototyping konfigurace linuxových serverů. horizontální škálování Deltacloud API

Telelogic Focal Point využití pro řízení a optimalizaci projektového portfolia Verze 1.0

Úvodem 9. Zpětná vazba od čtenářů 10 Zdrojové kódy ke knize 10 Errata 10. Než začneme 11

Bakalářská práce Přehled nástrojů pro automatické testování aplikací

SUTOL Symposium 2014

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

ČMSS: CRM systém pro efektivní práci s klienty

Olga Rudikova 2. ročník APIN

CZ.1.07/1.5.00/

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

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

Úvod do Web Services

Jakub Čermák Microsoft Student Partner

cena jednodenního školení: 4000Kč/osoba, druhá a další z téže firmy 3000Kč cena dvoudenního školení: 7000Kč/osoba, druhá další z téže firmy 6000Kč.

Nastavení provozního prostředí webového prohlížeče pro aplikaci

SQL Server Data Tools (SSDT) RNDr. David Gešvindr MVP: Azure MCSE: Data Platform MCSD: Windows Store

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

Transkript:

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

Obsah Testování sw obecně Unit testy Integrační testy Testování UI

Nesprávné testování sw Neznalost testovacího procesu a jednotlivých typů testů = testy vlastně nejsou důležité Znát kompletní testovací agendu Nedostatek času pro úplné testování Používat dostupné nástroje pro automatizaci testů

Proč testovat sw Nedílná součást životního cyklu sw Cílem je odhalení možných chyb pozdější nalezení chyby znamená vyšší náklady na její opravení Testovat vůči specifikaci sw tomu, kdo a jak bude sw používat ve specifikaci mohou být chyby

Testování je složitý proces Specifikace nemusí být jednoznačná a není snadné odhalit, na co se v ní zapomnělo. Opakováním stejných testů se tyto testy mohou po čase stát neefektivními, proto je potřeba je aktualizovat a přizpůsobovat měnícím se okolnostem tak, aby pokrývaly co nejvíce nově vznikajících chyb. Výsledky testování mohou být ovlivněny špatnou komunikací v týmu nebo se zákazníkem. Není možné otestovat stejným způsobem různý software. Různé chyby se navenek mohou projevovat stejně, nebo naopak jedna chyba se navenek může projevovat různě.

Způsoby testování Black box testing = funkční testování Nejsou k dispozici zdrojové kódy ani dokumentace Testy podle scénářů, které definují, jak přesně se má při testu postupovat Jasně definované vstupy a výstupy Rychlost Jednoduchost Bez znalosti programovacích jazyků Riziko nekvalitního kódu Plošné nepokrytí všech chyb

Způsoby testování White box testing = strukturální testování Znalost datových a programových struktur Použití debuggerů pro analyzování kódu programu za jeho běhu Odhalení nežádoucího kódu Vyšší kvalita kódu Náročnější a nákladnější

Fáze testování Kontrola kódu během napsání Jednotkové testování (Unit testing) Podrobné testování malých částí kódu Funkce, procedura, objekt a jeho metody Integrační testování (Integration testing) Test nově přidané funkcionality s celkem Systémové testování (System testing) Ověření správné funkcionality systému jako celku (multiiterační proces) Testování výkonnosti (zátěžový test, test objemu dat) Testování použitelnosti (jak se systémem pracují jeho uživatelé- manuálně) Testování přístupnosti (různá zobrazovacích zařízení, hendicapovaní uživatelé) Testování bezpečnosti Akceptační testování (Acceptance testing)

Výhody automatizované testování Rychlost automatické testovací nástroje mohou testy provádět mnohonásobně rychleji, než by je dělal člověk. Efektivita během automaticky vykonávaného testu se může věnovat plánování dalších testových případů a manuálnímu testování případů, které automatizovat nejdou. Přesnost na rozdíl od člověka provádí testovací nástroj práci vždy se stejnou přesností. Neúnavnost automatické testy mohou běžet neustále.

Unit testy White box testování, nízkoúrovňové Kontrola správné funkčnosti jedné třídy a jejich metod Idea: Ujistit se, že jednotlivé části "skládanky" fungují, jak mají, a tak snížit počet chyb v programu

Unit testy Nutnost správného návrhu aplikace a dodržování standardů Nutnost testy udržovat Ne pro každý kód lze navrhnout unit test Rychlé testy, snadná identifikace kde a kdy vznikla chyba

Unit testy Výhody Ověřují dlouhodobou funkčnost třídy Podporuje změny Zjednodušuje integraci Testy slouží jako dokumentace Pomáhá oddělit rozhraní od implementace Nevýhody Vyžaduje disciplínu Zpomaluje psaní a úpravy kódu

Unit testy SRP single responsibility principe Třída zodpovídá za jednu odpovědnost Porušení tohoto principu zvýši složitost kódu a znesnadní/znemožní testování Důsledek: netestují se private metody, pouze vstupy a výstupy public metod

Unit testy OCP open closed principe Třída je otevřená pro rozšiřování, uzavřená pro změny Přidávání funkčnosti bez zásahu do hotového kódu Důsledek: používaní rozhraní a dedičnosti

Unit testy Nepoužívat statické a globální metody Globální a statické metody zavádějí do Unit testu závislosti, nelze tak testovat pouze jednu třídu V testech se lokální závislosti nahradí mocky, např. filesystém, Důsledek: třída a metoda mají jasně dané veřejné závislosti a přehledné API

Unit testy KISS keep it simple stupid Přidávat funkcionalitu nebo vyhodit vyjímku? DRY dont repeaty yourself Používat otestovaný kód Používat hlavu a ne dogmatický přístup Testování databáze

Unit testy javascript, ajax Plánováno výběr testovací frameworku Konfigurace dummy server https://github.com/bak1an/silly-server Řeší jak testovat ajaxové požadavky (chyba může být pouze na straně JS, ne na straně serverové aplikace)

Black box testování Integrační testy Testování komunikace komponent/tříd Idea: Ujistit se, že jednotlivé části "skládanky" komunikují, jak mají a na zadaný vstup dávají správný výstup

Integrační testy Nutnost definovat vstupy a výstupy jednotlivých operací Nutnost testy udržovat Pomalé testy, složitější určení místa vzniku chyby, ověřuje zda je aplikace po zaslání požadavku v očekávaném stavu

Integrační testy Výhody Ověřují základní funkčnost aplikace Automatizované se pravidelně se opakují, ověření zda nevznikla chyba z jiných zdrojů Nevýhody Netestují živou aplikaci, testování typicky začíná na definovaném stavu aplikace, který se při každém testu obnoví

Integrační testy Plánováno Výběr jednoduchého nástroje pro správu automatizovaných testů (GitLab CI, TestLink, Jenkins) Využívat PHP_Unit: testy databáze, sestavení controleru Selenium: kompletní http požadavek a odpověď

Nástroje pro automatické testování UI Funkční testování simulující aktivitu uživatele Nutno vždy rozhodnout, zda danou funkcionalitu nepřenechat manuálnímu testu Desktopové vs. Webově orientované aplikace běží většinou na webovém serveru a k jejich rozhraní se přistupuje pomocí webového prohlížeče

Přehled software pro automatizované testování Selenium Tellurium IDE WebAii Framework WatiN

Přehled sofware: Tellurium IDE Doplněk do Firefox Nahrávání naklikaných testovacích scénářů, jejich editace a spouštění s následným vyhodnocením Odlišný způsob identifikace jednotlivých elementů oproti Seleniu Seskupuje UI elementy jako UI objekty

Přehled sofware: WebAii Framework K použití zdarma, ale není open-source Testy lze psát v C# nebo Visual Basic.NET Probíhá na prohlížečích Internet Explorer, Firefox, Google Chrome a Safari Pracuje v kombinaci s některým z frameworků na jednotkové testy Podobný přístup ke tvorbě a vykonávání testů jako u Selenia WebDrive Dále umožňuje Vyvolávání a odchytávání Javascriptových událostí Správa cookies prohlížeče

Open-source framework Přehled sofware: WatiN Psaní testovacích skriptů v jazyce C# Pracuje v kombinaci s některým z frameworků na jednotkové testy Podporované webové prohlížeče Internet Explorer a Firefox (chyby ve verzi 12) Mnoho problematických oblastí minimální možnosti konfigurace testů

Open-source sada nástrojů Přehled software: Selenium Psaní testů v mnoha jazycích C#, Java, Groovy, Perl, PHP, Python a Ruby Spouštění testů ve webových prohlížečích Doplněk do Firefox Nejrozšířenější řešení pro testování webových rozhraní Selenium IDE - vývojové prostředí pro Firefox Selenium Remote Control - Selenium Server a klientská knihovna Selenium Webdriver nástupce RC Selenium Grid

Selenium IDE: ukázka v praxi

Záznamy o testování On-line prostřednictvím nástroje GITlab Off-line prostřednictvím dokumentu R33 Záznam o testování

Úprava R33 dokumentu Návrh na změnu struktury R33 Záznam o testováni Oblast testování Vyberte oblast testování Typ záznamu o testování: Chyba Požadavek Název chyby/požadavku Podrobný popis Klikněte a zadejte název požadavku Klikněte se a zadejte podrobný popis Chyba: Postup pro vyvolání chyby Jaký je očekávaný výsledek Jaký je skutečný výsledek Identifikace výskytu chyby Požadavek: Specifikace požadované změny nebo nové funkcionality Stanovisko vývojáře Vyřešeno Odloženo

Zdroje http://www.zdrojak.cz/clanky/testovani-a-tvorba-testovatelneho-kodu-v-php/ http://www.zdrojak.cz/clanky/navrhove-principy-solid/ http://www.ibm.com/developerworks/web/library/wa-aj-testing/ http://testovanisoftwaru.cz/ http://www.littlehart.net/atthekeyboard/2012/08/16/5-minute-tdd/ http://www.exubero.com/junit/antipatterns.html/ http://www.ibm.com/developerworks/opensource/library/os-junit/?ca=dgrlnxw07junite http://www.swtestovani.cz/ http://docs.seleniumhq.org/ http://is.muni.cz/th/172724/fi_m/_dp_pietrik.pdf