Test Piramidi
- İngilizcesi
- Test Pyramid
- Okunuşu
- test pirımid
Kısaca
Test piramidi, otomatik testleri dengelemek için bir modeldir: çok sayıda hızlı birim testi, daha az entegrasyon testi ve tepede birkaç yavaş uçtan uca test.
Test piramidi nedir?
Test piramidi, otomatik bir test takımının nasıl şekillendirileceğine dair bir kılavuzdur. Geniş bir birim testi tabanı, daha küçük bir entegrasyon testi orta katmanı ve dar bir uçtan uca test tepesi önerir. Fikri Mike Cohn 2009 tarihli Succeeding with Agile kitabında yaygınlaştırmıştır ve hâlâ ekiplerin test stratejisini tartışırken kullandığı en yaygın yollardan biridir.
Şekil bir ödünleşimi (trade-off) izler. Alttaki testler hızlıdır, yazması ucuzdur ve bozulan satırı tam olarak gösterir; üsttekiler ise yavaştır, tam bir ortam gerektirir ve flaky olmaya daha yatkındır, ama tüm sistemin çalıştığına dair daha fazla güven verir. Pratik kural, her testi gidebileceği en alt katmana itmektir: bir hatayı bir birim testi yakalayabiliyorsa onun için uçtan uca test yazmayın ve üst katmanı giriş ve ödeme gibi bir avuç kritik akış için saklayın.
Bir besin piramidi gibi çalışır: altta bolca temel gıda, üstte yalnızca biraz tatlı; çünkü her katmanın bir rolü vardır ama oranlar önemlidir. Bazen dondurma külahı (ice cream cone) denen ters şekil, çoğunlukla elle yapılan ve uçtan uca testlerden, çok az birim testinden oluşur ve yavaş, kırılgan hatlara yol açar. Bazı ekipler, ön yüz kodunda entegrasyon testlerine daha fazla ağırlık veren test kupası (testing trophy) gibi alternatif şekilleri tercih eder.
Test piramidi, 70/20/10 gibi sabit bir oran değil, oranlar ve hız hakkında bir pratik kuraldır ve uçtan uca testlerin kötü olduğunu söylemez. Test kapsamından da farklıdır: kapsam testlerin ne kadar kodu yürüttüğünü ölçer, piramit ise testlerin seviyelere nasıl dağıtıldığını tanımlar. Mükemmel şekilli bir takım bile önemli kodu test edilmemiş bırakabilir.
Önemli noktalar
- Çok sayıda birim testi, daha az entegrasyon testi ve yalnızca birkaç uçtan uca test yazın.
- Üst seviyedeki testler daha yavaş ve kırılgandır, ancak sistemin daha büyük bir kısmını aynı anda test eder.
- Her testi hatayı yakalayabilecek en düşük seviyeye itin.
- Çoğunlukla dondurma külahı denen ters şekil, yaygın bir anti-desendir.
- Sabit bir oran değil, denge üzerine bir kılavuzdur.
Örnek
/\
/ \ End-to-end: few, slow, most realistic
/----\
/ \ Integration: some, real databases and APIs
/--------\
/ \ Unit: many, fast, isolated, cheap to run
/------------\Sık sorulan sorular
Test piramidini kim yarattı?
Mike Cohn, test otomasyon piramidini 2009 tarihli Succeeding with Agile kitabında anlattı. Daha sonra Martin Fowler'ın pratik test piramidi üzerine yazıları da dahil olmak üzere diğer uygulayıcılar tarafından geliştirildi ve yaygınlaştırıldı.
Test dondurma külahı nedir?
Ters çevrilmiş piramittir: çok az birim testi olan, elle yapılan ve uçtan uca testlerin hâkim olduğu bir takım. Bu tür takımlar yavaş, bakımı pahalı ve çoğu zaman flaky olduğu için bir anti-desen sayılır.
Test piramidi hâlâ geçerli mi?
Evet, maliyet ve hız hakkında düşünmenin bir yolu olarak. Ekipler tam şekli sistemlerine göre uyarlar; örneğin asıl işi bir veritabanıyla konuşmak olan ince servisler için daha fazla entegrasyon testi yazarlar.
İlgili sayfalar
- Birim TestiTest ve Kalite, s. 4Birim testi, bir fonksiyonun, metodun ya da sınıfın programın geri kalanından yalıtılmış olarak doğru davrandığını doğrulayan küçük ve otomatik bir kontroldür.
- Entegrasyon TestiTest ve Kalite, s. 7Entegrasyon testi, kod, veritabanı ve API gibi bir sistemin birkaç parçasının birlikte doğru çalışıp çalışmadığını kontrol eden otomatik bir testtir.
- Uçtan Uca TestTest ve Kalite, s. 35Uçtan uca test, kullanıcı arayüzünden veritabanına ve geri dönüşe kadar tam bir kullanıcı yolculuğunu uygulamanın tamamında çalıştıran otomatik bir testtir.
- Flaky TestTest ve Kalite, s. 8Flaky test, koda hiçbir değişiklik yapılmadan bazen geçen bazen başarısız olan ve sonuçlarına güvenmeyi zorlaştıran otomatik bir testtir.
- Test KapsamıTest ve Kalite, s. 30Test kapsamı, otomatik testler çalışırken bir programın kaynak kodunun ne kadarının yürütüldüğünü ölçen ve genellikle yüzde olarak gösterilen bir metriktir.
- CI/CDDevOps ve Bulut, s. 9CI/CD, kod değişikliklerini sık sık derleyen, test eden ve yayınlayan otomatik pratikler bütünüdür; yazılım kullanıcılara hızlı ve güvenli biçimde ulaşır.
- Test OtomasyonuTest ve Kalite, s. 32Test otomasyonu, testleri kodla çalıştırıp sonuçları denetlemektir; böylece aynı kontroller elle değil, her değişiklikte hızlı ve tutarlı biçimde tekrarlanır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin