Android Veiledning for apptesting med automatiseringsrammeverk
⚡ Smart oppsummering
Android Apptesting verifiserer en plattformuavhengig versjon på tvers av et fragmentert enhetslandskap, og kombinerer enhets-, integrasjons-, drifts- og systemkontroller med automatiseringsrammeverk som kjører enten på en enhet eller direkte på JVM-en.
Hvorfor Android Testing?
Android er det største operativsystemet i verden. Samtidig, Android er fragmentert: det finnes 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 bugs vil dukke opp.
Android Teststrategi
En korrekt Android Teststrategien bør inkludere følgende
- Enhetstest
- Integrasjonstest
- Operanasjonal test
- Systemtest
Enhetstester
Enhetstester er sett med programmer som er designet for å verifisere en atomær enhet av kildekode, for eksempel en metode eller en klasse.
Ocuco Android plattformen leveres forhåndsintegrert med JUnit 3.0-rammeverket. Det er et åpen kildekode-rammeverk for automatisering Enhetstesting, og det lar utviklere skrive effektive enhetstestprogrammer.
Et tillegg til enhetstesting er brukergrensesnitttester (UI-tester). De dekker UI-komponentene i målapplikasjonen din og sikrer at den returnerer riktig utdata for en sekvens av brukerhandlinger på enheten.
Den vanlige måten å utføre UI-tester på en enhet er Android Instrumentleverandører . Men dette har ytelsesproblemer. Et av de beste verktøyene å utføre UI-testing på Android is Robotium.
⚠️ Versjonsmerknad: JUnit 3 klasser som f.eks. InstrumentationTestCase ble avskrevet ved API 24; nåværende prosjekter bruker AndroidX-test, Espresso og UI Automator. Robotium har ikke hatt noen utgivelse siden 2016.
Integrasjonstester
In Integrasjonstesting, alle enhetstestede moduler kombineres og verifiseres. I Android Dette betyr ofte å sjekke integrasjon med komponenter som testing av tjenester, aktiviteter og innholdsleverandører.
Mange testrammeverk brukes til å utføre integrasjonstester for Android, som Troyd, Robolectric og Robotium.
Operanasjonale prøver
OperaFunksjonstester, også kalt funksjonstester eller akseptansetester, er tester på høyt nivå som kontrollerer applikasjonens fullstendighet og korrekthet.
In Android, FitNesse er et åpen kildekode-rammeverk som gjør det enkelt å kjøre operasjonelle tester mot målapplikasjonen.
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 å utføre ytelsestester på AndroidDette verktøyet kan hjelpe deg med å feilsøke applikasjonen din og profilere ytelsen. Trace-gjennomgangen er nå avskrevet til fordel for CPU-profiler.
Automatisert Android Testing
As Android er fragmentert, er testing på mange enheter nødvendig, og det koster penger. Automatisert Android Testing bidrar til å redusere disse kostnadene.
Fordeler med automatisering 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 applikasjonene er Android testrammeverket. Det er godt integrert med Android SDK-verktøy, og arkitekturen har tre deler.
- Applikasjonspakken er målapplikasjonen din som må testes.
- InstrumentationTestRunner er Testsak runner som kjører testtilfeller på målapplikasjonen. Den inkluderer:
- Testverktøy: SDK-verktøy for å bygge tester. De er integrert i IDE-et eller kjøres fra kommandolinjen.
- MonkeyRunner: Et verktøy som tilbyr API-er for å skrive programmer som kontrollerer en Android enhet eller emulator utenfor Android kode.
- Testpakken er organisert i testprosjekter og følger en navnekonvensjon. Hvis applikasjonen som testes har pakkenavnet «com.mydomain.myapp», skal testpakken være «com.mydomain.myapp.test». Testpakken inneholder to objekter:
- Testtilfelleklasser: inkludere testmetoder som skal kjøres på målapplikasjonen.
- Imitasjonsobjekter: inkludere 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 et sett med testtilfeller
- InstrumentationTestSuite er en TestSuite som injiserer Instrumentation i InstrumentationTestCase før den kjøres.
- InstrumentationTestRunner kjører testtilfeller på målapplikasjonen.
- AndroidTestCase utvider JUnit TestCase med metoder for å få tilgang til ressurser som aktivitetskontekst.
- ApplicationTestCase verifiserer applikasjonsklassene i et kontrollert miljø.
- InstrumentationTestCase verifiserer en bestemt funksjon eller oppførsel, for eksempel brukergrensesnittets utdata.
- ActivityTestCase er en basisklasse som støtter testing av applikasjonsaktiviteter.
- ProviderTestCase er en klasse for testing av én enkelt ContentProvider.
- ServiceTestCase tester tjenesteklasser i et testmiljø og støtter tjenestens livssyklus.
- SingleLaunchActivityTestCase brukes til å teste enkeltaktiviteter med en InstrumentationTestCase.
- AktivitetsenhetTesttilfelle brukes til å teste enkeltstående isolert aktivitet.
- AktivitetInstrumentTestCase2 utvider JUnit TestCase-klassen og kobler deg til målapplikasjonen med instrumentasjon, slik at du kan få tilgang til GUI-komponenter og sende UI-hendelser som tastetrykk eller berøringer.
Nedenfor er et eksempel på ActivityInstrumentationTestCase. Den verifiserer brukergrensesnittets drift av et Kalkulator-program og kontrollerer riktigheten av brukergrensesnittets utdata.
Rammeverk for roboelektrisk testing
Testing ved hjelp av Android Det er vanskelig å teste et rammeverk med en enhet eller emulator. Det er tregt å bygge og kjøre tester og krever mye utviklingsinnsats. For å løse dette problemet finnes det et annet alternativ: testrammeverket Robolectric.
Robolectric lar deg kjøre Android tester direkte på JVM-en uten behov for en enhet eller en emulator.
Klasser for roboelektriske testtilfeller
Robolectric kan utføre følgende handlinger:
- Registrer deg og lag en Shadow-klasse
- Avskjære lasting av Android klasse
- Bruker Javahjelpe til med å overstyre metodedelene til Android klasse
- Bind Shadow-objektet til Android klasse
Dette gjør at koden som testes kan kjøres uten en Android miljø.
Andre testrammeverk
Foruten testrammeverkene nevnt ovenfor, finnes det mange andre, som for eksempel:
- Android Junit Rapport, en tilpasset instrumenteringstestløper for Android som genererer XML-rapporter for integrasjon med andre verktøy.
- Espresso
- 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 nr. 1: Alle Android enhetene er de samme, så testing på emulatorer er nok
En applikasjon kan fungere perfekt på emulatorer, men krasje under kjøring på noen ekte enheter.
Emulatorer er ikke tilstrekkelig for mobiltesting. Du må teste appen din på ekte enheter.
Myte nr. 2: Det er nok å teste på noen vanlige enheter
Applikasjonen din ser forskjellig ut på tvers av enheter fordi maskinvare, skjermstørrelser og minne varierer. Test på en rekke enheter, OS-versjoner, operatørnettverk og steder.
Myte nr. 3: Utforskende testing rett før lansering er nok
- I de fleste testingstilfeller designer vi testtilfeller og utfører dem; i utforskende testing skjer design og utførelse sammen.
- Det er ingen plan eller forberedelse, så testeren kjører hvilke som helst tester han velger. Noen funksjoner testes gjentatte ganger, mens andre aldri testes.
Myte nr. 4: Hvis det er noen feil i applikasjonen, vil brukerne forstå
- Hvis applikasjonen ikke fungerer og har feil, avinstallerer brukerne appen din.
- Kvalitetsproblemer er den første årsaken til dårlige anmeldelser Google Spill, skade omdømmet ditt og miste kundenes tillit.
Derfor er det viktig å ha en skikkelig Android teststrategi på plass.
Beste praksis i Android Testing
- Applikasjonsutviklere bør lage testsakene samtidig når de skriver koden
- Alle testtilfeller skal lagres i versjonskontroll, sammen med kildekode
- Bruk kontinuerlig integrasjon og kjør tester hver gang koden endres
- Unngå å stole kun på emulatorer og rootede enheter; bekreft resultatene på ekte maskinvare med en inspektør som f.eks. uiautomatorviewer





