Szoftvertesztelő munkakör

Réfi Balázs

2022. április 14.

A szoftvertesztelő felelős a tesztelés megtervezéséért, a tesztelés elvégzéséért és a hibajegyek rögzítéséért. 

More...

Mi a szoftvertesztelés?

MI a szoftvertesztelés - Bluebird blog

A szoftvertesztelés az a folyamat, amely során a kifejlesztett alkalmazás minőségi ellenőrzése történik.

A tesztelés az alkalmazás vagy rendszer élesbe állás előtt valósul meg és célja az, hogy az alkalmazás vagy rendszer hibamentesen és az elvárt követelményeknek megfelelően kerüljön átadásra az éles üzemű működésre.

A tesztelés során ellenőrizendő követelmények lehetnek funkcionálisak és nem funkcionálisak is (pl. válaszidő, terhelhetőség, stb.).

Miért fontos a szoftvertesztelő?

Azért, mert a jó szoftvertesztelő munkája biztosítja az alábbiakat:

Minőség: a követelmények szerinti termékminőség biztosítása miatt.

Vevői elégedettség: a vevői igényeknek való megfelelőség miatt.

Költségek szinten tartása: a tesztelés a fejlesztés minél korábbi szakaszában azonosítja a hibákat, annál alacsonyabb szinten tartható a fejlesztési költség. Fordított megfogalmazással: minél később derül ki egy hiba, annál nagyobb többletköltséget jelent a javítása.

Szoftvertesztelő feladatai

1. Tesztelendő rendszer megértése, értelmezése

A szoftvertesztelő első feladata az, hogy megértse, mit kell tesztelni. A megértés mélysége rendkívül fontos, hiszen a tesztelő minél mélyebben érti az adott alkalmazást vagy rendszert, annál pontosabban tudja meghatározni a tesztelési feladatokat.

Pont a mély megértés miatt kis szervezetekben vagy kritikus rendszerek esetében nagyon hasznos, ha a rendszert megálmodó rendszerszervező vagy business analyst is végez teszteket. Hiszen nála megvan az az előny, hogy pontosan érti, hogyan kell működnie a rendszernek. Ezzel persze el is jutottunk a rendszerszervezők részéről történő tesztelés árnyoldalához, a csőlátáshoz. Hiszen a rendszerszervező tudja, hogy az adott felületen milyen adatokat kell megadni, hogyan kell működnie a rendszernek, és emiatt sokszor esélyt sem ad magának arra, hogy hibásan használja az alkalmazást. Persze ez nem tudatosan, inkább tudat alatt történik. 

Ha a tesztelési feladatot dedikált szoftvertesztelő végzi, aki nem a rendszerszervező, akkor bízhatunk abban, hogy az általános problémák előjönnek a tesztelés során.

Aláhúznám újra: rendkívül fontos, hogy a tesztelőnek ne csak általános ismerete legyen a rendszerről, hanem nagyon mély és alapos tudása, hogy a rendszer bonyolult összefüggéseit is tesztelni tudja.

Szoftvertesztelő eszköz - SoapUI - Bluebird blog

2. Átadási követelmények részletes összeírása

Egy jó szoftvertesztelő tisztában van azzal, hogy tesztelésének nem csak az a célja, hogy adott funkciókban vagy tranzakcióban megtalálja a hibákat, hanem az is, hogy elvégezzen egy átadás-átvételi tesztet megelőző nagytakarítást. A takarítás eredményeként pedig tiszta és jól működő lesz az alkalmazás, ezért átadás során nem merülhetnek fel komolyabb diszfunkcionalitások. A nagytakarításban a szoftvertesztelő feladata az, hogy rámutasson a problémákra, a fejlesztők feladata pedig az, hogy ezeket javítsa a szoftverben.

Amennyiben nincs szükség átadás-átvételre, mert a megrendelő nem egy vállalat, akkor egy kicsit más a helyzet. Ebben az esetben nem lesz, aki átveszi az alkalmazást, viszont lesz olyan, aki nem fogja használni. És ha sok olyan felhasználó lesz, aki nem használja az alkalmazást, akkor a tesztelő és a teljes fejlesztőcsapat is rossz munkát végzett. Ideértve természetesen a rendszerszervezőt, projektvezetőt, stb.

A szoftvertesztelőnek tehát precízen össze kell állítani egy listát, ami tartalmazza az átadási / élesbe állási követelményeket. Ezt adhatja a projekt vezetője is, származhat rendszer dokumentációból is, szerződésből. A lényeg, hogy meglegyen. Tételesen és értelmezhetően. Ennek a listának lehetnek funkcionális, performancia, design és egyéb elemei is.

3. Tesztelési forgatókönyv elkészítése

A tesztelési forgatókönyv tartalmazza a tesztelés előfeltételeit, a tesztelési környezet ismertetését, a leszállítandó tesztelési dokumentumokat, a tesztelés módját, továbbá a teszt eszközöket (tool-okat). Ezen felül a tesztelési tervet, jegyzőkönyvet és riport sablonokat.

Tesztelési környezet alatt értjük a szoftver és hardver környezetet, azok összetevőit. Ide tartoznak az elérési adatok is.

Leszállítandó tesztelési dokumentumok alatt a szerződésben rögzített tesztelési dokumentációt értjük, ennek hiányában azt a dokumentum szettet, amely a tesztelés sikerességét bizonyítja.

Szoftvertesztelő eszköz - Selenium - Bluebird blog

Tesztelés módja alapvetően lehet manuális és automatizált, de a tesztelési forgatókönyvben ezek megjelölése nem elegendő. Ide tartozik a tesztelés módjának pontos leírása is.

Teszt toolok alatt azokat a teszteszközöket értjük, amelyeket a tesztelés során használni fogunk. Elterjedt toolok manapság a Selenium, a Katalon Studio, a Silk Test, a TestComplete, a SoapUI, és a Ranorex.

A tesztelési forgatókönyv elkészítését tesztelő csapatok esetén gyakran a teszt menedzser végzi el és ebben definiálja a szoftvertesztelési feladatok erőforrás allokációját is.

4. Tesztek végrehajtása, eredmények elemzése

A szoftvertesztelő a teszt jegyzőkönyvben rögzített tesztesetek leteszteli, majd annak eredményét dokumentálja a teszt jegyzőkönyvben vagy tesztelési naplóban.

A teszt esetek előzetes tesztelése azért rendkívül fontos, mert a tervezetlen tesztelés nem szisztematikus ellenőrzést jelent, csak ide-oda csapkodást. Ezzel szemben az alaposan végiggondolt tesztesetek olyan tesztelést tesznek lehetővé, amelynek eredményeként a funkciók / tranzakciók döntő többsége tesztelés alá kerül. Ettől függetlenül a tesztelés során előjöhetnek újabb tesztesetek, amelyekkel a tesztelési forgatókönyvet a tesztelőnek bővítenie kell.

A tesztelés eredményét a szoftvertesztelőnek érthetően és egyértelműen kell rögzítenie, annak súlyosságával együtt (pl. blokkoló, kritikus, stb.)

A tesztelést követően a tesztelés eredményéről a tesztelő tájékoztatja akár a projektvezetőt, akár a fejlesztőket (attól függően, hogy milyen a projektszervezet kialakítása). Jó esetben a tesztelés során felmerült hibák azonnal javításra kerültek / ütemezésre kerül, hogy melyik release-ben lesz a hiba kijavítva.

5. Hibák javítása, újratesztelés

A tesztelés során felszínre került hibák javítását követően a hibák újratesztelését a szoftvertesztelőnek kell elvégeznie. Ez a tesztelés vonatkozhat kizárólag azokra a funkciókra / tranzakciókra, amelyek hibásan működtek és vonatkozhat az összes funkcióra egyaránt. A projektekben többnyire a kettő közötti scope-pal történik az újratesztelés. 

Tesztelés célja

A tesztelés célja alapvetően verifikáció vagy validálás lehet. Verifikáció esetén a cél a szoftverhibák feltárása, validálás esetén a cél a rendszer ügyfélnek történő megfelelésének vizsgálata.

Tesztelés típusai

A tesztelési feladat során - mint szoftvertesztelő - nagyon sokféle tesztelési feladattal találkozhatsz. Az alábbiakban megpróbálom csak a legfontosabbakat részletezni. Fontos, hogy egyes rendszerek esetében más és más tesztelés lehet a legfontosabb.

A szoftvertesztelő tesztelési feladatai nagyon szerteágazók lehetnek, lásd: 105 tesztelés típus

Legfontosabb tesztelés típusok véleményem szerint az alábbiak:

Unit teszt

Unit tesztelés alatt egy-egy szoftver alacsony szintű (kód) komponens vagy modul tesztelését értjük. Szoftver komponens lehet egy függvény vagy eljárás is. A unit tesztek elvégzése többnyire a fejlesztők által történik, hiszen ők rendelkeznek az adott unittal, osztállyal kapcsolatos legmélyebb ismeretekkel. 

Funkcionális tesztelés

A funkcionális tesztelés célja annak tesztelése, hogy az alkalmazás az üzleti követelményeknek megfelelően működik. A szoftvertesztelő funkciónként kell, hogy sorra vegye az alkalmazás funkcióit.

Integrációs teszt

Célja két vagy több rendszer/modul együttes működésének, integrációjának tesztelése. Tesztelés célja a rendszerek közötti működési hibák kiszűrése.

Terheléses teszt

Terheléses teszt alatt a szoftver terhelhetőségének tesztelését, illetve annak ellenőrzését értjük, hogy a szoftver megfelel-e a szerződésben megadott performancia követelményeknek.

Átadás-átvételi teszt

Végfelhasználóval közösen végzett teszt, amelynek célja a "hibamentes" átvétel biztosítása. Természetesen a valóságban hibamentes szoftverrel nem gyakran találkozunk. Fogalmazhatnánk úgy is, hogy "ismert hibáktól mentes" szoftver átadás-átvétele.

És egy érdekes tesztelés típus 

Majom tesztelés

A tesztelés célja teljesen random adatok megadása és funkciók indítása annak érdekében, hogy bebizonyosodjon, összeomlik-e a rendszer, ha összevissza kezdjük el használni.

Szoftvertesztelő - majom tesztelés

Az első ilyen majom tesztet tanulmányaim alatt kellett elszenvednie egy általam fejlesztett alkalmazásnak, aminek az elfogadása előtt tanárom nekiesett a szoftvernek és összevissza nyomogatta a billentyűzetet. Az alkalmazás összeomlott, mert numerikus mezőbe olyan karakterek kerültek, amelyekkel nem volt elvégezhető az előre definiált művelet. "Na, látja kolléga! Ez bizony nincs kész!" - és mennyire igaz volt ez utóbbi mondat!

Szoftvertesztelést támogató eszközök


"A Burp Suite a biztonsági szakemberek választása világszerte".

Nagyszerű eszköz a rendszerbiztonság tesztelésére


"Az Apache JMeter™ alkalmazás egy nyílt forráskódú szoftver, egy 100%-ban tiszta Java alkalmazás, amelyet funkcionális viselkedés tesztelésére és teljesítmény mérésére terveztek. Eredetileg webes alkalmazások tesztelésére tervezték, de azóta más tesztfunkciókra is kiterjesztették."

Alkalmazás teljesítményének tesztelésére kiváló.


"Hibakeresés és hibaelhárítás újragondolva."

A Fiddler a számítógép és a webszerver vagy -kiszolgálók közötti HTTP- és HTTPS-forgalom naplózására, vizsgálatára és módosítására szolgál.


"Ez a bővítmény segít a webhelyek tökéletes képpontpontosságú fejlesztésében!"

Pixel pontosságú megjelenítés tesztelésére alkalmazható eszköz.


Postman + Jenkins + Newman

API tesztelésének automatizálására szolgál.

Forrás: Valentin Despa


"A Charles egy HTTP-proxy / HTTP-figyelő / Reverse Proxy, amely lehetővé teszi a fejlesztők számára, hogy megtekintsék a számítógépük és az internet közötti összes HTTP- és SSL- / HTTPS-forgalmat."


"A Yandex.Tank egy bővíthető terheléstesztelő segédprogram unix rendszerek számára. Python nyelven íródott, és különböző terhelésgenerátor modulokat használ különböző nyelveken."


Mobilalkalmazások tesztelésének automatizálására használható.


Szoftvertesztelő munkakörök

Teszt menedzser

A teszt menedzser / test lead felelős a tesztelési feladatok megszervezéséért, a teszteléshez szükséges feltételek megteremtéséért, a tesztelés lebonyolításáért, a tesztelő csapat vezetéséért és a külső kommunikációért.

Manuális tesztelő

A manuális tesztelő feladata az alkalmazással kapcsolatos dokumentációk megismerése, tesztesetek definiálása, a tesztek manuális végrehajtása, teszt dokumentációk elkészítése, tesztelés eredményének riportozása.

Automata tesztelő

Az automata (vagy automatizált) tesztelő feladatai megegyeznek a manuális tesztelő feladataival, azzal a különbséggel, hogy az automatizált tesztelés esetén a tesztelés szoftverek segítségével (teszt scriptek, külső tesztelő szoftverek) történik.

Ajánlatkérés

HA IT FEJVADÁSZ CÉGRE VAN SZÜKSÉGED

Szoftvertesztelő fizetések

Nézzük, hogyan alakul egy-egy szoftvertesztelő bruttó bére! (Aktualitás: 2021. 11. hónap)

Szoftvertesztelő fizetés - Bluebird
IT állások és IT projektek a Bluebirdnél
Tesztelők keresése sikerdíj alapon - Bluebird
Szoftvertesztelés - Bluebird

Ha a blogbejegyzéseinkről mindig elsőként akarsz értesülni, kövess minket LinkedInen és Facebookon is!