“Kill it before it lays eggs!”
Folytatjuk tesztelésről szóló blogsorozatunkat. Korábban már beszéltünk nektek arról, hogy miért is kell tesztelni, illetve, hogy mit nyerünk a teszteléssel (Tesztelésről-I.rész). Mostani postunkban megtudhatjátok, hogy hogyan érdemes tesztelni, egészen az automatizált teszteléstől a funkcionális tesztelésig.
A tesztelésről – II. rész
Tesztelni, de hogy is kellene?
Ha legalább gondolkodunk a tesztelésen, akkor három út áll előttünk:
- A tesztek teljes hiánya
- Manuális tesztelés
- Automatizált tesztelés
Aki elolvasta korábbi postunkat, az már sejtheti, hogy az első megoldást semmiképpen nem fogjuk javasolni. Hiába tűnik ez a legolcsóbbnak, hamar megdrágul mert tesztek teljes hiányával készített kódbázis még rövidtávon sem fenntartható.
Sokkal jobb megoldásnak tűnik a manuális tesztelés, mely eleinte nem is kimondottan drága. Az idő múlásával viszont az igénybevett munkaórák miatt egyre költségesebbé válik. Ráadásul minél több van belőle, annál nehezebb és fáradtságosabb minden eshetőséget lefedni és fejben tartani.
Az automatizált tesztek eleinte nagyobb befektetéssel járnak, hiszen fejlesztők munkáját vesszük igénybe, akik létrehozzák a tesztelési környezetet már a projekt kezdeti szakaszában. Az idő előrehaladtával és a rutinnal ez azonban egyre olcsóbbá válik.
Fontos azonban megjegyezni, hogy az automatizált és manuális tesztekre is szükség van párhuzamosan, ha a legjobb eredményt szeretnénk elérni.
Az automatizált tesztelésről
Kezdjük is rögtön a tévhitekkel!
Sokan úgy vannak vele, hogy az automatizált tesztekre valamilyen csodaszerként tekintenek, mely önmagában megold minden felmerülő problémát. Mivel az automatizált teszt is csak egy szoftver, ezt nem várhatjuk tőle, óvakodjunk ezért attól, hogy abban bízunk, hogy minden hibánkat kijavítja!
Az előző bekezdésben írtuk pont, hogy az automatizált tesztek igénylik eleinte a legnagyobb befektetést munkaórákban, ezért rövidtávon hiába várnánk tőle, hogy csökkenti a ráfordításokat. Ez az előny csak a későbbiekben, közép-, és hosszútávon fog érvényesülni.
Sok esetben a tesztek használata sem bizonyul olyan egyszerűnek, mint amilyennek első ránézésre tűnik, időt kell szánni a tesztelési környezet kialakítására, rutinra van szükség a gyors és magabiztos használathoz.
Mivel minden tesztet nem lehet teljesen automatizálni, ezért az automatikus tesztek sem válthatják ki teljesen a manuális tesztelést. Legjobban akkor járunk tehát nem manuális tesztelésben, vagy automatizált tesztelésben, hanem manuális-, ÉS automatizált tesztelésben gondolkozzunk!
Tesztpiramis
Martin Fowler tesztpiramisa mutatja a legegyszerűbben a tesztelés három fázisát, az
- egységek
- funkcionalitás és a
- user experience
tesztelést.
Unit testing
Az egységek tesztelésekor (unit testing) a kódnak csupán egy kis részét vetjük alá vizsgálatnak. Ehhez nincs szükség semmilyen külső összeköttetésre, adatbázisra, szerverre, vagy grafikus környezetre. Ezeknek a gyors, legtöbb esetben pár másodpercben lefutó teszteknek csupán annak a néhány kódsornak az ellenőrzése a célja, melyek a szoftver “alkatrészeinek” tekinthetőek. Ezek a unit tesztek gyorsaságukból és egyszerűségükből adódóan meglehetősen alacsony ráfordítást igényelnek.
Funkcionális tesztelés
A funkcionális tesztelés célja az, hogy megtudjuk, hogy a korábban letesztelt egységek összeköttetése, együttes működése megfelelően sikerült-e. A funkcionális tesztelés kiterjedhet néhány modul, vagy akár az egész szoftver működésére. A unit tesztekhez képest a funkcionális tesztek lefutása lassabb, és több erőforrást is igényel.
UI tesztelés
A harmadik szint a UI tesztelés mely az előző kettővel ellentétben maximum csak részben automatizálható, ebből kifolyólag lassabb és költségigényesebb is. Ráadásul az UI túlmutat az informatikán, így e cikk keretein is.
A tesztpiramis mindegyik elemére szükségünk van a fejlesztés során, ezért célszerű már a kezdeti fázisban meghatározni, hogy mit, hogyan fogunk végrehajtani, hogy tisztában legyünk az arányokkal és a költségekkel.
Következő blogpostunkban a tesztek csoportosításáról, illetve a tesztelési technológiákról mesélünk majd nektek.
A tesztelésről szóló blogsorozatot írta: Nagy Szilveszter
Látogassatok el rendszeresen a join.stylers.hu oldalra, és kövessetek minket a Facebookon és Instagramon is!