Web and Mobile App Testing Automation: How to Choose the Most Suitable Open Source Tools?

Geautomatiseerd softwaretesten is belangrijk voor softwareproducten om kernfunctionaliteit te verifiëren, regressietests uit te voeren en te helpen bij het uitvoeren van veel tests in een korte periode.

Al heel lang is het testen van webgebaseerde gebruikersinterfaces en mobiele applicaties uitdagender, en de beschikbare tools zijn meestal commercieel. Dit is veranderd doordat webgebaseerde applicaties groeien, en er zijn diverse tools die ons hierbij kunnen helpen, waaronder open source tools. Aan de andere kant groeien native en hybride mobiele applicaties ook. Dus web- en mobiele applicaties zijn tegenwoordig een trend.

Overigens wordt vaak gedacht dat testautomatisering een duur en moeilijk proces is. Maar dat is niet zo, zeker niet als u stap voor stap te werk gaat. En waarschijnlijk is het kiezen van een tool stack een van de moeilijkste beslissingen die u moet nemen voordat u met geautomatiseerde tests begint. Welke tool zal meer geschikt, gratis te gebruiken en makkelijk te leren zijn voor uw project?

Het antwoord op deze vraag vereist de overweging van vele factoren:

  • welk type testen moet geautomatiseerd worden;
  • welk type applicaties moet geautomatiseerd worden;
  • welke taal zal gebruikt worden voor de tests;
  • welke extra tools zullen gebruikt worden of welke tools zijn reeds gebruikt;

Natuurlijk moet u ook rekening houden met de omgeving en technologie die u op uw project gebruikt en wie in het team de vaardigheden heeft voor de ene of andere tool.
Deze tutorial zal u helpen om de bovenstaande vragen te beantwoorden.

Dus, laten we beginnen!

De eerste factor.
Welk type functioneel testen moet geautomatiseerd worden.

Bij het kiezen van een tool voor geautomatiseerde webtests is het belangrijk om uw testbehoeften duidelijk te identificeren. Ten eerste zal de selectie altijd afhangen van het doel van uw testen. Laten we de onderstaande tabel bekijken.

Type testen Doel
Functionaliteit testen als een echte gebruiker U moet een systeem op de frontend testen via de GUI, zoals een echte gebruiker, om te controleren of alle functies goed werken.
User interface testen U moet testen of er wijzigingen in de UI zijn opgetreden.
Functionele testen vanuit de backend (API testen) U moet de functies van uw applicatie testen via REST- of SOAP-API’s.

Functionele tests zijn het meest voorkomend. Maar de laatste jaren winnen de tests van de grafische interface aan populariteit, omdat het belangrijk is om niet alleen resultaten te krijgen over de functionele staat van het product, maar ook over de integriteit en aanpasbaarheid van de interface.

Bovendien werken alle webapplicaties volgens het principe van client-server. Het is dus erg belangrijk om ze eerst te controleren op het request-response niveau, dat gebaseerd is op REST- en SOAP-API’s, omdat API-niveau tests minder tijd kosten om te schrijven dan GUI-niveau tests. Om dit beter te begrijpen, kijkt u naar de onderstaande afbeelding.

Hoe snel open source tools te kiezen voor geautomatiseerde tests van web- en mobiele applicaties

De tweede factor.
Welk type applicaties moet geautomatiseerd worden.

Het volgende punt waar u doorheen moet is het definiëren van de typen applicaties waarvoor geautomatiseerde tests zullen worden geschreven.

Applicatietype Uitleg
Webapplicatie Deze applicaties werken in een webbrowser, of met andere woorden, het is een website.
Android applicatie Mobiele applicaties geïnstalleerd vanuit Google Play Market.
iOS applicatie Mobiele applicaties geïnstalleerd vanuit de App Store.
Windows Phone applicatie Mobiele applicaties geïnstalleerd vanuit de Microsoft Store.

Al dit soort applicaties vereisen een individuele aanpak bij de keuze van de automatiseringstool.

Webgebaseerde applicaties moeten worden geautomatiseerd met Selenium WebDriver omdat het een native interface biedt voor het werken met een browser, net als een echte gebruiker. WebDriver wordt ondersteund door alle meest gebruikte browsers, zoals Mozilla Firefox, Google Chrome, Opera, Internet Explorer, Edge, Safari.

Mobiele native applicaties op Android, iOS, Windows Phone vereisen het gebruik van Appium met Selenium WebDriver voor het automatiseren van applicaties geïnstalleerd vanuit winkels. Appium biedt een interface voor het werken met een apparaat als een echte gebruiker via het WebDriver-protocol en maakt het mogelijk om acties zoals aanraken, vegen, enz. uit te voeren.

De derde factor.
Welke taal zal gebruikt worden voor de tests.

Het kiezen van een programmeertaal voor geautomatiseerde tests mag niet lichtvaardig worden genomen. Als u net begint, zal het overwegen en bespreken hiervan u helpen voor te sorteren op groter succes.

Een geweldige manier om te bepalen welke taal u moet kiezen, is door vier eenvoudige vragen te beantwoorden.

  • Wie zal eigenaar zijn van de geautomatiseerde tests?
  • Welke taal kent u goed, of welke taal wilt u graag leren?
  • Welke taal wordt gebruikt door uw ontwikkelingsteam?
  • Wat zijn de eisen van de klant met betrekking tot de taal?

Natuurlijk zullen er ook andere, situatieafhankelijke niet-technische factoren zijn.

Als u nog geen talen heeft gebruikt, of als u besluit naar een andere taal te gaan, zal de volgende statistische grafiek (van Spectrum.IEEE) zeer nuttig zijn. Deze toont de top programmeertalen voor 2017. U kunt de statistieken aanpassen aan uw vereisten door de bovenstaande link te volgen.

Top 10 programmeertalen in 2017

De vierde factor.
Welke extra tools zullen gebruikt worden of welke tools zijn reeds gebruikt.

Meestal worden op projecten verschillende tools gebruikt voor een succesvol ontwikkelingsproces. Deze omvatten tools voor:

  • levenscyclusbeheer van applicaties;
  • implementatie en bouw van een project;
  • continue integratieproces.

Hier is een lijst met enkele van de tools:

Tool Voorbeelden
Levenscyclusbeheertools Jira, Redmine, Mantis, Bugzilla
Build tools Maven, ANT, Gradle
Continue integratie/implementatie tools Hudson, Jenkins, TeamCity

De verscheidenheid aan deze instrumenten moet in aanmerking worden genomen wanneer u besluit om geautomatiseerde tests op uw project te integreren.

Samenvattend, om de definitieve beslissing te nemen, moet u:

  • een vergadering hebben met het projectteam en de te implementeren vereisten bespreken;
  • diepere informatie verkrijgen over de gebruikte tools in het ontwikkelingsproces;
  • alle vereisten en informatie vergelijken met bestaande tools en een keuze maken;
  • de gekozen tool testen en de resultaten analyseren;
  • uw toolstack corrigeren door het toevoegen of verwijderen van enkele bibliotheken of gerelateerde tools.

Om de keuze te vereenvoudigen, hebben we de eenvoudige gids voorbereid die u zeker naar een meer geschikte tool voor uw project zal leiden en u zal helpen op het juiste spoor te komen.

Hoe tools te kiezen voor testautomatisering - Infographic door QAwerk