Automatizáljunk sikeresen!
Miért van szükség az automatizálásra? Milyen szintű automatizálásban gondolkodjunk? Milyen téveszmék vannak az automatizált tesztelésben? Milyen céljaink lehetnek, amikor tesztszkripteket kezdünk el gyártani? Ilyen kérdésekre kaphatjuk meg a választ, és természetesen arra, hogyan mérhető az automatizálás sikeressége.
Részt vettem Dorothy Graham STARCanada konzultációján, amelyet a “Sikeres tesztautomatizálás” címmel tartott, ahol nagyon sokat jegyzeteltem. Készítettem belőle egy kivonatot, mely talán többeknek hasznos lehet.
A tesztelők által használt automata eszközök csak 19%-a termel hasznot. Tesztelés és automatizálás két különböző feladat, melyet különböző szakemberek végeznek.
Aki automatizálni akar, az a következő egyszerű problémákkal találja szembe magát: Automatizáljon, vagy manuálisan teszteljen? A határidő sokszor arra kényszerítheti a tesztelőt, hogy elodázza az automatizálást.
- Automatizálók: Olyan személyek, akik megfelelő programozói szakértelemmel készítik az automata teszteket.
- Tesztelők: Olyan emberek, akik teszteket írnak, eldöntik, melyik tesztet kell automatizálni és futtatják a megírt teszteket (akár automatikusan, akár manuálisan). “Néhány tesztelő inkább szereti elrontani a dolgokat, mint megcsinálni.”
- Az automatizálás olyan, mintha a tesztelő szolgája lenne. Olyan feladatokat old meg, amely unalmas és monoton, így a tesztelő azzal foglalkozhat, amivel a legjobban szeretne.
Egy “pilot” projekt a legjobb arra, hogy kipróbáljuk az automatizált tesztelést. Ha nincs más, akkor nevezzünk ki valamit “pilot”-nak csak úgy erőből. Állítsunk egyszerű, teljesíthető célokat magunk elé és pár hét/hónap múlva mérlegeljük őket. Ha a céljainkat nem értük el, akkor próbáljuk meg ismét, de egyszerűbb célokat tűzzünk ki magunk elé.Milyen hibás tesztautomatizálási indokok lehetnek?
- Az automatizálással csökkentjük a felhasználók által talált hibák számát – A felfedező teszteléssel sokkal jobb hatásfokkal találjuk meg a hibákat.
- Gyorsabb tesztelés – Az automatizálás nagyon sokszor lassabb tesztelést fog eredményezni, amennyiben kiszámoljuk, hogy mennyi időt töltöttünk el a tesztek írásával, karbantartásával és az eredmények kiértékelésével. Az egyedüli olyan aktivitás, amely felgyorsul az csakis a tesztek futtatása.
- Tökéletesítjük a tesztelésünket – A tesztelési folyamatot addig kell tökéletesítenünk, amíg az automatizálást el nem kezdjük. Ha nem így teszünk, akkor nagyon gyenge automatizálást tudunk csak véghezvinni.
- Csökken a teszttervezés ideje és költsége – Az automatizálás éppen növelni fogja ezeket!
- Futtassuk a regressziós tesztjeinket esténként és hétvégenként – Esténként és hétvégenként dolgozni akarsz? Ha a tesztek valami oknál fogva megállnak, az első gondolatod az lesz, hogy még egyszer ilyet nem fogsz csinálni.
- Automatizálj mindent! – Miért nincs automatizálva az, amit automatizálni akarsz?
- Gyorsabb hibakeresés – Nem az automatizálás fogja megtalálni a hibát, hanem a teszt. Az a teszt ami nem automatizálva fut majd manuálisan fog futni.
Egy dolog van, amit igazán tetszett a fenti példákban, hogy Dorothy segített elkülöníteni a tesztelési tevékenységet, az automatizálási tevékenységtől. Ez segít elkerülni azokat az általános hibákat, melyek elterelik figyelmünket a tesztelésről.Pozitív tesztautomatizálási célok:
- Megszabadítjuk a tesztelőket az ismétlődő tesztfuttatásoktól és többet foglalkozhatnak a tesztek megtervezésével illetve a felfedezői tesztekkel.
- Jobban ismételhető regressziós teszteket kapunk – A gépek nagyon jó ellenőrzők. Ezek az ellenőrzések figyelmeztetnek téged, ha valami váratlan dolog változik.
- Építs automatizált keretrendszert, mert ezáltal megkönnyíted az új tesztek írását és a meglévők karbantartását.
- Amikor csak lehetséges futtasd le a lehető legtöbb használható tesztet azokon gépeken, amelynek nincs kihasználva az erőforrása. – Sokkal jobb ötlet, mint hétvégenként dolgozni.
- Azokat a teszteket automatizáld, amelyek a tesztelők szerint a leghasznosabbak, legértékesebbek – Sokkal többet nyersz vele, mint ha mindent automatizálnál.
Az automatizálás mérése meglehetősen egyszerű. De következetesen használni a méréseket már nem annyira:
- Hányszor futott le a teszt?
- A tesztek milyen sokáig futottak?
- Mekkora humán erőt kellett bevonni a tesztek futtatásába és az eredmények kiértékelésébe?
- Mekkora humán erőt kellet bevonni az automata tesztek tervezésébe?
- Hány automata teszt van?
EMTE (Equivalent Manual Test Effort – Azonos mértékű manuális tesztelői erőforrás) – Mekkora erőforrást kellene bevetni, ha manuálisan akarnánk futtatni az automatikus tesztjeinket. Például, ha a teszteket két ember 1-1 órán keresztül tudja lefuttatni, akkor az EMTE mértéke 2 óra.
Hol lehet ezt a mérést használni? A legegyszerűbben ezt a mérőszámot a menedzsment meggyőzésére használhatjuk. A vezetőség ezt érti meg a legkönnyebben. Hol élhetünk vissza ezzel a méréssel? Ha felfújjuk az EMTE értékét azáltal, hogy az automata tesztek újrafuttatásait is beleszámoljuk, az félreérthető lehet. Az automata tesztek minden nap lefutnak, de új build nem minden nap kerül ki a tesztkörnyezetre, tehát az EMTE-hez nem adhatjuk hozzá az összes értéket.
Hol lehet még visszaélni a mérőszámmal? Ha eltitkolod azt a tényt, hogy az emberek sokkal jobban képesek a hibák felfedezésére és dokumentálására, mint a gépek. Vagy amikor az automata teszteket nem tudja ember futtatni és a manuális teszteket nem tudja gép futtatni.
ROI (Return On Investment – Megtérülés) – Dorothy megkérdezte a hallgatóságot, hogy mekkora megtérülést értek el eddig az automata tesztekkel? Hat válaszadó mindegyike elhibázta; mindenki az automatizálás különböző hasznát kezdte el magyarázni ahelyett, hogy a megtérülés értékét mondta volna. A ROI egy szám, remélhetőleg egy pozitív szám.ROI = (haszon – költség) / költség
A trükk, hogy a tesztelői erőforrás idejét kellene pénzben kifejezni. A ROI nem tudja mérni az olyan dolgokat, mint “gyorsabb futtatás”, “rövidebb piacra dobás”, “teszt lefedettség”.
- Hol lehet ezt a mérőszámot használni? A vezetőség nem fogja elhinni azt, hogy az automatizálás hasznos dolog egészen addig, amíg el nem mondod nekik. A megtérülés mértéke az egyetlen olyan szám, amit hallani akarnak majd.
- Hol nem fogod tudni használni a ROI-t? A megtérülés nem olyan fontos, amikor például a sikerességet akarod mérni. “Az automatizálás lehetőséget ad a sikerre és nem egy költségcsökkentő eszköz.” – mondta Yoram Mizrachi. “A céged különböző jogászokkal szerződik anélkül, hogy kiszámolná azok megtérüléseit.”
Az automatizálásnál nem lehet “belecsapni a lecsóba”, számos szokványos út van, amely a kevéssé automatizált megoldástól a jól automatizált megközelítésig visz. (pl.: a felvétel és visszajátszástól el tudunk jutni a keyword driven keretrendszerig)
Testkörnyezet architektúra – Megfontoltan kell elkülöníteni az automata teszteket és az eszközöket, vagyis ne kösd magad az teszteszközhöz.
Ne csak a tesztekre, hanem az elő- és utómunkákra is használj automatizmust azért, hogy beállítsd a tesztek környezetét. Jegyezd meg, hogy minden automatizálható, kivételt csak az képez, hogy kiválaszd mely tesztek fussanak és hogy feldolgozd az eredményeket.Az összehasonlítás lehet konkrét, vagy sokrétű.
- Konkrét összehasonlítás – amikor az automatikus teszt csak egy dolgot ellenőriz.
- Sokrétű összehasonlítás – amikor az automatikus teszt egyszerre több dolgot is ellenőriz.
Amennyiben a sokrétű összehasonlítások átfedik egymást, lehet, hogy 4 teszted is hibás lesz ahelyett, hogy a konkrét tesztjeid közül 3 jó teszted lenne és 1 hibás. Ez az egyik legérdekesebb megállapítás, amit egy automatizáló szakember tehet.
Azt gondolom, hogy ez választja el az amatőrt a szakembertől. Köszönöm Dorothy!
Szerző: Eric Jacobson
A szerző
-
Egy tipikus napom: felkelek, tornázok, rádiót hallgatok, nem iszok kávét (mert teljesen
kiütne), szoftvert tesztelek vagy másoknak segítek tesztelni, ebédelek és játszom a fejlesztőkkel, még több hibát veszek fel, sétálok a gyerekkel és
a kutyával, élvezem a vacsorát Melissával, Netflix videót nézek, megtervezem a hétvégi lógást Josie-val, és talán lesz időm egy kis famegmunkálási projektre.
Eric blogjában számos teszteléssel foglalkozó cikket találsz:
http://www. testthisblog.com/
Cikkek
- 2013.04.23MódszertanAutomatizáljunk sikeresen!