Android APP Testing Tutorial med Automation Framework
Hvorfor Android Testing?
Android er det stรธrste operativsystemet i verden. Samtidig, Android er fragmentert. det er tonnevis av enheter og Android versjoner som appen din mรฅ vรฆre kompatibel med.
Det spiller ingen rolle hvor mye tid du investerer i design og implementering, feil er uunngรฅelige, og feil vil dukke opp.
Android Teststrategi
En korrekt android-teststrategi bรธr inkludere fรธlgende
- Enhetstest
- Integrasjonstest
- Operanasjonal test
- Systemtest
Enhetstester
Enhetstester inkluderer sett med ett eller flere programmer som er designet for รฅ verifisere en atomenhet av kildekode, for eksempel en metode eller en klasse.
Android plattformen kommer forhรฅndsintegrert Junite 3.0 rammeverk. Det er รฅpen kildekode-rammeverk for automatisering Enhetstesting. Android Testing Framework er et kraftig verktรธy for utviklere for รฅ skrive det effektive enhetstestprogrammet.
.png)
Et tillegg til Unit Testing er User Interface (UI) tester. Disse testene er relatert til brukergrensesnittkomponentene til mรฅlapplikasjonen din. UI-tester sikrer at applikasjonen din returnerer riktig UI-utdata som svar pรฅ rekkefรธlgen av brukerhandlinger pรฅ enheten.

Den vanlige mรฅten รฅ utfรธre UI-tester pรฅ enheten er Android Instrumentleverandรธrer . Men dette har ytelsesproblemer. Et av de beste verktรธyene รฅ utfรธre UI-testing pรฅ Android is Robotium.
Integrasjonstester
In Integrasjonstesting, alle enhetstestede moduler, er kombinert og verifisert. I Android, involverer integrasjonstester ofte รฅ sjekke integrasjon medAndroid komponenter som Tjenestetesting, Aktivitetstesting, Innholdsleverandรธrtesting, etc

Det er mange testrammer som brukes til รฅ utfรธre integrasjonstest for Android som Troyd, Robolectric, Robotium.
Operanasjonale prรธver
- Operasjonelle kalles ogsรฅ funksjonelle tester eller aksepterte tester. De er tester pรฅ hรธyt nivรฅ designet for รฅ kontrollere fullstendigheten og riktigheten av sรธknaden.
- In Android, FitNesse er รฅpen kildekode-rammeverk som gjรธr det enkelt รฅ gjennomfรธre driftstester for mรฅlapplikasjon.
Systemtester
In Systemtesting systemet testes som en helhet og samspillet mellom komponentene, programvare og maskinvare kontrolleres.
In Android, Systemtesting inkluderer normalt
- GUI-tester
- Brukervennlighetstester
- Ytelsestester
- Stresstester
I listen ovenfor, Ytelsestesting fรฅr mer fokus. Du kan bruke verktรธy som Tracanmeldelse รฅ gjennomfรธre ytelsestest pรฅ Android .Dette verktรธyet kan hjelpe deg med รฅ feilsรธke applikasjonen og profilere ytelsen.
Automatisert ANDROID-TESTING
Siden Android er fragmentert, er testing pรฅ en rekke enheter nรธdvendig. Men dette vil ogsรฅ koste deg penger. Automatisert Android Testing kan bidra til รฅ redusere kostnadene
Fordeler med automatisert Android-testing
- Reduser tid for gjennomfรธring av testsaker
- รk produktiviteten i utviklingsprosessen din
- Tidlig feildeteksjon, spar kostnad pรฅ vedlikehold av programvare
- Finn og fiks feilene raskt ved implementering
- Sikre kvaliteten pรฅ programvaren
Vi vil studere fรธlgende 2 rammeverk
- Android Testramme
- Rammeverk for roboelektrisk testing
Android testramme
Et av standard testrammeverk for Android programmet er Android testramme. Det er et kraftig og brukervennlig testrammeverk som er godt integrert med Android SDK-verktรธy.
.png)
- Sรธknadspakke er mรฅlapplikasjonen din som mรฅ testes
- InstrumentationTestRunner er den Testsak lรธper som utfรธrer testcase pรฅ mรฅlapplikasjonen. Det inkluderer:
2) Testverktรธy: Et SDK-verktรธy for byggetest. De er integrert i Eclipse IDE eller kjรธr som kommandolinje.
2b) MonkeyRunner: Et verktรธy som gir APIer for รฅ skrive program som kontrollerer en Android enhet eller emulator utenfor Android kode.
- Testpakke er organisert i testprosjekter. Denne pakken fรธlger navnekonvensjonen. Hvis applikasjonen som testes har pakkenavnet ยซcom.mydomain.myappยป, bรธr testpakken vรฆre ยซcom.mydomain.myapp.testยป. Testpakken inkluderer 2 objekter som nedenfor:
3a) Testtilfelleklasser: inkluderer testmetoder som skal utfรธres pรฅ mรฅlapplikasjonen.
3b) Mock-objekter: inkluderer mock-data som vil bli brukt som eksempelinndata for testtilfeller.
Android Test Case-klasser

- TestCase inkluderer JUnit metoder for รฅ kjรธre JUnit test
- TestSuite brukes til รฅ kjรธre sett med testtilfeller
- InstrumentationTestSuite er en TestSuite som injiserer instrumentering i InstrumentationTestCase fรธr du kjรธrer dem.
- InstrumentationTestRunner er testcase-lรธperen som utfรธrer testcase pรฅ mรฅlapplikasjonen.
- AndroidTestCase strekker JUnit TestCase. Den inneholder metoder for รฅ fรฅ tilgang til ressurser som aktivitetskontekst.
- ApplicationTestCase verifiserer applikasjonsklassene i et kontrollert miljรธ.
- InstrumentationTestCase verifiserer en bestemt funksjon eller oppfรธrsel til mรฅlapplikasjonen, for eksempel verifiser UI-utdata for applikasjonen.
- ActivityTestCase er en basisklasse som stรธtter testing av applikasjonsaktivitetene.
- ProviderTestCase er en klasse for testing av enkelt innholdsleverandรธr.
- ServiceTestCase brukes til รฅ teste serviceklasser i testmiljรธ. Den stรธtter ogsรฅ tjenestens livssyklus.
- SingeLauchActivityTestCase brukes til รฅ teste enkeltaktivitet med en InstrumentationTestCase.
- ActivityUnitTestCase brukes til รฅ teste enkelt isolert aktivitet.
- ActivityInstrumentationTestCase2 utvider JUnit TestCase klasse. Den kobler deg til mรฅlapplikasjonen med instrumentering. Med denne klassen kan du fรฅ tilgang til applikasjonens GUI-komponent og sende UI-hendelse (tastetrykk eller berรธringshendelse) til UI.
Nedenfor er et eksempel pรฅ ActivityInstrumentationTestCase. Den verifiserer brukergrensesnittet til kalkulatorapplikasjonen, kontroller riktigheten av utdataene til brukergrensesnittet.

Rammeverk for roboelektrisk testing
Testing ved hjelp av Android Det er vanskelig รฅ teste rammeverk med enhet eller emulator. Bygge- og kjรธretest er treg og krever mye utviklingsinnsats. For รฅ fikse dette problemet, er det et annet valg โ Robolektrisk testramme.
Roboelektrisk rammeverk lar deg lรธpe Android tester direkte pรฅ JVM uten behovet for en enhet eller en emulator.
.png)
Klasser for roboelektriske testtilfeller
.png)
- Som vist ovenfor kan Robolectric utfรธre fรธlgende handlinger:
- Registrer deg og lag en Shadow-klasse
- Avskjรฆre lasting av Android klasse
- Bruker javaassist for รฅ overstyre metodelegemene til Android klasse
- Bind Shadow-objektet til Android klasse
- Dette gjรธr at koden som testes kan kjรธres uten Android miljรธ.
Andre tester rammeverk
I tillegg til testrammeverk som ble nevnt ovenfor, er det mange andre testrammeverk som:
- Android Junit Rapport, en tilpasset instrumenteringstestlรธper for Android som genererer XML-rapporter for integrasjon med andre verktรธy.
- uttrykke
- Appium
Myter om Android Testing
Mange bedrifter utvikler Android Testing strategier som er basert pรฅ vanlige misoppfatninger. Denne delen undersรธker noen fรฅ populรฆre myter og realiteter Android testing.
Myte #1: Alle Android enhetene er de samme ... test pรฅ emulatorer er nok
La oss starte med et enkelt eksempel. En applikasjon fungerer perfekt pรฅ emulatorer, men pรฅ noen ekte enheter krasjer den under kjรธring

Emulatorer er ikke nok for mobiltesting. Du mรฅ teste appen din pรฅ ekte enheter.
Myte #2: Det er nok รฅ teste pรฅ noen vanlige enheter
- Pรฅ forskjellige enheter ser applikasjonen din annerledes ut fordi forskjellige enheter har forskjellig maskinvare, skjermstรธrrelser, minne osv. Du mรฅ teste applikasjonen din pรฅ forskjellige enheter, OS-versjoner, operatรธrnettverk og plasseringer.
Myte#3:Utforskende testing rett fรธr lansering er nok
- Generelt i all testing designer vi testsakene og utfรธrer dem. Men i utforskende testing, testdesign og utfรธrelse vil alt gjรธres sammen.
- I utforskende testing er det ingen plan og ingen forberedelse, da vil testeren gjรธre tester han รธnsker รฅ gjรธre. Noen funksjoner vil bli testet gjentatte ganger, mens noen funksjoner ikke vil bli testet helt.
Myte#4:Hvis det er noen feil i programmet, vil brukerne forstรฅ
- Hvis applikasjonen ikke fungerer og har feil, avinstallerer brukere appen din
- Kvalitetsproblemer er den fรธrste รฅrsaken til dรฅrlige anmeldelser Google Spill. Det pรฅvirker omdรธmmet ditt, og du mister kundenes tillit.
Derfor er det viktig รฅ ha en riktig android-teststrategi pรฅ plass
Beste praksis i Android Testing
- Applikasjonsutviklere bรธr lage testsakene samtidig nรฅr de skriver koden
- Alle testtilfeller bรธr lagres i versjonskontroll sammen med kildekode
- Bruk kontinuerlig integrasjon og kjรธr tester hver gang koden endres
- Unngรฅ รฅ bruke emulatorer og rotfestede enheter


.png)
.png)