Tesztautomatizálás Playwrighttal Java nyelven

Papp Gergely (2022) Tesztautomatizálás Playwrighttal Java nyelven. Faculty of Finance and Accountancy.

[thumbnail of Papp-Gergely-Tesztautomatizálás-Playwrighttal-Java-nyelven.pdf] PDF
Papp-Gergely-Tesztautomatizálás-Playwrighttal-Java-nyelven.pdf
Hozzáférés joga: Available at the computers of the University

Download (1MB)
[thumbnail of TesztautomatizalasSzakdolgozatPlaywright.zip] Archive (ZIP)
TesztautomatizalasSzakdolgozatPlaywright.zip
Hozzáférés joga: Available at the computers of the University

Download (554kB)
[thumbnail of BA_O_Papp_Gergely.pdf] PDF
BA_O_Papp_Gergely.pdf
Hozzáférés joga: Available at the computers of the University

Download (151kB)

Abstract

Szakdolgozatom célja az volt, hogy bemutassam hogyan nézhet ki egy webes alkalmazás automatikus tesztelése a ma rendelkezésünkre álló nyílt forráskódú eszközök segítségével. Ennek bemutatásához elengedhetetlen, hogy ismerjük a tesztelés alapjait. A tesztelés célja a lehetséges hibák felfedezése, a kockázat csökkentése és a minőség biztosítása, továbbá annak ellenőrzése, hogy valóban a felhasználók, illetve a megrendelők elvárásai szerint működik a szoftver, ezzel növelve az ügyfelek elégedettségét. Alapvetően három féle hibát különböztetünk meg: az emberi hibát, a hibát és a meghibásodást. Egy emberi mulasztás (error) a forráskódban hiba (defect) létrejöttét idézheti elő. Ha a hibás kódot lefuttatjuk, az meghibásodást (failure-t) okozhat, azonban nem feltétlenül minden váratlan teszteredmény meghibásodás. Ismertettem a tesztelés hét alapelvét. Fontos ismernünk a tesztelés szintjeit is, amelyeket 4 különböző csoportra oszthatunk. A legelső teszt szint a komponens teszt. A komponens teszt esetében nem a teljes rendszert, hanem külön-külön, egymástól függetlenül teszteljük a szoftver bizonyos részeit, moduljait. A következő teszt szint az integrációs teszt. A komponens integrációs tesztelés azt vizsgálja, hogy a különböző komponensek hogyan viselkednek egymással. Ezt követi a rendszer teszt. A rendszertesztekkel a szoftver egészének a működését vizsgálják egy olyan tesztkörnyezetben, ami az éles környezethez a lehető legjobban hasonlít. Csak kis mértékben az egyes funkcionalitásokra, sokkal inkább a teljes rendszer működésére koncentrálnak. Az utolsó teszt szint az elfogadási teszt. Az elfogadási teszt (UAT), akárcsak a rendszertesztelés, a teljes rendszer képességeire és viselkedésére összpontosít, de már nem szimulált, hanem éles környezetben. Lényege, hogy ellenőrizzük, a szoftver valóban képes-e éles környezetben is ellátni azt a feladatát amire készült. A tesztelésnek 4 típusa van, a funkcionális tesztelés, a nem-funkcionális tesztelés, az ellenőrző tesztelés és a regressziós tesztelés. A funkcionális tesztek a szoftver előre definiált (például az ügyfelek által) funkcióit ellenőrzik le. Nem-funkcionális tesztelés lehet például a teljesítményteszt és a terheléses teszt. Ellenőrző tesztelést akkor hajtunk végre, amikor ellenőrizni szeretnénk, hogy a fejlesztők által javított hibákat valóban az elvárásoknak megfelelően sikerült javítani. A regressziós teszt a már tesztelt funkció ismételt tesztelését jelenti. Célja, hogy ellenőrizze, hogy a korábban már sikeresen működő szoftvertulajdonságok továbbra is helyesen futnak-e le. Bemutattam a tesztelési technikákat, a statikus és a dinamikus tesztelést. A statikus tesztelés, egy olyan tesztelési technika, amelyhez a tesztelés alatt álló szoftver futtatása nem szükséges. Ilyenkor a szoftver követelményeit, forráskódját és dokumentációját ellenőrizzük. A dinamikus tesztelési technikákat a már „félkész” (működőképes) szoftveren tudjuk végrehajtani. A dinamikus technikát további három alcsoportra bonthatjuk: a feketedobozos tesztelésre, a fehérdobozos tesztelésre és a felfedezéses tesztelésre. Bemutattam a 4 szoftverfejlesztési életciklus modellt (vízesés modell, V-modell, inkrementális modell, iteratív modell (agilis módszer)) és ismertettem ezek előnyeit és hátrányait. Ezt követően írtam a tesztelés folyamatáról, amely a következő lépésekből áll: teszttervezés, tesztelemzés, tesztelőkészítés, tesztvégrehajtás, teszt kiértékelés. Bemutattam olyan eszközöket, amelyek támogatják a tesztautomatizálást, mint például a Maven, a Cucumber, és a két legnépszerűbb tesztautomatizáló keretrendszer, a Selenium és az általam is használt Playwright. A Maven egy szoftver projekt menedzselő eszköz, amelyet a build folyamat megkönnyítésére, automatizálására lehet használni. A Cucumber egy olyan tesztautomatizálást támogató eszköz, amely támogatja a viselkedés-vezérelt fejlesztést. Cucumberben szakmai tudás nélkül (így akár a felhasználók is) lehet (automata) teszteseteket definiálni. Ezeket később lépés definíciókkal kell kiegészíteni (scriptet kell „mögé” írni). A Selenium és a Playwright is egy nyílt forráskódú ingyenesen használható webböngésző automatizáló keretrendszer. Tartalmaznak minden olyan metódust, ami a webes interakciókhoz szükséges. Az utolsó fejezetben elkészítettem a teszteket. A http://automationpractice.com/ weboldalt teszteltem. Ez egy ál e-commerce weboldal, amely direkt tesztautomatizálás gyakorlás céljából lett létrehozva. A teljes projektet Java nyelven készítettem el. Létrehoztam egy Maven projektet, hozzá adtam a számomra szükséges függőségeket és elkészítettem a mappastruktúrát. A teszteseteket a Cucumber segítségével feature fájlokban írtam meg. Ezeket a feature fájlokat a Page Object Model szerint kiegészítettem lépés definíciókkal és page objectekkel. Összesen 11 tesztet készítettem, amely 4 feature fájl, 5 step definition (lépés definíció) osztály és 6 page object segítéségével valószult meg. Mindegyik teszt sikeresen lefutott. Úgy gondolom általánosságban véve elmondható, hogy amennyiben hosszútávon gondolkodunk, az esetek döntő többségében a tesztek automatizációja a manuális teszteléshez képest sokkal olcsóbb és hatékonyabb megoldás, de a manuális teszteléstől továbbra sem lehet eltekinteni.

Institution

Budapest Business University

Kar

Faculty of Finance and Accountancy

Department

Gazdaságinformatika Tanszék

Tudományterület/tudományág

UNSPECIFIED

Szak

Gazdaságinformatikus

Supervisors

Konzulens neve
Konzulens típusa
Assignment, Scientific qualification, Institution
Email
Dr. Baják Imre
Belső
főiskolai docens; Gazdaságinformatika Tanszék; PSZK
Merczel András
Külső
UNSPECIFIED
UNSPECIFIED

Item Type: Thesis (UNSPECIFIED)
Uncontrolled Keywords: automatizáció, Java, Playwright, Tesztautomatizálás, tesztelés
SWORD Depositor: Archive User
Depositing User: Archive User
Date Deposited: 2022. Nov. 11. 08:13
Last Modified: 2022. Nov. 11. 08:13

Actions (login required)

View Item View Item