

Yangilangan: May 11, 2026 / 6 daqiqada o‘qiladi
Mundarija
Ushbu maqolani baholang
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.
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.
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:
| Daraja | Vositalar | Nima qamrab oladi | Qamrov maqsadi |
|---|---|---|---|
| Birlik testlari | JUnit, XCTest, Flutter test | Biznes-mantiq, utilitar, hisob-kitoblar | ≥ 80% |
| Integratsion testlar | Mockito, WireMock | API o'zaro ta'siri, mahalliy ma'lumotlar bazasi | Asosiy oqimlar |
| UI testlari (E2E) | Appium, Detox, XCUITest | Kritik foydalanuvchi yo'llari | 20–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.
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:
| Platforma | OS versiyalari | Qurilmalar | Ustuvorlik |
|---|---|---|---|
| Android | Android 10, 12, 14, 15 | Samsung, Xiaomi, realme, byudjet segment | Yuqori |
| iOS | iOS 16, 17, 18 | iPhone SE, iPhone 14/15, eski modellar | Yuqori |
| Android (planshetlar) | Android 12+ | Samsung Tab, Lenovo | O'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.
Unumdorlik — bu «tez ishlaydi» degani emas. Bu ilova ideal sharoitlardan uzoq muhitda qanday xulq-atvor ko'rsatishi haqida.
Biz o'lchaydigan ko'rsatkichlar:
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.
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.
Har bir relizdan oldin — to'liq regressiya o'tkazish. Maqsad: yangi o'zgarishlar avval ishlaganlarni buzmasligini tasdiqlash.
Regressiya to'plami quyidagilardan iborat:
Relizdan oldingi yakuniy tekshiruv ro'yxati — QA-lider va ishlab chiqish jamoasi rahbari tomonidan imzolanadigan hujjat. Usiz ilova do'konga ketmaydi.
Nima kiradi:
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.
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:
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>
Biz sizga yuqori natijalarga erishish va barqaror o‘sishga yordam beramiz
