På kort tid er en lille aarhusiansk startup-virksomhed vokset fra to til otte personer, blevet opkøbt af amerikanske Xamarin og er ved at etablere sig som virksomheden, seriøse mobiludviklere går til, når de skal have testet deres mobil-apps.
Jonas Maturana Larsen, medstifter af virksomheden Lesspainful bag det århusianske mobiltest-eventyr, fortæller Prosabladet om ingredienserne til et forretningsområde, der blandt andet består af inspiration fra Behaviour Driven Development, Cucumber og det egenudviklede Calabash-værktøj.
Fra Enterprise Java til mobile apps
Sammen med de to andre medstiftere af Lesspainful, Karl Krukow og Erik Mejer Hansen, arbejdede Jonas Maturana Larsen hos Trifork. Via et stort Enterprise Java-projekt kom han for første gang i berøring med BDD og værktøjet Cucumber. Unit test var en naturlig del projektets agile udviklingsmetode, hvilket Jonas bestemt synes, er en god ide, men han så samtidig muligheden for at opnå et mere helhedsorienteret syn på systemet ved at anvende BDD og Cucumber.
– Unit test har meget veldefinerede snitflader, og de enkelte units kan virke helt perfekt, uden at systemet nødvendigvis opfylder brugernes forventninger til systemets opførsel, forklarer Jonas.
Det er her, Cucumber og det tilhørende domænesprog Gherkin kommer til undsætning.
Gherkin anvendes til at beskrive systemets funktionalitet, og da Gherkin minder meget om naturligt engelsk, kan brugere og forretningsfolk umiddelbart forstå, hvad systemet forventes at gøre. Samtidigt er Gherkin tilstrækkeligt formaliseret, så det kan fungere som input til de automatiserede tests, som Cucumber-værktøjet udfører.
Android-fragmentering i skyen
Kimen til at anvende Cucumber blev lagt med det projekt, og da Jonas efterfølgende kom på et mobil-app-udviklingsprojekt, foldede styrken ved Cucumber sig rigtigt ud for den aarhusianske udvikler.
– I modsætning til Enterprise Java-systemer er der ikke så meget forretningslogik i mobile apps, så der er ikke behov for så mange unit tests, men der er mange brugergrænseflade-relaterede features, der skal testes, siger Jonas.
Den slags features handler om forventet opførsel, hvilket passer perfekt til Cucumber, så da udviklingen af den mobile app kom i gang, havde Jonas Cucumber og tilhørende Gherkin-scripts med i den agile værktøjskasse.
Et af succeskriterierne for den mobile app var, at der skulle være en god brugeroplevelse på mange forskellige typer af mobiltelefoner. Mange mobiludviklere kæmper med det problem. Hvordan sikres det, at den nyudviklede app kan køre på forskellige mobiltyper og altid give en fornuftig brugeroplevelse?
Her kunne Cucumber og Gherkin også hjælpe.
Ved at anvende Cucumber og beskrive app-funktionaliteten i Gherkin var det muligt at genanvende tests på tværs af platforme.
Jonas og hans kollegaer Erik Mejer Hansen og Karl Krukow gik i gang med at bygge en cloud-baseret testservice, hvor man kunne uploade sin app og tilhørende Gherkins og så få testet funktionaliteten på en række forskellige mobiltelefoner.
Ud af arbejdet med testservicen kom et egentligt testværktøj, som blev navngivet efter calabash - en grøntsag fra agurkefamilien, der på dansk kendes som kalabas eller flaskegræskar.
Kend dine begrænsninger
Da den agile guru Dan North blev inspireret til at videreudvikle Test-Driven-Development til Behaviour-Driven Development, var det blandt andet på baggrund af udvikleres besvær med at definere unit tests: Hvor skal vi starte, hvad skal testes? Hvor detaljerede tests skal vi have?
Dan Norths løsning var at se på forretningsværdi. Test det, der giver forretningsmæssig værdi.
En tilsvarende tilgang lægger Jonas Maturana Larsen og Calabash for dagen.
Det er muligt at lave meget detaljerede tests, men det er bedst at have et vist abstraktionsniveau og fokusere på det væsentlige i app'en.
– Man skal ikke lave for detaljerede tests som test af baggrundsfarve eller fonttype, medmindre det er vigtig. Det er vigtigt at vælge det rigtige detaljeniveau, anbefaler Jonas Maturana Larsen.