🧪 Dasturiy ta'minotni testlash

Birinchi assert'dan to'liq test to'plamigacha - 20 bosqichli amaliy qo'llanma

📚 20 bo‘lim 🎯 O‘rta 👁 3 ko‘rish

Darslik haqida

«Menda ishlaydi» - dalil emas. Ushbu darslikda siz kodingiz ishlashini isbotlashni o'rganasiz: birinchi test va pytest chiqishini o'qish, assert va istisnolar, test piramidasi, yaxshi testning tuzilishi, parametrli testlar, fixture va test ma'lumotlari, test dublyorlari (stub, mock, fake), vaqt va tasodifni boshqarish, TDD, ma'lumotlar bazasi bilan integratsiya testlari, API testlari, uchidan-uchiga testlar, qoplama va uning chegaralari, beqaror testlar, eski kodni testlash, xossaviy testlash, ishlash va yuklama testlari hamda testlarni CI quvuriga ulash. Barcha misollar haqiqiy Python 3.13 va pytest da ishga tushirilgan - har bir chiqish shu yerdan olingan, hech narsa taxmin qilinmagan. Yakunida siz bitta testi yo'q loyihani olib, unga to'liq test to'plami quriasiz. Vosita sifatida pytest ishlatiladi, lekin qoidalarning deyarli hammasi har qanday tilga tegishli.

Darslik mundarijasi

  1. 1 Testlash nima va u qayerdan paydo bo'lgan "«Menda ishlaydi» nima uchun dalil emas, testlashni kim o'ylab topgan, xUnit oilasi qanday tug'ilgan va nima uchun testl... 8 daq.
  2. 2 Muhitni sozlash va birinchi test Virtual muhit yaratish, pytest o'rnatish, birinchi testni yozish va ishga tushirish, pytest chiqishini qatorma-qator o'q... 15 daq.
  3. 3 Assert, istisno va xato xabarini o'qish Turli qiymatlarni solishtirish, kasr sonlar bilan tuzoq, pytest.approx, istisnolarni tekshirish va foydali xato xabarlar... 17 daq.
  4. 4 Test piramidasi - nimani va qaysi darajada testlash Modul, integratsiya va uchidan-uchiga testlar farqi, ularning haqiqiy tezligi, muzqaymoq shoxi qarshi-naqshi va umuman t... 12 daq.
  5. 5 Yaxshi testning anatomiyasi Tayyorlash-Bajarish-Tekshirish tuzilishi, test nomini gap qilib yozish, testlarning bir-biriga bog'liq bo'lmasligi va te... 15 daq.
  6. 6 Parametrli testlar Bitta test bilan o'nlab holatni tekshirish, chegara qiymatlari, id berish, parametrlarni ko'paytirish va xato holatlarin... 14 daq.
  7. 7 Fixture va test ma'lumotlari Takrorlanadigan tayyorgarlikni fixture ga chiqarish, yield bilan tozalash, qamrov (scope) tanlash, conftest.py va pytest... 18 daq.
  8. 8 Test dublyorlari - stub, mock va fake Tashqi bog'liqlikni almashtirish usullari, beshta dublyor turi, monkeypatch va unittest.mock, patch qayerga qo'yilishi v... 17 daq.
  9. 9 Vaqt, tasodif va tashqi dunyo Joriy vaqt, tasodifiy sonlar, muhit o'zgaruvchilari va fayl tizimi - testlashi eng qiyin to'rtta bog'liqlik va ularning... 16 daq.
  10. 10 TDD - avval test, keyin kod Qizil-yashil-refaktor tsikli to'liq amaliy misolda, TDD ning uch qoidasi, u nima beradi va qachon to'g'ri kelmaydi. 17 daq.
  11. 11 Integratsiya testlari va ma'lumotlar bazasi Haqiqiy baza bilan test yozish, har test uchun toza sxema, xotiradagi baza, tranzaksiyani orqaga qaytarish va SQLite bil... 12 daq.
  12. 12 API va HTTP testlari Veb ilovani test mijozi orqali tekshirish, holat kodlari, JSON tanasi, kiritishni tekshirish, xato javoblari va API shar... 13 daq.
  13. 13 Uchidan-uchiga (E2E) testlar Haqiqiy server va haqiqiy brauzer bilan test yozish, serverni kutish, Playwright, sahifa obyekti naqshi va nima uchun E2... 13 daq.
  14. 14 Qoplama va uning chegaralari Qoplamani o'lchash, qator va shox qoplamasi farqi, 100% qoplamadagi xato, mutatsion sinov va qoplama raqamini maqsadga a... 18 daq.
  15. 15 Beqaror (flaky) testlar Goh o'tib, goh yiqiladigan testlar, ularning oltita sababi, tartibga bog'liqlikni pytest-randomly bilan topish va beqaro... 14 daq.
  16. 16 Eski kodni testlash Testi yo'q kodga qanday yondashish, xarakteristik testlar, oltin nusxa usuli, tikish joylari va xavfsiz refaktoring tart... 18 daq.
  17. 17 Xossaviy testlash Misollar o'rniga qoidalarni tekshirish, Hypothesis bilan kirishlarni avtomatik yaratish, qisqartirish (shrinking) va qay... 16 daq.
  18. 18 Ishlash va yuklama testlari Tezlikni test bilan qo'riqlash, vaqt o'lchashning beqarorligi, so'rovlar sonini sanash orqali N+1 muammosini tutish va o... 14 daq.
  19. 19 Testlar CI quvurida Testlarni har kommitda avtomatik ishga tushirish, belgilar bilan tez va sekin testlarni ajratish, parallel bajarish, his... 17 daq.
  20. 20 Yakuniy loyiha - testi yo'q loyihaga to'liq to'plam Bitta testi yo'q xarajat hisobchisini olib, unga piramida bo'yicha modul, integratsiya, API va dublyor testlarini qurish... 22 daq.