Top Banner BackgroundTop Banner Background

Yangilangan: May 11, 2026 / 6 daqiqada o‘qiladi

Biz mobil ilovalarni ishga tushirishdan oldin qanday sinaymiz

Yaxshi reliz — omad emas, bu har bir bosqichda tizimli testlashning natijasidir.
avatar
Muin Gulov
Project Manager

Mundarija

  1. Nima uchun mobil ilovalarni sinash ko'rinadiganidan qiyinroq
  2. 1-bosqich qo'lda va tadqiqotchi testlash
  3. 2-bosqich avtomatlashtirilgan testlash
  4. 3-bosqich haqiqiy qurilmalarda testlash
  5. 4-bosqich unumdorlikni testlash
  6. 5-bosqich xavfsizlikni testlash
  7. 6-bosqich regressiya testlash va yakuniy tekshiruv ro'yxati
  8. Xulosa

Ushbu maqolani baholang

Nima Uchun Mobil Ilovalarni Sinash Ko'rinadiganidan Qiyinroq

Mijoz «shunchaki hamma narsa ishlashini tekshiring» deb aytganda — bu jumlaning ortida yuzlab stsenariylar, o'nlab qurilmalar va platformalar, turli OS versiyalari va oldindan aytib bo'lmaydigan tarmoq shartlari yashiringan bo'ladi.

Mobil ilova brauzerning nazorat qilinadigan muhitida ishlamaydi. U foydalanuvchining cho'ntagida ishlaydi: telefon qo'ng'irog'i vaqtida, zaryad kam bo'lganda, beqaror 4G bilan metroda, 2021 yilgi arzon Android qurilmasida. Bu shartlarning har biri — ofisda hech kim sezmaydigan xato yoki qulab tushishning potensial manbai.

Raqamlar o'z-o'zidan gapiradi: sanoat tahlilchilarining ma'lumotlariga ko'ra, foydalanuvchilarning 71% i birinchi qulab tushishdan keyin ilovani o'chirib tashlaydi. Prodakshndagi xatoni tuzatishning o'rtacha narxi testlash bosqichidagidan 6–15 marta yuqori. Va salbiy sharhlar to'lqini tufayli tushgan App Store yoki Google Play reytingi oylar davomida tiklanadi.

Bizning jamoamizda testlash — bu ishlab chiqishning yakuniy bosqichi emas. Bu birinchi sprintdan boshlanadigan va barqaror relizdan keyingina tugaydigan parallel jarayon. Quyida bu amalda qanday ko'rinishi haqida.


1-Bosqich: Qo'lda va Tadqiqotchi Testlash

Avtomatlashtirish odamni almashtirmaydi — ayniqsa mahsulotni «his qilish» muhim bo'lgan joylarda: navigatsiya qanchalik qulay, animatsiyalar tabiiy yoki yo'q, tugma yozuvi foydalanuvchini chalkashtirmaydimi.

Qo'lda testlash uchta asosiy yo'nalishni qamrab oladi:

Funksional testlash — test-keyslar bo'yicha har bir foydalanish stsenariyini tekshirish. Ro'yxatdan o'tish, avtorizatsiya, asosiy foydalanuvchi yo'llari, chegaraviy holatlar (bo'sh maydonlar, noto'g'ri kiritish, server xatosi). Har bir stsenariy oldindan kutilgan natija bilan hujjatlashtiriladi.

UI/UX testlash — dizayn spesifikatsiyalariga muvofiqlik, turli ekran o'lchamlarida to'g'ri ko'rsatish, orientatsiyani o'zgartirishda xulq-atvor, maxsus ehtiyojli foydalanuvchilar uchun foydalish imkoniyati (shrift o'lchami, kontrast, ekran o'quvchi qo'llab-quvvatlash).

Tadqiqotchi testlash — testchi stsenariysiz ishlaydi, kutilmagan harakatlar orqali ilovani «sindirish»ga harakat qiladi. Aynan bu yerda hech bir test-keys ko'zda tutmagan xatolar topiladi: tez ikki marta bosish, sessiya o'rtasida tilni almashtirish, bir vaqtda bir nechta ekranni ochish.

Biz amal qiladigan qoida: har bir test-keys funksiyani ishlab chiqishdan oldin yoziladi, keyin emas. Bu jamoani intizomli qiladi va relizdan oldin «taxminan ishlayapti» holatlarini yo'q qiladi.


2-Bosqich: Avtomatlashtirilgan Testlash

Qo'lda testlash o'rnini bosib bo'lmaydi, lekin u kengaymaydi. Ilova o'sib, har ikki haftada yangi reliz chiqganda — 400 ta test-keysni qo'lda o'tkazish jismonan mumkin bo'lmay qoladi.

Biz avtomatlashtirilgan testlashni uch darajada quramiz:

DarajaVositalarNima qamrab oladiQamrov maqsadi
Birlik testlariJUnit, XCTest, Flutter testBiznes-mantiq, utilitar, hisob-kitoblar≥ 80%
Integratsion testlarMockito, WireMockAPI o'zaro ta'siri, mahalliy ma'lumotlar bazasiAsosiy oqimlar
UI testlari (E2E)Appium, Detox, XCUITestKritik foydalanuvchi yo'llari20–30 asosiy stsenariy

CI/CD integratsiyasi. Barcha avtotestlar har bir pull-request da avtomatik ravishda ishga tushadi. Birlik testlari muvaffaqiyatsiz bo'lsa — tarmoq birlashtirilmaydi. Bu «boshqa joyda nimadir sindirdim, sezmaydim» muammolarini bartaraf etadi.

Flutter va React Native uchun snapshot-testlash komponentlarning vizual holatini qayd etadi va UI dagi kutilmagan o'zgarishlarni ushlaydi — interfeys bilan bog'liq bo'lmagan tuzatishdan keyin tartib o'zgarganda.


3-Bosqich: Haqiqiy Qurilmalarda Testlash

Emulatorlar va simulyatorlar tezkor tekshirish uchun foydali vositadir. Lekin ular haqiqiy apparat qurilmasini takrorlamaydi: chipsetga xos xulq-atvor, kamera xususiyatlari, batareya xarakteri, Android ustiga qo'shilgan ishlab chiqaruvchi ishoralari.

Reliz uchun minimal qurilmalar matritsasi:

PlatformaOS versiyalariQurilmalarUstuvorlik
AndroidAndroid 10, 12, 14, 15Samsung, Xiaomi, realme, byudjet segmentYuqori
iOSiOS 16, 17, 18iPhone SE, iPhone 14/15, eski modellarYuqori
Android (planshetlar)Android 12+Samsung Tab, LenovoO'rta (agar qo'llab-quvvatlansa)

Nima uchun O'zbekiston va MDH bozori uchun byudjet qurilmalar ustuvor? Tahlilchilarning ma'lumotlariga ko'ra, mintaqadagi foydalanuvchilarning 60% dan ortig'i $200 gacha bo'lgan Android qurilmalardan foydalanadi. Flagmanda ajoyib ishlaydigan ilova 3 GB RAMga ega Redmi Note da sekinlashishi yoki qulab tushishi mumkin. Buni relizdan oldin bilish kerak, keyin emas.

Keng qurilmalar matritsasida bulutli testlash uchun biz Firebase Test Lab va BrowserStack dan foydalanamiz — ular jismoniy qurilma parkini saqlash zaruratisiz yuzlab haqiqiy qurilmalarga kirish imkonini beradi.


4-Bosqich: Unumdorlikni Testlash

Unumdorlik — bu «tez ishlaydi» degani emas. Bu ilova ideal sharoitlardan uzoq muhitda qanday xulq-atvor ko'rsatishi haqida.

Biz o'lchaydigan ko'rsatkichlar:

  • Sovuq ishga tushish vaqti — belgini bosishdan ishlatishga tayyorlikkacha. Mezon: Android uchun 2 soniyagacha, iOS uchun 1,5 soniyagacha
  • UI javob vaqti — foydalanuvchi harakatidan vizual reaktsiyadqacha. Ro'yxatlar, animatsiyalar, aylantirish uchun kritik: chegara — 16 ms (60 fps)
  • Xotira sarfi — odatiy sessiya maqsadli qurilmalar uchun oqilona chegarada qolishi kerak
  • Batareya sarfi — samarasiz amalga oshirilgan holda fon jarayonlari, geolokatsiya va push-bildirishnomalar batareyani odatdagidan sezilarli tezroq tushirishi mumkin
  • Zaif tarmoqdagi xulq-atvor — 2G, beqaror 3G, Wi-Fi va mobil internet o'rtasida almashtirish

Vositalar: Android Profiler, Xcode Instruments, Firebase Performance Monitoring, zaif tarmoq sharoitlarini simulyatsiya qilish uchun Charles Proxy.

Tipik xato: unumdorlikni faqat Wi-Fi va flagman qurilmalarda testlash. Farg'ona yoki Samarqanddagi haqiqiy foydalanuvchi cho'qqi soatlarda 4G bilan Xiaomi Redmi 9 da ilovani ochadi. Aynan u uchun optimallashtirish kerak.


5-Bosqich: Xavfsizlikni Testlash

Mobil ilova xavfsizligi — bu faqat HTTPS emas. Bu mobil platformalarga xos zaifliklarning butun bir qatlami.

Biz nima tekshiramiz:

Qurilmada ma'lumotlarni saqlash. Tokenlar, parollar va shaxsiy ma'lumotlar SharedPreferences, UserDefaults yoki ilova loglarida ochiq matnda saqlanmasligi kerak. Bu mobil ilovalardagi eng keng tarqalgan zaifliklardan biri.

Ma'lumotlarni uzatish. To'g'ri TLS amalga oshirilishini, sertifikat pinning bypass yo'qligini, Charles yoki mitmproxy orqali odam-o'rtada hujumlardan himoyani tekshirish.

Autentifikatsiya va sessiyalar. Tokenlarning to'g'ri muddati tugashi, bekor qilingan sessiyalarni qayta ishlatib bo'lmaslik, brute-force dan himoya.

Kodni himoya qilish. Android uchun obfuskatsiya va minifikatsiya (ProGuard / R8), teskari muhandislikka qarshilik, binarnikda sezgir ma'lumotlarning yo'qligi (API kalitlari, hardkod parollar).

OWASP Mobile Top 10 bo'yicha testlash — biz tekshiruv ro'yxati sifatida foydalanadigan standart. Mobil ilovalarga xos o'nta zaiflik kategoriyasi — xavfsiz bo'lmagan ma'lumotlarni saqlashdan yetarli bo'lmagan kriptografiyagacha.


6-Bosqich: Regressiya Testlash va Yakuniy Tekshiruv Ro'yxati

Har bir relizdan oldin — to'liq regressiya o'tkazish. Maqsad: yangi o'zgarishlar avval ishlaganlarni buzmasligini tasdiqlash.

Regressiya to'plami quyidagilardan iborat:

  • Barcha avtomatlashtirilgan testlar
  • Kritik oqimlar bo'yicha qo'lda test-keyslar
  • Yopilgan xatolar bo'yicha yozilgan testlar (ular qaytib kelmasligi uchun)

Relizdan oldingi yakuniy tekshiruv ro'yxati — QA-lider va ishlab chiqish jamoasi rahbari tomonidan imzolanadigan hujjat. Usiz ilova do'konga ketmaydi.

Nima kiradi:

  • Barcha kritik va yuqori ustuvorlikdagi xatolar yopilgan
  • Avtotestlar maqsadli platformalarda yashil
  • Qurilmalar matritsasidan haqiqiy qurilmalarda testlash tugallangan
  • Unumdorlik belgilangan me'yorlar doirasida
  • API versiyasi joriy backend bilan mos keladi
  • App Store / Google Play uchun skrinshotlar va metama'lumotlar yangilangan
  • Analitika va crash reporting (Firebase Crashlytics / Sentry) ulangan va ishlaydi
  • Deep linklar va push-bildirishnomalar ikkala platformada tekshirilgan

Olti oylik tarixga ega ilova uchun o'rtacha regressiya to'plami 150–300 ta test-keysni tashkil qiladi. To'liq qo'lda o'tkazish 2–3 kun davom etadi. Aynan shuning uchun avtomatlashtirish ixtiyoriy emas — loyiha ma'lum hajmga etganda bu zaruriyatga aylanadi.


Xulosa

Mobil ilovani testlash — bu «tugmalarga bosib, nima qulab tushishini ko'rish» emas. Bu mahsulot sifatiga, do'kon obro'siga va foydalanuvchilar ishonchiga bevosita ta'sir qiladigan ko'p qatlamli jarayon.

Har bir relizdan oldin biz bosib o'tadigan olti bosqich:

  • Qo'lda testlash — funksional, UI/UX va tadqiqotchi
  • Avtomatlashtirish — CI/CD da birlik, integratsion va E2E testlar
  • Haqiqiy qurilmalar — byudjet segmentiga e'tibor qaratgan qurilmalar matritsasi
  • Unumdorlik — sovuq ishga tushish, xotira, batareya, zaif tarmoq
  • Xavfsizlik — OWASP Mobile Top 10, ma'lumotlarni saqlash, uzatish, kod
  • Regressiya va yakuniy tekshiruv ro'yxati — relizga tayyorlikning rasmiy tasdig'i

Yaxshi mobil ilova — bu dasturchining MacBook'ida qulab tushmaydigan ilova emas. Yaxshi ilova — haqiqiy sharoitda oxirgi foydalanuvchida barqaror ishlaydigan ilova. Aynan buning uchun bu butun jarayon mavjud.

<Bog‘lanish>

Keling, EdTech sohasida keyingi yirik loyihani birgalikda yarataylik

Biz sizga yuqori natijalarga erishish va barqaror o‘sishga yordam beramiz

Kontaktlar
GetInTouchImage