Bosh sahifa Wiki Smoke testing

Smoke testing

Smoke testing — yangi build yoki deploymentning eng muhim funksiyalari ishga tushishini tez va keng bo‘lmagan tekshiruvlar bilan tasdiqlash bosqichi. Atama apparat sinovida qurilma tutun chiqarmasligini ko‘rishdan kelib chiqqan. Dasturiy tizimda smoke suite chuqur correctnessni isbotlamaydi; u build keyingi batafsil test yoki trafik uchun yetarlicha sog‘lom ekanini aniqlaydi.

Tekshiruv doirasi

Smoke test odatda quyidagilarni qamrab oladi:

  • process ishga tushdi va readiness muvaffaqiyatli;
  • asosiy sahifa yoki API javob beradi;
  • database migration va oddiy read/write ishlaydi;
  • login yoki kritik biznes oqimning minimal varianti o‘tadi;
  • queue, object storage yoki zarur dependencyga asosiy bog‘lanish mavjud.

Har edge case, browser kombinatsiyasi va uzun workflow smoke suite’ga kiritilmaydi. Test soni deployment feedbackini bir necha daqiqa ichida beradigan darajada saqlanadi. Kritik funksiya mahsulotga qarab farq qiladi: media sayt uchun maqola o‘qish, payment servis uchun transaction qabul qilish.

Build smoke

CI builddan keyin package o‘rnatilishi, binary start olishi, configuration parse va asosiy command ishlashi tekshiriladi. Container image smoke test image ichida kerakli executable, certificate bundle va migration file borligini aniqlaydi. Faqat unit test o‘tishi packaging xatosini topmasligi mumkin.

Build smoke muvaffaqiyatsiz bo‘lsa qimmat E2E va performance joblar boshlanmaydi. Bu fail-fast pipeline resursini tejaydi. Biroq barcha mustaqil joblar diagnostika uchun kerak bo‘lsa, ularning natijasi alohida saqlanadi.

Deployment smoke

Staging yoki production rolloutdan keyin tashqi endpoint orqali test qilinadi. Bu load balancer routing, DNS, TLS certificate, secret, migration va runtime config’ni birga ko‘radi. Pod ichidan localhost health check tashqi ingress xatosini topmaydi.

Blue-green deploymentda yangi green muhit avval internal smoke’dan o‘tadi, keyin kichik canary traffic oladi. Smoke yiqilsa switch qilinmaydi yoki rollback boshlanadi. Rollbackning o‘zi oldingi schema bilan moslikni talab qiladi.

Synthetic transaction

Read-only endpoint 200 qaytarishi yetarli bo‘lmasa, maxsus test account bilan kichik transaction bajariladi. Test order yoki message aniq markerga ega bo‘lib, analytics va real operatsiyadan ajratiladi. Cleanup yoki compensating amal tekshiriladi.

Production smoke zararli side effect yaratmasligi kerak. Real payment o‘rniga provider test mode, juda kichik nazoratli transaction yoki read-after-write disposable obyekt ishlatiladi. Test credential minimal ruxsatli va secret managerda saqlanadi.

Smoke va boshqa testlar

Sanity testing ko‘pincha ma’lum kichik o‘zgarishning mantiqan to‘g‘ri ishlashini tekshiruvchi tor test ma’nosida ishlatiladi, lekin terminlar jamoalarda aralashadi. Regression suite eski funksiyalar buzilmaganini kengroq tekshiradi. Health check esa doimiy, juda yengil signal; smoke deploymentda bir necha real oqimni bajaradi.

Smoke test muvaffaqiyati production SLO bajarilishini kafolatlamaydi. Load, chaos va security testlar boshqa xususiyatlarni o‘lchaydi. Ular smoke’dan keyingi bosqichlarda yoki alohida jadvalda ishlaydi.

Ishonchlilik

Smoke gate flaky bo‘lsa deploymentlar keraksiz to‘xtaydi yoki jamoa testni e’tiborsiz qoldiradi. Fixed sleep o‘rniga readiness va condition wait, tashqi dependency uchun qisqa aniq timeout ishlatiladi. Retry birinchi failure’ni report qiladi va faqat tanilgan transient holatga beriladi.

Failure artefakti endpoint, status, response snippet, deployment version va correlation IDni ko‘rsatadi. Secret va token chiqarilmaydi. Test owneri va runbook qaysi xatoda rollback yoki investigate qilishni belgilaydi.

Bog‘liq tushunchalar

Sanity testing, Regression testing, Health check, Deployment, Canary release, CI/CD, Synthetic monitoring