Azimjon Abdurasulov

QA 1: QA Engineer kim — Testing, QC va QA farqi, rollar va 2026-yil kasb xaritasi

🧪 QA Engineer — Zero to Hero

QA 1: QA Engineer kim — Testing, QC va QA farqi, rollar va 2026-yil kasb xaritasi

Holat: 2026-yil oktabr. Kursning birinchi darsi: dasturiy sifat nega muhimligi (4 ta haqiqiy hodisa), Testing, Quality Control va Quality Assurance farqi, QA muhandisining kundalik ishi, sohadagi rollar va 29 darslik "Zero to Hero" yo'l xaritasi. Atamalar ISTQB CTFL v4.0.1 syllabus'iga (2024-09-15) tayanadi.

Bu darsdan keyin siz: QA kasbi nima ekanini va bu kursda qayerdan qayerga borishingizni aniq bilasiz.

  • Dasturiy xatolar qanchalik qimmatga tushishini real misollarda tushuntira olasiz.
  • Testing, Quality Control (QC) va Quality Assurance (QA) farqini bir gapda ayta olasiz.
  • QA muhandisining bir kuni, u yaratadigan hujjatlar va natijalarni bilasiz.
  • Manual QA, AQA, SDET, Performance, Security va QA Lead rollarini farqlaysiz.
  • Kurs davomida ishlatadigan "DemoBozor" namunaviy mahsuloti va asboblar bilan tanishasiz.

Mundarija

  1. Nega sifat muhim: 4 ta haqiqiy hodisa
  2. Testing, Quality Control va Quality Assurance
  3. QA muhandisi aslida nima qiladi
  4. QA sohasidagi rollar
  5. Ko'nikmalar xaritasi
  6. QA haqidagi 6 ta afsona
  7. Kurs yo'l xaritasi: Zero → Hero
  8. Kursning yo'ldoshi: DemoBozor
  9. Kurs davomida kerak bo'ladigan asboblar
  10. Amaliy mashqlar
  11. O'zingizni tekshiring
  12. Xulosa
  13. Manbalar

1. Nega sifat muhim: 4 ta haqiqiy hodisa {#nega-sifat}

Dasturiy ta'minotdagi xato ba'zan shunchaki "tugma ishlamadi" bilan tugaydi. Ba'zan esa raketa portlaydi, bemor jarohat oladi, kompaniya 45 daqiqada yuz millionlab dollar yo'qotadi yoki dunyo bo'ylab millionlab kompyuter bir kunda ishdan chiqadi. Quyidagi to'rt hodisa — testlash darsliklarida eng ko'p o'rganiladigan haqiqiy misollar. Har birining rasmiy tergov hujjati bor (Manbalar bo'limida).

HodisaSanaNima bo'ldiTexnik sabab (qisqa)
Ariane 5, Flight 5011996-yil 4-iyunRaketa parvoz boshlanganidan taxminan 40 soniya o'tib yo'nalishdan chiqdi va parchalanib ketdi64-bit float qiymat 16-bit butun songa o'girilganda sig'madi; kod Ariane 4'dan qayta ishlatilgan
Therac-251985–1987Nurlanish terapiyasi apparati kamida 6 holatda bemorlarga haddan tashqari katta doza berdi; o'lim va og'ir jarohatlarRace condition, apparat himoya qulflari olib tashlanib xavfsizlik to'liq dasturga ishonilgan
Knight Capital2012-yil 1-avgustTaxminan 45 daqiqada 212 ta mijoz buyurtmasi uchun 4 milliondan ortiq bitim; 460 mln dollardan ortiq zararYangi kod 8 serverdan bittasiga ko'chirilmagan; qayta ishlatilgan "flag" eski o'lik kodni uyg'otgan
CrowdStrike Falcon2024-yil 19-iyulXavfsizlik dasturining kontent yangilanishi Windows kompyuterlarni ishdan chiqardi; Microsoft hisobicha 8,5 mln qurilmaShablon 21 ta maydonni kutgan, kod 20 ta qiymat bergan; testlarda 21-maydon uchun "wildcard" ishlatilgan

Ariane 5: qayta ishlatilgan kod — yangi xavf

Ariane 5 raketasining birinchi parvozida inersial navigatsiya tizimi (SRI) dasturi gorizontal tezlikka bog'liq BH (Horizontal Bias) qiymatini 64-bitli kasr sondan 16-bitli butun songa o'girdi. Ariane 5'ning trayektoriyasida bu qiymat Ariane 4'dagidan ancha tez o'sgan, son 16-bitga sig'magan va "Operand Error" yuz bergan. Eng achinarlisi — bu funksiya parvoz paytida umuman kerak emas edi: u Ariane 4'dan "umumiylik uchun" (commonality reasons) qoldirilgan.

Tergov komissiyasi testlash haqida aniq xulosa yozgan: SRI'ni Ariane 5 trayektoriyasi bilan real sharoitda sinagan test bo'lmagan va "agar tizim testga qo'shilganida, xato aniqlangan bo'lardi". Tavsiyalar orasida: imkon qadar real uskunalar bilan to'liq tizim testi, trayektoriya ma'lumotlarini test talablariga kiritish, ichki o'zgaruvchilarning qiymat oralig'ini tekshirish.

🧠 Esda tuting: "Bu kod oldin ishlagan" degani "yangi muhitda ham ishlaydi" degani emas. Qayta ishlatilgan kod yangi kontekstda yangi test talab qiladi. Chegara qiymatlarni tekshirish texnikasi (Boundary Value Analysis) aynan shunday xatolarni ushlaydi — uni QA 5 darsida o'rganamiz.

Therac-25: xavfsizlikni bitta qatlamga ishonib bo'lmaydi

Therac-25 — AECL kompaniyasining nurlanish terapiyasi apparati. Nancy Leveson va Clark Turner'ning 1993-yilgi tergov maqolasiga ko'ra, 1985-yil iyunidan 1987-yil yanvarigacha oltita ma'lum hodisada apparat bemorlarga haddan tashqari katta doza bergan, natijada o'lim va og'ir jarohatlar bo'lgan. Asosiy sabablar:

  • Oldingi modellardagi dastur qayta ishlatilgan, lekin u modellarda xatolarni apparat himoya qulflari (hardware interlocks) yashirib turgan. Therac-25'da qulflar olib tashlangan va xavfsizlik to'liq dasturga topshirilgan.
  • Parallel jarayonlar o'rtasidagi race condition: operator ma'lumotni tez tahrirlasa, tizim noto'g'ri holatga tushib qolgan.
  • Tushunarsiz xato xabarlari (MALFUNCTION 54 kabi faqat raqam), operator ularni jiddiy deb qabul qilmagan.
  • Dastur mustaqil review'dan o'tmagan, apparat va dastur birga kasalxonaga yetib borguncha to'liq sinalmagan.

💡 Maslahat: Xato xabari ham mahsulot sifatining bir qismi. "Xatolik 54" emas, "Doza sozlamasi tasdiqlanmadi — qayta kiriting" kabi aniq xabar foydalanuvchini to'g'ri harakatga yo'naltiradi. Test qilayotganda xato xabarlarini ham tekshiring.

Knight Capital: deploy ham test qilinishi kerak

AQSh Qimmatli qog'ozlar komissiyasi (SEC) hujjatiga ko'ra, Knight Capital birja buyurtmalarini yo'naltiruvchi tizimiga yangi kod joylashtirdi. Texnik xodim yangi kodni sakkizta serverdan bittasiga ko'chirmagan, buni ikkinchi xodim tekshirmagan va bunday tekshiruvni talab qiladigan yozma tartib ham bo'lmagan. Yangi kod eski "Power Peg" funksiyasini yoqadigan flag'ni qayta ishlatgan edi — sakkizinchi serverda esa o'sha eski, yillar davomida ishlatilmagan kod hali turgan.

Natija: 2012-yil 1-avgustda taxminan 45 daqiqa ichida 212 ta mijoz buyurtmasi uchun 154 ta aksiya bo'yicha 4 milliondan ortiq bitim, 397 million aksiyadan ortiq savdo amalga oshdi. Kompaniya 460 million dollardan ortiq zarar ko'rdi.

⚠️ Diqqat: Bu yerda "dasturchi xato kod yozdi" deyish yetarli emas. Muammo zanjiri: o'chirilmagan o'lik kod (dead code) + qayta ishlatilgan flag + qo'lda deploy + ikkinchi tekshiruvning yo'qligi + monitoring kech sezgani. QA'ning vazifasi — faqat funksiyani emas, reliz jarayonini ham savol ostiga qo'yish: "Barcha serverlarda bir xil versiya turganini qanday tekshiramiz?"

CrowdStrike: test ma'lumoti ham "haqiqiy" bo'lishi kerak

2024-yil 19-iyulda CrowdStrike Falcon sensori uchun "Channel File 291" kontent yangilanishi chiqdi. Kompaniyaning ildiz sabab tahliliga (Root Cause Analysis) ko'ra, yangi shablon turi 21 ta kirish maydonini e'lon qilgan, sensor kodi esa faqat 20 ta qiymat uzatgan. Testlarda va dastlabki yangilanishlarda 21-maydon uchun "istalgan qiymat" (wildcard) mezoni ishlatilgani sababli bu nomuvofiqlik ko'p bosqichli testlardan o'tib ketgan. 19-iyulda 21-maydonni haqiqatan tekshiradigan qoida chiqqanda, sensor massiv chegarasidan tashqarida o'qishga urindi (out-of-bounds read) va tizim qulab tushdi. Microsoft hisobicha zarar ko'rgan Windows qurilmalari soni 8,5 million (barcha Windows kompyuterlarining 1 foizidan kami).

Hisobotdagi tavsiyalardan biri — yangilanishlarni bosqichma-bosqich (staged deployment, canary) tarqatish: avval kichik guruhda sinab, keyin kengaytirish.

🎯 Intervyuda: "Qaysi mashhur dasturiy xatoni bilasiz va undan qanday saboq olgansiz?" — Hodisa nomi + texnik sabab + qaysi test yoki jarayon uni ushlab qolishi mumkin edi. Masalan: "CrowdStrike'da test ma'lumoti 21-maydonni wildcard bilan qamragan; har bir maydonni haqiqiy qiymat bilan tekshiradigan test va canary reliz zararni keskin kamaytirgan bo'lardi."

To'rt hodisaning umumiy saboqlari keyingi darslarimizning mavzulari:

SaboqQaysi darsda o'rganamiz
Chegara qiymatlarni tekshirishQA 5
Integratsion va to'liq tizim testiQA 4
Talab va hujjatlarni erta tekshirishQA 3
Reliz jarayoni, canary va monitoringQA 27
CI/CD'dagi avtomatik tekshiruvlarQA 21

2. Testing, Quality Control va Quality Assurance {#testing-qc-qa}

Kundalik nutqda "testlash" va "QA" so'zlari ko'pincha bir ma'noda ishlatiladi. ISTQB syllabus'i esa ularni aniq ajratadi:

  • Testing — mahsulotga yo'naltirilgan, tuzatuvchi (corrective) yondashuv: test obyektini tekshirib, undagi defektlarni topishga yordam beradi. Testing — Quality Control (QC) ning asosiy shakli. QC'ning boshqa shakllari ham bor: formal usullar (model checking, to'g'rilikni isbotlash), simulyatsiya va prototiplash.
  • Quality Assurance (QA) — jarayonga yo'naltirilgan, oldini oluvchi (preventive) yondashuv. U "agar yaxshi jarayon to'g'ri bajarilsa, yaxshi mahsulot chiqadi" degan g'oyaga tayanadi. QA ham ishlab chiqish, ham testlash jarayonlariga tegishli va loyihadagi har bir kishining mas'uliyati.

Test natijalaridan ikkalasi ham foydalanadi: testlashda — defektlarni tuzatish uchun, QA'da — jarayonlar qanchalik yaxshi ishlayotgani haqida fikr-mulohaza (feedback) olish uchun.

QA, QC va Testing — ichma-ich joylashgan uch qatlam

Quality AssuranceQuality ControlTesting
Nimaga qaraydiJarayongaMahsulotgaAniq test obyektiga
YondashuvOldini olishAniqlash va tuzatishQC'ning asosiy usuli: statik va dinamik tekshiruv
Asosiy savolIsh jarayonimiz sifatli natija beradimi?Mahsulot talab va kutilmalarga javob beradimi?Qayerda xato bor va qanday risk qoldi?
KimButun jamoaTekshiruvchi rollarTester va dasturchilar
DemoBozor misoli"Har PR kamida bitta review va unit testdan o'tadi" qoidasiReliz oldidan savatcha va to'lov oqimini tekshirishdeliveryFee() funksiyasini 299 999 / 300 000 so'mda sinash

Unda nega lavozim "QA Engineer" deb ataladi?

Ko'p kompaniyalarda "QA Engineer" vakansiyasining asosiy vazifalari — testlash (QC). Bu tarixiy nom. Lekin yaxshi QA muhandisi shu bilan to'xtamaydi: u bug'lar qayerda to'planayotganini ko'radi va jarayonni yaxshilashni taklif qiladi ("bu modulga code review majburiy bo'lsin", "talablarga misollar qo'shamiz"). Ana shu payt u haqiqiy ma'noda QA bilan shug'ullanadi.

🎯 Intervyuda: "QA va testing farqi nima?" — "Testing mahsulotdagi defektlarni topadi va QC'ning bir shakli. QA esa jarayonga qaratilgan: defektlar umuman paydo bo'lmasligi uchun qoidalar va amaliyotlarni yaxshilaydi. Testing — 'topish', QA — 'oldini olish'."


3. QA muhandisi aslida nima qiladi {#qa-nima-qiladi}

QA ishi "tayyor dasturni oxirida bosib ko'rish" emas. U talab yozilgan kundan boshlanadi va mahsulot foydalanuvchiga chiqqandan keyin ham davom etadi. Agile jamoadagi oddiy kun taxminan shunday o'tadi (kompaniya va reliz kuniga qarab o'zgaradi):

VaqtFaoliyatNatija (artefakt)
09:30Daily stand-up: kecha nima test qilindi, nima to'sib turibdiBloklovchi muammolar ro'yxati
10:00Yangi user story'larni o'qish, savollar berish (talablarni statik testlash)Aniqlashtirilgan acceptance criteria
11:00Test dizayn: checklist va test case yozishChecklist, test case'lar
13:30"Ready for QA" holatidagi vazifalarni staging muhitida tekshirishTest natijalari
15:00Topilgan bug'larni yozish, dasturchi bilan qayta hosil qilishBug report'lar
16:00Avtomatlashtirilgan regression testlar natijasini tahlil qilishYiqilgan testlar tahlili
17:00Ertangi reliz uchun smoke tekshiruvi, hisobotTest summary

QA yaratadigan asosiy artefaktlar (ISTQB ularni testware deb ataydi):

  • Test plan — nimani, qanday, kim va qachon test qilamiz (QA 7).
  • Checklist va test case — tekshiruvlar ro'yxati va batafsil qadamlar (QA 7).
  • Bug report — topilgan defekt haqida aniq hujjat (QA 8).
  • Avtomatlashtirilgan testlar — kod ko'rinishidagi testlar (QA 16–22).
  • Test hisobotlari va metrikalar — reliz qarori uchun ma'lumot (QA 27).

⚠️ Diqqat: QA — "darvozabon" (gatekeeper) emas. Relizni chiqarish qarorini odatda product owner yoki menejment qabul qiladi. QA'ning vazifasi — qaror uchun aniq ma'lumot berish: qaysi risklar tekshirildi, qaysilari ochiq qoldi, qaysi bug'lar ma'lum. ISTQB ham buni "whole team approach" deb ataydi: sifat uchun butun jamoa javobgar.


4. QA sohasidagi rollar {#rollar}

Lavozim nomlari kompaniyadan kompaniyaga farq qiladi, shuning uchun vakansiyada nomga emas, vazifalar ro'yxatiga qarang. Eng ko'p uchraydigan rollar:

RolAsosiy fokusAsosiy asboblarKursdagi darslar
Manual QA EngineerFunksional testlash, test dizayn, bug reportJira, TestRail/Qase, Chrome DevTools1–9
QA AnalystTalablarni tahlil qilish, acceptance criteria, test strategiyaConfluence/Notion, Jira3, 5–7
Automation QA (AQA)Regression testlarni avtomatlashtirishPlaywright, Postman/Newman, CI16–21
SDET (Software Development Engineer in Test)Test infratuzilmasi, framework, CI/CD — dasturchi darajasida kodPlaywright, Docker, GitHub Actions13, 16–22
Mobile QAiOS/Android ilovalarni testlash va avtomatlashtirishXcode Simulator, Android Emulator, Proxyman, Maestro/Appium14, 15, 22
Performance QAYuklama, stress va barqarorlik testlarik6, JMeter, Grafana23
Security tester (QA darajasida)OWASP bo'yicha asosiy xavfsizlik tekshiruvlariBurp Suite, ZAP, Proxyman24
QA Lead / QA ManagerStrategiya, jamoa, metrikalar, reliz uchun ma'lumotJira dashboard'lari, test management27
Test ArchitectBir nechta jamoa uchun test strategiyasi va asboblar arxitekturasiFramework'lar, CI, observability16, 21, 27

So'nggi yillarda ba'zi kompaniyalarda "Quality Engineer" (QE) nomi ham uchraydi: bu rol faqat test yozish bilan emas, butun jamoaning sifat amaliyotlari (testability, monitoring, jarayon) bilan shug'ullanadi. Mohiyatan bu — yuqorida aytilgan "haqiqiy QA" yo'nalishi.

💡 Maslahat: Pentest (professional xavfsizlik sinovi) — alohida kasb va alohida ruxsatlar talab qiladi. QA darajasidagi xavfsizlik testlari faqat o'z ilovangiz va test muhitingizda bajariladi (QA 24).


5. Ko'nikmalar xaritasi {#konikmalar}

ISTQB syllabus'i tester uchun muhim umumiy ko'nikmalarni sanab o'tadi: testlash bilimi; puxtalik, ehtiyotkorlik, qiziquvchanlik, detallarga e'tibor, tizimlilik; muloqot, faol tinglash va jamoada ishlash; analitik, tanqidiy va ijodiy fikrlash; texnik bilim; domen (soha) bilimi.

Hard skills — kursda qayerda o'rganamiz

Ko'nikmaNega kerakDars
Test dizayn texnikalariKam test bilan ko'p xato topish5–6
Test hujjatlari va bug reportNatijani boshqalarga tushunarli yetkazish7–8
Web, HTTP, DevToolsBug front-end'dami yoki back-end'dami — ajratish9
API testingInterfeyssiz qatlamni tekshirish10–11, 20
SQLMa'lumotlar bazasidagi natijani tasdiqlash12
Terminal, Git, loglarMuhitni tushunish, dalil yig'ish13
Mobil testlash va ProxymaniOS/Android va tarmoq trafigini tekshirish14–15, 22
Dasturlash (TypeScript) va PlaywrightAvtomatlashtirish16–21
Performance, security, a11yNofunksional sifat23–25

Soft skills — eng ko'p baholanadigan sifatlar

  • Qiziquvchanlik: "Agar foydalanuvchi bu yerda ortga qaytsa-chi?", "Internet uzilsa-chi?" deb so'rash odati.
  • Detallarga e'tibor: 299 999 va 300 000 so'm orasidagi farqni ko'ra bilish.
  • Muloqot: ISTQB to'g'ri ta'kidlaydi — tester ko'pincha "yomon xabar" olib keladi. Shuning uchun xabar konstruktiv bo'lishi kerak: shaxsga emas, faktga qaratilgan.
  • "Konstruktiv buzish" fikrlashi: dastur qanday ishlashi kerakligini bilib turib, uni qanday buzish mumkinligini o'ylash — va topganingizni jamoaga foyda bo'ladigan tarzda yetkazish.
  • Biznesni tushunish: qaysi xato foydalanuvchi va kompaniya uchun qimmatroq ekanini ajrata bilish.

🧠 Esda tuting: Yaxshi QA "T-shaklidagi" mutaxassis: keng doirada (web, API, mobil, SQL, jarayon) yetarli bilim va bir-ikki yo'nalishda (masalan, avtomatlashtirish yoki mobil) chuqur tajriba.


6. QA haqidagi 6 ta afsona {#afsonalar}

AfsonaHaqiqat
"QA — shunchaki tugma bosish"Asosiy ish — tahlil: talablarni tushunish, test dizayn, sabablarni izlash, risklarni baholash. Tugma bosish — faqat ijro qismi.
"Tester — dasturchi bo'la olmaganlar kasbi"Bu boshqa fikrlash turi. SDET'lar dasturchi darajasida kod yozadi; manual QA esa domen va foydalanuvchi tajribasini chuqur biladi.
"Avtomatlashtirish qo'lda testlashni butunlay almashtiradi"ISTQB ham DevOps haqida yozganda ta'kidlaydi: avtomatlashtirish ko'p bo'lsa ham, foydalanuvchi nuqtai nazaridan qo'lda testlash baribir kerak. Exploratory va usability testlar — inson ishi.
"AI testerlarni almashtiradi"AI test g'oyalari va kod qoralamasini tezlashtiradi, lekin risk bahosi, biznes konteksti va natija uchun javobgarlik insonda qoladi. AI javoblarini doim tekshirish kerak (QA 26).
"Yaxshi test qilingan dastur — xatosiz dastur"Testlash xato borligini ko'rsatadi, yo'qligini isbotlay olmaydi — bu birinchi printsip (QA 2).
"QA faqat oxirida kerak"Eng arzon bug — talab bosqichida topilgani. Erta testlash (shift-left) haqida QA 3 darsida.

7. Kurs yo'l xaritasi: Zero → Hero {#yol-xaritasi}

Kurs 5 moduldan iborat. Har modul oxirida siz yangi darajaga chiqasiz. Darajalar taxminiy: haqiqiy darajani amaliyot va real loyihalardagi tajriba belgilaydi.

Kurs yo'l xaritasi: 5 modul va har biridan keyingi daraja

Modul 1 — Poydevor

№Dars
1QA 1: QA Engineer kim — Testing, QC va QA farqi, rollar va 2026-yil kasb xaritasi
2QA 2: Testlashning 7 printsipi va ISTQB tili — Error, Defect, Failure va test jarayoni
3QA 3: SDLC, STLC va Agile — Waterfall, V-Model, Scrum va QA'ning har bosqichdagi o'rni
4QA 4: Testlash darajalari va turlari — Unit'dan UAT'gacha, Smoke, Sanity, Regression va Test Pyramid

Modul 2 — Manual QA yadrosi

№Dars
5QA 5: Test dizayn texnikalari (1) — Equivalence Partitioning, Boundary Value Analysis va Decision Table
6QA 6: Test dizayn texnikalari (2) — State Transition, Pairwise, Use Case, White-box va Exploratory
7QA 7: Test hujjatlari — Test Plan, Strategy, Checklist, Test Case va Traceability Matrix
8QA 8: Bug report va Bug Life Cycle — Severity vs Priority, Jira va yaxshi bug yozish san'ati

Modul 3 — Texnik ko'nikmalar

№Dars
9QA 9: Web qanday ishlaydi — Client-Server, HTTP, DNS, Cookie, Cache va Chrome DevTools
10QA 10: API testing (1) — REST, JSON, status kodlar va Postman amaliyoti
11QA 11: API testing (2) — Test dizayn, negative testlar, JSON Schema, Auth, Mock va Contract testing
12QA 12: SQL va ma'lumotlar bazasi — QA uchun SELECT, JOIN, GROUP BY va data tekshiruvi
13QA 13: Terminal, Git, Docker va Loglar — QA'ning muhandislik asboblari
14QA 14: Mobil ilovalarni testlash — iOS va Android farqlari, Simulator, ADB, TestFlight va checklist
15QA 15: Proxyman — HTTPS trafikni ushlash, Map Local, Breakpoint, Scripting va Network Conditions

Modul 4 — Avtomatlashtirish

№Dars
16QA 16: Test avtomatlashtirishga kirish — nimani avtomatlashtirish kerak, ROI va 2026 asboblar xaritasi
17QA 17: QA uchun TypeScript — o'zgaruvchilar, funksiyalar, async/await, class'lar va npm
18QA 18: Playwright (1) — o'rnatish, locator'lar, action'lar, assertion'lar va auto-waiting
19QA 19: Playwright (2) — Page Object Model, fixtures, auth state, network mocking va visual testlar
20QA 20: API avtomatlashtirish — Playwright request, Zod schema va API+UI gibrid testlar
21QA 21: CI/CD'da testlar — GitHub Actions, hisobotlar, sharding, flaky testlar va quality gate
22QA 22: Mobil avtomatlashtirish — Maestro, Appium 3, XCUITest va Espresso

Modul 5 — Hero darajasi

№Dars
23QA 23: Performance testing — Load, Stress, Spike, Soak va k6 bilan amaliyot
24QA 24: Security testing asoslari — OWASP Top 10:2025, IDOR, injection va QA xavfsizlik checklisti
25QA 25: Accessibility, Localization va Visual testing — WCAG 2.2, axe-core va o'zbek tili nozikliklari
26QA 26: AI va QA (2026) — LLM bilan test dizayn, Playwright Agents, MCP va AI tizimlarini testlash
27QA 27: Test strategiyasi, metrikalar va QA Lead — risk-based testing, release va jarayon qurish
28QA 28: Karyera — CV, portfolio, ISTQB sertifikati, 60+ intervyu savoli va birinchi ish
29QA 29: Amaliyot — Capstone loyiha va 30 ta topshiriq (Zero to Hero Challenge)

Kursni qanday o'qish kerak

  1. Ketma-ket o'qing. Har dars oldingisiga tayanadi: masalan, Playwright darsi TypeScript va test dizayn bilimlarini talab qiladi.
  2. Mashqlarni tashlab ketmang. Har dars oxiridagi topshiriqlarni avval o'zingiz bajaring, keyin javobni oching.
  3. Amaliyot qiling. Darslarda real amaliyot saytlari ishlatiladi (saucedemo, restful-booker va boshqalar) — ular aynan test o'rganish uchun yaratilgan.
  4. Portfolio yig'ing. Yozgan test case, bug report va avtomatik testlaringizni saqlang — QA 29 darsidagi capstone loyihada ularni bitta GitHub portfolio'ga jamlaysiz.

🇺🇿 Mahalliy kontekst: Kurs o'zbek tilida, lekin atamalar inglizcha qoldirilgan. Sababi oddiy: vakansiyalar, Jira, rasmiy hujjatlar va intervyu savollarining katta qismi aynan shu atamalar bilan ishlaydi. "Test case", "bug report", "regression" so'zlarini tarjima qilmasdan bilish — ishda tezroq moslashishingizga yordam beradi.


8. Kursning yo'ldoshi: DemoBozor {#demobozor}

Butun kurs davomida misollar uchun bitta xayoliy mahsulotdan foydalanamiz — DemoBozor. Bu O'zbekistondagi onlayn do'kon: Web (React), iOS (Swift), Android (Kotlin) ilovalari, REST API (Node.js) va PostgreSQL bazasi. Tillar: o'zbek (lotin va kirill), rus, ingliz. Vaqt zonasi — Asia/Tashkent (UTC+5). Rollar: xaridor, sotuvchi, admin.

DemoBozor'ning biznes qoidalari — bizning "talablar hujjatimiz". Keyingi darslarda test case, chegara qiymatlar va bug report'larni aynan shu qoidalarga qarab yozamiz:

SohaQoida
Telefon raqami+998 + 9 raqam (masalan +998 90 123 45 67)
SMS kod (OTP)6 raqam; 120 soniya amal qiladi; qayta yuborish 60 soniyadan keyin; 3 marta noto'g'ri → raqam 15 daqiqaga bloklanadi
Ism2–50 belgi; harflar (lotin/kirill), probel, apostrof, defis
Parol (sotuvchi/admin web paneli)8–64 belgi; kamida 1 harf va 1 raqam
Savatchabitta mahsulot soni 1–99; savatchada ko'pi bilan 50 xil mahsulot
Yetkazib berishmahsulotlar summasi ≥ 300 000 so'm → bepul; aks holda 20 000 so'm. Toshkent 1 kun, viloyatlar 2–4 kun
Promo-kod6–12 belgi, faqat A–Z va 0–9 (katta harf); bitta buyurtmaga bitta; har promo uchun minimal summa va amal qilish muddati; har foydalanuvchi bir marta
ChegirmalarYangi mijoz (birinchi buyurtma) 10%; promo-kod odatda 15%; chegirmalar qo'shilmaydi — kattasi qo'llanadi; Premium a'zo: har doim bepul yetkazib berish
Muddatli to'lov (foizsiz)yosh 18–65 (shu jumladan); buyurtma 500 000 – 30 000 000 so'm; 3, 6 yoki 12 oy
To'lov usullariUzcard, Humo, Visa, Mastercard, naqd (yetkazib berganda)
Sharh1–5 yulduz; matn 10–1000 belgi; faqat yetkazilgan buyurtma egasi yozadi
Qidiruvso'rov 2–100 belgi

Buyurtma holatlari: CREATED (Yaratildi) → PENDING_PAYMENT (To'lov kutilmoqda) → PAID (To'landi) → PACKING (Yig'ilmoqda) → SHIPPED (Yo'lda) → DELIVERED (Yetkazildi). Bekor qilish (CANCELLED) va qaytarish (RETURNED) qoidalarini QA 6 darsida State Transition texnikasi bilan batafsil ko'ramiz.

💡 Maslahat: Bu jadvalni saqlab qo'ying yoki xatcho'p qiling. Keyingi darslardagi ko'p mashqlar "DemoBozor qoidasiga ko'ra..." deb boshlanadi.


9. Kurs davomida kerak bo'ladigan asboblar {#asboblar}

Hozir hech narsani o'rnatish shart emas — har bir asbobni kerakli darsda qadam-baqadam ko'rsatamiz. Bu ro'yxat — oldindan tasavvur uchun:

AsbobNima uchunDarsRasmiy sayt
Google Chrome (DevTools)Web ilovani tekshirish, Network, Console9google.com/chrome
Visual Studio CodeKod va test yozish13, 17–22code.visualstudio.com
Node.js 24 LTSTypeScript va Playwright'ni ishga tushirish17–21nodejs.org
GitKod versiyalari, branch'larni test qilish13git-scm.com
Postman yoki BrunoAPI so'rovlarini yuborish va test yozish10–11postman.com, usebruno.com
ProxymanMobil va web trafikni ushlash, mock qilish15proxyman.com
sqlite3 yoki DB Browser for SQLiteSQL so'rovlarini mashq qilish12sqlitebrowser.org
Jira yoki LinearBug va vazifalarni yuritish8atlassian.com/software/jira, linear.app

⚠️ Diqqat: Postman'ning bepul (Free) rejasi 2026-yil martidan boshlab faqat bitta foydalanuvchiga mo'ljallangan. Yolg'iz o'rganish uchun bu yetarli. Jamoa bilan bepul ishlash kerak bo'lsa — Bruno, Hoppscotch yoki Insomnia kabi muqobillar bor; tushunchalar bir xil (QA 10).

💡 Maslahat: iOS ilovalarni test qilish uchun macOS va Xcode kerak; Android uchun Android Studio (emulator) yetarli va u Windows/Linux'da ham ishlaydi. Proxyman macOS, Windows va Linux uchun mavjud. Bu tafsilotlar QA 14 va QA 15 darslarida.


10. Amaliy mashqlar {#mashqlar}

Mashq 1: QA, QC yoki Testing?

Har bir faoliyatni QA (jarayon, oldini olish), QC (mahsulotni tekshirish) yoki Testing (QC'ning test orqali shakli) ga ajrating. Ba'zilarida ikkita javob mumkin — sababini yozing.

  1. Retrospektivada bug'lar ko'pligi muhokama qilinib, Definition of Done'ga "har PR'da unit test" qoidasi qo'shildi.
  2. Tester POST /api/v1/orders endpoint'ini 10 xil ma'lumot bilan sinadi.
  3. Jamoa yangi dasturchilar uchun kod yozish standartini tasdiqladi.
  4. Tester talablar hujjatini o'qib, ikki qoida bir-biriga zid ekanini topdi.
  5. Dizayner yangi to'lov ekranining interaktiv prototipini 5 ta foydalanuvchida sinadi.
  6. CI'da linter (static analysis) har commit'ni tekshiradi.
  7. QA Lead bug statistikasiga qarab, to'lov moduli uchun majburiy ikki kishilik code review'ni taklif qildi.
  8. Reliz oldidan savatcha va checkout oqimi qo'lda tekshirildi.

<details> <summary>💡 Javobni ko'rish</summary>

№JavobIzoh
1QAJarayon o'zgardi — kelajakdagi defektlarning oldi olinadi
2Testing (QC)Dinamik test: dastur ishga tushirilib tekshiriladi
3QAStandart — jarayon qoidasi
4Testing (QC)Statik testlash: talab hujjati review qilindi, defekt to'g'ridan-to'g'ri topildi
5QCPrototiplash — QC'ning testdan tashqari shakli
6Testing (QC) + QAStatic analysis — statik test; uni CI'ga majburiy qo'yish esa jarayon qarori (QA)
7QATest natijalari jarayonni yaxshilash uchun ishlatildi
8Testing (QC)Mahsulot reliz oldidan tekshirildi

Asosiy qoida: natija — o'zgargan jarayon bo'lsa QA, natija — mahsulot haqidagi ma'lumot bo'lsa QC/Testing.

</details>

Mashq 2: Elektr choynakni test qiling

Intervyularda tez-tez beriladigan savol: "Mana bu narsani qanday test qilasiz?" Oddiy elektr choynak uchun kamida 15 ta test g'oyasini yozing va ularni kategoriyalarga ajrating (funksional, xavfsizlik, ishonchlilik, foydalanish qulayligi, moslik va h.k.).

<details> <summary>💡 Javobni ko'rish</summary>

Namunaviy javob (to'liq ro'yxat emas — muhimi, kategoriyalab fikrlash):

Funksional

  • To'liq choynak suvni qaynatadimi? Necha daqiqada?
  • Minimal belgigacha quyilgan suv ham qaynaydimi?
  • Qaynagandan keyin avtomatik o'chadimi?
  • Indikator chirog'i yoqilganda yonib, o'chganda o'chadimi?

Xavfsizlik

  • Suvsiz yoqilsa nima bo'ladi (quruq qaynatishdan himoya)?
  • Tutqich qizib ketadimi?
  • Qopqoq yopilmagan bo'lsa ham o'chadimi?
  • Elektr shnur va vilka izolyatsiyasi; nam qo'l bilan ushlaganda xavf.

Chegaraviy holatlar

  • "MAX" belgisidan ortiq quyilsa — suv toshib ketadimi?
  • Tarmoqdagi kuchlanish pasayib-ko'tarilganda xavfsiz ishlaydimi?

Ishonchlilik (chidamlilik)

  • 1000 marta yoqib-o'chirilganda tugma ishlashda davom etadimi?
  • Ketma-ket 10 marta qaynatilganda qizib ketish himoyasi ishlaydimi?

Foydalanish qulayligi

  • Suv sathini ko'rish oson mi?
  • Chap qo'l bilan ham ushlash qulaymi?
  • Quyishda suv tomchilab ketadimi?

Moslik va muhit

  • Turli rozetkalarga mos keladimi?
  • Qattiq suvda (ohak) qancha vaqtda ifloslanadi, tozalash osonmi?

Intervyuda eng muhimi — ro'yxat uzunligi emas, tuzilmasi: avval talablarni so'rang ("Choynak kim uchun? Qaysi standartlarga mos bo'lishi kerak?"), keyin kategoriyalar bo'yicha fikrlang, oxirida eng xavfli testlarni birinchi o'ringa qo'ying.

</details>

Mashq 3: DemoBozor login ekranidagi muammolar

DemoBozor iOS ilovasining yangi build'ida (v2.0.0, build 145) login ekranini tekshirdingiz va quyidagilarni kuzatdingiz. DemoBozor qoidalari asosida qaysi kuzatuvlar muammo ekanini toping (kamida 8 ta) va har biri qaysi qoida yoki kutilmani buzayotganini yozing.

  1. Telefon maydoni +998 prefiksi bilan boshlanadi va o'chirib bo'lmaydi.
  2. Telefon maydoniga harflarni ham yozish mumkin: +998 90 abc.
  3. 8 ta raqam kiritilganda ham "Kod olish" tugmasi faol; bosilganda hech qanday xabar chiqmaydi.
  4. SMS kod uchun 4 ta katak ko'rsatiladi.
  5. "Kodni qayta yuborish" tugmasi 30 soniyadan keyin faollashadi.
  6. Noto'g'ri kod kiritilganda "Invalid code" yozuvi chiqadi (ilova tili — o'zbekcha).
  7. Ketma-ket 4 marta noto'g'ri kod kiritildi — ilova 5-urinishga ham ruxsat berdi.
  8. To'g'ri kod kiritilgach, bosh sahifa ochiladi.
  9. To'g'ri kod kiritilgandan keyin 5–6 soniya ekran "qotadi", yuklanish belgisi yo'q.
  10. Qorong'i rejimda telefon raqami matni fon bilan deyarli bir xil rangda.
  11. iPhone SE'da klaviatura ochilganda "Kirish" tugmasi klaviatura ostida qolib ketadi.
  12. "Foydalanish shartlari" havolasi 404 sahifasini ochadi.

<details> <summary>💡 Javobni ko'rish</summary>

To'g'ri ishlayotganlar: 1 va 8. Qolgan 10 tasi — muammo:

№MuammoBuzilgan qoida / kutilmaKategoriya
2Harf yozish mumkinTelefon faqat raqamlardan iborat (+998 + 9 raqam)Validatsiya
38 raqamda tugma faol, xabar yo'qTelefon to'liq 9 raqam bo'lishi kerak; foydalanuvchiga sabab ko'rsatilishi kerakValidatsiya, UX
44 ta katakSMS kod — 6 raqamTalabga mos emas
530 soniyaQayta yuborish — 60 soniyadan keyinTalabga mos emas
6"Invalid code"Interfeys tili o'zbekcha — matn tarjima qilinmaganLokalizatsiya
75-urinishga ruxsat3 marta noto'g'ri → 15 daqiqa blokXavfsizlik, talab
95–6 s "qotish"Foydalanuvchi jarayon ketayotganini ko'rishi kerak; sekinlikni alohida tekshirish kerakUX, performance
10Qorong'i rejimda matn ko'rinmaydiMatn va fon kontrasti yetarli bo'lishi kerakAccessibility, UI
11Tugma klaviatura ostidaKichik ekranlarda ham asosiy harakat ko'rinishi kerakLayout, moslik
12404 havolaHavolalar ishlashi kerak (App Store review uchun ham muhim)Funksional

E'tibor bering: bitta ekranda juda turli toifadagi muammolar bor. Shuning uchun test qilishda faqat "ishlayaptimi?" emas, validatsiya, talab, til, xavfsizlik, tezlik, ko'rinish, turli qurilmalar bo'yicha ham fikrlash kerak.

</details>

Mashq 4: Hodisalardan saboq

Har bir hodisa uchun bitta test yoki jarayon amaliyotini taklif qiling, u zararni oldini olishi yoki kamaytirishi mumkin edi:

  1. Ariane 5
  2. Knight Capital
  3. CrowdStrike

<details> <summary>💡 Javobni ko'rish</summary>

  1. Ariane 5: Ariane 5'ning real trayektoriya ma'lumotlari bilan SRI'ni o'z ichiga olgan to'liq tizim testi; qayta ishlatilgan kodning qiymat oraliqlarini (chegaralarini) yangi muhit uchun tekshirish; parvozda keraksiz funksiyani o'chirish.
  2. Knight Capital: Deploy'dan keyin avtomatik tekshiruv — "barcha 8 serverda bir xil versiya turibdimi?"; ikkinchi xodim tasdiqlashini talab qiluvchi reliz checklisti; o'lik kodni o'chirib tashlash; g'ayrioddiy savdo hajmida tizimni to'xtatuvchi monitoring.
  3. CrowdStrike: Har bir maydonni wildcard emas, haqiqiy qiymatlar bilan tekshiradigan test; kontent yangilanishini ham kod kabi test qilish; canary/staged reliz — avval kichik guruhga, keyin hammaga.

Umumiy xulosa: hech biri "bitta dasturchining xatosi" emas — har birida bir nechta himoya qatlami ishlamagan.

</details>

Mashq 5: Vakansiyaga qarab rolni aniqlang

Quyidagi (xayoliy) vakansiya parchalari qaysi rolga mos keladi: Manual QA, AQA, SDET yoki Performance QA?

  1. "Playwright + TypeScript'da regression testlarni yozish va qo'llab-quvvatlash, CI'da natijalarni tahlil qilish."
  2. "Yangi funksiyalar uchun test case yozish, Jira'da bug report yuritish, mobil ilovani qo'lda testlash."
  3. "Test infratuzilmasini noldan qurish: Docker'da test muhitlari, parallel ishga tushirish, ichki test kutubxonalarini ishlab chiqish."
  4. "k6 bilan yuklama ssenariylarini yozish, p95 javob vaqti va xatolar foizini Grafana'da kuzatish."

<details> <summary>💡 Javobni ko'rish</summary>

  1. AQA — tayyor framework'da avtomatik testlar yozish va qo'llab-quvvatlash.
  2. Manual QA — test case, bug report, qo'lda testlash.
  3. SDET — infratuzilma va kutubxonalar: dasturchi darajasidagi muhandislik.
  4. Performance QA — yuklama testlari va metrikalar.

Real vakansiyalarda bu chegaralar aralashib ketadi: ko'p kompaniyalar "Manual + Automation" ni bitta odamdan kutadi. Shuning uchun nomga emas, vazifalarga qarang.

</details>

Mashq 6: Xabarni konstruktiv qiling

Tester jamoa chatiga shunday yozdi: "Sizning kodingiz yana buzildi! Promo-kod umuman ishlamayapti, kim test qildi buni?!" Shu xabarni faktga asoslangan, hurmatli va foydali ko'rinishda qayta yozing.

<details> <summary>💡 Javobni ko'rish</summary>

Namunaviy variant:

"Salom! Staging'da (build 145) promo-kod qo'llashda muammo topdim: BAHOR15 kodi kiritilganda chegirma qo'llanmayapti, summa o'zgarmayapti. Qadamlar va video DB-312 bug'ida. Kecha (build 144) xuddi shu ssenariy ishlagan edi, ehtimol oxirgi o'zgarish ta'sir qilgandir. Birga ko'rib chiqsak bo'ladimi?"

Nima o'zgardi:

  • Shaxsga emas, xatti-harakatga qaratilgan ("kodingiz" emas, "promo-kod qo'llashda").
  • Aniq dalil: build raqami, kod, ticket raqami, video.
  • Foydali kontekst: oldingi build'da ishlagan — regressiya ehtimoli.
  • Hamkorlik taklifi, ayblash emas.

</details>


O'zingizni tekshiring {#checklist}

  • [ ] To'rt hodisaning (Ariane 5, Therac-25, Knight Capital, CrowdStrike) texnik sababini bir gapda ayta olaman.
  • [ ] Testing, QC va QA farqini misol bilan tushuntira olaman.
  • [ ] QA muhandisi yaratadigan 5 ta artefaktni sanay olaman.
  • [ ] Manual QA, AQA va SDET farqini bilaman.
  • [ ] DemoBozor'ning asosiy qoidalarini (yetkazib berish, SMS kod, promo-kod) eslay olaman.
  • [ ] Bug haqidagi xabarni konstruktiv shaklda yoza olaman.

Xulosa {#xulosa}

  • Dasturiy xatolar raketani yo'q qilishi, odamlarga zarar yetkazishi va kompaniyani bir necha daqiqada katta zararga kiritishi mumkin. Har bir yirik hodisada bir nechta himoya qatlami ishlamay qolgan.
  • Testing — mahsulotga qaratilgan, tuzatuvchi yondashuv va QC'ning asosiy shakli. QA — jarayonga qaratilgan, oldini oluvchi yondashuv va butun jamoaning mas'uliyati.
  • QA ishi talab yozilgan kundan boshlanadi: talablarni o'qish, test dizayn, testlash, bug report, avtomatlashtirish va reliz uchun ma'lumot berish.
  • Rollar ko'p (Manual QA, AQA, SDET, Mobile, Performance, Security, Lead) — vakansiyada nomga emas, vazifalarga qarang.
  • Eng qadrli sifatlar: qiziquvchanlik, detallarga e'tibor va topilgan muammoni konstruktiv yetkazish.
  • Kurs 5 moduldan iborat va butun kurs davomida xayoliy DemoBozor do'koni misolida ishlaymiz.
  • Keyingi dars: QA 2: Testlashning 7 printsipi va ISTQB tili — Error, Defect, Failure va test jarayoni

Manbalar {#manbalar}

  1. ISTQB — Certified Tester Foundation Level (CTFL) v4.0
  2. ISTQB CTFL Syllabus v4.0.1 (PDF, 2024-09-15)
  3. Ariane 501 Inquiry Board report (to'liq matn)
  4. ESA — Ariane 501: Presentation of Inquiry Board report
  5. Leveson N., Turner C. — An Investigation of the Therac-25 Accidents (IEEE Computer, 1993, PDF)
  6. Wikipedia — Therac-25
  7. SEC — SEC Charges Knight Capital With Violations of Market Access Rule (2013)
  8. SEC — Knight Capital Americas LLC buyrug'i, Release No. 34-70694 (PDF)
  9. CrowdStrike — External Technical Root Cause Analysis: Channel File 291 (PDF)
  10. Microsoft — Helping our customers through the CrowdStrike outage (2024-07-20)
  11. Postman — About plans (2026)
  12. Bruno — open source API client
  13. Proxyman

Markdown manba

iOS Lessons