GELECEĞİN MESLEKLERİNDEN: YAZILIM TEST MÜHENDİSLİĞİ
Doç. Dr. Vahid Garousi Yusifoğlu, Prof. Dr. Ali Yazıcı
Atılım Üniversitesi, Mühendislik Fakültesi
Yazılım Testi
Yazılım testi, yazılım geliştirme yaşam döngüsünde önemli bir faaliyettir. Yazılım testi, bilgisayar-tabanlı bir
sistemin veya hizmetin kalitesi hakkında bilgi paylaşımını sağlamak için yapılan bir faaliyet ve incelemedir.
Yetersiz yazılım testi, bilgisayar ürünlerine ve dolaylı olarak da firmalara yoğun zararlar verebilir. Örneğin,
ABD Ulusal Standartlar Enstitüsü’nün1 yayınladığı bir rapora göre [1], yazılım hatalarının ABD ekonomisine
verdiği zarar yılda $59,5 Milyar dolardan fazladır. Bilgisayar-tabanlı sistemlerin ilk kullanıldığı yıldan beri,
yazılım hataları çok sayıda sorunlara ve başarısızlıklara neden olmuştur. Örneğin, 1996 yılında, Ariane-5 adlı
uydu taşıyıcı uzay mekiği kalkıştan yaklaşık 37 saniye sonra infilak etmiştir. Nedeni aslında bir o kadar basit ve
hayatidir; yazılımın yatay hız hesaplaması aşamasında, 64-bitlik kayan-noktalı sayı değerini 16-bitlik bir
tamsayıya dönüştürürken, ortaya çıkan taşma hatası (overflow) bu sonucu yaratmıştır. Maalesef, Ariane-5’ın
kontrol sistemi yeterli ve düzgün test edilmemiştir. Bu nedenle, endüstriyel sistemler için, sistematik yazılım
testi ve kalite kontrolü büyük önem taşımaktadır. Kısacası, yazılım testleri, bilgisayar-tabanlı ürünler için geri
dönüşü olmayan hataları engelleyebilmek, onarım maliyetlerini en aza indirebilmek ve zamandan kar etmek için
kaçınılmaz işlemlerdir.
Yazılım Test Mühendisliği (YTM)
Genelde, bilimsel ve mesleki açıdan, Yazılım Test Mühendisliği (YTM), bir alan olarak, yazılım mühendisliğin
altında yer almaktadır. Türkiye’de yazılım mühendisliği sektörü ilerlerken, buna paralel olarak, YTM de hızlı bir
şekilde gelişmektedir. Tam olarak, YTM, yazılım test yaşam döngüsü sırasında yapılan tüm faaliyetlere verilen
addır. YTM genelde beş adımdan oluşmaktadır: (1) Test-senaryolarının tasarımı, (2) Test-senaryolarının
yazılması, (3) Test yürütme, (4) Test sonuç değerlendirme, ve (5) Test-sonuç raporlama. Hem bilimsel yazında
hem de yazılım pazarlarında bu konuların tamamında yoğun araştırmalar, fikirler ve araçlar bulunmaktadır (bkz.
[3, 4, 5]).
Türkiye’deki Durum
Türkiye’nin YTM’de son durumunu anlamak ve değerlendirmek için, 2013 yılında yazarlar tarafından bir anket
araştırması yapılmış ve yayınlanmıştır [6]. Her bir yazılım takımı ve şirketinde gerçekleştirilen yazılım test
uygulamalarının türleri ve olgunlukları geniş bir yelpazeye sahiptir. Bu yelpazeyi oluşturan test uygulamalarının
türleri hakkında üst seviye bir bakış açısı betimlemek için değişik büyüklük ve bölgelerde (örneğin, Kanada,
İsveç, ve Finlandiya) çeşitli anketler gerçekleştirilmiştir. Oldukça aktif olan Türkiye için yazılım endüstrisinde
de bu uygulamaların durumunu karakterize etmek ve anlamak önem taşımaktadır. Anket araştırmamızın [6]
amacı Türk yazılım endüstrisindeki test uygulama türlerine üst seviye bir bakış açısını karakterize etmek ve
kavrayabilmektir. O çalışmada test uygulamalarının özellikle şu açıları ile ilgilenilmiştir: test türleri/seviyeleri,
1
National Institute of Standards and Technology (NIST)
test teknikleri, test otomasyonu ve test araçları, test ölçütleri, test yönetimi ve aynı zamanda Türk test
mühendislerinin karşılaştıkları zorluklar. Yukarıdaki amaca ulaşmak için, Kanada bağlamındaki geçmiş
deneyimimizi ve uluslararası Yazılım Mühendisliği Bilim Çerçevesi (Software Engineering Body of KnowledgeSWEBOK)’ın kullanımını temel alan, dokuzu yazılım testine odaklı, 54 soruluk çevrimiçi bir anketi sistematik
olarak tasarlanmıştır. Ankete, Türk yazılım endüstrisinden 163 yazılım mühendisi katılmıştır. Bununla ilgili
olarak yayınlanan çalışmada [6], yazılım testine odaklanan soruların sonuçları raporlanmış ve sentezlenmiştir.
Mümkün olduğu ölçüde, o anketin eğilim ve sonuçları, Türkiye Yazılım Test ve Kalite Derneği tarafından
2013’te gerçekleştirilen yeni bir anketin sonuçları ve Kanada yazılım endüstrisinde 2010’da gerçekleştirilen bir
diğer benzer anket ile karşılaştırılmıştır.
Anket sonuçları [6] Türkiye’deki yazılım test uygulamaları hakkında önemli ve ilginç bulguları ortaya
koymaktadır. Bulgular arasında şunlar yer almaktadır:
(1) İşlevsel (fonksiyonel)/sistem testi, kullanıcı kabul testi ve bütünleşme testi kullanılan en yaygın üç test
yaklaşımıdır. En az kullanılan teknik ise, stres testidir.
(2) Türk testçilerinin %10’undan daha azı biçimsel test durumu tasarım yaklaşımlarından birini
kullanırken, Kanada’da bu oran %15 ve %27 arası olarak biraz daha iyi durumdadır.
(3) Hem Kanada’da hem de Türkiye’de, el-yordamlı ve özdevinimli test yaklaşımları için genel olarak
geniş bir yelpaze mevcuttur. Bu durum, farklı katılımcıların birbirlerinden çok farklı uygulamalara
sahip olduğunu göstermektedir. Örnek olarak, bazıları özdevinimli testini yoğun olarak uygularken,
diğerleri el-yordamlı testi tercih etmektedir.
(4) Genel olarak Türk yazılım endüstrisinde kod kapsama ölçütlerinin popülerliği düşüktür.
(5) Türkiye’de kod satırı (Line of Code-LOC) başına düşen (ortalama) hata sayısı ve başarılı kullanıcı
kabul testlerinin sayısı gibi test ve kalite ölçütleri yaygın olarak kullanılmamaktadır.
(6) Çoğu şirkette, testçi-geliştirici oranları 1:2 ve daha üstündedir.
(7) Test-sonrası geliştirme yaklaşımları, test güdümlü (test önce) geliştirmeden çok daha popülerdir.
Anketimizin sonuçları hem Türkiye hem de dünyada test profesyonellerine yararlı olmuştur. Aynı zamanda,
yazılım test endüstrisindeki son eğilimleri gözlemlemek ve güçlü ve zayıf alanları belirlemek, bu alanda
endüstri-akademi işbirliklerinin önünü açarak araştırmacılara destek olmuştur.
Topluluklar ve Etkinlikler
YTM alanında Türkiye’deki en büyük topluluk, Türkiye Yazılım Test ve Kalite Derneği, TYTKD, (Turkish
Testing Board – TTB)’dir (www.turkishtestingboard.org). TYTKD’nin temel faaliyetleri şunlardır:
(1) Türkiye bilişim sektörünün uluslararası pazarlarda rekabet edebilmesi için sektörün yazılım testi ve
kalitesi konusunda bilgilendirilmesi
(2) Uluslararası test sınavlarının yapılarak sınavı kazanan adayların sertifikasyonu
(3) Yazılım testi konusunda dünyada standart haline gelmiş terimlerin Türkçeleştirilmesi
Türkiye’de YTM konusunda her yıl çok sayıda bilimsel ve endüstriyel etkinlik düzenlenmektedir. En popüler
etkinlikerin arasında Testİstanbul (www.testistanbul.org), Ankara Test Günleri ve Uluslararası Yazılım ve
Sistemler Test Konferansı (www.ictss.sabanciuniv.edu) sayılabilir.
Türkiye’deki Test Olgunluk Seviyesi ve Yetenekler
Yazarların şahsi gözlemlerine dayanarak, Türk yazılım endüstrisinin test ve YTM olgunluk seviyesinin hızlıca
artmakta olduğu anlaşılmaktadır. YTM olgunluk seviye ölçmek için bir kaç uluslararası modeller bulunmaktadır.
Bunlar arasında, Test Olgunluk Modeli Entegrasyonu “Test Maturity Model integration” (TMMi) örnek olarak
verilebilir. Yazarların bazı Türk yazılım firmaları ile ilişkilerine dayanarak, çoğu firmanın TMMi seviyelerinin,
1-5 ölçeğinde, 2, 3 veya 4 seviyelerinde yer aldıkları gözlemlenmiştir. Ancak bu seviyelerin hala yetersiz olduğu
düşünülmektedir.
Son Söz
Son söz olarak, yazarlar Türkiye’nin yazılım endüstrisinin hızlı hareketine paralel olarak YTM’in de
hızlanacağını ve bu alanda gelecekte daha parlak bir endüstriye sahip olunacağını öngörmektedirler.
Kaynakça
[1]
National American Institute of Standards and Technology (NIST), "The economic impacts of
inadequate infrastructure for software testing", May 2002, http://www.nist.gov/director/progofc/report02-3.pdf
[2]
Ali Yazıcı, Çiğdem Turhan, "Geleceğin Mesleklerinden: Yazılım Mühendisliği", Cumhuriyet Gazetesi
Bilim ve Teknoloji Dergisi, 20.07.2012
[3]
Vahid Garousi, Yasaman Amannejad, Aysu Betin-Can, “Software Test-Code Engineering: A
Systematic Mapping”, Journal of Information and Software Technology, In Press, 2014
[4]
Serdar Doğan, Aysu Betin-Can, Vahid Garousi, “Web Application Testing: A Systematic Literature”,
Journal of Systems and Software, volume 91, pp. 174–201, May 2014
[5]
Vahid Garousi, Junji Zhi, "A Survey of Software Testing Practices in Canada", Journal of Systems and
Software, Volume 86, Issue 5, pp. 1354–1376, May 2013
[6]
Vahid Garousi, Ahmet Coşkunçay, Aysu Betin Can, Onur Demirörs, "Türkiye’deki Yazılım Test
Uygulamaları Anketi", Ulusal Yazılım Mühendisliği Sempozyumu (UYMS), Eylul 2013
Download

Dosyayı İndir - Atılım Üniversitesi Açık Erişim Sistemi