Örnek sorular
Sd Test Data ManagementZorluk 1
Test otomasyonunda bir "fixture" en temelde ne için kullanılır?
- aTest suite'ini tek bir çalıştırılabilir binary'ye derlemek için
- bTest çalışmadan önce bilinen bir test verisi ya da durumu kurmak için✓
- cHer testin ne kadar sürdüğünü ölçmek için
- dNihai test raporunu HTML olarak biçimlendirmek için
Açıklama:Fixture, bir test çalışmadan önce ihtiyaç duyduğu bilinen veriyi ya da durumu (ör. bir kullanıcı kaydı, doldurulmuş bir veritabanı satırı) kurar — tam olarak (b). Derleme (a), süre ölçümü (c) ve rapor biçimlendirme (d) başka yerlerde ele alınan ilgisiz konulardır.
Sd Test Data ManagementZorluk 1
Test kodunda bir "factory"nin (test verisi fabrikasının) temel amacı nedir?
- aMakul varsayılan değerlerle geçerli, kullanıma hazır test nesneleri üretmek için✓
- bTest sürecini üretim veritabanına bağlamak
- cKararsız (flaky) bir testi geçene kadar otomatik olarak yeniden denemek
- dCI'a yüklenmeden önce test rapor dosyalarını sıkıştırmak
Açıklama:Factory, makul varsayılan değerlerle geçerli test nesneleri kurar ve test yalnızca kontrol ettiği alanları geçersiz kılar — bu (a). Üretime bağlanmak (b), yeniden deneme mantığı (c) ve rapor sıkıştırma (d) factory'nin işi değildir.
Sd Test Data ManagementZorluk 1
"Test verisi teardown'ı" neyi ifade eder?
- aBir testin beklenen çıktısını kontrol eden assertion'ları yazmak
- bBir UI testinin hangi tarayıcıda çalışacağını seçmek
- cBir testin oluşturduğu veriyi sonrasında silmek ya da sıfırlamak✓
- dTestlerin hangi sırayla çalışacağını süresine göre seçmek
Açıklama:Teardown, bir test sırasında oluşturulan veriyi silen ya da sıfırlayan temizlik adımıdır; bu sayede kalıntı durum sonraki testleri etkilemez — (c) buna karşılık gelir. Assertion'lar (a), tarayıcı seçimi (b) ve test sıralaması (d) ayrı konulardır.
Sd Test Data ManagementZorluk 1
Çoğu otomatik testte tamamen rastgele veri yerine "deterministik" test verisi üretimi neden tercih edilir?
- aRastgele veri her zaman sabit veriden daha hızlı çalışır
- bDeterministik veri güvenlik için kendini otomatik olarak şifreler
- cRastgele veri bir veritabanında saklanamaz
- dTestin sonucunu tekrarlanabilir kılar; böylece hatalar debug edilebilir✓
Açıklama:Deterministik veri her çalıştırmada aynı girdinin kullanılması demektir; bu yüzden başarısız bir test güvenilir biçimde tekrarlanır ve debug edilebilir — (d). Hız (a), kendini şifreleme (b) ve saklama kısıtı (c) determinizmle ilgili gerçek özellikler değildir.
Sd Test Data ManagementZorluk 2
Bir test suite'i, birçok testin okuyup değiştirdiği tek bir paylaşılan "admin" kullanıcı satırına dayanıyor. Bu yaklaşımın temel riski nedir?
- aVeritabanı disk alanını daha hızlı tüketir
- bPaylaşılan satırlar her zaman veritabanı foreign key kısıtlarını ihlal eder
- cTest edilen uygulama daha yavaş derlenir
- dTestler, paylaşılan satırın durumu üzerinden birbirine karışabilir✓
Açıklama:Birden fazla test aynı paylaşılan satırı okuyup yazınca, bir testin değişikliği başka bir testin bağımlı olduğu durumu bozar ve sıraya bağımlı, kararsız hatalara yol açar — bu (d). Disk kullanımı (a), derleme hızı (c) ve foreign key ihlali (b) paylaşımın doğasında olan riskler değildir.
Sd Test Data ManagementZorluk 2
Testler arasında tabloları truncate etmek yerine, her testin sonunda geri alınan (rollback edilen) bir veritabanı transaction'ı kullanmanın temel avantajı nedir?
- aGenellikle daha hızlıdır çünkü temel verinin yeniden eklenmesini gerektirmez✓
- bHer testten sonra tablo şemasını kalıcı olarak siler
- cAssertion'lardan bağımsız olarak testin geçmesini garanti eder
- dTestte herhangi bir assertion yazma ihtiyacını ortadan kaldırır
Açıklama:Bir testi transaction içine alıp rollback etmek, sonraki test için tabloları truncate edip temel/seed veriyi yeniden ekleme yükünü ortadan kaldırır ve çoğu durumda belirgin biçimde daha hızlıdır — (a). Diğer seçenekler rollback stratejisinin yapmadığı şeyleri anlatır.