Soru tarihi
Test ortamları, IT ürünlerinin karmaşıklaşmasıyla birlikte ortaya çıktı. Ayrı bir ortam ayırmak, test uzmanlarının gerçek kullanıcıları ve verileri etkilemeden yeni işlevselliği güvenle test etmelerini sağlar.
Sorun
Eğer testler üretim (production) ortamında yapılırsa, veri kaybı, iş süreçlerinin bozulması veya güvenlik ihlalleri oluşabilir. Bazen test ve üretim ortamları farklılık gösterir; bu da "yakalanamayan" hatalara neden olur — değişiklikler test ortamında çalışırken, üretim ortamında bozulabilir (veya tam tersi).
Çözüm
Üretim ortamını en fazla benzeten ayrı test ortamları (test, staging, pre-prod) oluşturulmaktadır. Manuel testler için API, veriler, yapılandırma ve hatta "donanım" ile gerçek uyumluluk önemlidir. Kullanıcı verilerinin izolasyonuna, günlükleme, izleme ve kontrol verilerinin ayarlanmasına özel önem verilmektedir.
Ana özellikler:
Testler zararsızsa, üretim ortamını test etmek için kullanabilir miyiz?
Hayır, her zaman kullanıcıların çalışma düzenini bozma veya test verilerini "ifşa etme" riski vardır. Hatta "zararsız" testler bile istatistikleri etkileyebilir veya yük oluşturabilir.
Test, staging ve pre-prod ortamları arasındaki fark nedir?
Test — temel manuel ve otomatik testler için ortam, verilerle farklılık gösterebilir. Staging/pre-prod — üretime en fazla benzerlik gösterir, son test için altyapıyı ve verileri tekrar üretir.
Test ortamında hangi verilerin kullanılması tercih edilir: gerçek, anonimleştirilmiş veya sentetik?
En iyi seçenek, gerçek verilere benzer yapıdaki anonimleştirilmiş verilerdir. Gerçek veriler güvenliği ihlal eder, tamamen sentetik veriler ise gerçek davranışı yansıtmaz.
Bir hata düzeltme testi üretimde yapılmıştır, düzeltme sadece test ortamında yapılmıştır; sonuçta canlı ortamda yeni bir hata oluşur: müşteriler topluca şikayet eder.
Artılar:
Eksiler:
Ekip, ayrı bir staging üzerinde özelliği manuel olarak kontrol eder, test verileri düzenli olarak güncellenir, testler gerçeğe en yakın hale getirilir.
Artılar:
Üretimde güvenlik
Eksiler: