Bosh sahifa Wiki Test environment

Test environment

Test environment — dasturiy tizimni productionga chiqarishdan oldin yoki avtomatik tekshiruvda ishga tushirish uchun ajratilgan infratuzilma, konfiguratsiya, dependency va ma’lumotlar majmui. U lokal developer muhiti, CI’dagi vaqtinchalik containerlar, shared staging yoki productionga o‘xshash pre-production ko‘rinishida bo‘lishi mumkin. Muhitning vazifasi test natijasini takrorlanuvchi va production xatti-harakatiga mazmunan yaqin qilishdir.

Muhit turlari

Local environment tez feedback va debugging uchun. CI ephemeral environment har run’da toza yaratiladi va tugagach o‘chadi. Shared integration environment bir nechta jamoa xizmatini bog‘laydi, lekin parallel o‘zgarish va data conflictga moyil. Staging productionga yaqin deployment, ingress va managed dependency bilan release smoke/E2E uchun ishlatiladi.

Preview environment har pull request uchun alohida URL va namespace yaratadi. Bu frontend, backend va migrationni birga review qilishga yordam beradi. Xarajat, startup va orphan resurslar TTL hamda avtomatik cleanup bilan boshqariladi.

Parity

Production parity bir xil OS image, runtime major version, database engine, queue semantikasi va proxy konfiguratsiyasini ko‘zlaydi. Resurs hajmi aynan teng bo‘lishi shart emas, ammo kichik test database production query plan yoki timeout muammosini yashirishi mumkin. Performance test uchun representative scale alohida muhit talab qiladi.

Environment-specific farqlar deklarativ config orqali beriladi. Testda security nazoratini butunlay o‘chirish production integratsiyasini sinamaydi. Masalan, TLS, authentication va CORS oqimi testda ham mavjud, faqat credential va domain boshqa.

Provisioning

Infrastructure as Code network, database, role va service’larni versiyalangan shaklda yaratadi. Container image production bilan bir xil artefakt, faqat config runtime’da beriladi. “Stagingni qo‘lda tuzatish” drift yaratadi; keyingi rebuild xatoni qaytaradi.

Database migration bo‘sh schema va productiondan oldingi versiondan upgrade yo‘lida tekshiriladi. Seed script minimal reference data yaratadi. Environment readiness faqat VM running emas, migration va service health tugaganini bildiradi.

Test data

Real production data default tarzda testga ko‘chirilmaydi. Shaxsiy ma’lumot, token va payment details sizishi mumkin. Synthetic factory kerakli scenario va edge case’ni deterministic yaratadi. Productionga o‘xshash distribution kerak bo‘lsa, irreversible anonymization va access policy qo‘llanadi.

Test accountlar production identity provider bilan aralashmaydi. Email/SMS sandbox real mijozga xabar yubormaydi. Payment sandbox keylari production tranzaksiyasini bajara olmaydi. Environment banner va domain operatorning qayerda ishlayotganini aniq ko‘rsatadi.

Isolation

Shared environmentda namespace, tenant va unique prefix testlarni ajratadi. Queue topic va object storage path run ID bilan nomlanadi. Database transaction izolyatsiyasi processlararo E2E uchun yetarli bo‘lmasligi mumkin; alohida schema yoki database ishlatiladi.

Testning global feature flag yoki clockni o‘zgartirishi boshqa testga ta’sir qiladi. Flag tenant/run scope’da bo‘ladi. Parallel run capacity limitga tushsa xato product regressiyasi emas, environment saturation sifatida aniqlanadi.

Kuzatuv va xavfsizlik

Test environment log, metric va trace’ga ega bo‘lib, failure diagnostikasini beradi. Retention productiondan qisqa bo‘lishi mumkin, lekin CI run bilan correlation saqlanadi. Secretlar log va artefaktda maskalanadi.

“Faqat test” muhiti internetga ochiq va zaif credentialli bo‘lsa hujum uchun entry pointga aylanadi. Access VPN/identity orqali, IAM least privilege bilan cheklanadi. Test dependency va image’lar ham patch qilinadi. Production secret hech qachon test configga nusxalanmaydi.

Bog‘liq tushunchalar

Staging, Preview environment, Infrastructure as Code, Test data, Environment parity, CI/CD, Synthetic data