TDD veya birim testi yaparken ayırt etmekte zorlandığım için bu test seviyelerini açıkça tanımlayabilen biri var mı? Lütfen bunların nasıl, ne zaman uygulanacağını açıklayabilecek biri varsa?
TDD veya birim testi yaparken ayırt etmekte zorlandığım için bu test seviyelerini açıkça tanımlayabilen biri var mı? Lütfen bunların nasıl, ne zaman uygulanacağını açıklayabilecek biri varsa?
Yanıtlar:
Kısaca:
Birim testi - Her bir kod parçasını birim test edersiniz. Her dosyayı veya sınıfı düşünün.
Entegrasyon testi - Etkileşimli birkaç birimi bir araya getirirken, bu birimleri bir araya getirmenin herhangi bir hataya yol açmadığından emin olmak için Entegrasyon testi yapmanız gerekir.
Regresyon testi - bütünleştirdikten (ve belki düzelttikten) sonra birim testlerinizi tekrar çalıştırmalısınız. Bu, daha fazla değişikliğin halihazırda test edilmiş herhangi bir birimi bozmamasını sağlamak için yapılan regresyon testidir. Zaten yaptığınız birim testi, regresyon testi için tekrar tekrar çalıştırılabilen birim testleri üretti.
Kabul testleri - bir kullanıcı / müşteri / işletme işlevselliği aldığında, onlar (veya test departmanınız) işlevselliğin gereksinimlerini karşıladığından emin olmak için Kabul testleri gerçekleştirecektir.
Beyaz kutu ve kara kutu testlerini de araştırmak isteyebilirsiniz. Ayrıca, performans ve yük testleri ve dikkate alınması gereken "hastalıkların" testleri de vardır.
Birim testi: Başarısız olduğunda, kodunuzun hangi parçasının düzeltilmesi gerektiğini size söyler.
Entegrasyon testi: Başarısız olduğunda, uygulamanızın parçalarının beklendiği gibi birlikte çalışmadığını söyler.
Kabul testi: Başarısız olduğunda, uygulamanın müşterinin yapmasını beklediği şeyi yapmadığını söyler.
Regresyon testi: Başarısız olduğunda, uygulamanın artık eskisi gibi davranmadığını söyler.
Aşağıda, bahsedilen testlerin her biri ve ne zaman uygulanabilecekleri için basit bir açıklama yer almaktadır:
Birim Testi Bir birim testi, bağımsız bir birimde (genellikle bir sınıf veya yöntem) gerçekleştirilir ve bir birim uygulandığında veya bir birimin güncellenmesi tamamlandığında gerçekleştirilmelidir.
Bu, bir sınıf / yöntem yazdığınızda, bir hatayı düzelttiğinizde, işlevselliği değiştirdiğinizde çalıştığı anlamına gelir ...
Entegrasyon Testi Entegrasyon testi, birkaç birimin birbiriyle ne kadar iyi etkileşime girdiğini test etmeyi amaçlar. Bu tür bir test, birimler arasında yeni bir iletişim biçimi kurulduğunda veya etkileşimlerinin doğası değiştiğinde gerçekleştirilmelidir.
Bu, yeni yazılmış bir birim sistemin geri kalanına entegre edildiğinde veya diğer sistemlerle etkileşime giren bir birim güncellendiğinde (ve birim testlerini başarıyla tamamladığında) çalıştırıldığı anlamına gelir.
Regresyon Testi Regresyon testleri, sistemde herhangi bir değişiklik yapıldığında, yeni hataların ortaya çıkmadığını kontrol etmek için gerçekleştirilir.
Bu, tüm yamalardan, yükseltmelerden, hata düzeltmelerinden sonra çalıştığı anlamına gelir. Regresyon testi, birleşik birim testi ve entegrasyon testinin özel bir durumu olarak görülebilir.
Kabul Testi Kabul testleri, bir alt sistemin (muhtemelen tüm sistemin) tüm spesifikasyonlarını karşılayıp karşılamadığının kontrol edilmesi gerektiğinde gerçekleştirilir.
Bu, esas olarak yeni bir teslimatı bitirmeden veya daha büyük bir görevin tamamlandığını duyurmadan önce çalıştırıldığı anlamına gelir. Müşteriye / patrona koşmadan ve zaferi ilan etmeden önce hedeflerinizi gerçekten tamamladığınızı görmek için bunu son kontrolünüz olarak görün.
En azından bu şekilde öğrendim, ancak başka muhalif görüşler olduğundan eminim. Her iki durumda da yardımcı olacağını umuyorum.
Deneyeceğim:
Birim Testi: Tek yöntemim doğru çalışıyor mu? (Bağımlılık veya bağımlılık alay konusu YOK)
Entegrasyon Testi: Ayrı ayrı geliştirilmiş iki modülüm bir araya getirildiğinde doğru çalışıyor mu?
Regresyon Testi: Yeni kodu değiştirerek / yazarak herhangi bir şeyi kırdım mı? (her kaydetme ile birim / entegrasyon testleri çalıştırmak teknik olarak (otomatikleştirilmiş) regresyon testidir). Daha çok QA bağlamında kullanılır - manuel veya otomatik.
Kabul Testi : Müşteri tarafından yapılan ve teslim edilen SW'yi "kabul ettiği" test
Yorum yapılamıyor (itibar düşük: - |) bu yüzden ...
@Andrejs, her test türüyle ilişkili ortamlar arasındaki farklılıklar konusunda iyi bir noktaya işaret ediyor.
Birim testleri, tipik olarak geliştiricilerin makinesinde (ve muhtemelen CI oluşturma sırasında) diğer kaynaklara / sistemlere bağımlılıklarla alay edilerek çalıştırılır.
Tanım gereği entegrasyon testleri (bir dereceye kadar) bağımlılıkların kullanılabilirliğine sahip olmalıdır; çevrenin daha temsili olduğu için diğer kaynaklar ve sistemler çağrılmaktadır. Test verileri alay konusu olabilir veya gerçek üretim verilerinin küçük bir karmaşık alt kümesi olabilir.
UAT / Kabul testi, gerçek dünya deneyimini QA'ya ve yazılımı kabul eden iş ekiplerine temsil etmelidir. Bu nedenle, gerçekçi performans ve son kullanıcı deneyimi sunmak için tam entegrasyon ve gerçekçi veri hacimlerine ve tam maskelenmiş / gizlenmiş veri setlerine ihtiyaç vardır.
Diğer "hastalıkların" da üretim deneyimini simüle etmek için ortamın mümkün olduğunca gerçeğe yakın olmasına ihtiyaç duyması muhtemeldir; örneğin performans testi, güvenlik, ...