Page 178 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 178
178 | Yazılım Testleri ve Test Odaklı Geliştirme Yaklaşımının Kullanımı
3. Yazılımda Test Yaklaşımları
Test yaklaşımları; yazılımın kalitesini artırmak, yazılımın gereksinimlere uygunluğunu ve
kodun güvenilirliğini sağlamak amacıyla uygulanır. Hangi yaklaşımın uygulandığı, projenin
gereksinimlerine, ekibin tercihlerine ve projenin karmaşıklığına bağlı olarak değişir.
Test odaklı geliştirme, davranış odaklı geliştirme ve kabul testi odaklı geliştirme üç önemli
yaklaşımdır.
3.1. Test Odaklı Geliştirme (Test Driven Development - TDD)
TDD, kodun ne yapacağını belirlemek ve doğrulamak için test senaryolarının geliştirildiği bir
yazılım geliştirme yaklaşımıdır. Test odaklı geliştirme; kodlama, test ve tasarımın birlikte çalıştığı
bir programlama tarzını ifade eder.
Test odaklı yazılım geliştirme süreci, kod yazılmadan önce birim testlerin yazılmasını içerir.
Yazılım geliştirici için bu süreç, bir problemi çözmek için belirli bir algoritma yazılmadan önce
kodun analizinin yapılmış olması ve davranışını bilmesi gerektiği anlamına gelir. Bu süreç ile test
yazılırken, test bir işlevin çıktısı olan bazı koşullardan geçecektir. Ayrıca test, söz konusu kodun
tüm satırlarını kapsayacak şekilde yazılmalıdır. Bu da kod kapsamının yazılan tüm kod satırlarının
yüksek bir yüzdesi olduğundan emin olunması gerektiği anlamına gelir.
3.2. Davranış Odaklı Geliştirme (Behavior Driven Development - BDD)
Davranış odaklı geliştirme ilk olarak 2006 yılında Dan North tarafından ortaya atılmıştır. BDD, TDD
gibi prensip olarak öncelikle test kodları yazılsın daha sonrasında proje kodu yazılsın anlayışını
benimsemektedir. Yazılım süreçlerinin daha test odaklı gitmesini sağlayan bir yaklaşımdır. Ancak
testler, esas olarak sistem davranışına dayanmaktadır. BDD, TDD’nin karmaşıklığını gidermek
amacıyla çıkmıştır.
İkisi arasındaki en büyük fark;
• TDD, diğer sınıflara (class) bağımlılığı az olan, sınıfların sorumluluklarını ayırarak tekrar
etmeyen bir kod yazılmasını sağlar.
• BDD ise, bir sistemin davranışını, bu davranışın nasıl geliştirildiğine dair ayrıntılara yer
vermeden tanımlanmasına izin verir.
TDD bazı koşulları ileri sürerken, BDD sistemin davranışını açıklamak için gerçek gereksinimlerin
gerçek zamanlı örnekleri kullanılarak düz metin olarak yazılır. Bu sayede yazılan bu metinler ile
uygulamanın güncel bir dokümanının oluşması da sağlanmış olur.