• No results found

NÁVRH A IMPLEMENTACE TESTOVACÍHO PROSTŘEDÍ PRO WEBOVÉ APLIKACE

N/A
N/A
Protected

Academic year: 2022

Share "NÁVRH A IMPLEMENTACE TESTOVACÍHO PROSTŘEDÍ PRO WEBOVÉ APLIKACE"

Copied!
57
0
0

Loading.... (view fulltext now)

Full text

(1)

NÁVRH A IMPLEMENTACE TESTOVACÍHO PROSTŘEDÍ PRO WEBOVÉ APLIKACE

Bakalářská práce

Studijní program: B6209 – Systémové inženýrství a informatika Studijní obor: 6209R021 – Manažerská informatika

Autor práce: Vojtěch Třmínek

Vedoucí práce: Ing. Dana Nejedlová, Ph.D.

(2)
(3)
(4)

Prohlášení

Byl jsem seznámen s tím, že na mou bakalářskou práci se plně vzta- huje zákon č. 121/2000 Sb., o právu autorském, zejména § 60 – školní dílo.

Beru na vědomí, že Technická univerzita v Liberci (TUL) nezasahuje do mých autorských práv užitím mé bakalářské práce pro vnitřní potřebu TUL.

Užiji-li bakalářskou práci nebo poskytnu-li licenci k jejímu využití, jsem si vědom povinnosti informovat o této skutečnosti TUL; v tomto pří- padě má TUL právo ode mne požadovat úhradu nákladů, které vyna- ložila na vytvoření díla, až do jejich skutečné výše.

Bakalářskou práci jsem vypracoval samostatně s použitím uvedené literatury a na základě konzultací s vedoucím mé bakalářské práce a konzultantem.

Současně čestně prohlašuji, že tištěná verze práce se shoduje s elek- tronickou verzí, vloženou do IS STAG.

Datum:

Podpis:

(5)

Poděkování

Tímto bych chtěl poděkovat vedoucí mé bakalá ské práce Ing. Daně Nejedlové, Ph.D. Bez jejího odborného dohledu by tato práce nikdy nemohla vzniknout. Dále děkuji konzultantovi Ing. Ond eji Švajdlerovi nejen za pomoc p i psaní této práce, ale i za jeho pomoc jakožto garanta roční ízené praxe v ST Software s.r.o.

(6)

Anotace

Tato bakalá ská práce se zabývá testováním webových aplikací. V první části je stručný popis, co to vlastně je webová aplikace, dále její výhody a nevýhody. V druhé části popisuje testování. Jaké existují druhy testování, jaký je mezi nimi rozdíl, k čemu ten který druh je dobrý a proč je vlastně důležité testovat aplikace. Ve t etí části se věnuje návrhu a implementaci testovacího prost edí. A na závěr p ináší zhodnocení p ínosu automatických testů v praxi.

Klíčová slova

Webová aplikace, testování, testovací prost edí, automatické testy, Use Case, Test Case

(7)

Annotation

Design and implementation of a testing environment for web applications

This bachelor thesis present testing of web applications. In the first part is a brief description of what is web application, its benefits and disadvantages. In the second part it describe testing. What kinds of testing exists, what are differences between them, what are they intended for and why it is good to test the applications. In the third part it presents design and implementation of testing environment. And at the end it evaluate the benefit of automatic tests in practise.

Key Words

Web application, testing, testing environment, automatic tests, Use Case, Test Case

(8)

Obsah

Seznam zkratek ... 10

Seznam tabulek ... 11

Seznam obrázků ... 12

Seznam ukázek kódů ... 13

Úvod ... 14

1. Zhodnocení stávajícího stavu ... 15

2. Představení firmy a její činnosti ... 17

3. Charakteristika a druhy webových aplikací ... 19

3.1 Charakteristika webových aplikací ... 19

3.1.1 Výhody ... 19

3.1.2 Nevýhody ... 20

3.1.3 P izpůsobitelnost aplikace ... 21

3.1.4 Bezpečnost ... 22

3.1.5 Technická specifikace ... 22

3.2 Druhy webových aplikací ... 24

3.3 Cloud Computing ... 24

3.3.1 Dělení Cloud computingu ... 26

3.3.2 P íklady služeb ... 27

4. Testování webových aplikací ... 28

4.1 Druhy testování ... 28

4.1.1 Testování programátorem ... 29

4.1.2 Testování jednotek ... 29

4.1.3 Integrační testy ... 29

4.1.4 Systémové testování ... 29

4.1.5 Akceptační testování ... 29

4.2 Postup testování ... 30

4.3 Automatické testy ... 31

Návrh testovacího prostředí pro webové aplikace ... 32

(9)

6.1.1 Programovací jazyk ... 38

6.1.2 Vývojové prost edí ... 40

6.1.3 Virtuální stroj... 41

6.1.4 Knihovny ... 42

6.2 ASP.NET ... 43

6.3 Selenium ... 44

6.4 NUnit ... 45

6.5 XPath ... 46

6.6 Příprava dat ... 46

6.7 Internetový prohlížeč ... 47

6.8 Automatické testy v praxi ... 48

6.8.1 UI mapa ... 48

6.8.2 Data model... 48

6.8.3 Interakce ... 49

6.8.4 Testová definice ... 49

7. Zhodnocení řešení ... 51

Závěr ... 53

Seznam použité literatury ... 54

(10)

Seznam zkratek

AJAX (Asynchronous JavaScript and XML)

API Rozhraní pro programování aplikací (Application Programming Interface) ASP (Active Server Pages)

ASP Poskytovatel aplikačních služeb (Application service provider) BCL Sada základních knihoven (Base Class Library)

CLI Obecná jazykové infrastruktura (Common Language Infrastructure) CLR (Common Language Runtime)

CPU Centrální procesorová jednotka (Central Processing Unit) GUI Grafické uživatelské rozhraní (Graphical user interface) HTML (Hyper Text Markup Language)

IaaS Infrastruktura jako služba (Infrastructure as a Service)

IDE Integrované vývojové prost edí (Integrated Development Environment) JSP (Java Server Pages)

PaaS Platforma jako služba (Platform as a Service) SaaS Software jako služba (Software as a Service) TUL Technická univerzita v Liberci

UI Uživatelské rozhraní (User interface) VES (Virtual Execution System)

WWW (World Wide Web)

XML Rozši itelný značkovací jazyk (Extensible Markup Language)

(11)

Seznam tabulek

Tabulka 1: P íklady Use Casů pro automatické testy ... 33 Tabulka 2: P íklady Test Casů pro automatické testy ... 35 Tabulka 3: Doba provádění testů ... 51

(12)

Seznam obrázků

Obrázek 1: Logo společnosti ST Software s.r.o. ... 18

Obrázek 2: Schéma fungování aplikačního serveru ... 22

Obrázek 3: Znázornění cloud computingu ... 25

Obrázek 4: P íklad Use Case diagramu ... 34

Obrázek 5: P íklad Test Case diagramu ... 36

Obrázek 6: Statistika používání internetových prohlížečů ... 48

Obrázek 7: Ukázka výsledné implementace automatických testů... 50

(13)

Seznam ukázek kódů

Ukázka kódu 1: Spouštění internetového prohlížeče Chrome nástrojem Selenium ... 44

Ukázka kódu 2: Vzorové p íklady syntaxe kódu ze t ídy Assert ... 45

Ukázka kódu 3: P íklad zápisu XPath cesty ... 46

Ukázka kódu 4: Data model ... 49

Ukázka kódu 5: Interakce ... 49

Ukázka kódu 6: Testová definice ... 50

(14)

Úvod

Mé zkušenosti prezentované v této práci pocházejí z firmy ST Software s.r.o., která se zabývá vývojem webových aplikací na zakázku pro různé, p evážně sportovně zamě ené organizace, ve které jsem zaměstnán jako praktikant. Mojí hlavní pracovní náplní je testovat a vytvá et automatické testy pro webové aplikace, které se v této firmě vytvá ejí.

Samoz ejmě tyto aplikace je nutné důkladně otestovat p ed tím než se dostanou k zákazníkům. Vzhledem k omezeným lidským zdrojům, které ve firmě jsou, bylo rozhodnuto o využívání automatických testů k testování základní funkčnosti aplikací v průběhu životního cyklu, jako je provoz, údržba a rozvoj. Během samotného vývoje je vhodnějším způsobem, aby aplikaci testoval sám tester, neboť dochází k častým změnám a upravovat automatické testy stále dokola, by bylo neefektivní.

Tato práce se zamě uje na problematiku testování webových aplikací. S tím souvisí p edstavení webových aplikací a způsobů testování. Cílem práce je návrh testovacího prost edí pomocí Use Casů a Test Casů. A poté jedním z možných způsobů tento návrh realizovat. Na konci se tato práce věnuje zhodnocení tohoto ešení.

(15)

1. Zhodnocení stávajícího stavu

„In today’s world web applications have increasingly become very popular, and with the same speed they are been upgraded frequently. This poses a big challenge for web application testing. To ensure web application quality, we must perform adequate testing for the new features as well as regression testing the web application in each of iteration.

This requires us to systematically identify/locate changes introduced in the new iteration.“ V p ekladu to znamená: V dnešním světě se webové aplikace postupně staly velmi populárními a se stejnou rychlostí se také vylepšují. To znamená velikou výzvu pro jejich testování. Abychom zajistili stále stejnou kvalitu, musíme zajistit adekvátní testování pro nové vlastnosti, stejně tak jako snažit se snížit množství testů v každé další iteraci vývoje.

To vyžaduje, abychom systematicky identifikovali změny p edstavené v nové iteraci.

[1 s. 33]

Cílem článku od S. Raina a A. Agarwala bylo poukázat na obtíže p i testování webových aplikací během jejich vývoje, kdy p i každé iteraci může dojít k výrazným změnám.

„Integration testing is one the important phase in software testing life cycle. With the fast growth of internet and web services, web-based applications are also growing rapidly and their importance and complexity is also increasing. Heterogeneous and diverse nature of distributed components, applications, along with their multi-platform support and cooperativeness make these applications more complex and swiftly increasing in their size.

Quality assurance of these applications is becoming more crucial and important. Testing is one of the key processes to achieve and ensure the quality of these software or Web based products. In software industry different kind of testing approaches are used by practitioners to solve the issues associated with integration which are due to ever increasing complexities of Web-based applications.“

Integrační testování (pozn.: druhy testování vysvětleny v kapitole 4.1) je jednou z nejvýznamnějších fází v životním cyklu vývoje softwaru. S rychlým růstem internetu a webových služeb se webové aplikace také velice rychle rozrůstají a s tím i jejich důležitost a komplexnost. Multiplatformní podpora je činní složitějšími. Zajištění kvality

(16)

těchto aplikací se stává klíčové. Testování je jedním z klíčových procesů k získání a zajištění kvality těchto softwarových produktů. V softwarovém odvětví se využívá různých druhů testování, aby se vy ešily veškeré problémy integrací kvůli stále více komplexním webovým aplikacím. [2 s. 109]

Článek napsaný I. Khanem a R. Singhem, poukazuje na komplexnost webových aplikací a také odlišnosti od testování klasických aplikací. Dále je velice důležité zajištění stálé kvality, toho se dá docílit opakovaným testováním, které je ale časově náročné.

V dnešní uspěchané době, kdy čas jsou peníze, se každá firma snaží snížit dobu vývoje softwaru na minimum. Jedním ze způsobů je snížení času pot ebného k testování. V lepším p ípadě to nebude mít vliv na kvalitu výsledného produktu. V horším p ípadě dojde k uvolnění špatně optimalizovaného produktu, což povede nejen ke snížení důvěryhodnosti, ale také k finanční ztrátě. P íkladem z nedávné doby mohou být počítačové herní a zábavní produkty od firem EA a Ubisoft, které byly v blízké době po vydání zcela nehratelné a ani po delším časovém úseku nebyli vývojá i schopni hry plně zprovoznit, což vedlo ke kompenzacím pro zákazníky, kte í si zmíněné hry zakoupili.

Nebo je tu jiný p ípad s operačním systémem Windows Ř, který se zase pokoušel o inovaci, o kterou zákazníci nestáli, v podobě odstranění lišty Start a jejím nahrazením interfacem známým jako Metro. Microsoft byl následně po stížnostech zákazníků nucen tuto lištu vrátit. V tomto p ípadě nešlo o chyby ve funkčnosti systému, ale jeho p ívětivosti k uživateli. V tomto p ípadě by bylo vhodné nechat program testovat širším okruhem uživatelů.

A spousta dalších p ípadů byla zaznamenána v historii. Jak je nap íklad zmíněno v knize od Rona Pattona - Testování softwaru. [3]

K testování by se mělo p istupovat zodpovědně a rozhodně by se nemělo podceňovat.

V sázce je nejenom reputace firmy, ale i její finanční prost edky.

(17)

2. Představení firmy a její činnosti

ST Software s.r.o. je liberecká společnost, zabývající se vývojem webových aplikací na zakázku pro různé, p evážně sportovně zamě ené organizace. Mezi stálé a velké klienty pat í nap íklad mezinárodní basketbalová federace (FIBA) a mezinárodní plavecká federace (FINA). ST Software s.r.o. je součástí mezinárodní firmy Swiss Timing, sídlící ve Švýcarsku a s pobočkami v Německu a Itálii. Zatímco němečtí kolegové se zabývají p evážně mě ícími p ístroji a časomírou, zde v Liberci se zabýváme spíše akreditací jednotlivých sportovců a dalších autorizovaných osob. Pro jeden takový akreditační systém právě programuji automatické testy. Cílem firmy je vytvá et co nejkvalitnější a nejstabilnější aplikace na zakázku. Snahou je co nejvíce vyhovět požadavkům zákazníka a p izpůsobit jim budoucí podobu výsledných programů, tímto se tato firma vymyká ostatním firmám, které nejsou ochotné natolik upravovat své aplikace. Aplikace se zásadně upravují a p edělávají klidně i v průběhu vývoje, nebo dokonce i po nasazení již plně funkčního systému, z toho plyne, že vývoj našich aplikací nikdy nekončí. Malé i velké úpravy probíhají neustále, proto je nutné neustálé testování. Toto je velice časově náročné pro testera, vhodným ešením jsou automatické testy. Tyto testy jsou vhodné pro stále se opakující činnosti, které musí v každém p ípadě fungovat, jako je p ihlašování se do systému, vytvá ení nového účtu atd.

Ve firmě ST Software s.r.o. spolupracuji na vytvá ení aplikací, které se zabývají akreditačním procesem na sportovních akcích. Akreditační proces zjednodušují, zrychlují a také zp ehledňují. Díky komplexnosti našeho systému lze všechny kroky akreditace provést v jednom systému. To znamená, že veškerá data stačí zadat pouze jednou a každý z vyjmenovaných subjektů k nim bude mít p ístup dle pot eby.

„Akreditace (z franc. accréditer, z mettre a crédit, ověřit důvěryhodnost) znamená oprávnění k určité činnosti nebo ověření a uznání takového oprávnění. Často to může být synonymum pro získání licence. Akreditaci jako oprávnění uděluje takzvaná akreditační autorita, která tím může někdy pověřit i firmu nebo agenturu.“ [4]

Konkrétně v našem p ípadě se jedná o akreditaci sportovců, trenérů, noviná ů, organizačního týmu, nebo i dobrovolníků.

(18)

Pro pochopení je nutné uvést konkrétní p íklad takovéto akreditace a postupné vyjmenování všech kroků.

P edstavte si, že máte nap íklad zaregistrovat sportovce na univerziádu. Nejd íve musíte vyplnit p ihlášku s jeho osobními údaji, informacemi týkající se sportu, kterého se účastní, výsledky jeho dosavadní kariéry atd. A protože univerziády se mohou účastnit pouze platní studenti vysokých škol, je nutné vyplnit i údaje o vysoké škole, kterou navštěvují. Po odeslání a schválení této p ihlášky p ichází na adu domlouvání dopravy a ubytování. Po p íjezdu na místo konání akce, proběhne závěrečná kontrola totožnosti a ově ování již d íve vyplněných údajů zástupci mezinárodní komise a poté, pokud je vše v po ádku, sportovec získá akreditační kartičku, která mu umožňuje p ístup na sportoviště. Ještě probíhají meetingy mezi organizátory akce a trenéry o konkrétním průběhu soutěží, ale to už není součástí samotné akreditace.

Celý tento akreditační postup zajišťuje systém firmy ST Software s.r.o.

Obrázek 1: Logo společnosti ST Software s.r.o.

Zdroj: www.swisstiming.com

(19)

3. Charakteristika a druhy webových aplikací

Webové aplikace jsou moderní způsob poskytování služeb zákazníkům, kdy rozhraní aplikací běží p ímo v prohlížečích, bez nutnosti instalace programu na uživatelův počítač.

V dnešní době tímto způsobem funguje mnoho informačních systémů, ale i nap íklad emailoví klienti a internetové obchody.

Snaha o zefektivnění informačních technologií vede spoustu vývojá ů k p eorientování se na poskytování softwaru jako službu. Atraktivnost těchto služeb spočívá v produktivitě, snížení nákladů a zkrácení času uvedení na trh. [5]

S webovými aplikacemi úzce souvisí termín Cloud computing, jakožto Software jako služba. Cloud computing označuje skupinu serverů na kterých může být webová aplikace provozována.

3.1 Charakteristika webových aplikací

Firmy podnikající se strategií zamě enou na webové aplikace jsou známé jako poskytovatelé aplikačních služeb z anglického Application Service Provider. Zkratka ASP, vzniklá z tohoto spojení, se dnes již stala synonymem jak pro poskytovatele této služby, tak i pro službu samotnou. [6]

Webová aplikace je nainstalována a provozována na serveru firmy, kde je k ní nep etržitý p ístup odkudkoli z celého světa pomocí internetového p ipojení. Toto ešení má mnoho výhod, ale i nevýhod, mnoho ulehčení, ale i komplikací, jak pro koncového zákazníka, tak i vývojá e daného softwaru.

3.1.1 Výhody

Mezi výhody pro uživatele pat í snadná dostupnost, dále nezávislost na hardwarové a softwarové konfiguraci počítače, kdy webové aplikace pracují pod jakýmkoli operačním systémem a většinou i na méně výkonných počítačích. A protože aplikace není nainstalována na uživatelově počítači, nezabírá ani místo na pevném disku. Toto může být

(20)

velmi atraktivní pro majitele firem, protože nemusí vydávat vysoké sumy na nákup, upgrade1, nebo údržbu výkonných strojů. Dále není nutný update2 programů uživatelem, protože v prohlížeči vždy běží nejnovější verze aplikace. Vzhledem k tomu, že program běží v prohlížeči je zcela nezávislý na operačním systému počítače. Stejný program lze používat na stroji s operačním systémem Windows, Linux, Mac, ale i t eba Android a iOS.

Pro vývojá e je zase toto ešení výhodné z důvodů jednodušší podpory, než v p ípadě desktopových aplikací3. P i ešení problémů se mohou vývojá i spolehnout na již d íve zmíněnou situaci, že všichni uživatelé používají stejnou a nejnovější verzi programu, což je ta, kterou na server umístili sami vývojá i. Dále veškeré opravy probíhají online a ve většině p ípadů není nutná intervence firemních techniků p ímo u zákazníka. Toto má za následek snížení nákladů a času na opravu, vzhledem k absenci p esunů techniků.

V p ípadě nasazování aplikace novému zákazníkovi, probíhá tzv. On-site-support, kdy někdo ze zaměstnanců firmy odjede k zákazníkovi a pomůže s nastavením aplikace a zaškolením budoucích uživatelů.

3.1.2 Nevýhody

A naopak nevýhodami jsou nemožnost aplikace běžet v offline režimu, možné problémy s nekompatibilitou některých webových prohlížečů. Tyto problémy mohou nastat na starších prohlížečích, nebo na méně známých prohlížečích (nap íklad Safari), na kterých s největší pravděpodobností aplikace není testována.

1 Upgrade označuje výměnu výrobku za novější verzi téhož produktu. Je často používán v oblasti výpočetní techniky a spot ební elektroniky, kde obecně znamená výměnu hardware, software nebo firmware za novější nebo lepší verzi, aby byl systém v aktuálním stavu nebo aby se zlepšily jeho vlastnosti. Opakem upgradu je downgrade. [7]

2Update, neboli aktualizace softwaru je v informatice postup, p i kterém je do počítače instalována novější verze jeho programového vybavení. Aktualizace se provádí buď z důvodů implementace vyšší

(21)

V p ípadě výpadku serveru, ať již z důvodu pravidelné údržby, nebo neplánované havárie, bohužel uživatel není nijak schopen v aplikaci pracovat. To samé platí v p ípadě, kdy se poskytovatel služby rozhodne tuto službu ukončit, nebo nap íklad vinou finanční situace zcela zkrachuje.To znamená, že zákazník je zcela závislý na poskytovateli služby. Protože p ejít z jedné aplikace na jinou je velmi obtížné, jak z pohledu uživatelů, kte í se neradi učí ovládat nové věci, tak z pohledu dat uložených ve starém systému a pokud o ně nechceme p ijít, je nutné je nějak p enést do nového systému. Data mohou mít jiný formát a strukturu a jejich migrace mezi starým a novým systémem bude složitá, nebo i nemožná.

3.1.3 Přizpůsobitelnost aplikace

Vzhledem k tomu, že jedna a ta samá aplikace je poskytována více zákazníkům ze stejného nebo odlišného oboru podnikání, je velkým problémem její customizace. Vývojá i neustále balancují na hraně, protože pokud implementují do aplikace změny požadované jedním zákazníkem, automaticky tím ovlivní i ostatní, kte í o takové změny nestáli. Jádro systému bude vždy stejné pro všechny, dále velmi záleží na architektu e systému, jak moc umožňuje provádět změny, bez omezení jiných zákazníků. Rozdíly mohou být v GUI4 aplikace, ve funkčnosti, nebo databázové. V p ípadě žádosti velkého zásahu do aplikace, lze toto ešit rozší ením původní aplikace o externí moduly. Externí moduly plně spolupracují se základním jádrem systému, ale nemají vliv na jeho samostatnou funkčnost, tím nijak „neruší“ ostatní zákazníky. [10]

Dalším problémem v customizaci aplikací, je pokud zákazník požaduje, aby se data ze systému exportovala do jiného systému, nebo naopak z jiného systému importovala.

4 [angl. Graphical User Interface] (grafické uživatelské rozhraní) je druh rozhraní, které umožňuje uživateli obsluhovat elektronické za ízení, programové aplikace pomocí grafických prvků jako jsou ikony, značky, posuvníky apod… Pokud je správně vytvo en, bývá pro uživatele intuitivní a uživatelsky p ívětivý.

Opakem GUI v p ípadě programových aplikací, je p íkazová ádka nebo konzole. [ř]

(22)

3.1.4 Bezpečnost

Byla vznesena otázka bezpečnosti, podle které software poskytovaný jako služba může být bezpečnostní riziko pro firemní data, která jsou uložena na vzdáleném serveru, ke kterému mají p ístup všichni zákazníci stejného poskytovatele. Samoz ejmě, že poskytovatel se snaží, aby k datům byl omezený p ístup a to pouze jejich majitele. Podle některých odborníků je bezpečnost považována za kritickou p ekážku na cestě k úspěchu cloud computingu. Naopak podle některých názorů je toto ešení výhodnější, protože nedáváte p ístup do interní podnikové sítě, což by mohlo ve výsledku být mnohem větší riziko. V p ípadě zneužití by se útočníci mohli dostat k důvěrné interní komunikaci apod.

[10]

3.1.5 Technická specifikace

Webové aplikace mají většinou t ívrstvou strukturu. První z nich je prezenční (webový prohlížeč), následuje logická (nástroje pro dynamické generování stránek(ASP, ASP.NET, CGI, JSP/Java, PHP)) a poslední z nich je datová (databáze). [11]

(23)

1. Webový prohlížeč požádá o stránku.

2. Webový server stránku vyhledá a p edá ji aplikačnímu serveru.

3. Aplikační server najde na stránce p ípadné instrukce.

4. Aplikační server pošle dotaz databázovému ovladači.

5. Ovladač provede dotaz proti databázi.

6. Ovladači se vrátí sada záznamů.

7. Ovladač p edá sadu záznamů aplikačnímu serveru.

8. Aplikační server vloží data do stránky a pak p edá stránku webovému serveru.

9. Webový server pošle dokončenou stránku prohlížeči, který o ni požádal.

Asynchronní aplikace

Asynchronní aplikace je taková aplikace, která mění obsah svých stránek bez nutnosti jejich kompletního znovu načítání za pomocí knihovny napsané v JavaSkriptu. Na rozdíl od klasických webových aplikací poskytují uživatelsky p íjemnější prost edí.

Teoreticky tento způsob může znamenat zvýšení plynulosti práce blížící se práci s desktopovými aplikacemi. Ale v p ípadě špatné implementace může naopak vést k vyšší zátěži na server z důvodů vysokého počtu odesílaných HTTP požadavků.

Mezi prvními takovéto aplikace nabídla společnost Google. Její aplikace Gmail nebo Google Maps jsou velmi populární mezi uživateli po celém světě. [12]

Rozšíření pomocí Javy

Díky použití Javy je možné ve webové aplikaci používat pokročilejší funkcionalitu jako nap íklad drag-n-drop, kdy nějaký objekt chytíme myší a p etáhneme ho na jiné místo.

Využití to má nap íklad v kalendá ových aplikacích, kdy můžeme p esouvat schůzky pouhým p etáhnutím.

(24)

3.2 Druhy webových aplikací

Webové aplikace se rozdělují na základě jejich použití. Nap íklad zde máme:

 emailové klienty

 internetové obchody

 informační a databázové systémy

 hry

 sociální sítě

 mapy

 online bankovnictví

3.3 Cloud Computing

Cloud Computing je model vývoje a používání počítačových technologií založený na využívání internetu. Je to v podstatě sdílení hardwarových a softwarových kapacit pomocí internetové sítě, tzv. virtualizace. Uživatelé si pronajímají prostor na serverech společností jako nap íklad Google, či Amazon.

Výhodou je, že uživatelé platí pouze za spot ebovaná data, nikoli však za licence na software. P ístup k serveru je zprost edkován pomocí webového rozhraní, které může být p ímo v internetovém prohlížeči nebo jako samostatný klient. Uživatel se může p ipojit z jakékoli platformy. Uživatel nemusí rozumět funkčnosti hardwaru a softwaru. Výpočetní výkon celého systému je p erozdělován na základě aktuální pot eby mezi všechny uživatele. To znamená, že uživatel, když pot ebuje, tak má vždy dostatečný výkon a v p ípadě, že ho již nepot ebuje, systém šet í prost edky. A také stejně jako u webových aplikací si uživatel může být jistý, že software je vždy aktuální. Bezpečnostní politika

(25)

Obrázek 3: Znázornění cloud computingu Zdroj: Sam Johnston,Wikimedia Commons

Nějakou formu Cloud computing všichni používáme každý den, ať už se jedná o emailové schránky (seznam.cz, Gmail, ...), sociální a komunikační sítě (Facebook, Skype), nebo úložiště dat (Uloz.to). V tomto p ípadě Vám poskytovatel dává místo na jeho serveru, pro uložení vašich soukromých souborů.

Název vznikl tak, že diagram používaný pro znázornění tohoto systému se podobá mraku, anglicky Cloud.

Kritikem Cloud computingu je Richard Stallman, zakladatel projektu GNU, který poukazuje p edevším na nebezpečí ztráty soukromí uživatelů a nárůst moci společností, u kterých jsou data uživatelů ukládána. [13]

(26)

3.3.1 Dělení Cloud computingu

Cloud computing se člení dle modelu nasazení nebo modelu distribuce. Toto dělení se navzájem prolíná a proto může být dosti problematické.

Hledisko nasazení, neboli poskytování, rozděluje cloud na ve ejný a soukromý (privátní).

Ve ejný cloud je určen pro velký počet klientů nebo i celou populaci (seznam.cz, Skype).

Má stejnou funkcionalitu pro všechny uživatele. Soukromý cloud je naopak určen menšímu počtu zákazníků a zpravidla je určitou formou upravitelný jednotlivým klientům.

Dále existuje i hybridní cloud, který je kombinací ve ejného a soukromého cloudu a komunitní cloud, který je určen pro skupiny uživatelů se stejnými obory zájmů. [14]

Druhé hledisko je distribuční model, který určuje, co je v rámci služby nabízeno.

 Software as a Service (SaaS) - Software jako služba znamená, že poskytovatel poskytuje pouze p ístup k webové aplikaci, nikoli aplikaci samotnou. P íkladem tohoto p ístupu je sada aplikací Google Apps.

 Platform as a Service (PaaS) - Platforma jako služba znamená, že poskytovatel nabízí zajištění celého životního cyklu tvorby a poskytování webových aplikací.

Toto ešení zahrnuje různé prost edky pro vývoj aplikací jako IDE a API.

Nevýhodou je, že každý poskytovatel může používat jiný programovací jazyk.

 Infrastructure as a Service (IaaS) - Infrastruktura jako služba znamená, že poskytovatel služeb poskytuje virtualizaci. Výhodou je, že se zákazník nemusí vůbec starat o hardware. Toto ešení je vhodné pro uživatele, kte í již nějaký software vlastní, ať už se jedná o jejich výtvor, nebo že mají licence.

(27)

3.3.2 Příklady služeb

Existuje velké množství různých poskytovatelů a ještě větší množství služeb. Zde je výběr několika známých služeb:

 Amazon Web Services

Amazon Web Services jsou různé webové služby společnosti Amazon založené na technologii Cloud Computing. Nejznámějšími službami jsou pravděpodobně Amazon EC2 a Amazon S3. Amazon EC2 půjčuje klientům výpočetní výkon Cloudu, aby jej mohli použít na své vlastní aplikace. Amazonu se hradí částky za využitý výkon a za p enos souborů. Amazon S3 funguje podobně, ale namísto výpočetního času propůjčuje klientům úložiště. Mezi nejznámější klienty pat í různé webové aplikace pro sdílení obrázků či služby Twitter nebo SlideShare. [15]

 Google Apps

Google Apps je soubor placených cloudových aplikací. Služba zahrnuje email, kalendá , prostor pro sdílení souborů Google Disk a nástroj pro vytvá ení internetových stránek Google Sites. [16]

(28)

4. Testování webových aplikací

Testování aplikací hraje důležitou roli ve vývojovém cyklu. Odhaluje chyby a nedostatky p i programování, které způsobují nestabilitu programu, čtení nebo zapisování nesprávných dat do databáze apod. Veškeré tyto neduhy mají za následek ztráty, ať již finanční (p ímo: v podobě nákladů na opravu problému, kompenzaci zákazníkovi a nep ímo: ve snížení cen akcií), nebo reputační, kdy špatně odladěný produkt může vést ke ztrátě dobrého jména společnosti, ztrátě důvěry zákazníka k tomu, že již v budoucnu nebude nakupovat produkty od dané firmy. Testováním se také mohou odhalit chyby v samotném návrhu workflow5 aplikace, kdy se může odhalit, že daný postup je pro uživatele p íliš komplikovaný nebo zavádějící, dochází ke zbytečným opakováním stejných činností apod. Týmu vývojá ů se následně pošlou p ipomínky a post ehy k funkčnosti programu. A oni mohou na základě zpětné vazby začít pracovat na nápravě.

Ron Patton v knize Testování softwaru formuloval myšlenku, že čím později se chyba v softwaru objeví tím větší budou náklady na její odstranění. Pokud se chyba objeví již p i programování, tak jsou náklady v podstatě nulové. Pokud se chyba objeví v době testování, stále je to dobré, ale již mohou vzniknout náklady, protože se díky opravám chyb oddálí nasazení aplikace. Pokud se chyba najde až po nasazení, v horším p ípadě ji nalezne p ímo zákazník, náklady na odstranění této chyby se razantně zvyšují. [3]

4.1 Druhy testování

Druhy testování nebo také fáze testování se rozlišují na základě časového horizontu, kdy tyto testy provádíme vůči fázi vývoje softwaru. Rozlišujeme pět fází testování. [17]

(29)

4.1.1 Testování programátorem

Programový kód je hned po napsání zkontrolován programátorem. Cílem tohoto testování je hlavně zjistit, že program vůbec funguje a lze ho spustit. Často se děje, že kód zkontroluje jiný programátor, než ten který ho napsal, protože je obtížnější najít vlastní chyby. Oprava chyb v této fázi je nejméně nákladná.

4.1.2 Testování jednotek

Během testování jednotek se program rozdělí na menší části a ty se pak testují samostatně.

Tyto testy jsou ve formě programového kódu a používají se k tomu různé testovací frameworky. Proto tyto testy většinou neprovádějí teste i, ale vývojá i.

4.1.3 Integrační testy

Integrační testy, někdy také označované jako testy vnit ní integrace, na rozdíl od testů jednotek zkoumají, jestli funguje celá aplikace. Kromě fungování aplikace mohou také ově ovat komunikaci s operačním systémem. Integrační testy mohou být jak manuální, tak i automatizované.

4.1.4 Systémové testování

Systémové testování se provádí v pozdějších fázích vývoje aplikace. Aplikace se testuje z pohledu zákazníka. Simulují se scéná e podle kterých by mohli zákazníci v praxi aplikaci používat.

4.1.5 Akceptační testování

Akceptační testy jsou poslední fází testování a provádí je již p ímo zákazník.

(30)

4.2 Postup testování

Ještě p ed vlastním testováním je pot eba, aby se tester seznámil s aplikací. Zjistit její účel, pro koho je určena a co má ve skutečnosti dělat. Dále si musíme určit, jestli je cílem testování zjistit funkčnost celé aplikace, nebo pouze její části (nap íklad nemáme-li čas z důvodu blížícího se deadlinu, nebo z důvodu, že byla změněna pouze část programu a testování ostatních částí je proto zbytečné).

Začíná se u nejhlavnějších funkcí aplikace a postupuje se k funkcím, které jsou méně často využívané. Také se v první adě vždy testuje tzv. Happy path. To znamená pouze správný chod aplikace, jako nap íklad: registrace nového uživatele, možnost p ihlášení stávajícího uživatele do aplikace. Až následně se testují možnosti, kdy uživatel nedělá to, co by měl.

Jako nap íklad: pokus o p ihlášení se špatným heslem, nebo nevyplnění povinných údajů p i registraci. Tento způsob efektivně šet í čas pot ebný k otestování nové verze aplikace.

Testování probíhá podobným způsobem jako by se simulovala práce samotného uživatele.

Musí se postupně otestovat všechny možnosti a funkce, které systém uživateli nabízí.

Veškeré chyby, které tester objeví, je pot eba ohlásit buď p ímo vývojá ům, nebo jiné zodpovědné osobě a ta poté rozhodne o dalším postupu. Chyby mohou mít různé podoby.

Za chyby se považuje veškeré nechtěné chování programu. Nejzávažnější jsou chyby, které ohrožují p ímo funkčnost celého programu, kdy nefungují základní funkce programu. Jako nap íklad, že se nejde p ihlásit do programu, nezobrazují se správná data atd.. Dále tu jsou chyby, které chodu programu nevadí, ale i tak mohou být nep íjemné, nap íklad gramatické chyby zobrazovaného textu, špatně se zobrazující obrázky atd. Prioritu mají funkční chyby p ed těmi kosmetickými.

Navíc by cílem testování mělo být i zjištění, jestli je program vst ícný a pochopitelný pro běžného uživatele.

(31)

4.3 Automatické testy

Pokud má testování konkrétní postup, který lze vyjád it algoritmem, tak tento postup můžeme zautomatizovat.

Automatický test je program, který simuluje v podstatě to samé, co by musel normálně

„naklikat“ sám tester.

Automatické testy pomáhají p i testování stále se opakujících činností jako je nap íklad registrace nových uživatelů apod. Tím, že se tento proces zautomatizuje, teste i získají čas na podrobnější testování složitých součástí programu. Automatickými testy se nedá pokrýt celé chování systému. Některé činnosti lze otestovat pouze ručně, jako nap íklad nahrávání profilových fotografií. V p ípadě testů, které jsou složitější a zahrnují více kroků nebo interakci více subsystémů by p íprava dat byla p íliš časově náročná, tyto testy se nevyplatí vytvá et a je lepší testovat ručně.

Nevýhodou automatických testů je, že se musí neustále udržovat aktuální. V p ípadě, že v aplikaci dojde nap íklad k p ejmenování nějakého prvku, tak se tomu test nedokáže sám p izpůsobit a toto p ejmenování vyhodnotí jako chybu. Proto automatické testy vyžadují průběžné úpravy, aby byly vždy aktuální vzhledem k verzi aplikace.

(32)

5. Návrh testovacího prostředí pro webové aplikace

P i návrhu testovacího prost edí se v první adě musíme seznámit s vlastní webovou aplikací, tzn. otestovat ji nejd íve ručně. Projít si jak základní tak i více či méně nepravděpodobný scéná . K návrhu testů se používají Use Casy, ze kterých se následně sestaví Test Casy.

5.1 Use Case

Use Case, neboli česky „P ípad užití“, je popis interakcí mezi rolí (Actor) a systémem. Use Case pat í do objektového p ístupu k návrhu aplikací. V objektovém p ístupu se používají objekty. Objekt je struktura, která má definované atributy a metody. Informační systém je v podstatě množina spolupracujících objektů. Objektový p ístup odpovídá chování reálného světa více než jeho alternativy, kterými jsou základní a strukturovaný p ístup.

[18]

P i návrhu testovacího prost edí mohou být využity Use Casy, které byly použity již p i návrhu samotné aplikace, nebo mohou být vytvo eny na základě již funkční aplikace nové.

Role neboli také Aktér je někdo nebo něco, co provádí v systému interakce. Aktérů může být až nekonečné množství.

Samotný uživatel, který v aplikaci pracuje za účelem dosažení nějakého cíle, je většinou označován za hlavního aktéra. Dalšími aktéry mohou být jiný systém, nebo jeho část, který může zasahovat do chodu našeho systému. Rolí může být i čas.

Specifikuje se hlavní scéná , který se má vykonat. P ípadně i vedlejší a alternativní scéná e. Alternativní scéná se používá pro určení reakce systému v p ípadě výjimek a chyb v hlavním scéná i. Scéná obsahuje impulsy aktérů a reakce systému.

(33)

P idaná hodnota je v tom, že Use Case pomáhá vysvětlit, jak se má systém chovat během procesu, také může odhalit, co by se mohlo během procesu pokazit. [20]

Use Casy mohou být v textové podobě nebo v podobě diagramů.

Následující p íklady Use Casů pro automatické testy pocházejí z interní dokumentace firmy ST Software s.r.o., jíž jsem autorem.

Tabulka 1: Příklady Use Casů pro automatické testy POR_01 - New_Account

Actors: Media -> Public Portal Account

Description: User should be able to create new account.

Additional information: User must confirm that he accepts the „Terms & Conditions“ in order to create new account.

User must fill in First name, Last name, Category, Email address and Password.

User must confirm validity by clicking on URL in registration email.

If Email address already exists in system, account cannot be created.

POR_02 - LogIn

Actors: Media -> Public Portal Account

Description: Unlogged user should be able to login with correct Email and Password.

Additional information: Account have to exist and be activated.

With wrong password user cannot login.

Login for First time user should see Profile Tab. After completing personal profile, user should see Event Tab after login.

POR_03 - Reset_Password

Actors: Media -> Public Portal Account

Description: Unlogged user should be able to reset his password.

Additional information: User must fill in his email address.

User must confirm validity by email, if not validated then old password should work.

User must fill in new password.

User should be able to proceed in case of sending 2 validation emails.

After correctly resetting password, the old should not work.

Zdroj: Interní dokumentace firmy ST Software s.r.o.

Vysvětlení tabulky Use Casů:

První ádek tabulky obsahuje kódové označení a název Use Casu. Název by měl stručně vystihovat cíl daného Use Casu. Druhý ádek obsahuje seznam aktérů, kte í se systémem

(34)

pracují. T etí ádek popisuje hlavní scéná . Další ádky obsahují dodatečné informace k hlavnímu scéná i, nebo podněty k vedlejším scéná ům.

Následuje Use Case diagram, který znázorňuje první p ípad z Tabulky 1 o zakládání nového účtu.

Obrázek 4: Příklad Use Case diagramu Zdroj: vlastní, vytvo eno na základě Tabulky 1

(35)

5.2 Test Case

Test Case obsahuje stejné interakce jako Use Case a podrobněji je popisuje. Konkrétně nám íká, kam se má kliknout a co se má vyplnit. Také to, jaké jsou nutné vstupní podmínky a jaký by měl být výsledek po dokončení všech kroků daného Test Casu.

Také je to soubor podmínek, za jakých je možno označit, že aplikace funguje, nebo nefunguje. Aby bylo možné plně otestovat, že daná problematika (funkcionalita) funguje, je zapot ebí alespoň dvou Test Casů. Jeden pozitivní a druhý negativní. Je pot eba velkého množství testů a tudíž i Test Casů k určení jestli, daná aplikace vyhovuje a je možné ji uvolnit. Jednotlivé testy se shlukují do Test Group, podle oblasti kterou testují.

Stejně jako Use Casy, tak i Test Casy mohou existovat v textové a diagramové podobě.

Tabulka 2: Příklady Test Casů pro automatické testy

ID Test Group Name of test Action Action steps Result Required data

POR_01_01 EMS_Portal_New_account All_valid

Create New Account

go to 'Portal' site → Create New Account FILL:

First Name, Last Name, Email address, Password,

CHOOSE:

Category

I hereby accept Terms & Conditions,

click on button 'Register'

Verify Email by clicking on URL

Gets verification email

Can log on page:

with Email address and Password

Email: emsportal.tester8@st- software.com

Log In

go to 'Portal' site → Existing Account FILL:

Email address Password

Click on button 'Login'

Can see Profile page (Focused tab after Login is Profile)

POR_01_02 EMS_Portal_New_account Email_not_verified

Create New Account

go to 'Portal' site → Create New Account FILL:

First Name, Last Name, Email address, Password,

CHOOSE:

Category

I hereby accept Terms & Conditions,

click on button 'Register'

Gets verification email

Account created

Email: emsportal.tester9@st- software.com Category

Log In

go to 'Portal' site → Existing Account FILL:

Email address Password

Click on button 'Login'

Cannot log on page

POR_01_03 EMS_Portal_New_account Required_information_not_fi lled

Create new Account

go to 'Portal' site → Create New Account FILL:

Email address, Password

CHOOSE:

Category

click on button 'Register'

can see warning text (3 different rows)

Account not created

Email: emsportal.tester10@st- software.com Category

Zdroj: Interní dokumentace firmy ST Software s.r.o.

(36)

Vysvětlení tabulky Test Casů:

První sloupec tabulky obsahuje kódové označení Test Casu. Na rozdíl od Use Casu, v Test Casu jsou vedlejší scéná e samostatně a na stejné úrovni jako scéná hlavní. V druhém sloupci je název Test Groupy do které Test Case pat í. Ve t etím sloupci je název Test Casu, který by měl stručně vystihovat jeho podstatu. Ve čtvrtém sloupci jsou názvy jednotlivých kroků Test Casu a v pátém sloupci jsou popsané jejich konkrétní interakce.

V šestém sloupci jsou vypsané výsledné stavy, ve kterých by měl systém být po dokončení jednotlivých kroků. A v posledním sedmém sloupci jsou vypsána data a vstupní podmínky, které musí systém splňovat p ed spuštěním daného Test Casu.

(37)

6. Implementace testovacího prostředí pro webové aplikace

Kvůli pochopení komplexnosti ešení celé problematiky jsou zde uvedeny nástroje, které jsou využívány p i implementaci testovacího prost edí.

Implementace může probíhat za pomoci vývojové platformy, nebo také framework, což je již p edp ipravený základ, či podpora pro programátory, kte í se tak již nemusí starat o stále se opakující činnosti jako je spouštění aplikace, systém oken, budování GUI, procesy na pozadí atd. Obsahuje podpůrné programy a knihovny API.

Nevýhodou je, že náš kód vytvá ený na základě frameworku může být pomalý, či neefektivní, v porovnání s použitím čistě našeho vlastního kódu, který by již od počátku byl optimalizován dané problematice. Nebo, že může vzniknout časová ztráta z důvodu nastudování použití frameworku. Ale pokud ho budeme používat opakovaně, může naopak dojít k časové úspo e.

API (Application Programming Interface) je sbírka procedur, funkcí a t íd nějaké knihovny, které může programátor využívat. [21]

Výčet nástrojů v této práci není kompletní, jedná se pouze o výběr některých z nich se kterými jsem se setkal během praxe. Ve firmě ST Software s.r.o. je využíván .NET Framework k programování většiny webových aplikací a jako konkrétní programovací jazyk se používá C#. Proto se zde v práci budu věnovat p evážně tomuto frameworku a tomuto jazyku. K programování používám Microsoft Visual Studio.

6.1 .NET Framework

.NET („dot net“) framework je konkrétní p íklad vývojové platformy. Pomocí něho můžeme vyvíjet různé aplikace nejenom pro Windows, ale i webové aplikace, aplikace pro mobilní za ízení a další. Skládá se ze čty základních prvků programovacího jazyka, vývojového prost edí (IDE), virtuálního stroje (CLR) a knihoven. Tím, že .NET zast ešuje Microsoft, nevzniká problém s kompatibilitou v jeho operačních systémech Windows.

(38)

.NET je v různých verzích zpravidla již základní součástí novějších operačních systémů Windows, nebo je zcela zdarma ke stažení. Aktuálně je .NET ve verzi 4.5.

Ačkoli .NET nediktuje používání konkrétního programovacího jazyka, nejběžnější programovací jazyky pro vývoj .NET aplikací jsou C#, Visual Basic .NET a Delphi.

Související pojmy s .NETframework jsou CLI (Common Language Infrastructure), což je standardizované jádro celého frameworku, a BCL (Base ClassLibrary), což je sada základních knihoven. [22]

6.1.1 Programovací jazyk

Programovací jazyk je prost edek pro zápis algoritmů. Programátor formuluje postup ešení daného problému a počítač poté program interpretuje. [23]

Programovací jazyky se dělí podle několika kritérií:

Dle míry abstrakce:

 vyšší programovací jazyky (většina jazyků)

 nižší programovací jazyky (nap . jazyk symbolických adres, částečně VHDL)

Dle způsobu překladu a spuštění:

 kompilované programovací jazyky (nap . Pascal, C, Java, Cobol) - p ed spuštěním jsou nejprve kompletně p eloženy kompilátorem

- výsledkem je větší rychlost, ale také větší náročnost na správně zapsaný kód

 interpretované programovací jazyky (nap . BASIC, Perl, Python, shell, Ruby)

(39)

- interpretované jazyky, které se po spuštění za běhu programu p ekládají do strojového kódu počítače (nap . Java, pokud se použije systém JIT)

Toto členění je spíše orientační, protože ada programovacích jazyků existuje v obou verzích implementace, jak interpretované, tak kompilované (nap . Java). Navíc jsou oba postupy někdy kombinovány, zdrojový kód je nejprve kompilován do mezikódu a následně je interpretován.

Vyšší programovací jazyky se dále dělí takto:

 Procedurální (imperativní)

- Strukturované (nap . C, BASIC, Cobol) - Objektově orientované (nap . Smalltalk, Java)

 Neprocedurální (deklarativní) - Funkcionální (nap . Lisp, Haskell) - Logické (nap . Prolog, Gödel)

Některé programovací jazyky dovolují kombinovat různé p ístupy. To znamená, že část programového ešení je vyjád ena strukturovaným p ístupem, tedy procedurami a zápisem funkcí a další část je zase vyjád ena pouze objektovým p ístupem. Dobrým p íkladem těchto jazyků můžou být C++ a Python. Naopak v takové Javě každá funkce musí být vyjád ena pomocí metody t ídy.

Programovací jazyk C#

C# („C Sharp“) je vysokoúrovňový objektově orientovaný programovací jazyk vyvinutý v roce 2000 firmou Microsoft společně s vývojovou platformou .NET Framework.

Microsoft založil C# na jazycích C++ a Java (a je tedy nep ímým potomkem jazyka C, ze kterého čerpá syntaxi). C# lze využít k tvorbě databázových programů, webových aplikací a stránek, webových služeb, formulá ových aplikací ve Windows, softwaru pro mobilní za ízení (PDA a mobilní telefony) atd. [24]

(40)

Vybrané vlastnosti jazyka:

- P enositelnost zdrojového kódu

- Hlídání hranic polí, detekce použití neinicializovaných proměnných a automatický garbage collector6

- Neexistuje vícenásobná dědičnost - to znamená, že každá t ída může být potomkem pouze jedné t ídy. Toto rozhodnutí bylo p ijato, aby se p edešlo komplikacím a p ílišné složitosti, která je spojena s vícenásobnou dědičností. T ída může implementovat libovolný počet rozhraní.

- Neexistují žádné globální proměnné a metody. Všechny funkce a metody musí být

deklarovány uvnit t íd. Náhradou za ně jsou statické metody a proměnné ve ejných t íd.

- Není důležité po adí deklarace metod.

- Jazyk C# je case sensitive - to znamená, že rozlišuje mezi velkými a malými písmeny.

6.1.2 Vývojové prostředí

Vývojové prost edí (IDE) je software, ve kterém se píše zdrojový kód k aplikacím. D íve bylo zvykem, že každé vývojové prost edí bylo zamě eno pouze na jeden konkrétní programovací jazyk, ale stále častěji se objevují více jazyková vývojová prost edí. Nebo lze z d íve pouze jedno jazykových prost edí za pomoci různých rozší ení nebo pluginů vytvo it více jazyková prost edí. Obsahuje editor zdrojového kódu, kompilátor, p ípadně interpret a většinou také debugger. Zjednodušuje to práci a zvyšuje produktivitu.

Ve vývojovém prost edí je většinou možné uskutečnit celý vývoj aplikace. [25]

Další známá vývojová prost edí jsou Eclipse a NetBeans. I p estože jsou obě prost edí určena primárně pro vývoj Javy, tak v nich lze programovat i další jazyky jako C, C++, nebo PHP.

(41)

Protikladem k vytvá ení aplikací ve vývojovém prost edí je psaní aplikací v samostatných nástrojích.

Microsoft Visual Studio

Pokud mluvíme o .NET framework vývojovém prost edí, tak tím je Microsoft Visual Studio. Je určeno jak pro vývoj konzolových aplikací tak i aplikací s grafickým rozhraním, nebo webových aplikací. Mezi základní programovací jazyky, které Visual Studio umí již v základu, pat í C, C++, C# a VB.NET. Další jazyky, jako je Ruby, nebo Python, je možné zp ístupnit nainstalováním jazykových služeb. Dále jsou také podporovány XML, HTML, JavaScript a CSS. Visual Studio je ve verzi Express zcela zdarma a to jak pro soukromé, tak i pro komerční účely. Samoz ejmě tato verze na rozdíl od placených verzí má omezenou funkčnost, nap íklad v ní chybí refraktor, nelze v ní vytvá et 64bitové aplikace atd. [25]

6.1.3 Virtuální stroj

Virtuální stroj, jinak také CLR (Common Language Runtime), zajišťuje kompilaci a běh aplikací. Proces kompilace interpretuje, neboli p evede zdrojový kód aplikace na strojové instrukce, které následně fyzický procesor počítače (CPU) provede. CLR také zajišťuje dodatečné úlohy, jako nap íklad správa paměti, manipulace s výjimkami, garbage collection7 a management bezpečnosti a vláken8. Veškeré programy napsané pro .NET

7 Forma automatické správy paměti. Funguje tak, že speciální algoritmus (garbage collector) vyhledává a uvolňuje úseky paměti, které již program nebo proces nepoužívá. Garbage collection šet í čas p i vývoji. Automatická správa paměti osvobozuje programátora od uvolňování objektů, které již dále nejsou zapot ebí, což ho většinou stojí nezanedbatelné úsilí. Garbagecollection také pomáhá p edcházet některým typům běhových chyb, které se často vyskytují p i ruční správě paměti. [26]

8 Vlákno (též vlákno ízení, anglicky thread) označuje odlehčený proces, pomocí něhož se snižuje režie operačního systému p i změně kontextu, které je nutné pro zajištění multitaskingu (zdánlivého běhu více úloh zároveň, který je zajištěn jejich rychlým st ídáním na procesoru) nebo p i masivně paralelních výpočtech. Zatímco běžné procesy jsou navzájem striktně odděleny, sdílí vlákna nejen společný paměťový prostor, ale i další struktury. [27]

(42)

framework, nezávisle na programovacím jazyce, jsou vykonávány pomocí CLR. Všechny verze .NET framework obsahují CLR. [28]

CLR implementuje Virtual Execution System (VES), který je definován jako standart v Obecné Jazykové Infrastruktu e (CLI) původně vytvo ené samotným Microsoftem.

Výhody:

- zlepšení výkonu

- schopnost jednoduše použít komponenty vytvo ené v jiných programovacích jazycích - podpora pro strukturovanou manipulaci s výjimkami

- podpora pro uživatelské atributy - Garbage Collection

6.1.4 Knihovny

Knihovna (anglicky Library) je soubor funkcí, procedur a v objektovém programování také objektů, datových typů a zdrojů. Knihovna usnadňuje programátorovi tvorbu zdrojového kódu tím, že umožňuje použít kód, který již p edp ipravil někdo jiný a použít ho ve svých programech. [29]

Knihovny se dělí podle dvou kritérií:

Podle způsobu propojení s programem, který knihovny využívá:

 Statická knihovna - tvo í kompaktní celek s p eloženým programem, tzn. že výsledný spustitelný soubor v sobě obsahuje všechny části nutné pro jeho běh.

 Dynamická knihovna - knihovny nejsou součástí výsledného spustitelného souboru, existují samostatně v podobě souborů s p íponou .dll.

(43)

 Sdílená knihovna - knihovny jsou sdíleny mezi více programy, snižuje se tím náročnost na operační paměť, sdílené knihovny využívají p evážně Unixové systémy, ve Windows se používání sdílených knihoven nedoporučuje.

 Nesdílená knihovna - každý program používá vlastní knihovnu, toto ešení je více náročné na operační paměť, ale nevznikají problémy s kompatibilitou různý verzí jedné knihovny.

Součástí .NET frameworku je kompletní sada knihoven, ve kterých je p edp ipravena ada struktur a komponent, nap íklad pro práci s konzolí, databázemi, nebo formulá ovými prvky. ešení jsou dob e optimalizována a jsou sdílené mezi jednotlivými jazyky. Je nutné, aby na koncovém počítači byl nainstalován .NET stejné, nebo novější verze než verze ve kterém byl program napsán.

P i vytvá ení nové knihovny je důležité brát ohled na dva pojmy a těmi jsou zapouzd ení a znovupoužitelnost. Zapouzd ení znamená, že knihovna by měla mít jednoduché a snadno použitelné rozhraní. A znovupoužitelnost znamená, že pokud bude knihovna správně navržena, budeme ji moci snadno použít i p i budoucích projektech.

6.2 ASP.NET

ASP.NET je technologie pro tvorbu webových aplikací a služeb. Je součástí .NET frameworku. Je považován za nástupce starší technologie ASP (Active Server Pages).

Konkurenci má v JSP (Java Server Pages), který je založen, jak již název napovídá, na programovacím jazyce Java a dynamickém HTML. [30]

Tím, že je ASP.NET založen na CLR, tak nezáleží, který programovací jazyk se použije, pokud ovšem podporuje CLR. To znamená, že se mohou použít programovací jazyky jako VisualBasic .NET, JScript .NET, C# apod. Aplikace založené na ASP.NET jsou nejprve p edkompilovány do několika dynamických knihoven. Toto ešení je odlišné od skriptovacích jazyků, které neustále kompilují stránky p i každém p ístupu. ešení, které používá ASP.NET je rychlejší, šet í výpočetní zdroje počítače a lépe se zachycují chyby.

(44)

V ASP.NET jsou webové stránky poskládané z objektů, neboli také ovládacích prvků, podobných klasickým ovládacím prvkům z operačního systému Windows. P edp ipravené knihovny šablony zrychlují vývoj aplikace. Každý z těchto prvků má svoje specifické vlastnosti. Ovládací prvky se následně p etvá ejí do HTML kódu. V novějších verzích ASP.NET podporuje i HTML 4.0, XHTML 1.0, XHTML 1.2 a JavaScript.

6.3 Selenium

Selenium je multiplatformní nástroj pro automatické testování webových aplikací, vyvinutý v programovacím jazyce Java. [31]

Původně tento nástroj vznikl jako plugin do internetového prohlížeče Mozzila Firefox pojmenovaný jako Selenium IDE. Jeho největší nevýhodou je, že funguje jen a pouze na tomto prohlížeči. Výhodou naopak je jeho snadná instalace a ovladatelnost.

Selenium RC je již samostatný nástroj, který umožňuje spouštění automatických testů na několika různých internetových prohlížečích. Skládá se ze dvou částí a to: Selenium Server, který se stará o spouštění a vypínání instancí internetového prohlížeče a API knihovny.

Selenium WebDriver je další krok ve zjednodušování automatického testování. Selenium WebDriver již nepot ebuje, aby byl vytvá en Selenium Server pro spouštění testů, ale spouští každý internetový prohlížeč sám. Nevýhodou tohoto ešení je, že každý WebDriver je určen pro jeden internetový prohlížeč, proto v p ípadě, že bychom chtěli testovat na více prohlížečích, musí se pro každý prohlížeč WebDriver zvlášť upravit.

Ukázka kódu 1: Spouštění internetového prohlížeče Chrome nástrojem Selenium usingOpenQA.Selenium;

usingOpenQA.Selenium.Chrome;

(45)

actualDriver.Navigate().GoToUrl("http://www.google.com/");

} }

Selenium WebDriver nejd íve spustí prohlížeč Chrome a po jeho spuštění p ejde na stránku "www.google.com".

6.4 NUnit

NUnit je framework určený k vytvá ení automatických testů spolupracující s frameworkem .NET. Jedná se o alternativu frameworku JUnit, který je určený pro programovací jazyk Java. NUnit má open source licenci. [32]

NUnit rozši uje klasický programovací jazyk o t ídu Assert, která obsahuje metody určené ke kontrole správného chodu testovaného programu. Tyto metody na základě zadaných parametrů nap íklad vyhodnotí, jestli daný objekt, textový etězec nebo číslo odpovídají očekávaným hodnotám.

Ukázka kódu 2: Vzorové příklady syntaxe kódu ze třídy Assert usingNUnit.Framework;

public static void CheckElementsExistance() {

Assert.IsTrue(object.Displayed(), "Object is not displayed.");

}

V tomto p ípadě funkce zjišťuje, zda boolenovsky zadaná podmínka v závorce je splněna tzn. je Pravda (anglicky True). Dále lze jako parametr zadat uživatelem definovanou chybovou hlášku, která se zobrazí v p ípadě nesplnění podmínky tzn. v p ípadě selhání testu.

public static void CheckElementsEquality() {

Assert.AreEqual(objectExpected, objectActual, "Objects are not same.");

}

(46)

V tomto p ípadě funkce zase porovnává, zda objekty, čísla nebo textové etězce zadané funkci jako parametry, jsou stejné. A stejně jako v p edchozím p ípadě lze definovat vlastní chybovou hlášku.

6.5 XPath

Pro práci s elementy XML dokumentu se používá počítačový jazyk XPath. Umožňuje vybírat jednotlivé elementy, jejich atributy a hodnoty a dále s nimi pracovat. XPath lze používat dohromady s frameworky .NET a NUnit, kdy se pomocí XPathu určují elementy ve struktu e internetových stránek, jako jsou nap íklad různá tlačítka, inputy a checkboxy, se kterými se dále pracuje v automatickém testování a vytvá ejí se tzv. UI mapy webových aplikací. [33]

Základem syntaxe je výraz popisující cestu (anglicky Path expression), který má stejnou strukturu jako v XML dokument.

UI mapa je t ída, ve které jsou odkazy na všechny elementy, se kterými bude automatický test provádět nějaké interakce.

Ukázka kódu 3: Příklad zápisu XPath cesty

public static FluentWebElement Button_PasswordRecover { get { return

By.XPath("//form[@id='frmSignIn']/div/div/div[@class='forgotYourPasswd']/a").GetFlue ntElement(); } }

Vysvětlení tohoto kódu: najdi element, ke kterému se dostaneš p es form, který má id 'frmSignIn', od něj jdi o t i divy ve struktu e dolů, dokud nenajdeš div s classou

'forgotYourPasswd' a poté jdi ještě o jednu úroveň níže a vezmi toto tlačítko. Do normální eči p eloženo jako najdi tlačítko "Zapomněl jsem heslo".

(47)

svoje vlastní data, což je dosti pracné a časově náročné, ale ve výsledku dvojnásobně výhodné, protože čím více dat máme, tím se lépe simuluje skutečná zátěž na chod serveru.

P íprava dat spočívá v importování údajů do databáze, nap íklad fiktivními uživateli.

A musí proběhnout ještě p ed samotným programováním testů.

6.7 Internetový prohlížeč

Internetový prohlížeč (anglicky Browser) je program umožňující zobrazování Internetových stránek. Internetový prohlížeč p ekládá a následně zobrazuje HTML kód a umožňuje komunikaci se servery.

Internetové prohlížeče se dělí na grafické (Google Chrome, Internet Explorer atd.) a textové (Links). Dnes se již p evážně používají grafické prohlížeče. [34]

Na první pohled všechny prohlížeče vypadají a pracují podobně, ale ve skutečnost jsou v jejich funkcionalitě velké rozdíly. P i vývoji webových aplikací je nutné s tím počítat.

Podle Google Analytics9 56% našich uživatelů používá internetový prohlížeč Google Chrome, 23% uživatelů používá Mozzila Firefox a 10% uživatelů používá Internet Explorer. Proto ve firmě padlo rozhodnutí, že se webové aplikace budou primárně vyvíjet a testovat pro internetový prohlížeč Google Chrome.

Z vlastní zkušenosti vím, že se webové aplikace testují většinou na Google Chrome a Mozilla Firefox. Na ostatních prohlížečích se aplikace z časových důvodů netestují.

9 Google Analytics je nástroj, který nabízí nap íklad analýzu návštěvnosti stránek, analýzu činností uživatelů a mimo jiné i statistiku používaných internetových prohlížečů. [35]

References

Related documents

Veškeré komponenty aplikace, jako jsou tlačítka tabulky apod., jsou řešeny za pomoci Community Tools.. Tyto objekty jsou vytvořeny v souboru template.html a tvoří hlavní

Cílem práce na téma „Principy návrhu moderní webové aplikace“ je navržení metrik hodnocení úspěšnosti webové aplikace a následné aplikování daných metrik na

Cílem práce na téma „Principy návrhu moderní webové aplikace“ je navržení metrik hodnocení úspěšnosti webové aplikace a následné aplikování daných metrik na

Zkoumání událostí při změně délky jednotlivých intervalů bylo jedním z cílů bakalářské práce.. Pro snadnější porovnání jednotlivých intervalů byly

Mým úkolem bylo najít a analyzovat existující aplikace určené pro evidenci servisních zásahů vozidel, navrhnout webovou aplikaci včetně funkcí které bude

Pro uskutečnění komunikace mezi autonomním zařízením a serverem, na kterém bude běžet webová aplikace, jsem navrhla soubor HTTP (resp. HTTPS) požadavků,

Hodnocení bylo rozděleno podle informací z doporučení o důležitosti jednotlivých částí stránky při SEO analýze. Nejvíce, dvacet procent, získal titulek

Pro tvorbu aplikace editoru byla využita verze 5.6, která podporuje export projektu pro Windows i WebGL.. V editoru je otevřená scéna reprezentována prvky uspořádanými v