Automatisera mellanlagret

Man inte bara bör automatisera test i agila projekt, man SKA automatisera. Frågan är om man ens kan kalla sig agil utan en genomtänkt automatiseringsstrategi. Märkligt nog är det fortfarande ganska sällsynt med automatiserad testning i IT-projekt. En anledning kan vara att det anses svårt och dyrt att skriva och underhålla testskript. Det kan i sin tur bero på att man väljer automation på fel nivå.

Automatiserade tester bör införas på flera nivåer. Det är relativt vanligt att automatisera enhetstester, dvs på den lägsta nivån närmast koden och programmeraren. Fördelen är uppenbar, programmeraren kan få snabb återkoppling och exakt utpekat var felet är. 

Inte sällan försöker man att automatisera på GUI-nivå, den översta nivån närmast användaren. Kanske känns det intuitivt enklast, men i praktiken ska man begränsa automatisering på den här nivå så mycket som möjligt. Dels tenderar det här lagret att förändra sig i hög grad, vilket riskerar att driva förvaltningsproblem av testskripten. Dels innebär det här sättet, som visserligen fungerar, redundant testning eftersom samma kod anropas om och om igen, vilket inte är särskilt effektivt. Även om man bör begränsa automatisering av det här lagret så ska man inte bortse från att det kan finnas tester som lämpar sig att automatisera även här. 

Mellanlagret (servicelagret, affärslagret) missar man ofta att automatisera. Eftersom det här lagret ligger på en högre abstraktionsnivå en lågnivålagret är det i regel mer meningsfullt att testa scenarier här. Man kommer aldrig att komma hela vägen genom att enbart skapa enhetstester (eller enbart GUI-tester). Mellanlagret är mer stabilt och enklare att hantera än GUI-lagret samtidigt som det finns förutsättningar för att skapa kompletta testsekvenser som testarna (inte utvecklarna) kan hantera. 

En bra strategi för automatisering i ett agilt projekt är att se till det totala automatiseringsbehovet, dvs att fundera över vad i respektive lager som bör automatiseras. En komplett automatiseringsstrategi innefattar tester i varje lager. Automatiseringspyramiden ovan kan ge ett riktmärke för ambitionen i respektive lager, ju större yta i pyrmaiden desto större andel av den totala automatiseringen för respektive lager.

Om författaren
Mats Wessberg är VD och medgrundare av Inceptive. Han har verkat i IT-branschen sedan 1995 och mestadels som konsult. Hans huvudsakliga expertis är inom Quality Management och utvecklingsmetodik.