Test darajalari โ qaysi bosqichda kim, nima test qiladi. Test piramidasi va Regression Testing โ professional QA uchun asosiy tushunchalar.
Tasavvur qiling: siz 100 qavatli bino quryapsiz. Har qavatda bir xil tarzda tekshirasizmi? Albatta yo'q. Poydevorni โ muhandislar, xonalarni โ sozlovchilar, umumiy ko'rinishni โ arxitektor tekshiradi.
Dasturlashda ham shunday. Kichik qismlarni dasturchilar, modullar orasidagi bog'liqlikni senior dasturchilar, butun tizimni QA'lar, yakuniy qabul qilishni biznes tomoni sinaydi.
Bu darsda 4 ta test darajasini, ular orasidagi balansni (Test Piramidasi) va Regression Testing'ni ko'rib chiqamiz.
Har bir test darajasi boshqacha maqsadga xizmat qiladi. Ularning har biri kim tomonidan, qachon va qanday asboblar bilan bajariladi โ bilish kerak.
qo'shish(2, 3) funksiyasi 5 qaytarayaptimi? Agar ha โ test Pass, agar yo'q โ Fail. Foydalanuvchi bu testni ko'rmaydi, bu faqat kod darajasida.
Darajalarni pastdan yuqoriga (boshlanishdan yakunigacha) tartibda sudrab joylashtiring.
Chap tomonda darajani tanlang, o'ngdan kim bajarishini bog'lang.
Test Piramidasi โ test darajalari orasida qancha test bo'lishi kerakligi haqidagi nazariya. Mike Cohn tomonidan taklif qilingan.
Asosiy g'oya: Ko'p sonli kichik (tez) testlar pastda, kam sonli katta (sekin) testlar yuqorida.
Afzalliklari: Juda tez bajariladi (millisekunddalarda), arzon yozish, ishonchli. Shuning uchun ko'p miqdor yozish mumkin va kerak.
Kamchiliklari: Sekin (minutlarda), qimmat, ba'zida "flaky" (bir xil natija bermaydi). Shuning uchun kam, faqat eng muhim sahnalar uchun.
Agar sizning loyihangizda 1000 ta Unit test va 10 ta E2E test bo'lsa โ bu sog'lom piramida. Agar 100 ta Unit va 500 ta E2E โ bu muammo (Ice Cream Cone).
Ba'zi loyihalarda piramida teskari bo'ladi โ ko'p E2E testlar, kam Unit testlar. Bu yomon holat:
Regression Testing โ dasturga yangi o'zgarish kiritilgandan so'ng, eski funksiyalar ishlayaptimini tekshirish.
Oddiy qilib: yangi feature qo'shildi โ qolgan narsalar yana ishlayaptimi? Regression Testing aynan shuni tekshiradi.
Uzum Market'da yangi "Chegirma kodi" funksiyasi qo'shildi. Dasturchi kodni yozdi, yangi funksiya ishlayapti. Lekin... endi savat ham ishlamay qoldi! Chunki yangi kod eski savat kodiga ta'sir qilgan. Bu holatni oldini olish uchun โ Regression Testing.
Regression Testing juda ko'p marta takrorlanadigan ish. Shuning uchun u avtomatlashtirish uchun ideal. Keling qaraymiz:
Yangi jamoalarda yoki kichik loyihalarda ishlatiladi.
Katta loyihalarda albatta kerak.
Bu ikkala atamani ko'pchilik aralashtirib yuboradi. Intervyu'da so'raydi.
Smoke โ "ishlayaptimi umuman?" degan savolga javob. Eng asosiy funksiyalar ishlayaptimi? 15-30 daqiqalik tez tekshiruv.
Misol: Sayt ochilayaptimi? Login ishlayaptimi? Bosh sahifa chiqayaptimi? Agar ha โ keyingi testlarga o'tamiz.
Regression โ "eski narsalar yana ishlayaptimi?" degan savolga javob. Chuqurroq, batafsilroq tekshiruv. Bir necha soatdan bir necha kungacha.
Misol: Barcha eski funksiyalarni bir-bir tekshirish. Login, ro'yxatdan o'tish, savat, to'lov, profil... hammasini.
Smoke = tez, yuzaki ("ishlayaptimi?") ยท Regression = sekin, chuqur ("to'liq ishlayaptimi?")
Har bir bug'ni o'qing va ideal holda qaysi darajada topilishi kerakligini tanlang.
Juma, 14:00. Payme jamoasi yangi funksiya qo'shdi โ "Do'stga pul yuborish". Dasturchilar kodni yozdi, test server'ga joyladi.
Sizning vazifangiz: Testorsiz. Bu yangi funksiyani test qilish kerak, lekin yana nima tekshirasiz?
Endi nazariyani TestShop'da amaliy sinab ko'ramiz. Har bir test darajasi uchun konkret vazifalar bor.
System Testing va Regression Testing'ni amaliy bajaring.
๐ TestShop'ga o'tishTuzilgan Regression va Smoke Test ro'yxatlaringizni saqlang. Intervyu'da: "Siz qanday Regression strategiyasi yaratasiz?" degan savolga konkret misol bilan javob bera olasiz. Bu sizni boshqa nomzodlardan ustun qiladi.
Test darajalari va Regression โ intervyu'da eng ko'p so'raladigan mavzular. Javoblarni puxta o'rganing.
๐ก Har savol ustiga bosing โ professional javobni ko'rasiz.
Javob: "4 ta asosiy test darajasi bor:"
Muhim: "Men aynan System Testingda ishlayman โ bu QA'ning asosiy sohasi."
Javob: "Test Piramidasi โ test darajalari orasida balans haqidagi nazariya. Ko'p Unit, o'rtacha Integration, kam E2E."
Nima uchun?
Anti-pattern: Ice Cream Cone โ ko'p E2E, kam Unit. Bu yomon โ tez natija yo'q.
Javob: "Regression Testing โ dasturga yangi o'zgarish kiritilgandan so'ng, eski funksiyalar buzilmaganligini tekshirish."
Qachon bajariladi:
Pro javob: "Katta loyihalarda Regression Testing avtomatlashtirilishi kerak โ chunki u har safar takrorlanadi. Manual qilish ko'p vaqt oladi."
Javob:
Ketma-ketlik: "Build kelsa, avval Smoke qilamiz. Agar smoke o'tsa โ keyin Regressionga o'tamiz. Smoke Fail bo'lsa โ Regression'ga o'tmaymiz, build'ni qaytaramiz."
Javob:
Misol:
add(2, 3) = 5 โ bitta funksiyaJavob shabloni: "Men asosan System Testingda ishlayman โ bu QA'ning asosiy sohasi. Butun tizimni end-to-end sinab ko'raman."
Qo'shimcha:
Pro javob: "Lekin Unit test natijalarini ko'rib boraman โ agar unit test'larda muammo bo'lsa, bu kelgusida System darajasida ham chiqadi."
Javob: "Acceptance Testing'ni asosan Product Owner yoki mijoz bajaradi. Lekin QA:"
Muhim: "UAT โ QA'ning qaror qabul qilish sohasi emas. QA biznes emas, texnik mutaxassis."
Bu darsdan eslab qolish kerak bo'lgan eng muhim g'oyalar