Kodėl verta išbandyti „Android“?
„Android“ yra didžiausia operacinė sistema pasaulyje. Tuo pačiu metu „Android“ yra fragmentiškas. yra daugybė įrenginių ir „Android“ versijų, su kuriomis jūsų programa turi būti suderinama.
Nesvarbu, kiek laiko investuojate į projektavimą ir įgyvendinimą, klaidų neišvengsite ir pasirodys klaidų.
Šioje pamokoje sužinosite
- Kodėl verta išbandyti „Android“?
- „Android“ testavimo strategija
- Vieneto bandymai
- Integracijos testai
- Eksploataciniai bandymai
- Sistemos testai
- Automatizuotas androidų testavimas
- „Android“ testavimo sistema
- Robolektrinių bandymų sistema
- „Android“ testavimo mitai
- Geriausia „Android“ testavimo praktika
„Android“ testavimo strategija
Teisinga „Android“ testavimo strategija turėtų apimti šiuos dalykus
- Vieneto testas
- Integracijos testas
- Eksploatacinis testas
- Sistemos testas
Vieneto bandymai
Vieneto testai apima vienos ar daugiau programų rinkinius, skirtus patikrinti pirminio kodo vienetą, pvz., Metodą ar klasę.
„Android“ platformoje yra iš anksto integruota „Junit 3.0“ sistema. Tai atvirojo kodo sistema, skirta automatizuoti įrenginių testavimą. „Android Testing Framework“ yra galingas įrankis kūrėjui parašyti efektyvią vieneto testavimo programą.
„Android“ ir „JUnit“ sistemos integracija
Vieneto testavimo papildymas yra vartotojo sąsajos (UI) testai. Šie bandymai yra susiję su jūsų tikslinės programos vartotojo sąsajos komponentais. Vartotojo sąsajos testai užtikrina, kad jūsų programa grąžins teisingą vartotojo sąsajos išvestį, atsižvelgdama į naudotojo veiksmų eilę įrenginyje.
Dažni vartotojo vartotojo veiksmai programoje
Įprastas vartotojo sąsajos testavimo būdas yra „Android Instrumentation“. Bet tai turi našumo problemų. Vienas iš geriausių įrankių atlikti vartotojo sąsajos testavimą „Android“ yra „Robotium“.
Integracijos testai
„Integration Testing“ sistemoje visi modulio bandomi moduliai yra sujungti ir patikrinti. „Android“ sistemoje integravimo testai dažnai apima integracijos tikrinimą su „Android“ komponentais, tokiais kaip paslaugų testavimas, veiklos testavimas, turinio teikėjo testavimas ir kt.
„Android“ integravimo testo tipai
„Android“ integracijos bandymui atlikti naudojama daugybė bandymų sistemų, tokių kaip „Troyd“, „Robolectric“, „Robotium“.
Eksploataciniai bandymai
- Operatyviniai dar vadinami funkciniais testais arba priėmimo testais. Tai yra aukšto lygio testai, skirti patikrinti, ar taikymas yra išsamus ir teisingas.
- „Android“ sistemoje „FitNesse“ yra atviro kodo sistema, leidžianti lengvai atlikti tikslinės programos veikimo testus.
Sistemos testai
Atliekant sistemos testavimą, tikrinama visa sistema ir tikrinama komponentų, programinės ir aparatinės įrangos sąveika.
„Android“ sistemoje paprastai atliekamas sistemos testavimas
- GUI testai
- Naudingumo testai
- Veikimo testai
- Streso testai
Pirmiau pateiktame sąraše daugiau dėmesio skiriama našumo testavimui . Norėdami atlikti „Android“ našumo testą, galite naudoti tokius įrankius kaip „Traceview“. Šis įrankis gali padėti derinti programą ir apibūdinti jos našumą.
Automatizuotas androidų testavimas
Kadangi „Android“ yra suskaidytas, būtina išbandyti daugybę įrenginių. Bet tai taip pat kainuos pinigus. Automatizuotas „Android“ testavimas gali padėti sumažinti išlaidas
Automatizuoto „Android“ testavimo nauda
- Sumažinkite bandymų atlikimo laiką
- Padidinkite savo kūrimo proceso produktyvumą
- Ankstyvas klaidų aptikimas - sutaupykite programinės įrangos priežiūros išlaidų
- Greitai surado ir pašalino diegimo klaidas
- Užtikrinkite programinės įrangos kokybę
Mes ištirsime šias 2 sistemas
- „Android“ testavimo sistema
- Robolektrinio testavimo sistema
„Android“ testavimo sistema
Viena iš standartinių „Android“ programų testavimo sistemų yra „Android“ testavimo sistema . Tai galinga ir lengvai naudojama testavimo sistema, gerai integruota su „Android SDK“ įrankiais.
„Android“ testavimo sistemos architektūra
- Programos paketas yra jūsų tikslinė programa, kurią reikia išbandyti
- „InstrumentationTestRunner“ yra „Test Case“ bėgikas, kuris vykdo bandomąjį atvejį taikinyje. Tai įeina:
2a) Bandymo įrankiai: SDK įrankiai statybai atlikti. Jie integruoti į „Eclipse IDE“ arba vykdomi kaip komandinė eilutė.
2b) „ MonkeyRunner“: įrankis, teikiantis API programoms rašyti, kurios valdo „Android“ įrenginį ar emuliatorių už „Android“ kodo ribų.
- Testavimo paketas yra suskirstytas į bandomuosius projektus. Šis paketas atitinka pavadinimų suteikimo tvarką. Jei bandomosios programos paketo pavadinimas yra „com.mydomain.myapp“, bandymo paketas turėtų būti „com.mydomain.myapp.test“. Testo pakete yra 2 objektai, kaip nurodyta toliau:
3a) Bandymo atvejų klasės: apima bandymo metodus, kuriuos reikia atlikti taikinyje.
3b) Maketuoti objektai: apima imitacinius duomenis, kurie bus naudojami kaip bandinių pavyzdžių įvestis.
„Android“ bandymų atvejų klasės
„AndroidTestCase“ klasės diagrama
- „TestCase“ apima „JUnit“ metodus „JUnit“ testui vykdyti
- TestSuite naudojamas bandymų rinkinių paleidimui
- „InstrumentationTestSuite“ yra „TestSuite“, kuris prieš paleidžiant „InstrumentationTestCase“ suleidžia „Instrumentation“.
- „InstrumentationTestRunner“ yra bandomojo atvejo bėgikas, vykdantis bandymo atvejį taikinyje.
- „AndroidTestCase“ išplečia „JUnit TestCase“. Jame yra metodai, kaip pasiekti išteklius, pvz., „Activity Context“.
- „ApplicationTestCase“ patikrina „Application“ klases kontroliuojamoje aplinkoje.
- „InstrumentationTestCase“ patikrina tam tikrą tikslinės programos ypatybę ar elgesį, pvz., Patikrina programos vartotojo sąsają.
- „ActivityTestCase“ yra pagrindinė klasė, palaikanti programų veiklos testavimą.
- „ProviderTestCase“ yra klasė, skirta išbandyti vieną „ContentProvider“.
- „ServiceTestCase “ naudojama testavimo aplinkoje testuoti paslaugų klases. Tai taip pat palaiko „Service“ gyvavimo ciklą.
- „SingeLauchActivityTestCase “ naudojama norint išbandyti vieną veiklą su „InstrumentationTestCase“.
- „ActivityUnitTestCase“
naudojama atskirai izoliuotai veiklai patikrinti. - „ActivityInstrumentationTestCase2
“ pratęsia „JUnit TestCase“ klasę. Tai sujungia taikymą su prietaisais. Šioje klasėje galite pasiekti programos GUI komponentą ir siųsti vartotojo sąsajos įvykį (klavišo paspaudimą ar prisilietimo įvykį) į vartotojo sąsają.
Žemiau pateikiamas „ActivityInstrumentationTestCase“ pavyzdys. Tai patikrina „Calculator“ programos vartotojo sąsają, vartotojo sąsajos išvesties teisingumą.
„ActivityInstrumentationTestCase2“ testavimo pavyzdys
Robolektrinių bandymų sistema
Testuoti naudojant „Android“ testavimo sistemą su įrenginiu ar emuliatoriumi yra sunku. Testas ir jo vykdymas yra lėtas ir reikalauja daug pastangų. Norėdami išspręsti šią problemą, yra kitas pasirinkimas - „ Robolectric“ testavimo sistema.
„Robolectric“ sistema leidžia paleisti „Android“ testus tiesiogiai naudojant JVM, nereikalaujant nei įrenginio, nei emuliatoriaus.
Išankstinės „Robolectric“ savybės
Robolektrinių bandymų atvejų klasės
Robolektriko veikimas
- Kaip parodyta aukščiau, „Robolectric“ gali atlikti šiuos veiksmus:
- Registruokitės ir sukurkite „Shadow“ klasę
- Sustabdykite „Android“ klasės įkėlimą
- Naudoja „javaassist“, kad nepaisytų „Android“ klasės metodo kūnų
- Susieti šešėlio objektą su „Android“ klase
- Tai leidžia testuojamą kodą vykdyti be „Android“ aplinkos.
Kiti testavimo pagrindai
Be pirmiau paminėtų testavimo sistemų, yra daugybė kitų testavimo sistemų, tokių kaip:
- „Android Junit Report“, „Android“ pritaikytas prietaisų testavimo bėgikas, generuojantis XML ataskaitas, skirtas integruoti su kitais įrankiais.
- „Expresso“
- „Appium“
„Android“ testavimo mitai
Daugelis įmonių kuria „Android“ testavimo strategijas, pagrįstas paplitusia klaidinga nuomone. Šiame skyriuje nagrinėjami keli populiarūs „Android“ testavimo mitai ir realijos.
1 mitas: visi „Android“ įrenginiai yra vienodi ... pakanka išbandyti emuliatorius
Pradėkime nuo paprasto pavyzdžio. Programa puikiai veikia emuliatoriuose, tačiau kai kuriuose realiuose įrenginiuose ji užstringa vykdymo metu
Programa užstringa vykdant realiame įrenginyje
Emuliatorių nepakanka jūsų mobiliajam testavimui. Turite išbandyti programą realiuose įrenginiuose.
2 mitas: pakanka išbandyti kai kuriuos įprastus įrenginius
- Skirtinguose įrenginiuose jūsų programa atrodo kitaip, nes skirtinguose įrenginiuose yra skirtinga aparatūra, ekrano dydžiai, atmintis ir kt. Turite išbandyti savo programą skirtinguose įrenginiuose, OS versijose, operatoriaus tinkluose ir vietose.
3 mitas: pakanka tiriamųjų bandymų prieš pat paleidimą
- Paprastai atliekant visus bandymus mes suprojektuojame bandymo atvejus, tada juos vykdome. Tačiau atliekant tiriamuosius bandymus, bandymų projektavimas ir vykdymas bus atliekami kartu.
- Tiriamųjų bandymų metu nėra jokio plano ir jokio pasiruošimo, tada bandytojas atliktų bandymus, kuriuos jis nori padaryti. Kai kurios funkcijos bus tikrinamos pakartotinai, o kai kurios funkcijos nebus išbandytos iš viso.
4 mitas: jei programoje yra klaidų, vartotojai supras
- Jei programa neveikia ir joje yra klaidų, vartotojai pašalina jūsų programą
- Kokybės problemos yra pirmoji blogo peržiūros „Google Play“ priežastis. Tai turi įtakos jūsų reputacijai ir jūs prarandate kliento pasitikėjimą.
Todėl būtina turėti tinkamą „Android“ testavimo strategiją
Geriausia „Android“ testavimo praktika
- Programų kūrėjai turėtų sukurti bandomuosius atvejus tuo pačiu metu, kai jie rašo kodą
- Visi bandymo atvejai turėtų būti saugomi versijų valdyme kartu su šaltinio kodu
- Naudokite nuolatinę integraciją ir vykdykite testus kiekvieną kartą, kai keičiamas kodas
- Venkite naudoti emuliatorius ir įsišaknijusius įrenginius