Frontend tesztelési megoldások a modern webalkalmazásokban

Saved in:
Bibliographic Details
Main Author: Bednay Bence
Other Authors: Barkó Zsolt
Fauszt Dr. Tibor
Format: Thesis
Kulcsszavak:21. század
JavaScript
szoftverfejlesztés
szoftverminőség
tesztelés
Online Access:http://dolgozattar.uni-bge.hu/58159
Description
Abstract:Szakdolgozatomban célul tűztem ki, hogy strukturált módon bemutassam és összehasonlítsam a frontend tesztelés különböző szintjeit – unit, komponens, integrációs, végponttól végpontig tartó (E2E) tesztelést és a manuális tesztelést –, valamint értékeljem azok alkalmazhatóságát egy saját fejlesztésű Angular alapú mintaprojekt segítségével. A dolgozat első felében áttekintem a szoftvertesztelés elméleti alapjait, mint például a tesztelés hét alapelvét, a F.I.R.S.T. szabályrendszert és a hibák típusainak csoportosítását. Ezután részletesen bemutatom a különböző tesztelési stratégiákat, köztük a manuális, automatizált, fekete- és fehérdobozos teszteket, valamint a tesztelési piramis koncepcióját, amely meghatározza a különböző tesztszintek optimális arányát egy hatékony tesztelési gyakorlatban. A gyakorlati rész egy Angular keretrendszerben készült logisztikai alkalmazáson keresztül valósul meg, amely három különböző komplexitású oldalból (bejelentkezés, csomaglista és csomagfelvételi űrlap) áll. Minden funkcionális egységet különböző tesztelési szinteken értékeltem: az egyszerűbb oldalakat főként unit és komponens tesztekkel, míg az összetettebb folyamatokat – például a több lépcsős űrlap kitöltését e2e teszteléssel. Az automatizált teszteket Jasmine + Karma környezetben (unit, komponens, integrációs), a végponttól végpontig való tesztelést (e2e) Playwright segítségével valósítottam meg. A tesztek összesen 92,5%-os kódlefedettséget biztosítottak, amely meghaladja a Google által 85% körüli (bár nem szigorú) célt, és a Google által javasolt tesztelési arányokhoz közeli eloszlást mutattak. A lefedettség és a arányok némi eltérését az applikáció kis mérete és ebből adódó magas kritikus folyamatok arányának feltételezem, amelyet egy későbbi kutatásomban szeretnék tovább kutatni. A vizsgálat rávilágított, hogy az alkalmazás komplexitásának növekedésével megnő az integrációs tesztek szerepe, illetve, hogy az e2e tesztek időigényessége ellenére kritikusfelhasználói folyamatoknál elengedhetetlenek. A manuális tesztelés továbbra is fontos szerepet játszott a fejlesztési korai szakaszában, valamint a vizuális és UX szempontból nehezen automatizálható teszteseteknél. Összességében a dolgozat gyakorlati példákon keresztül nyújt betekintést abba, hogyan alakítható ki a hatékony frontend tesztelési stratégia egy valós projekthez. A megközelítés hasznos útmutatóként szolgálhat mind fejlesztőknek, mind informatikus hallgatóknak, akik szeretnék jobban megérteni a különböző tesztszintek közötti különbségeket és azok optimális alkalmazását a fejlesztési folyamatokban.