Page 173 - Yazılım Teknolojileri Araştırma Bülteni 2023
P. 173
Yazılım Testleri ve Test Odaklı Geliştirme Yaklaşımının Kullanımı | 173
1.1. Birim Testi
Birim veya bileşen testi en temel test türüdür. Birim testi, yazılımın her bir bileşenini izole ederek
işleyişini kontrol eder. Birim test genellikle yazılım geliştiriciler tarafından geliştirme ortamında
yapılır. Bu tür testler yazılım geliştirme sürecinin en erken aşamalarında yapılmalı ve yazılım test
ekibine bu şekilde teslim edilmelidir.
Birim testinin amacı, her bir modülü veya birimi izole ederek bu kısmın gereksinimler ve işlevsellik
açısından doğru olduğunu göstermektir. Birim testi yazmak kodda yeniden düzenleme (refactor)
işlemini yapmayı kolaylaştırır. Kodda değişiklik yapıldığında, birim test çalıştırılarak oluşturulan
algoritmaya uygun bir şekilde çalışıp çalışmadığı kolaylıkla test edilir. Ancak birim testler tüm
hataları ortaya çıkarmaz, çünkü her parça izole şekilde test edilmektedir.
Birim testin ne olduğunu anlamak için, Michael Feathers’ın birim testin “ne olmadığı” ile ilgili
özetine bakılmalıdır:
Eğer bir testin,
• Veri tabanı ile etkileşimi varsa,
• Ağ üzerinden iletişimi varsa,
• Dosya sistemine müdahalede bulunuyorsa,
• Başka bir birim test ile aynı anda koşturulmaya çalışılıyorsa,
• Testin koşması için ortam değişkenleri ya da yapılandırılma dosyalarının değişmesi
gerekiyorsa bu test birim test değildir.
Birim testi yazarken uymamız gereken bazı kurallar vardır:
• En küçük parçacık test edilmeli,
• Sadece bir senaryo test edilmeli,
• Test metodu ismi test edilen senaryonun yansıması olmalı,
• Test edilen kısım diğer kısımlardan bağımsız olmalı,
• Hızlı çalışabilmeli ve çabuk sonuçlar vermeli,
• Okunaklı, anlaşılabilir ve sürdürülebilir olmalıdır.
1.2. Entegrasyon Testi
Entegrasyon testi uygulamaya ait farklı bileşenlerin birbirleri ile etkileşiminin test edildiği test
seviyesi olarak tanımlanır. Entegrasyon testleri, birden fazla birimi veya modülü gruplar halinde
test ederek hataları oluştuğu konumda tespit eder ve hatalara ait esas sebeplerin kolaylıkla
belirlenebilmesini sağlar. Ayrıca modüller arasındaki arayüzleri test edilerek ve farklı modüllerin
birbileri ile iletişiminden kaynaklanan kritik hataları ortaya çıkarır.