Software voor Mobile Test Automation was nog niet zo lang geleden schaars. Zelfs it’ers die begrepen wat geautomatiseerd testen ze kon brengen, hadden moeite de juiste tooling te vinden. De tijden zijn echter veranderd: ze kunnen nu kiezen uit een veelheid aan commerciële en opensourceoplossingen. Een specifieke, maar technisch gezien interessante toepassing is het geautomatiseerd testen van mobiele applicaties op basis van ocr-tekstherkenning.
Slechts weinig it-managers realiseren zich dat ocr (optical character recognition), tot nu toe vooral toegepast bij het scannen in kantooromgevingen, ook een groot potentieel toepassingsgebied heeft binnen het Mobile Test Automation-scenario. Maar het bereik is groter. Door de opkomst van smart-devices, zoals wearables en augmented en virtual reality apparaten, ontstaan nieuwe toepassingsmogelijkheden. In die gevallen is het geautomatiseerde testen en kwaliteitsborging op basis van ocr-tekstherkenning de oplossing bij uitstek. Last but not least, de leveranciers zitten volgens Gartner niet stil. Onder het motto ‘Automate the automation’ investeren ze fors in machine learning, artificial intelligence en cognitieve, zelflerende tools die zelfstandig, zonder menselijke tussenkomst, testscenario’s kunnen opzetten en onderhouden.
Device-agnostisch
Ocr-tekstherkenning maakt het leven gemakkelijker, omdat de testcases eenvoudig gemodificeerd kunnen worden door de desbetreffende ‘strings’ aan te passen aan de bijbehorende user interface (ui)-wijziging. Op deze manier wordt aanmerkelijk minder tijd gespendeerd aan het schrijven van een script, omdat er geen gedetailleerde objecteigenschappen hoeven te worden geëxtraheerd. Dit is een tijdrovende klus, die ook nog kan mislukken als de ontwikkelaar niet de juiste id’s aan elk element heeft gekoppeld.
De aanpak met ocr-tekstherkenning is ook ‘device-agnostisch’ en hetzelfde script kan worden gebruikt bij alle apparaten op hetzelfde platform. Afhankelijk van de overeenkomsten tussen de applicaties, kunnen de scripts ook worden hergebruikt voor verschillende platforms.
Hobbelige weg
De weg naar een succesvolle implementatie van geautomatiseerd testen is hobbelig. Het zijn juist de voortdurende applicatiewijzigingen – nota bene het uitgangspunt van de Agile Software Development Lifecycle! – die een groot obstakel vormen voor geautomatiseerd testen. De testscripts, de Automation Test Cases, moeten continu updates ondergaan om in de pas te blijven met de laatste versie van de applicatie. Maar tegen de tijd dat die update plaatsvindt, is de applicatie meestal alweer gewijzigd. Kortom: applicaties veranderen voortdurend, de tijd om quality assurance (qa) uit te voeren is extreem kort, en testautomatisering met de bestaande methoden en middelen bieden nog steeds geen adequaat antwoord. Daar ligt een technisch probleem aan ten grondslag.
Om het eenvoudig uit te leggen: de moderne Mobile Test Automation is gebaseerd op objecteigenschappen. Voor elk element in de user interface (ui) is er een bijbehorende object id, die het mogelijk maakt om direct interactie te hebben via de UI. Omdat objecteigenschappen gebaseerd zijn op een broncode, werken dezelfde objecten op verschillende apparaten met dezelfde code. Daardoor zijn testscripts ‘device-agnostic’, het maakt ze niet uit om welk apparaat het gaat. Maar het maakt ze wel platformspecifiek; de scripts draaien alleen op het besturingssysteem waarvoor ze geschreven zijn.
ls de ‘wireframes’ van de ui eenmaal beschikbaar zijn, kunnen er direct testcases worden ontwikkeld, dus voordat de applicatie beschikbaar is voor het QA-team. Hierdoor kan de ontwikkeling van testcases parallel verlopen met de agile sprints. Dat klinkt heel mooi, maar bij object-gebaseerde validatie doen zich twee grote problemen voor: de voortdurend veranderende ui en het gebrek aan goed gedefinieerde ‘object property identifiers’ die gemapped zijn aan elk ui-element.
Testers die ook kunnen coderen zullen weinig moeite hebben met het tweede punt. Het is vooral de voortdurend veranderende ui die mobility qa-teams de meeste kopzorgen bezorgt. Maar ook dat probleem is te tackelen, namelijk door gebruik te maken van een al lang bestaande en bekende technologie: optical character recognition.
Customer experience is heilig
Een ding is zeker, de customer experience is heilig. Dat zorgt ervoor dat quality assurance (qa) en in het voetspoor security assurance (sa) belangrijke selectiecriteria zijn. Het achteraf beproeven van ontwikkelde applicaties maakt geleidelijk plaats voor het tijdens de rit testen van elk nieuw brokje functionaliteit. Steeds vaker wordt gebruikgemaakt van geautomatiseerd testen in een veelheid aan vormen en toepassingen. Denk aan black-box, grey-box en white-box testing, die de performance, veiligheid en de kwaliteit van elke softwarerelease moeten borgen.
Een magisch kwadrant is mooi, maar it’ers moeten uiteindelijk zelf bepalen welke oplossing de snelste resultaten laat zien en direct return on investment oplevert. Er zijn echter nog meer keuzes te maken: moet het testen gebeuren op de bestaande apparatuur, on premise, in de cloud of op emulators? En hoe kun je geautomatiseerd testen verder naar voren halen in de softwareontwikkelingscyclus, zodat het testen meer in lijn is met agile-methoden? 55 procent van de Gartner-respondenten geeft immers aan dat zij Agile werken en het DevOps-concept gebruiken in het kader van hun testprocedures. Ocr kan hieraan een belangrijke bijdrage leveren.
Conclusie
Een op ocr-tekstherkenning gebaseerde oplossing voor Mobile Test Automation leidt tot een verschuiving naar voren (‘early automation’) in de softwareontwikkelingscyclus. Bovendien verkort het de testtijd in sprints tot enkele uren. Nog belangrijker echter is, dat dit wordt bereikt door het schrijven van scripts, waarvoor er geen programmeervaardigheden vereist zijn, zoals bij de huidige testcases. En het helpt het qa-team het hoofd te bieden aan de uitdaging om testcases synchroon te houden met de altijd veranderende user interface.
Arnoud Hablous, cyber security verkoopdirecteur continentaal Europa Wipro Technologies