android app testing tutorial
Basiskennisverzameling voordat Android-apps worden getest:
Zoals de titel al suggereert, zullen we in deze tutorial meer bespreken over het Android-testproces.
Maar voordat ik inga op de verschillende details van het Android-testproces, wil ik een paar vragen stellen.
heb je een mobiele telefoon?
Nu, hoe dom is die vraag! Natuurlijk doen we dat allemaal. Iedereen heeft een mobiele telefoon. Mobiele telefoons zijn tegenwoordig een basisbehoefte van het menselijk bestaan geworden.
Kun je me vertellen welk besturingssysteem op je telefoon staat?
Als je je telefoon tussen 2014-16 hebt gekocht, is de kans dat je telefoon op Android draait ongeveer 80-85%.
Wat je leert:
- Groei van Android
- Introductie van Android-applicatie
- ‘Te doen’ lijst vóór het begin van het testproces
- Typen testen voor mobiele apps
- Praktische tips voor het testen van Android-apps
- Android-testframework
- Gevolgtrekking
- Aanbevolen literatuur
Groei van Android
De onderstaande statistieken beschrijven op een begrijpelijke manier meer over de groei van Android.
- In 2009 was Android een nieuwkomer en vormde slechts 3,9% van de totale markt.
- De belangrijkste bijdrage was toen het Symbian OS met maar liefst 47% (Gouden dagen van Nokia).
- Die trend begon in de loop van de jaren te veranderen en Android heeft nu 85,2% bereikt in 2016.
afbeeldingsbron
- De bovenstaande nummers zijn alleen voor mobiele telefoons. Het Android-besturingssysteem heeft ook een grote impact op de tabletindustrie. Van 4,4% marktaandeel in 2011 tot 35,7% in 2015 spreekt over de interesse die mensen hebben ontwikkeld voor Android-aangedreven tablets.
afbeeldingsbron
- De Google Play Store heeft ook een snelle toename van downloadaantallen gezien. Van 2010 tot 2016 zijn de cijfers gestegen van 1 miljard downloads per maand naar 65 miljard downloads per maand.
- De app-downloads worden ook sterk beïnvloed door de lage prijzen (Gem: 0,06 $ / app) van de Android-apps in vergelijking met de iOS-apps.
Waarom heb ik je zojuist door al die cijfers geleid?
Het was alleen maar om u bewust te maken van hoe enorm Android is gegroeid, hoe lastig de app-ontwikkeling is geworden en hoeveel markt dit besturingssysteem het afgelopen decennium heeft veroverd.
Elke website, Windows-app en Mac-app heeft nu een Android-broer of zus. Iedereen gaat voor het ontwikkelen van een app voor Android zodra ze van plan zijn om een website / windows app te ontwikkelen. Het is nu nodig geworden, omdat de klanten de afgelopen jaren ook de voorkeur geven aan mobiele apps boven computerapps of websites.
Enkele van de apps die heel vaak worden gebruikt in onze dagelijkse activiteiten zijn Flipkart, Amazon, Zomato, DeliveryHero, Citi Bank, TrueCaller, Facebook, Gmail, Whatsapp enz.
De reden voor de sterke stijging van de Android-markt is dat:
- Het is een open systeem, daarom is het gemakkelijk aan te passen, gemakkelijk te leren en zelfs app-ontwikkeling is eenvoudiger.
- Het publiceren van een app in Google Play Store is vrij eenvoudig in vergelijking met de andere Play Stores.
- Er zijn verschillende fabrikanten op de markt voor Android-telefoons zoals Sony, HTC, Samsung, Motorola etc.
- Er zijn een groot aantal functies op Android zoals DualSIM, microSD, verwijderbare batterij enz., Wat een bijkomend voordeel is.
- De prijzen van de Android-telefoons zijn niet te hoog en het is betaalbaar enz.
Naast de ontwikkelingsvereiste van de Android-apps, is er ook een stijging in de behoefte aan testers die ervaring hebben met het testen van Android.
Als tester moet je veel huiswerk maken voordat je begint met het testen van een door Android gebouwde applicatie. Het eerste dat u moet doen, is het besturingssysteem en zijn geschiedenis bestuderen. Als u het besturingssysteem niet kent, kunt u de app niet testen met de verschillende versies. De basisfunctionaliteit van de OS-versie, de UI, GPS, ondersteuning van het netwerktype, batterijduur etc., zijn enkele van de belangrijke facetten die van invloed zijn op een app.
Bij Android is het niet alleen het besturingssysteem, maar ook de overvloed aan apparaten die moeten worden onderzocht.
Er is een groot aantal apparaten op de markt verkrijgbaar, dus voordat u uw testbed finaliseert en invriest, moet u het apparaataandeel van de doelgroep weten. De verschillende apparaten die verschillende functies bieden, zoals DualSIM, dubbele camera, schermresolutie, thema's enz., Hebben invloed op een app en ze moeten worden getest.
Daarom is het erg belangrijk voor een QA om uitgebreide kennis te vergaren over het volledige Android-ecosysteem.
Introductie van Android-applicatie
Er zijn verschillende testmethoden die worden gevolgd door het succesvol certificeren van een Android-app.
Een typische Android-app-architectuur lijkt op het onderstaande diagram:
hoe bin-bestanden op pc te openen
Op basis van bovenstaande figuur zijn er 2 mogelijkheden voor een app:
1) Mobiele app voor de webapplicatie: Het kan zijn dat de klant een webapp heeft en hiervoor een mobiele app wil maken. Amazon, Jabong, Myntra enz. Deden hetzelfde, en op het moment dat mobiele apps een hausse in de markt begonnen te creëren, realiseerden deze commerciële bedrijven zich dat mensen binnenkort zullen overstappen van webapps naar mobiele apps.
2) Mobiele app als een afzonderlijke zakelijke entiteit: Ik heb een vergelijkbare logistieke app getest, om de omzet te vergroten, heeft het een aparte app voor de chauffeurs gemaakt om een vlotte levering te vergemakkelijken en het papierwerk te verwijderen.
De chauffeurs hadden de app op hun telefoons geïnstalleerd om de zending naar verschillende leveringsfasen en hun bijbehorende status te verplaatsen, en updates over de bezorging werden weerspiegeld in hun bestaande webapp.
Andere dergelijke Voorbeelden waar de mobiele app een aparte entiteit is, zijn WhatsApp, apps voor het volgen van gezondheid zoals S Health enz.
‘Te doen’ lijst vóór het begin van het testproces
In tegenstelling tot een normale testcyclus, zijn er voor de allereerste release van een mobiele app een paar items die wat extra onderzoek en planning nodig hebben voor een succesvolle levering van de app.
Hieronder volgen enkele van de activiteiten die belangrijk zijn voor een QA om uit te voeren voordat het daadwerkelijke testen begint:
# 1) Onderzoek naar besturingssysteem en apparaten:
Naast het begrijpen van de app-vereisten, moet u ook de impact van de verschillende OS-versies en de apparaatmodellen begrijpen. U moet testcases of scenario's maken voor de OS- en apparaatmodellen.
#twee) Proefbank:
In tegenstelling tot desktop-, web- en iOS-apps is het maken van een testbed voor Android-apps erg lastig vanwege het open Android-systeem. De beslissing moet worden genomen na overleg met de BA, ontwikkelaars en de producteigenaren om de doelgroep te vinden.
# 3) Testplan:
Aangezien het de eerste release is, moet er een goedgekeurd plan met een goedgekeurde testbank, testtypes enz. Aanwezig zijn. Als er een aparte tijd nodig is voor het onderzoeken van functionaliteiten of bedrijfsregels of als het testen lastig wordt etc., dan moet alles in het plan worden behandeld.
# 4) Automatiseringstools:
De automatiseringstools die nodig zijn voor mobiele apps verschillen sterk van die van desktop- of webapps. Daarom moet u wellicht extra tijd en moeite besteden om de tool te leren. De tijd en moeite die hiervoor nodig zijn, moeten worden goedgekeurd door de producteigenaar of klant.
# 5) Testtechnieken of -methoden:
In tegenstelling tot de conventionele tests die we normaal doen, zijn er maar weinig tests die heel specifiek zijn voor mobiele apps. Namelijk veldtest, GPS-test, beeldopnametest, enz. Deze moeten in de testcases worden gedocumenteerd, samen met hoe deze typen zullen worden getest.
Typen testen voor mobiele apps
De volgende soorten tests worden uitgevoerd om een Android-applicatie te certificeren:
1) Functioneel testen:
Testen wordt normaal gesproken bereikt door door de gebruikersinterface gestarte teststromen. Niet alleen de flow van een use case wordt getoetst, maar ook de verschillende business rules worden getoetst. Testen gebeurt door de vereisten te certificeren. d.w.z. of de applicatie werkt op basis van de vereisten.
Laten we de Voorbeeld van de Zomato-app.
Wanneer u de app start, wordt op basis van de locatie de lijst met restaurants weergegeven. Nu moet u als QA de lijst met restaurants testen.
Dit is het testen van functionaliteit en hier test je functionaliteiten zoals:
- Controleer of de restaurantkaarten worden getoond t.o.v. de locatie.
- Controleer of de weergegeven restaurants zich binnen het opgegeven bereik (km) van de locatie bevinden.
- Controleer of het aantal beoordelingen voor elke kaart overeenkomt met de gegeven beoordelingen.
- Controleer of het toevoegen van een nieuw restaurant voor een locatie in de lijst voorkomt.
- Controleer of de restaurants worden vermeld op basis van de filterregel van Zomato etc.
2) Android UI-testen:
Dit is een gebruikersgerichte test van de applicatie. Hierbij worden in deze testfase zaken als zichtbaarheid van tekst in verschillende schermen van de app, interactieve berichten, uitlijning van data, look en feel van de app voor verschillende schermen, grootte van velden etc. getest.
Voor hetzelfde bovenstaande voorbeeld van Zomato zouden de UI-tests zijn:
- Controleer of de kaarten correct worden weergegeven in overeenstemming met de grootte van het mobiele scherm.
- Controleer of de afbeelding van het restaurant wordt weergegeven zoals verwacht.
- Controleer of de kaartgegevens, de beoordeling van het restaurant, het type keuken, het adres enz. Correct worden weergegeven.
- Controleer of het scrollen van de lijst foutloos verloopt en of de kaarten niet verkeerd uitgelijnd worden weergegeven wanneer een lange lijst met kaarten wordt gescrolld enz.
3) Compatibiliteitstesten:
Deze tests worden meestal uitgevoerd in de vorm van twee matrices van OS Vs-app en Device model Vs-app. Gewoonlijk wordt een lijst met ondersteunde besturingssystemen (en soms apparaten) verstrekt door de eigenaar van het product of de klant.
De noodzaak voor deze tests is:
- Wanneer rekening wordt gehouden met een besturingssysteem als Android, worden 7 basisversies gevonden die het aantal patchreleases / EP's verwaarlozen.
- Kun je raden welke soorten Android-apparaten momenteel over de hele wereld werken? 1000? 2000? Mis! Het juiste antwoord is 24.000. Er zijn 24.000 soorten unieke Android-apparaten die aanwezig en actief zijn in de wereld.
- Met variaties zoals deze spelen compatibiliteitstests een cruciale rol bij het certificeren van een Android-app.
- We moeten niet alleen het besturingssysteem en het type apparaat valideren, maar ook enkele andere functies valideren die onder compatibiliteitstests vallen. De kenmerken zijn:
- Scherm grootte
- Schermresolutie
- Netwerkconnectiviteit
4) Interface testen:
Met andere woorden, het wordt ook wel integratietest genoemd. Dit testen wordt gedaan nadat alle modules van de app volledig zijn ontwikkeld, afzonderlijk zijn getest en alle bugs zijn geverifieerd.
Interfacetests omvatten tests zoals een complete end-to-end-test van de app, interactie met andere apps zoals kaarten, sociale apps enz., Gebruik van microfoon om tekst in te voeren, gebruik van camera om een streepjescode te scannen of om een foto te maken enz.
Nogmaals gezien Zomato, zouden de integratietests zijn als:
- Controleer of de gebruiker een tafel voor een restaurant kan reserveren.
- Controleer of de gebruiker het menu kan bekijken en online eten kan bestellen.
- Controleer of de gebruiker een PayTM-coupon kan gebruiken tijdens het bestellen van eten.
- Controleer of de gebruiker de locatie van het restaurant op Google Maps kan zien.
- Controleer of de gebruiker de telefoonkiezer kan openen en het restaurant kan bellen enz.
5) Netwerktesten:
De belangrijkste kenmerken van Network Testing zijn:
- De app moet met de tussenliggende dienst praten om het proces uit te voeren.
- Tijdens deze test wordt de vraag / reactie van / naar de dienst op verschillende condities getoetst.
- Deze test wordt voornamelijk gedaan om de responstijd te verifiëren waarin de activiteit wordt uitgevoerd, zoals het vernieuwen van gegevens na synchronisatie of het laden van gegevens na inloggen enz.
- Dit wordt gedaan voor zowel een sterke wifi-verbinding als het mobiele datanetwerk.
- Dit is een interne test.
6) Prestatietests:
De prestaties van de applicatie onder enkele merkwaardige omstandigheden worden gecontroleerd.
Die voorwaarden zijn onder meer:
- Weinig geheugen in het apparaat.
- De batterij is extreem laag.
- Slechte / slechte netwerkontvangst.
Prestaties worden in principe getest vanaf 2 uiteinden: het einde van de applicatie en het einde van de applicatieserver
7) Installatie testen:
Er zijn twee soorten apps op een Android-apparaat, d.w.z. vooraf geïnstalleerde applicaties en de applicaties die later door de gebruiker worden geïnstalleerd.
Voor beide bovenstaande moeten installatietests worden uitgevoerd. Dit om een vlotte installatie van de applicatie te garanderen zonder te eindigen in fouten, gedeeltelijke installatie etc.
Upgrade- en verwijderingstests worden uitgevoerd als onderdeel van installatietests.
8) Beveiligingstests:
Privacy en veiligheid zijn de 2 belangrijkste vereisten van een app. In het bankwezen, de zorg, wordt dit echter de eerste vereiste.
In deze fase zal het testen van de datastroom op encryptie- en decoderingsmechanisme worden getest. Ook in deze fase wordt de toegang tot opgeslagen data getest.
9) Veldtesten:
Veldtesten worden specifiek voor het mobiele datanetwerk gedaan en niet in-house maar door erop uit te gaan en de app te gebruiken als een normale gebruiker. Dit testen wordt ‘pas’ gedaan nadat de hele app is ontwikkeld, getest en teruggedraaid (voor bugs en testgevallen).
Het wordt in feite gedaan om het gedrag van de app te verifiëren wanneer de telefoon een 2G- of 3G-verbinding heeft. Veldtesten controleren of de app crasht bij een trage netwerkverbinding of dat het te lang duurt om de informatie te laden.
U kunt meer lezen over veldtesten in ons artikel 'Belang en noodzaak van praktijktesten voor mobiele applicaties'
welke is de beste youtube-downloader?
10) Testen onderbreken:
Dit type testen wordt ook wel offline scenarioverificatie genoemd. Condities waarbij de communicatie in het midden breekt, worden offline condities genoemd.
Enkele van de voorwaarden waaronder onderbrekingen van een netwerk kunnen worden getest, zijn als volgt:
- Datakabel verwijderen tijdens het gegevensoverdrachtproces.
- Netwerkstoring tijdens de transactieboekingsfase.
- Netwerkherstel na een storing.
- Batterij verwijderen of aan / uit zetten wanneer het zich in de transactiefase bevindt.
Praktische tips voor het testen van Android-apps
Er zijn bepaalde factoren waarmee u rekening moet houden bij het opstellen van een strategie voor het testen van mobiele apps.
Zij zijn:
1) Apparaatselectie:
- Dit is een van de meest kritieke stappen voordat u het testproces van Android-applicaties start.
- Bepaal met welke apparaten rekening moet worden gehouden bij het testproces.
- De selectie moet worden gedaan om het aantal beoogde klanten te maximaliseren.
- Factoren zoals OS-versie, schermresoluties en vormfactoren (tablet of smartphones) spelen een cruciale rol in de selectiefase.
- Indien nodig kan zelfs rekening worden gehouden met de hulp van emulators.
- Maar emulators mogen het testproces van fysieke apparaten niet vervangen.
- Apparaatemulators zijn kostenbesparend en komen goed van pas tijdens de eerste ontwikkelingsfase.
- Maar om de real-life scenario's te testen, zijn fysieke apparaten de must. Zowel emulators als fysieke apparaten moeten op een gebalanceerde manier worden gebruikt voor een optimaal resultaat.
2) Bètatesten van de applicatie:
- Bètatests zijn zeer effectief bij het testen met de echte gebruikers, echte apparaten, echte netwerken en applicaties die in een brede geografie zijn geïnstalleerd.
- Dit geeft een duidelijk beeld van de netwerkdichtheid, netwerkvariaties (Wi-Fi, 4G, 3G en 2G) en de impact op de applicatie.
- Bètatests in de echte wereld zijn uniek in hun soort en kunnen niet worden gerepliceerd in een gecontroleerde omgeving.
3) Connectiviteit:
- Normaal gesproken zijn Android-applicaties verbonden met internet voor verschillende vereisten.
- De connectiviteit op verschillende apparaten speelt een sleutelrol bij het opstellen van de strategie.
- Meestal wordt de connectiviteit gecontroleerd door simulatiesoftware die helpt bij het reguleren van de netwerksnelheid, latentie en beperkte connectiviteit tijdens het testen.
- Er wordt gezegd dat testen onder echte netwerkverbindingen altijd aan te raden is voor realtime resultaten / gegevens.
4) Handmatig of geautomatiseerd testen:
- Hoewel automatiseringstests bij de eerste run ruimschoots tijd in beslag nemen, is het handig wanneer de tests moeten worden herhaald. Dit vermindert ook de totale tijdspanne van testen tijdens de verschillende ontwikkelingsfasen.
- Android-automatisering moet worden geknuppeld met handmatige tests wanneer de herhaling van regressietests hoog is in de ontwikkelingsfase van de applicatie, compatibiliteitstests moeten worden uitgevoerd voor dezelfde applicatie op verschillende OS-versies, controlepunten voor achterwaartse compatibiliteit enz.
Android-testframework
Er zijn een handvol Android-testframeworks beschikbaar.
In deze tutorial gaan we 3 verschillende soorten meest gebruikte frameworks bespreken:
- Robotium-testkader
- Robo-elektrisch testraamwerk
- Appium-testraamwerk
1) Robotium-testkader:
- Dit framework wordt gebruikt om geavanceerde en robuuste black box-testcases voor Android-applicaties te schrijven.
- Het ondersteunt zowel native als hybride clients.
- Met dit raamwerk kunnen functies, systeemtestgevallen en gebruikersacceptatietestgevallen worden geschreven.
- Robotium ondersteunt Android 1.6 en hoger en ook ondersteuning voor dialogen, menu's, activiteiten enz.
- Dit framework verwerkt automatisch meerdere Android-activiteiten.
- Een handvol methoden wordt gegeven als onderdeel van Robotium voor interactie met verschillende grafische componenten van de Android-applicatie. Sommigen van hen zijn zoals hieronder:
- ga terug();
- getButton ();
- isRadioButtonChecked ();
- searchText ('Gebruiker');
- klik op de knop ('Uitloggen');
2) Robo-elektrisch testkader:
- Dit framework helpt bij het testen van Android-applicaties op de JVM op basis van het JUnit4-framework.
- Het maakt gebruik van Android API.
- Dit helpt bij het schrijven van testcases en het uitvoeren ervan op de JVM.
- Hieronder worden alle klassen vervangen door iets dat schaduwobjecten wordt genoemd.
- Telkens wanneer een methode wordt geïmplementeerd, stuurt Robo-electric intern de oproep naar het schaduwobject.
- Op basis van de implementatie, als een methode wordt geïmplementeerd door een schaduwobject, wordt een waarde geretourneerd. Anders wordt NULL geretourneerd.
- Vanwege de schaduwobjecten en JVM wordt de uitvoering sneller.
3) Testraamwerk-tijdperken;
- Dit framework werkt voor native, hybride en mobiele webapps voor Android-apparaten.
- Appium is gratis te gebruiken.
- Single API werkt zowel voor Android als voor het iOS-platform. Dit is een van de frameworks die cross-platform testen ondersteunt.
- Het gebruikt Selenium Web-stuurprogramma om te communiceren met de Android-applicatie.
- Appium ondersteunt het schrijven van scripts met veel programmeertalen zoals Java, C #, Python, PHP, Ruby etc.
Gevolgtrekking
Automatisering van Android-applicaties kan naar behoefte met de hand worden geknuppeld. Als Androind Automation-tests echter aan de strategie worden toegevoegd, is het selecteren van de juiste tool een grote taak. Bij het selecteren van de automatiseringstool moet rekening worden gehouden met factoren zoals ondersteuning voor meerdere platforms, testworkflow, prijs van de tool, service / ondersteuning enz.
Er zijn verschillende uitdagingen bij het testen van Android-applicaties. Er zijn verschillende factoren waarmee rekening moet worden gehouden voordat het Android-testproces echt kan worden geïmplementeerd, maar eenmaal gedaan wordt dit een zeer interessante taak.
Bekijk onze aanstaande tutorial voor meer informatie Uitdagingen en oplossingen voor mobiel testen.
Aanbevolen literatuur
- 11 beste automatiseringstools voor het testen van Android-applicaties (Android App Testing Tools)
- Beta-testservices voor mobiele apps (bètatesttools voor iOS en Android)
- Maak Appium-tests voor een Android-app
- Functioneel testen versus niet-functioneel testen
- Tutorials voor het testen van mobiele apps (een complete gids met meer dan 30 tutorials)
- Beste softwaretesttools 2021 (QA Test Automation Tools)
- Alfatesten en bètatesten (een complete gids)
- Diepgaande Eclipse-zelfstudies voor beginners