Otomasyon QATest Otomasyonu Mühendisi / QA Mühendisi

Test senaryoları için test verilerini doğru şekilde nasıl uygulamalısınız ve bunun önemi nedir?

Hintsage yapay zeka asistanı ile mülakatları geçin

Cevap.

Test verilerini uygulamak, otomatik testlerin önemli bir yönüdür ve test senaryoları için ortam, veriler ve bağımlılıkların hazırlanmasını sağlar.

Konu Tarihi Test verileri, otomatik testlerde testlerin yürütülmesinden önce ortamın önceden yapılandırılması ve temizlenmesi için merkezi bir yönetim aracı olarak belirmiştir. Bununla, ekipler testlerin tutarlılığını ve öngörülebilirliğini sağlamakta başarılı olmuşlardır; bu, kodun sürekli değiştiği durumlarda özellikle önemlidir.

Sorun Doğru test verileri olmadan otomatik testler istikrarsız hale gelir, birbirlerine bağlı olurlar, paralel çalışmada birbirlerine engel olurlar ve ayrıca teknik borcu artırırlar (çünkü kurulum/temizlik mantığı tekrarlanır ve büyür).

Çözüm Test çerçeveleri tarafından sağlanan standart test verisi mekanizmalarını kullanın (örneğin, @BeforeAll, @BeforeEach JUnit'te veya conftest.py pytest'te). Test verilerini esnek ve izole hale getirmeye çalışın:

  • Test için gerçekten gerekli olanı yükleyin ve boşaltın;
  • Karmaşık durumlar için dinamik veri/nesne oluşturulması ve sonrasında temizlenmesini uygulayın;
  • Hazırlık kodunun büyük bir kısmını tek bir yerde tutun;

Ana özellikler:

  • Her test için ortamın izolasyonu;
  • Testler arasındaki bağımlılıkların en aza indirilmesi;
  • Test verilerinde merkezi yönetim ve ölçeklenebilirlik.

Yanıtlanması zor sorular.

Bir testte test verisi oluşturan nesneleri değiştirmek mümkün mü? Eğer bunlar sonraki testler için gerekli ise?

Hayır, bu şekilde testler birbirine bağımlı olacaktır: bir testte yapılan değişiklikler diğerini bozabilir. Her test için taze nesneler kullanmak veya her yürütmeden sonra değişiklikleri geri almak daha iyidir.

Otomatik testlerin başlatılmasında tüm veritabanını "bir seferde" yüklememek neden hızlandırıcı bir yöntem değildir?

Bu yaklaşım, istikrarsız testlere ve zor anlaşılır hatalara yol açabilir. Veriler testler arasında "takılabilir" ve onların yürütülme sırası kritik hale gelebilir.

Tüm test kümesi için tek bir küresel test verisi kullanmak mümkün mü?

Hayır, küresel test verileri yalnızca tamamen bağımsız testler için kabul edilebilir. Bu genellikle testlerin karşılıklı etkisini sağlamakta ve analiz ve bakımını zorlaştırmaktadır.

Yaygın hatalar ve anti-patentler

  • Küresel/temizlenemeyen test verilerinin kullanımı
  • Her testte veri hazırlama mantığının tekrarı
  • Test verilerinin temizlenememesi, "ortamı kirletir".

Gerçek Hayattan Bir Örnek

Olumsuz Durum

Projede zaman tasarrufu sağlamak ve her testten sonra değişiklikleri geri almayarak otomatik testleri tek bir veritabanında çalıştırma kararı alındı. Aynı verileri değiştiren testler ortaya çıkınca, dalgalı hatalar meydana geldi: testler, yürütme sırasına bağlı olarak birbiri ardına "düştü".

Artıları:

  • Hızlı başlatma (teorik olarak)
  • Temizleme için daha az kod

Eksileri:

  • Arıza nedenlerini bulmak zor
  • Testler birbirine bağımlı
  • Ölçekleme sorunları

Olumlu Durum

Fabika-test verileri kullanıldı: her test, verilerini üretir, tamamlandıktan sonra siler. Eski hatalar artık tekrarlanmıyor, testlerin sırası önemsiz hale geldi.

Artıları:

  • Ortamın temizliği
  • Bağımsız testler
  • Kolay bakım

Eksileri:

  • Biraz daha yavaş başlatılır (çok sayıda test olduğunda)