A sebesség növelése és a folyamatos fejlődés érdekében a fejlesztő csapatok dinamikusan növelik automatizálási erőfeszítéseiket az elmúlt években. Az automatizált tesztelés növeli a hatékonyságot a teljes szoftverfejlesztési életciklusban (SDLC), valamint elősegíti a szoftverek minőségének javítását és lerövidíti a kiadási ciklusokat. A tesztek automatizálása fontos mérföldkő egy vállalat életében, segíti a felhő alapú tervezés és telepítés elérését, ugyanakkor fejtörést is okoz a szoftvercsapatoknak.
Aki dolgozott már tipikus SDLC környezetben, találkozott már a „kész” definícióval. Ez jelöli azt a pontot, amikor az előre egyeztetett követelményrendszer teljesül és a projekt, vagy felhasználói történet befejezettnek tekinthető, és a következő fázisba léphetünk. Azoknak a fejlesztő csapatoknak, akik agilis módszertan szerint dolgoznak, szükségük van egy egyértelmű ellenőrzőlistára, ezzel biztosítva, hogy a tervezett tervvel összhangban maradjanak. Annak meghatározása, hogy mikor van „kész” a termék, egyedinek kell lennie, illeszkednie kell az adott történethez vagy funkcióhoz, ugyanakkor meg kell felelnie a szervezet tágabb üzleti céljainak, a biztonsági és megfelelőségi követelményeknek is.
Jellemzően a tesztautomatizálás nem tartozott hozzá a „kész” fogalmához.
Gyors és feszült sprintek
A sprintek során általában a gyorsaság és a kreativitás a legfontosabb. Mivel a tesztek automatizálása nem része a megbízásnak, gyakran elhalasztják a következő alkalomig, vagy a vége felé csatolják hozzá.
Mivel a szoftver ökoszisztémák egyre összetettebbé válnak, a csapatok, akik a folyamat végére halasztják a tesztautomatizálást, valójában problémákat halmoznak fel technikai adósság formájában. Ahogy a szoftverhibák esetében is rendszerint történik, a később felfedezett hibák kijavítása több időt vesz igénybe.
Nyilván, senki sem szeretne olyan problémákat felhalmozni, amelyek a jövőben visszaüthetnek rá, a technikai adósságok felhalmozódásának jó okai vannak. Technikai adósság akkor keletkezik, amikor a csapatok a gyorsabb megoldást választják, hogy egy eredményt a kívánt időn belül elérjenek. Az adósság egy későbbi időpontban jelentkezik, amikor a gyorsabb megoldást szükséges átdolgozni. Agilis módszertan esetén szinte elkerülhetetlen az adósság felhalmozódása, hiszen itt általában a sebességet helyezzük előtérbe a tökéletességgel szemben.
Az automatizálás beépítése a folyamat korábbi szakaszaiba segít elkerülni a problémák felhalmozódását, de a csapatok nehezen tudják megvalósítani. Az automatizálás a kódolással párhuzamosan végezve segíti a szervezeteket, hogy agilisak és hatékonyak maradjanak, valamint, ha jól kivitelezik segíti a csapatokat a jobb minőségű kód előállításában.
A tesztautomatizálás alkalmazása a projekt korábbi szakaszában
Az agilis megoldások előtérbe helyezték a tesztelést. Többé már nem egy olyan tevékenység, amelyet a fejlesztési folyamat végére csatolnak. Az agilis szakemberek már hozzászoktak ahhoz, hogy szorosan együttműködjenek a manuális tesztelés szakértőivel. Mivel a tesztelési folyamat egyre inkább profitál az automatizálásból, érdemes lenne a teszt automatizálást a fejlesztési életciklus korábbi szakaszába helyezni.
Azonban sok szoftvercsapatnak nincs teljes rálátása a Scrum sprinteken belüli automatizálásra. A sprinten belüli automatizálástól való vonakodás abból a feltételezésből ered, miszerint az automatizálást akkor érdemes elvégezni, amikor a termék már kész. Azonban az automatizálás bevonása segíthet a csapatoknak, hogy elkerüljék az ismétlődő folyamatokat, valamint a helytelen feltételezéseket, és ezáltal hatékonyabban teljesítsenek. Tehát az általános tévhittel ellentétben az automatizálás a fejlesztési folyamattal párhuzamosan is működhet.
Sprinten belüli automatizálás a gyakorlatban
Az Egyesült Államok egyik legnagyobb egészségügyi szolgáltatója és biztosítója, a digitális átalakulás részeként beépítette az in-sprint automatizálást. Ezt a megközelítést három fő platformjának kiépítéséhez használta: a gyógyszertári készletgazdálkodási platform, a különböző egészségügyi részlegek közötti információmegosztást lehetővé tevő együttműködési platform és a hangvezérelt beteg-orvos eszköz. E digitális megoldások tervezése, fejlesztése és szállítása lehetővé tette a szolgáltató számára, hogy gyors javulást érjen el a betegellátásban és az erőforrás-felhasználásban, beleértve a manuális folyamatok megszüntetésének köszönhető 20 százalékos költségmegtakarítást.
A szervezetek nagy beruházások nélkül is kihasználhatják a Shift Left tesztautomatizálás előnyeit, agilisabbá válhatnak a szoftvertervezésben és fejlesztésben, ha az automatizálás folyamatokba való korábbi beágyazására fókuszálnak. Így a „Kész” fogalmába a tesztautomatizálás is beépül.
- Automatizáló mérnökök bevonása
Hívjuk meg az automatizálási mérnököket a sprintekre, beszélgessünk velük, majd a megbeszélések alapján fogalmazzuk meg a „kész” definícióját, amely a teszt automatizálást az ellenőrző lista részeként tartalmazza. Az automatizálási mérnökök bevonása a projekt kezdetén elősegíti, hogy pontosabban megértsék a szervezet céljait, jövőbeni elképzeléseit. - Együttműködés, majd szétválás
Az automatizálási szakemberek bevonása a fejlesztési fázisba az első lépés, de ez nem garantálja a sikert. Ezután az automatizálási mérnökökön és a fejlesztőkön múlik, hogy megtalálják a kölcsönösen előnyös munkamódszert, ami azt jelenti, hogy beszélgetniük kell, meg kell érteniük egymás szakértelmét és prioritásait, meg kell határozniuk az elvárásokat, a határokat és a célokat. Amint elsajátították a szoros, együttműködő munka e formáját, a teszt-automatizálóknak elegendő információval kell rendelkezniük ahhoz, hogy akkor is nekilássanak, ha nem áll rendelkezésükre az összes kész kód.
Más szóval, a szoros együttműködés kezdetben párhuzamos munkafolyamatokat tesz lehetővé, mivel minden fél biztos abban, hogy mire törekszik. - A megfelelő emberek kiválasztása
Az automatizálási mérnökök munkájának csak egy része az automatizálás.
Ha maximalizálni akarjuk a hatásukat egy sprintkörnyezetben, fontos, hogy olyan embereket válasszunk ki, akik nemcsak az automatizálási részükben jeleskednek, hanem hatékonyan tudnak együttműködni, megértik a felhasználói történeteket, képesek meghallgatni és értelmezni a termékkövetelményeket, és kellően jártasak a tesztelésben és a kódírásban, hogy együtt tudjanak dolgozni a tesztelőkkel és fejlesztőkkel. - A megfelelő eszköz kiválasztása
Fontos, hogy az igényeinknek megfelelő eszközt válasszunk. Figyelembe kell vennünk például, hogy az összes érintett számára könnyen hozzáférhető legyen. Lehetővé kell tennie az automatizált tesztek rugalmas megírását, például a felhasználói felület szükséges bevonása nélkül. Illetve olyan adottságokkal kell rendelkeznie, amik hosszú távon támogatják a szervezet szállítási céljait. - Automatizálási prioritások egyensúlya
Sprintkörülmények között a résztvevőknek szelektálniuk kell, hogy mit építenek, tesztelnek és automatizálnak.
A stratégiai priorizálás ebben a forgatókönyvben nemcsak kívánatos, hanem szükséges is a siker biztosításához.
Az a tapasztalat, hogy a nagyvállalatoknál általánosan alkalmazott agilis módszertan ilyen fajta átalakításával az automatizálás sokkal korábban beépíthető a szoftver fejlesztési életciklusba. Ezt a változást mindenkinek meg kell szoknia, mind az automatizálási mérnököknek, mind a fejlesztőknek és a tesztelőknek, de ha egyszer bevezetésre kerül, hosszú távon többszörös előnyöket eredményez.
A tesztautomatizálás bizonyítottan jótékony hatású a szoftverfejlesztésben és -szállításban. Az automatizálás növelése javítja a tesztelés lefedettségét, jobb szoftvert eredményez, felgyorsítja a kiadási ciklusokat, valamint pénzt és időt takarít meg a teszteléssel.
A teszt-automatizálás korábbi beépítése a szoftverfejlesztési életciklusba sokkal hatékonyabb szoftverfejlesztést eredményez, és ráadásul viszonylag könnyen megvalósítható, a csapatok kialakításának és együttműködésének néhány módosításával.