Test verilerinin yönetimi, otomasyonun en eski sorunlarından biridir. Otomasyona başlangıçta (Excel'de test senaryoları, makrolar, eski QTP) veriler çoğu zaman test yazarının "başında" veya doğrudan kodun içinde "bulunuyordu". CI/CD'nin ve paralel çalıştırmaların gelişimi yeni stratejiler gerektiriyordu: birden fazla testin aynı verileri eşzamanlı kullanırken yarışları nasıl önleyebiliriz ve sonuçların tekrarlanabilirliğini nasıl sağlayabiliriz?
Sorun: paylaşılan (shared) test verileri hızlı bir şekilde çakışmalara ve öngörülemeyen sonuçlara yol açar. Testler istikrarsız hale gelir, hata ayıklama zordur, veri parçaları "kirletir" veritabanlarını, çoklu iş parçalarında çalıştırma hatalara (data race) yol açar.
Çözüm — "test başına veri" (Test Data Per Test) stratejilerinin uygulanması:
Anahtar özellikler:
Üretim verilerini test verisi olarak kullanmak normal mi?
Hayır! Güvenlik, gizlilik riski taşımakla birlikte, veri değişkenliği nedeniyle testlerin öngörülemezliğine yol açar.
Verileri temizlemek için setUp ve tearDown kullanmak yeterli mi?
Her zaman değil. Riskleri azaltmaya yardımcı olurlar, ancak paralel çalıştırmalar testleri çarpışmaya sokabilir, eğer veriler küresel kalır veya benzersiz hale getirilmezse.
Aynı test verilerini smoke ve regresyon senaryolarında kullanmak mümkün mü?
Daha iyi olur — hayır. Smoke testleri mümkün olduğunca bağımsız olmalı ve regresyon ise kapsamlı veri hazırlığı gerektirir, aksi takdirde yanıltıcı sonuçlar olabilir.
Şirketin bir ortak girişi ve tüm otomatik testlerde kullanılan birkaç "paylaşılan" kullanıcı ve sipariş vardı. Paralel bir çalıştırma, testlerin birbirinin siparişlerini silmesine veya bir siparişin durumunu birkaç iş parçasında değiştirmesine yol açtı.
Artılar:
Eksiler:
Test veri fabrikaları kuruldu: her senaryo için testten önce benzersiz bir sipariş ve kullanıcı yaratılıyor, testten sonra siliniyordu ve sandbox ortamı yeniden başlatılıyordu.
Artılar:
Eksiler: