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
- Yksikkötesti
- Integraatiotesti
- Toimintatesti
- 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
- Sovelluspaketti on kohdesovelluksesi, joka on testattava
- 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.
- 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
- TestCase sisältää JUnit-menetelmät JUnit-testin suorittamiseksi
- TestSuite-ohjelmaa käytetään testitapausten suorittamiseen
- InstrumentationTestSuite on TestSuite, joka pistää Instrumentation InstrumentationTestCase -ohjelmaan ennen niiden suorittamista.
- InstrumentationTestRunner on testitapauksen juoksija, joka suorittaa testitapauksen kohdesovelluksessa.
- AndroidTestCase laajentaa JUnit TestCasea. Se sisältää menetelmiä resurssien, kuten toimintakontekstin, käyttämiseen.
- ApplicationTestCase tarkistaa sovellusluokat valvotussa ympäristössä.
- InstrumentationTestCase tarkistaa tietyn kohdesovelluksen ominaisuuden tai käyttäytymisen, esimerkiksi tarkistaa sovelluksen käyttöliittymälähdön.
- ActivityTestCase on perusluokka, joka tukee sovellustoimintojen testaamista.
- ProviderTestCase on luokka yhden ContentProviderin testaamiseen.
- ServiceTestCasea käytetään testaamaan palveluluokkia testausympäristössä. Se tukee myös Palvelun elinkaarta.
- SingeLauchActivityTestCasea käytetään yksittäisen toiminnan testaamiseen InstrumentationTestCase- sovelluksella .
- ActivityUnitTestCase
käytetään yksittäisen yksittäisen aktiivisuuden testaamiseen. - 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öä