Geçtiğimiz birkaç hafta boyunca, test metodolojimizdeki bir boşluğu nasıl dolduracağımı araştırıyor ve araştırıyorum. Basitleştirilmiş terimlerle birim testleri çok küçük ve geleneksel entegrasyon testleri çok büyük.
Bileşenin kullanıldığı Ave Bher ikisinin de sık olduğu bir senaryo ortaya çıkar C. Ancak Ave Bbiraz farklı gereksinimler var ve hakkında biraz farklı varsayımlar yapmak C. Eğer Avarsayımlarımı nasıl ve nerede test edersem geliştiriciysem C?
Açıkçası A, alay konusu varsayımlarla yapılan birim testler , tek başına Ctest etmek için iyidir A, ancak varsayımları kendileri test etmez.
Başka bir olasılık da birim testleri eklemektir C. Bununla birlikte, bu ideal değildir, çünkü Ageliştirme aşamasındayken, testleri Cgelişen varsayımlarla değiştirmek Aaşırı derecede sakar olacaktır. Gerçekten de Ageliştiricinin birim testlerine C(örneğin harici bir kütüphane) yeterli erişimi olmayabilir .
Bunu daha somut bir örnekle çerçevelemek için: Bunun bir düğüm uygulaması olduğunu varsayın. Ave bir dosyayı (diğer şeylerin yanı sıra) okumaya ve dosya içeriğini aktarılan nesnede depolamaya Bbağlıdır . İlk başta işlenen tüm dosyalar küçüktür ve önemli bir engelleme olmadan senkronize olarak okunabilir. Ancak geliştirici, dosyalarının büyük olduğunu ve zaman uyumsuz bir okumaya geçmesi gerektiğini fark eder . Bu , dosyaları eşzamanlı olarak okuduğunu varsaydığı bir zaman zaman eşitleme hatasıyla sonuçlanır .CCCBCAC
Bu, tam entegrasyon testlerinden izlenmesi son derece zor olan bir hata türüdür ve entegrasyon testlerine hiç yakalanamayabilir. Ayrıca As birim testleri tarafından yakalanmaz çünkü As varsayımları alay edilir. Ancak, sadece Ave sadece egzersiz yapan bir "mini" entegrasyon testi ile kolayca yakalanabilir C.
Bu tür testlere yalnızca birkaç referans buldum. Küçük , Bileşen Entegrasyon Testine Entegrasyon , Birim Entegrasyon Testine. Aynı zamanda resmi TDD birim testi yerine BDD test yönü ile ilgilidir .
Bu test boşluğunu nasıl doldurabilirim? Özellikle - bu tür testleri nereye koyacağım? "Mini" entegrasyon testlerinin giriş Ave girişlerini nasıl taklit edebilirim C? Ve bu testler ile birim testleri arasındaki test endişelerini ayırmak için ne kadar çaba harcanmalıdır? Yoksa test boşluğunu doldurmanın daha iyi bir yolu var mı?