Android APP -testausopastus automaatiokehyksellä

Sisällysluettelo:

Anonim

Miksi Android-testaus?

Android on maailman suurin käyttöjärjestelmä. Samalla Android on pirstoutunut. sovelluksia on oltava yhteensopivia laitteiden ja Android-versioiden kanssa.

Ei ole väliä kuinka paljon aikaa investoit suunnitteluun ja toteutukseen, virheet ovat väistämättömiä ja virheitä tulee näkyviin.

Tässä opetusohjelmassa opit-

  • Miksi Android-testaus?
  • Android-testausstrategia
    • Yksikkötestit
    • Integraatiotestit
    • Toimintakokeet
    • Järjestelmätestit
  • Automaattinen ANDROID-TESTAUS
    • Android-testauskehys
    • Robolektrinen testauskehys
  • Android-testauksen myytit
  • Android-testauksen parhaat käytännöt

Android-testausstrategia

Oikean Android-testausstrategian tulisi sisältää seuraava

  1. Yksikkötesti
  2. Integraatiotesti
  3. Toimintatesti
  4. Järjestelmän testi

Yksikkötestit

Yksikkötestit sisältävät yhden tai useamman ohjelman joukot, jotka on suunniteltu tarkistamaan lähdekoodin atomiyksikkö, kuten menetelmä tai luokka.

Android-alustalla on valmiiksi integroitu Junit 3.0 -kehys. Se on avoimen lähdekoodin kehys yksikkötestauksen automatisoimiseksi. Android Testing Framework on tehokas työkalu kehittäjille tehokkaan yksikötestiohjelman kirjoittamiseen.

Android- ja JUnit-kehysten integrointi

Yksikkötestaukseen on lisätty käyttöliittymän (UI) testit. Nämä testit liittyvät kohdesovelluksesi käyttöliittymäkomponentteihin. UI-testit varmistavat, että sovelluksesi palauttaa oikean käyttöliittymälähdön vastauksena laitteen käyttäjän toimintojen sarjaan.

Yleiset käyttöliittymän toiminnot sovelluksessa

Yleinen tapa suorittaa laitteen käyttöliittymätestit on Android Instrumentation. Mutta tällä on suorituskykyongelmia. Yksi parhaista työkaluista suorittaa käyttöliittymän testaus Androidilla on Robotium.

Integraatiotestit

Integraatiotestauksessa kaikki yksikötestatut moduulit yhdistetään ja todennetaan. Androidissa integraatiotesteihin sisältyy usein integraation tarkistaminen Android-komponenttien kanssa, kuten palvelutestaus, toiminnan testaus, sisällöntarjoajan testaus jne.

Integrointitestien tyypit Androidissa

Android-integraatiotestin suorittamiseen käytetään monia testauskehyksiä, kuten Troyd, Robolectric, Robotium.

Toimintakokeet

  • Operatiivisia kutsutaan myös toiminnallisiksi testeiksi tai hyväksymistesteiksi. Ne ovat korkean tason testejä, jotka on suunniteltu tarkistamaan sovelluksen täydellisyys ja oikeellisuus.
  • Androidissa FitNesse on avoimen lähdekoodin kehys, joka helpottaa toimintatestien suorittamista kohdesovellukseen.

Järjestelmätestit

Järjestelmätestauksessa järjestelmä testataan kokonaisuutena ja komponenttien, ohjelmistojen ja laitteistojen vuorovaikutus tarkistetaan.

Androidissa järjestelmätestaus sisältää normaalisti

  • GUI-testit
  • Käytettävyystestit
  • Suorituskykytestit
  • Stressitestit

Yllä olevassa luettelossa suorituskyvyn testaamiseen kiinnitetään enemmän huomiota. Voit käyttää suorituskykytestiä Androidilla esimerkiksi Traceview-työkalujen avulla. Tämä työkalu voi auttaa sinua testaamaan sovellustasi ja profiloimaan sen suorituskyvyn.

Automaattinen ANDROID-TESTAUS

Koska Android on hajanainen, testaus useilla laitteilla on välttämätöntä. Mutta tämä maksaa myös rahaa. Automaattinen Android-testaus voi auttaa vähentämään kustannuksia

Automaattisen Android-testauksen edut

  • Lyhennä testitapausten suorittamisen aikaa
  • Paranna kehitysprosessisi tuottavuutta
  • Varhainen virheiden havaitseminen säästää ohjelmistojen ylläpitokustannuksia
  • Löysi ja korjasi nopeasti toteutuksen virheet
  • Varmista ohjelmistojen laatu

Tutkimme seuraavia kahta kehystä

  • Android-testauskehys
  • Robolektrinen testauskehys

Android-testauskehys

Yksi Android-sovellusten tavallisista testauskehyksistä on Android-testauskehys . Se on tehokas ja helppokäyttöinen testauskehys, joka on hyvin integroitu Android SDK -työkaluihin.

Android-testauskehyksen arkkitehtuuri

  1. Sovelluspaketti on kohdesovelluksesi, joka on testattava
  2. InstrumentationTestRunner on testitapauksen juoksija, joka suorittaa testitapauksen kohdesovelluksessa. Se sisältää:

2a) Testityökalut: SDK-työkalut testien rakentamiseen. Ne on integroitu Eclipse IDE -ohjelmaan tai ne toimivat komentorivinä.

2b) MonkeyRunner: Työkalu, joka tarjoaa sovellusliittymiä ohjelman kirjoittamiseen, joka ohjaa Android-laitetta tai emulaattoria Android-koodin ulkopuolella.

  1. Testipaketti on jaettu testiprojekteihin. Tämä paketti noudattaa nimeämiskäytäntöä. Jos testattavan sovelluksen paketin nimi on "com.mydomain.myapp", testipaketin tulisi olla "com.mydomain.myapp.test". Testipaketti sisältää 2 seuraavaa kohdetta:

3a) Testitapausluokat: sisältää testimenetelmät, jotka suoritetaan kohdesovelluksessa.

3b) Mock-objektit: sisältää mallitiedot, joita käytetään näytetulona testitapauksissa.

Android-testitapausluokat

AndroidTestCase-luokan kaavio

  1. TestCase sisältää JUnit-menetelmät JUnit-testin suorittamiseksi
  2. TestSuite-ohjelmaa käytetään testitapausten suorittamiseen
  3. InstrumentationTestSuite on TestSuite, joka pistää Instrumentation InstrumentationTestCase -ohjelmaan ennen niiden suorittamista.
  4. InstrumentationTestRunner on testitapauksen juoksija, joka suorittaa testitapauksen kohdesovelluksessa.
  5. AndroidTestCase laajentaa JUnit TestCasea. Se sisältää menetelmiä resurssien, kuten toimintakontekstin, käyttämiseen.
  6. ApplicationTestCase tarkistaa sovellusluokat valvotussa ympäristössä.
  7. InstrumentationTestCase tarkistaa tietyn kohdesovelluksen ominaisuuden tai käyttäytymisen, esimerkiksi tarkistaa sovelluksen käyttöliittymälähdön.
  8. ActivityTestCase on perusluokka, joka tukee sovellustoimintojen testaamista.
  9. ProviderTestCase on luokka yhden ContentProviderin testaamiseen.
  10. ServiceTestCasea käytetään testaamaan palveluluokkia testausympäristössä. Se tukee myös Palvelun elinkaarta.
  11. SingeLauchActivityTestCasea käytetään yksittäisen toiminnan testaamiseen InstrumentationTestCase- sovelluksella .
  12. ActivityUnitTestCase käytetään yksittäisen yksittäisen aktiivisuuden testaamiseen.
  13. ActivityInstrumentationTestCase2 laajentaa JUnit TestCase -luokkaa. Se yhdistää sinut kohdistamaan sovelluksen instrumentointiin. Tämän luokan avulla voit käyttää sovelluksen GUI-komponenttia ja lähettää käyttöliittymän tapahtuman (näppäinpainalluksen tai kosketustapahtuman) käyttöliittymään.

Alla on esimerkki ActivityInstrumentationTestCase-ohjelmasta. Se tarkistaa Laskin-sovelluksen käyttöliittymän toiminnan, tarkistaa käyttöliittymän lähtöjen oikeellisuuden.

Esimerkki ActivityInstrumentationTestCase2 -testauksesta

Robolektrinen testauskehys

Testaus Android-testauskehyksen avulla laitteen tai emulaattorin kanssa on vaikeaa. Rakentaminen ja suorittaminen on hidasta ja vaatii paljon kehitystyötä. Tämän ongelman korjaamiseksi on toinen vaihtoehto - Robolectric testing framework.

Robolektrisen kehyksen avulla voit suorittaa Android-testit suoraan JVM: llä ilman laitetta tai emulaattoria.

Robolectricin edistykselliset ominaisuudet

Robolectric Test Case -luokat

Robolectricin käyttö

  • Kuten yllä on esitetty, Robolectric voi suorittaa seuraavat toimet:
  • Rekisteröidy ja luo Shadow-luokka
  • Siepata Android-luokan lataus
  • Käyttää javaassistia ohittamaan Android-luokan metodirungot
  • Bind Shadow -objekti Android-luokkaan
  • Tämä antaa testattavan koodin suorittaa ilman Android-ympäristöä.

Toiset testauskehykset

Edellä mainittujen testauskehysten lisäksi on olemassa monia muita testauskehyksiä, kuten:

  • Android Junit Report, mukautettu instrumentointitestin juoksija Androidille, joka luo XML-raportit integroitavaksi muiden työkalujen kanssa.
  • Expresso
  • Appium

Android-testauksen myytit

Monet yritykset kehittävät android-testausstrategioita, jotka perustuvat yleisiin väärinkäsityksiin. Tässä osassa tarkastellaan muutamia suosittuja myyttejä ja realiteetteja Android-testauksesta.

Myytti # 1: Kaikki Android-laitteet ovat samat ... testi emulaattoreilla riittää

Aloitetaan yksinkertaisella esimerkillä. Sovellus toimii täydellisesti emulaattoreissa, mutta joissakin todellisissa laitteissa se kaatuu suorituksen aikana

Sovellus kaatuu suorituksen aikana todellisella laitteella

Emulaattorit eivät riitä matkapuhelimesi testaukseen. Sinun on testattava sovelluksesi todellisilla laitteilla.

Myytti # 2: Testaus joillakin yleisillä laitteilla riittää

  • Eri laitteissa sovelluksesi näyttää erilaiselta, koska eri laitteilla on erilaiset laitteistot, näytön koot, muisti jne. Sinun on testattava sovelluksesi eri laitteilla, käyttöjärjestelmäversioilla, operaattoriverkkoissa ja sijainneissa.

Myytti # 3: Esittelytesti juuri ennen julkaisua riittää

  • Suunnittelemme testitapaukset yleensä kaikissa testauksissa ja toteutamme ne. Mutta kokeellisessa testauksessa testin suunnittelu ja toteutus tehdään kaikki yhdessä.
  • Tutkimustestissä ei ole suunnitelmaa eikä valmistelua, sitten testaaja tekisi haluamansa testit. Joitakin toimintoja testataan toistuvasti, kun taas joitain toimintoja ei testata kokonaan.

Myytti # 4: Jos sovelluksessa on joitain virheitä, käyttäjät ymmärtävät

  • Jos sovellus ei toimi ja siinä on virheitä, käyttäjät poistavat sovelluksesi
  • Laatuongelmat ovat ensimmäinen syy huonoon arvosteluun Google Playssa. Se vaikuttaa maineeseesi ja menetät asiakkaan luottamuksen.

Siksi on välttämätöntä, että käytössä on oikea Android-testausstrategia

Android-testauksen parhaat käytännöt

  • Sovelluskehittäjien tulisi luoda testitapaukset samalla kun kirjoitetaan koodia
  • Kaikki testitapaukset tulisi tallentaa versionhallintaan yhdessä lähdekoodin kanssa
  • Käytä jatkuvaa integraatiota ja suorita testit joka kerta, kun koodi vaihdetaan
  • Vältä emulaattoreiden ja juurtuneiden laitteiden käyttöä