Asosiy kontentga o‘tish
Innovialabs

Mobil ilovani test qilish: qo‘lda, avtotestlar va qurilma fermalari

Amaliyot3 daq

Qisqacha

Ishonchli sxema — ko‘p tezkor unit testlar, kamroq UI komponent testlari va bir nechta end-to-end ssenariylar, ustiga relizdan oldin qo‘lda tekshirish. Emulyatorlar kundalik ishlab chiqish uchun mos, haqiqiy qurilmalar va bulutli fermalar esa mijozlaringiz ishlatadigan qurilmalarda tekshirish uchun.

Qisqa javob: testlar piramidasi

Mobil ilova uch darajada tekshiriladi:

  • Unit testlar — ko‘p, tezkor, interfeyssiz mantiqni tekshiradi.
  • UI komponent testlari (Flutter’da widget testlar) — kamroq, ekran va elementlarni tekshiradi.
  • End-to-end (E2E) — oz, asosiy ssenariylarni to‘liq tekshiradi: kirish, to‘lov, buyurtma berish.

Avtotestlar ustida qo‘lda test qilish qoladi: yangi funksiyalarni o‘rganish va relizdan oldingi regressiya.

Test darajalari

DarajaNimani tekshiradiTezlikQachon ishga tushirish
UnitBiznes mantiq, hisob-kitoblar, ma’lumotlarni o‘zgartirishSoniyalarHar bir commit’da
UI komponentlar / widgetEkran chizilishi, bosishlarga javob, holatlarTezHar bir pull request’da
E2EIshga tushirishdan natijagacha ssenariy, tarmoq va navigatsiya bilanSekinPull request’da yoki tunda

Daraja qancha yuqori bo‘lsa, testni qo‘llab-quvvatlash shuncha qimmat va u shuncha tez-tez beqaror (flaky) bo‘ladi. Shuning uchun asosiy mantiqni pastdan tekshiring, E2Eni eng muhim yo‘llar uchun qoldiring.

Vositalar

VositaPlatformaNima uchun
XCTest / XCUITestiOSUnit va UI testlar, Xcode’ga o‘rnatilgan
EspressoAndroidIlova jarayoni ichidagi UI testlar, asosiy oqim bilan sinxronlanadi
flutter_test, integration_testFlutterUnit, widget va integratsion testlar
DetoxReact Native«Kulrang quti» tamoyilidagi E2E: ilova bo‘shashini kutadi
MaestroiOS, Android, kross-platformaYAML’dagi E2E ssenariylar, kodni chuqur bilmasdan tez boshlash
AppiumiOS, AndroidWebDriver orqali kross-platforma E2E

Maestro ssenariysi misoli:

appId: com.example.app
---
- launchApp
- tapOn: "Kirish"
- inputText: "test@example.com"
- tapOn: "Davom etish"
- assertVisible: "Bosh sahifa"

Qo‘lda test qilish

Avtotestlar insonni to‘liq almashtirmaydi. Qo‘lda tekshirish kerak:

  • yangi funksiyalarni — ssenariylar hali o‘rnashmagan paytda tadqiqiy test;
  • vizual mayda narsalarni: shriftlar, chekinishlar, qorong‘i mavzu, turli ekran o‘lchamlari;
  • uzilishlarni: kiruvchi qo‘ng‘iroq, ilovani yig‘ish, tarmoq yo‘qolishi, ruxsatlarni rad etish;
  • relizdan oldin chek-list bo‘yicha regressiyani.

Yig‘malarni testerlarga tarqatish uchun iOS’da TestFlight, Google Play Console’da ichki testlash (internal testing) dan foydalaning.

Emulyatorlar yoki haqiqiy qurilmalar

Emulyator va simulyatorlarHaqiqiy qurilmalar
NarxBepulSotib olish yoki ijaraga olish kerak
Ishga tushirishTez, CI uchun qulaySozlash sekinroq
AniqlikHaqiqiy unumdorlik, kamera, sensorlarni takrorlamaydiHaqiqiy xatti-harakat, ishlab chiqaruvchi qobiqlari
Qachon ishlatishKundalik ishlab chiqish, unit va UI testlarRelizdan oldingi tekshiruv, unumdorlik, apparat

Haqiqiy Android qurilmalarda tekshirish ayniqsa muhim: ishlab chiqaruvchi qobiqlari fon vazifalari, bildirishnomalar va quvvatni tejash bilan turlicha ishlaydi.

Bulutli qurilma fermalari

Telefonlar parkini sotib olish qimmat bo‘lsa, fermalardan foydalaning: Firebase Test Lab, AWS Device Farm, BrowserStack, Sauce Labs. Ular testlaringizni bulutdagi haqiqiy qurilmalarda ishga tushiradi va loglar, video hamda skrinshotlarni qaytaradi.

Qurilmalar to‘plamini qanday tanlash kerak:

  • Analitikadan foydalanuvchilaringiz orasida eng mashhur modellar va OT versiyalarini oling.
  • Qo‘llab-quvvatlanadigan minimal OT versiyasini qo‘shing.
  • Kichik ekranli va xotirasi kam arzon qurilmani kiriting.

Ko‘p uchraydigan xatolar

  • Holatni kutish o‘rniga qat’iy pauzalar (sleep) — beqaror testlarning asosiy manbai.
  • Tarmoq xatolari va bo‘sh ma’lumotlarsiz faqat «baxtli yo‘l»ni test qilish.
  • Ilovani faqat dasturchining telefonida tekshirish.
  • E2Eni CI’da emas, qo‘lda ishga tushirish: ular tezda unutiladi.

Ko‘p beriladigan savollar

Eng xavfli mantiq uchun unit testlardan: narx hisob-kitoblari, avtorizatsiya, ma’lumotlar bilan ishlash. Keyin asosiy ssenariy uchun bir-ikkita E2E qo‘shing, masalan kirish va buyurtma berish.

Bunda yordam beramiz

O‘zingiz shug‘ullanmasdan natija olishni istasangiz — biz har kuni shu bilan shug‘ullanamiz.

Loyihani muhokama qilish

Yana o‘qing

G‘oya yoki vazifangiz bormi? Bizga aytib bering

Ish kuni davomida javob beramiz va yechim taklif qilamiz. Konsultatsiya bepul.