=Paper=
{{Paper
|id=Vol-1721/UYMS-YTM_2016_paper_6
|storemode=property
|title=Ogrenme-Ogretme Temelli ve Armoni Arama Algoritmalari ile Test Verisi Uretimi
|pdfUrl=https://ceur-ws.org/Vol-1721/UYMS-YTM_2016_paper_6.pdf
|volume=Vol-1721
|authors=Bahriye Akay,Omur Sahin
|dblpUrl=https://dblp.org/rec/conf/uyms/AkayS16
}}
==Ogrenme-Ogretme Temelli ve Armoni Arama Algoritmalari ile Test Verisi Uretimi==
Öğrenme-Öğretme Temelli ve Armoni
Arama Algoritmaları ile
Test Verisi Üretimi
Bahriye Akay, Omur Sahin*
Erciyes Universitesi, Bilgisayar Muhendisligi, 38090
bahriye@erciyes.edu.tr
omur@erciyes.edu.tr
Abstract. The increase in the size of software made hard to manage
the projects and caused software crisis such as late delivering, delivering
with missing functions, not meeting the requirements. The main reason of
software crisis is that testing is not carried out at each stage of software
development cycle. When the test is left to post-delivery stages, both
time and money budget increases exponentially. To conduct an efficient
testing, all possibilities and senarios should be considered and test data
supplied should produce maximum-coverage on the control-flow graph of
the associated program. Meta-heuristic algorithms instead of applying
an exhaustive search can produce high-quality test data that provide a
maximum coverage. In this study, two of recent meta-heuristics, teaching-
learning based optimization algorithm and harmony search algorithm has
been applied to test data generations and their search ability has been
analyzed on seven code fragments.
Keywords: Test data generation, TLBO Algorithm, Harmony Search
Algorithm
Özet. Bilgisayar yazılımlarının boyutlarının büyümesi ile yönetilmeleri
zorlaşmış, zamanında teslim edilememe, eksik fonksiyonla müşteriye sunma,
gereksinimlerin karşılanmaması gibi yazılım krizleri ortaya çıkmıştır. Yazılım
krizlerinin en büyük sebebi yazılımlarla ilgili testlerin en başından itibaren
yapılmamasıdır. Her aşamada yapılması gereken testler teslimat son-
rasına bırakıldığında projelerin zaman ve bütçe maliyetleri üstel olarak
artmaktadır. Test süreçlerinin verimli bir şekilde yapılması için belli
kriterler altında bütün durumların ve senaryoların test edilmesi gerekir.
Meta-sezgisel algoritmalarda test verisi üretimi tüm olasılıkları deneme-
den akış grafiğinde maksimum kapsama sağlayacak verilen üretilemesini
sağlar. Bu çalışmada test verisi üretimi için meta-sezgisel algoritmalar-
dan öğrenme-öğretme temelli algoritma ile armoni algoritması yedi farklı
kod parçacığı üzerinde çalıştırılmış ve arama yetenekleri incelenmiştir.
Anahtar Kelimeler: Test Verisi Üretimi, TLBO Algoritması, Armoni
Arama Algoritması
154
1 Giriş
Diğer mühendislik ürünlerinde olduğu gibi, yazılımların doğru metodoloji üzerinden
geliştirilmesiyle ortaya çıkan ürün daha kaliteli ve ekonomik olmaktadır. Stan-
dish Group’un yaptığı istatistikler incelendiğinde (Şekil 1), 2006 yılındaki pro-
jelerin %35’inin istenen zamanda, anlaşılan bütçe ve talep edilen gereksinim-
lerini karşılayacak şekilde tamamlandığı görülmektedir. %19’u bitmemiş yada
iptal edilmiştir; %46 oranındaki projede ise geç teslimat, aşılmış bütçe veya
sağlanmayan gereksinimler gibi krizler oluşmuştur.
Fig. 1. Projelerin başarı oranı. [31]
İçerisinde insan unsuru olmasından kaynaklı, uygulamalarda çeşitli hata-
ların olması mümkündür. Uygulamaların teslimat ve kurulum öncesinde doğru
çalıştığından ve kalitesinden emin olunmalıdır. Hataların erken safhalarda tespiti
ile giderilme maliyeti oldukça düşük olacaktır; geç safhalarda tespit edildiğinde
ise düzeltme maliyeti ve projenin toplam maliyeti de artacaktır (Şekil 2)[33]. Bu
nedenle test işlemlerinin doğru bir şekilde erken safhalardan itibaren yapılması
gerekmektedir.
Test işlemini için pek çok araç geliştirilmiştir. Bu araçlar çeşitli yöntemler ile
test verileri üretmekte ve üretilen bu verileri çeşitli senaryolar ile denemektedir.
Daha sonra elde ettiği sonuçlarla uygulamanın canlı sistemde davranışı hakkında
fikir yürütebilmektedir. Üretilen bu test verileri yetersiz ise uygulamadaki hata-
lar görülemeyebilir ve uygulamanın yanlış veya verimsiz çalışmasına sebep ola-
bilir. Bu yüzden test verileri yeterli ve pek çok durumu kontrol edebilecek şekilde
üretilmelidir.
Çok sayıda test aracı olmasına rağmen bu yöntemlerin pek çoğunun sorunu
bulunmaktadır. Kaynak kod içerisindeki sınıflar, döngüler, işaretçiler gibi karmaşık
yapıların kullanımı bu sorunların bazılarıdır. Bu nedenle daha yüksek başarım
(coverage’a dayalı) ve hız elde etmek için yapılan çalışmalar devam etmektedir.
Bu amaca yönelik olarak Webb Miller ve David Spooner arama tabanlı test
verisi üretme yöntemini önermişlerdir [28]. Bu çalışmada kayan noktalı sayı tipin-
deki verilerin (float) giriş olarak verildiği programlar için sembolik çalıştırma ve
155
Fig. 2. Hataların bulunma fazlarına göre düzeltilme maliyetleri. [33]
sınırlamalı problem çözümünü içeren bir bir yöntem kullanışmıştır [23]. 90’lı
yıllardan sonra Korel’in çalışmaları [14, 15] ve 1992’de Xanthakis’in genetik al-
goritma ile bu konuda bir çözüme ulaşmış olması [43] ile arama tabanlı test verisi
üretimi popülerleşmiştir.
Arama tabanlı test verisi üretiminde bir amaç fonksiyonunun yönlendirmesi
ile test verileri üretilir. İçyapısı bilinen programın test edildiği saydam kutu
test tekniklerinden biri olan yapısal test [10, 24, 27, 38] için çeşitli çalışmalar
yapılmıştır. Programın iç yapısının bilinmediği, girişin verilerek istenen çıkışın
üretilmesini kontrol eden kara kutu test tekniklerinden biri olan fonksiyonel test
[40] işlemi de oldukça popüler çalışma alanlarından biridir. Program üzerindeki
olası yükün etkisini inceleyen stres testi, güvenlik testleri ve çeşitli performans
testleri gibi fonksiyonel olmayan test [41] grubunda da çalışmalar bulunmak-
tadır. Sonlu durum makinalarındaki geçişlerle ifade edilen durum tabanlı test
verisi üretimi de literatürde çalışılmıştır [6].
Literatürdeki mevcut çalışmalar incelendiğinde; test verilerinin üretiminde
çeşitli optimizasyon algoritmalarının kullanılabildiği, elde edilen sonuçların başarımı
yüksek son zamanlarda önerilmiş algoritmalarla daha da geliştirilebilir olduğu
görülmüştür. Yapılan çalışmalardaki sonuçlar incelendiğinde bazı algoritmaların
coverage türünden başarımının düşük olduğu, bazılarının ise hız açısından yeter-
siz olduğu görülmüştür. Bu çalışmada test verisi üretiminde literatürde henüz
kullanılmamış güncel zeki optimizasyon algoritmalarından olan öğrenme-öğretme
temelli algoritma ile armoni algoritması incelenmiştir.
İkinci bölümde arama tabanlı test verisi üretimi anlatılacak, üçüncü bölümde
kullanılan meta-sezgisel algoritmalar kısaca özetlenecek, dördüncü bölümde yapılan
deneysel çalışmalar anlatılacak ve son bölümde değerlendirmesi yapılacaktır.
2 Arama Tabanlı Test Verisi Üretimi
Arama tabanlı test verisi üretiminde (SBST) temel amaç üretilen test veri-
lerinin kapsama metriğini maksimum yapmasıdır. Arama tabanlı yöntemlerden
biri olan rastgele test verisi üretimi yöntemi [3] düşük maliyetli, kolay kısıtlara
sahip kod parçaları için uygun test verileri üreten bir yöntemdir. Ancak zor
156
kısıtlı problemlerde oldukça kötü performans göstermektedir. Arama tabanlı test
verisi üretimi ayrık bir problem olarak sınıflandırılabilir ve ayrık problemlerin
çözümünde kullanılabilen meta-sezgisel algoritmalar test verisi üretiminde de
kullanılabilmektedir. Harman ve Jones test verisi üretiminde kapsama metriğine
bağlı olarak amaç fonksiyonu ile yönlendirilen meta-sezgisel algoritmaların kul-
lanımının verimli sonuçlar üretebileceğini öne sürmüştür [8]. Meta-sezgisel al-
goritmalar problemin karakteristiğinden bağımsız olarak amaç fonksiyonu elde
edilebilen bütün problemlerde kullanılabilmektedir. Arama tabanlı test verisi
üretimi hakkında yapılan çalışmalar Harman ve Jones [8], McMinn [25], Afzal
ve ark. , Räihä [30], McMinn [23], Harman ve ark. [9], Harman ve ark. [11]
tarafından derlenmiştir. Bütün bu derlemelerde arama tabanlı yazılım mühendisliği
alanında yapılabilecek çalışmaların mevcut olduğu ve her geçen gün popüler hale
geldiği görülmektedir.
Literatürde doğal yaşamdan esinlenerek önerilen çok sayıda meta-sezgisel bu-
lunmaktadır. Parçacık sürü optimizasyonu (PSO) [13], diferansiyel gelişim (DE)
[35], yapay arı koloni (ABC) [12] ve ateş böceği (FA) algoritmaları [44] en popüler
meta-sezgisel algoritmalar arasında gösterilmektedir.
Meta-sezgisel algoritmalar amaç fonksiyonları doğrultusunda arama yaparlar.
Bu nedenle iyi tasarlanmış bir amaç fonksiyonu algoritmanın optimum değeri
hızlı ve doğru bir şekilde bulmasına yardımcı olur [8]. Çeşitli çalışmalarda kul-
lanılan amaç fonksiyonları; code/statement coverage [37], yol tabanlı kriter [18,
20, 19, 5, 22, 21, 36, 34], kenar (edge) kapsamı [16], veri akış kapsamı (data flow
coverage) [32], dal kapsamı (branch coverage) [42, 2], dal uzaklığı (branch dis-
tance) [26, 4], approximation level + branch distance [17] şeklinde verilebilir.
Approximation level + branch distance metriklerini temel alan amaç fonksiyonu
en sık kullanılan amaç fonksiyonlarından biridir.
Approximation level + branch distance (Eşitlik 1) amaç fonksiyonu branch
distance (Eşitlik 2) ve approximation level metriklerinin birleşiminden oluşmaktadır.
f itnessALBD = approximation level + normalize(brach distance) (1)
normalize(branch distance) = 1 − 1.001−branch distance (2)
Approximation level çalıştırılması gereken yol ile çalıştırılan yolun kıyaslayarak
çalıştırılamayan yolların toplamını veren bir metriktir [1]. Branch distance metriği
ise Tracey’nin ortaya attığı [39] ve Tablo 1’da verilen yöntem ile hesaplanmak-
tadır. Branch distance ilgili dala girmek için ne kadar uzakta olunduğunu belirtir.
Tablo 1’da görülen K değeri sonucun her zaman pozitif olmasını sağlayacak sabit
bir değerdir.
3 Meta-sezgisel Algoritmalar
Meta-sezgisel algoritmalar, herhangi bir amacı sezgisel yöntemlerle en iyileme
işlemini gerçekleştiren algoritmalardır. En iyileme yaparken kullandığı yöntem
157
Table 1. Tracey’nin önermiş olduğu branch distance fonksiyonu. Kod parçacığında ilk
sütunda görülen değer ile karşılaşıldığında 2. sütundaki değer hesaplanmaktadır. [39]
Amaç Fonksiyonu
Boolean if T RU E then 0 else K
a=b if abs(a − b) = 0 then 0 else abs(a − b) + K
a 6= b if abs(a − b) 6= 0 then 0 else abs(a − b) + K
ab if a > b then 0 else b − a + K
a≥b if a ≥ b then 0 else b − a + K
optimal sonucu garanti etmemekle birlikte optimuma yakın sonuç üretmeye
yöneliktir. Bu çalışmada henüz literatürde bu alana uygulanmamış öğretme-
öğrenme temelli ve armoni arama algoritmaları kullanılmıştır.
3.1 Öğretme-Öğrenme Temelli Optimizasyon Algoritması
Öğrenme-Öğretme temelli Optimizasyon Algoritması (Teaching-Learning Based
Optimization Algorithm, TLBO) [29] bir sınıftaki öğrencilerin öğrenmesinde
öğreticinin etkisini temel alarak çalışan bir algoritmadır. Öğrencilerin başarımının
ölçülmesi notlar üzerinden gerçekleştirilir. Öğretmen ise o sahadaki en yetkin
kişi olarak nitelendirilebilir. İyi bir öğretmenin öğrencileri doğru yönlendirerek
yüksek notlar alabileceği fikri üzerine geliştirilmiştir. Ayrıca sınıf içi etkileşimle
öğrenciler arasındaki bilgi aktarımı da dikkate alınmıştır. Burada öğrenciler
optimizasyon probleminin olası çözümlerine, öğrencilerin notları da uygunluk
fonksiyonuna karşılık gelmektedir. Popülasyondaki en iyi birey öğretmen olarak
seçilir. Algoritma öğretici fazı ve öğrenci fazı olmak üzere iki aşamadan oluşmaktadır.
Öğretici Fazı Bir öğretmen öğrencilerine tüm bildiklerini aktararak onları
kendi seviyesine getirmesi başka dış hususlar da devreye girdiğinden mümkün
olamamakta. Dolayısıyla bu süreçte kontrol edilemeyen rastgelelik arz eden et-
menler bulunmaktadır. Mi , sınıfın yani popülasyonun ortalama değeri, T öğretici
(yani en iyi çözümü), Tf öğretme faktörü ve r [0, 1] aralığında rastgele bir reel
sayı olmak üzere Xi çözümünün yeni değeri (Xi0 ), Eşitlik 3 ile belirlenir:
Xi0 = Xi + ri (T − Tf ∗ Mi ) (3)
Tf öğretme faktörü Eşitlik 4 ile 1 yada 2 olarak belirlenen bir parametredir.
Tf = round[1 + rand(0, 1)(2 − 1)] (4)
Bu ifade öğreticinin öğrencinin gelişimi üzerindeki etkisini yansıtmaktadır.
Yeni çözüm eskisinden daha iyi ise diğeri yerine popülasyona dahil edilir, öğrenci
bilgisini güncellemiş olur.
158
Öğrenci Fazı Öğrencilerin gelişiminin öğretmene bağlı olmasının yanı sıra diğer
öğrencilerle olan etkileşimine de bağlıdır. Öğrenci fazında rastgele seçilen bir
sınıf arkadaşı o anki öğrenciden daha iyi ise öğrenci bu bireyden Eşitlik 5 ile
faydalanır:
Xi0 = Xi + ri (Xi − Xj ) (5)
O anki öğrenci rastgele seçilen arkadaştan daha iyi ise Eşitlik 6 kullanılır:
Xi0 = Xi + ri (Xj − Xi ) (6)
Bu faz sonrasında yeni öğrenci bilgisi (Xi0 ) eski değerinden (Xi ) daha iyi bir
uygunluk değerine sahipse öğrenci güncellenir.
Bu iki faz durdurma kriteri sağlanıncaya kadar tekrarlanır.
3.2 Armoni Arama Algoritması
Armoni Arama (Harmony Search, HS) algoritması [7] müzisyenlerin beste yapma
süreçlerini modelleyen bir meta-sezgisel algoritmadır. Çözümler müzisyenlere,
notaların armonisi de çözümün uygunluk değerine karşılık gelir. Algoritmanın
temel adımları şu şekildedir:
– Adım 1: Problem ve algoritma parametrelerinin ilklendirilmesi
– Adım 2: Armoni repertuvarının ilklendirilmesi
– Adım 3: Yeni bir armoni bestelenmesi
– Adım 4: Armoni repertuvarının güncellenmesi
– Adım 5: Durma kriteri sağlanıncaya kadar Adım 2-5’in tekrarlanması
HS algoritmasında, her iterasyonda yeni bir beste üretilir ve bu beste armoni
repertuvarındaki en kötü armoni ile değiştirilir. Besteleme sürecinde yeni armoni
Eşitlik 7 ile üretilir:
if (rand ≥ phcmr )
x0j = xmin
j + (xmax
j − xmin
j ) ∗ rand
else
{
x0j = xint(rand∗SN )+1,j
(7)
if (rand < ppar )
{
x0j = x0j ± bw ∗ rand
}
}
Burada SN repertuvar büyüklüğü, phcmr repertuvardan seçme oranı, ppar
perde ayar oranı, bw perde ayarlamasında olabilecek maksimum değişimi ifade
eden bantgenişliği mesafesidir.
159
4 Deneysel Çalışmalar
Yapılan bu çalışmada triangle, quadratic equation, even-odd, largest number, re-
mainder, leap year ve mark problemleri kullanılmıştır. Bu problemlerin karakter-
istikleri Tablo 2’de görülmektedir. Bütün problemler 20 popülasyon büyüklüğü
ile her gerekli yol için 250 çevrim olarak koşulmuştur. Algoritma maksimum
çevrim sayısına ulaştığında veya %100 kapsama miktarına eriştiğinde durmak-
tadır. Her bir problem için sonuçlar 2.3 GHz i7 işlemci ve 8 GB Ram özelliklerine
sahip bilgisayarda 30 defa koşularak alınmıştır. Uygulama MATLAB ve PYTHON
dilinde yazılmıştır. Elde edilen sonuçlar ilk satırda ortalama ile standart sapma
ikinci satırda ise medyan olarak verilmiştir.
– Triangle: Bu program aldığı üç değerin üçgen oluşturup oluşturmadığına
bakmaktadır. Eğer üçgen oluşturuyorsa da eşkenar, ikizkenar veya çeşitkenar
üçgen olup olmadıklarına karar vermektedir.
– Quadratic Equation: Bu program aldığı üç değere göre ax2 + bx + c for-
matında olup olmadığına bakmakta, daha sonra diskriminant hesabını ya-
parak denklemin köklerini hesaplamaktadır.
– Even-Odd: Bu program girilen değerin tek mi çift mi olduğuna karar ver-
mektedir.
– Largest Number: Bu program girilen üç değer arasında en büyük değeri
bulmaktadır.
– Remainder: Bu program aldığı iki değere bakarak bölenin sıfır olup ol-
madığına bakarak kalan hesabı yapmaktadır.
– Leap Year: Bu program girilen değerin artık yıl olup olmadığına bakmak-
tadır.
– Mark: Bu program aldığı üç değere göre ortalama hesaplamaktadır. Daha
sonra ise elde ettiği ortalamaya göre beş farklı kategoride (A, B, C, D, E)
kümelemektedir.
Table 2. Problemlerin karakteristikleri
Satır Döngüsel CFG Düğüm Değişken
Program
Sayısı Karmaşa Sayısı Sayısı
1 Triangle 23 9 23 3
2 Even Odd 6 2 5 1
3 Largest Number 11 4 8 3
4 Leap Year 7 4 8 1
5 Quadratic Equation 15 4 12 3
6 Remainder 7 3 6 2
7 Mark 19 11 22 3
Kullanılan uygulama mimarisi program analizi, yol seçici ve test verisi üreticisi
parçalarından oluşmaktadır (Şekil 3). Program analizi, kaynak kodu test verisi
üretimi için anlamlı hale getirmektedir. Programın kaynak kodu, kontrol akış
160
grafiği (CFG) adı verilen ve programın akışının graf üzerinde gösterimini sağlayan
bir yapıya çevrilmektedir. Oluşturulan bu CFG başlangıç ve bitiş düğümlerinin
tekil olduğu yönlendirilmiş graftır. Oluşturulan bu CFG üzerinden algoritmalar
için bir amaç fonksiyonu hesaplanmaktadır.
Fig. 3. Test verisi üretimi için kullanılan mimari
Yapılan koşmalar sonucu elde edilen sonuçlar Tablo 3’da verilmiştir. Bu
sonuçlara göre en kolay problem olan even-odd probleminde her iki algoritma da
aynı başarımda sonuçlar üretmiştir. Aynı şekilde bir başka basit problem olan
largest number probleminde de her iki algoritma aynı başarıma ulaşmıştır. Aynı
iterasyon sayısında çalışan bu iki algoritma incelendiğinde medyan değerlerine
göre HS algoritmasının TLBO algoritmasından daha hızlı çalıştığı görülmektedir.
Remainder probleminde ise her iki algoritma da %100 başarım elde etse de HS
algoritması daha fazla iterasyona ihtiyaç duymuş bu da yavaş kalmasına ne-
den olmuştur. Leap year, mark ve triangle problemler incelendiğinde her iki
algoritma da medyan değerlerine göre maksimum başarıma erişmiştir. Orta-
lama değerler incelendiğinde ise TLBO algoritmasının HS algoritmasına göre
üstünlüğü görülmektedir. Bu da bazı koşmalarda HS algoritmasının maksimum
başarıma erişemediğini göstermektedir. Quadratic equation problemi incelendiğinde
ise hem medyan hem de ortalama değerlere göre TLBO algoritmasının başarısı
görülmektedir.
161
Table 3. TLBO ve HS algoritmaları karşılaştırma sonuçları
Kapsama İterasyon Zaman
Even 100.0000 ∓ 0.0000 2.0000 ∓ 0.0000 0.0372 ∓ 0.0291
Odd (100.0000) (2.0000) (0.0318)
TLBO Largest 100.0000 ∓ 0.0000 4.0000 ∓ 0.0000 0.0748 ∓ 0.0280
Number (100.0000) (4.0000) (0.0692)
Leap 100.0000 ∓ 0.0000 21.0333 ∓ 27.0038 0.2186 ∓ 0.2454
Year (100.0000) (11.0000) (0.1231)
100.0000 ∓ 0.0000 512.4000 ∓ 79.3137 5.3441 ∓ 0.8162
Mark
(100.0000) (505.0000) (5.2652)
Quadratic 92.0000 ∓ 4.8423 275.5000 ∓ 112.5141 2.7435 ∓ 1.0981
Equation (90.0000) (272.0000) (2.7063)
100.0000 ∓ 0.0000 2.0667 ∓ 0.2537 0.0400 ∓ 0.0288
Remainder
(100.0000) (2.0000) (0.0340)
100.0000 ∓ 0.0000 45.1667 ∓ 38.1658 0.5147 ∓ 0.3882
Triangle
(100.0000) (36.0000) (0.4177)
Even 100.0000 ∓ 0.0000 2.0000 ∓ 0.0000 0.0416 ∓ 0.1098
Odd (100.0000) (2.0000) (0.0215)
Largest 100.0000 ∓ 0.0000 4.0000 ∓ 0.0000 0.0559 ∓ 0.0513
Number (100.0000) (4.0000) (0.0465)
HS
Leap 93.3333 ∓ 8.9115 153.5667 ∓ 88.5405 0.6123 ∓ 0.3516
Year (100.0000) (147.5000) (0.5771)
99.4667 ∓ 2.0297 279.5333 ∓ 89.9646 1.3765 ∓ 0.4257
Mark
(100.0000) (272.0000) (1.3366)
Quadratic 84.0000 ∓ 4.9827 444.0667 ∓ 80.9269 2.0352 ∓ 0.3679
Equation (80.0000) (500.0000) (2.2647)
100.0000 ∓ 0.0000 15.1333 ∓ 20.6994 0.0830 ∓ 0.0904
Remainder
(100.0000) (9.5000) (0.0532)
99.5960 ∓ 1.5376 235.2333 ∓ 99.8615 1.1494 ∓ 0.4952
Triangle
(100.0000) (200.5000) (0.9725)
5 Değerlendirme
Test verisi üretimi problemi NP-Hard türünde oldukça zor bir problem türüdür.
Deterministik yöntemler ile çözülmesi oldukça zordur ve çok uzun sürelerde
gerçekleşebilmektedir. Programdaki döngüler, işaretçiler, sınıf yapıları bu prob-
lemi çok daha zor hale getirmektedir. Sezgisel algoritmalar ile kabul edilebilir
zaman dilimlerinde makul çözümler üretmek mümkündür. Bu nedenle arama
tabanlı test verisi üretiminin sürekli popülerlik kazanmaktadır.
Even odd ve largest gibi kolay problemlerde TLBO ve HS algoritmaları iyi
performans göstermişlerdir. Remainder probleminde de her iki algoritma me-
dyan ve ortalama değerlere göre maksimuma erişmişlerdir fakat TLBO algorit-
ması HS algoritmasından daha az çevrime ihtiyaç duymuştur. Leap year, mark,
quadratic ve triangle problemlerinin hepsinde de TLBO algoritması daha iyi
sonuç elde etmiştir. Bütün algoritmalar incelendiğinde TLBO algoritmasının HS
algoritmasından daha iyi sonuç ürettiği görülmektedir.
162
Gelecek çalışmalarda problem sayısı ve kullanılan algoritma sayısı artırılabilir.
Aynı zamanda bu algoritmaların paralelleştirilmiş performansları da incelenebilir.
References
1. André Baresel, Harmen Sthamer, and Michael Schmidt. Fitness function design
to improve evolutionary structural testing. In Proceedings of the Genetic and Evo-
lutionary Computation Conference, GECCO ’02, pages 1329–1336, San Francisco,
CA, USA, 2002. Morgan Kaufmann Publishers Inc.
2. R. Landa Becerra, R. Sagarna, and X. Yao. An evaluation of differential evolu-
tion in software test data generation. In 2009 IEEE Congress on Evolutionary
Computation. Institute of Electrical & Electronics Engineers (IEEE), may 2009.
3. D. L. Bird and C. U. Munoz. Automatic generation of random self-checking test
cases. IBM Syst. J., 22(3):229–245, September 1983.
4. S.S. Dahiya, J.K. Chhabra, and S. Kumar. Application of artificial bee colony
algorithm to software testing. In Software Engineering Conference (ASWEC),
2010 21st Australian, pages 149–154, April 2010.
5. Surender Singh Dahiya, Jitender Kumar Chhabra, and Shakti Kumar. Pso based
pseudo dynamic method for automated test case generation using interpreter. In
Proceedings of the Second International Conference on Advances in Swarm Intelli-
gence - Volume Part I, ICSI’11, pages 147–156, Berlin, Heidelberg, 2011. Springer-
Verlag.
6. Karnig Derderian, Robert M. Hierons, Mark Harman, and Qiang Guo. Automated
unique input output sequence generation for conformance testing of fsms. Comput.
J., 49(3):331–344, May 2006.
7. Zong Woo Geem, Joong Hoon Kim, and G.V. Loganathan. A new heuristic opti-
mization algorithm: Harmony search. SIMULATION, 76(2):60–68, feb 2001.
8. Mark Harman and Bryan F Jones. Search-based software engineering. Information
and Software Technology, 43(14):833 – 839, 2001.
9. Mark Harman, S. Afshin Mansouri, and Yuanyuan Zhang. Search-based software
engineering: Trends, techniques and applications. ACM Comput. Surv., 45(1):11:1–
11:61, December 2012.
10. Mark Harman and Phil McMinn. A theoretical and empirical study of search-based
testing: Local, global, and hybrid search. IEEE Trans. Softw. Eng., 36(2):226–247,
March 2010.
11. Mark Harman, Phil McMinn, JerffesonTeixeira de Souza, and Shin Yoo. Search
based software engineering: Techniques, taxonomy, tutorial. In Bertrand Meyer and
Martin Nordio, editors, Empirical Software Engineering and Verification, volume
7007 of Lecture Notes in Computer Science, pages 1–59. Springer Berlin Heidelberg,
2012.
12. D. Karaboga. An idea based on honey bee swarm for numerical optimization.
Technical Report TR06, Erciyes University, Engineering Faculty, Computer Engi-
neering Department, 2005.
13. J. Kennedy and R. C. Eberhart. Particle swarm optimization. In 1995 IEEE
International Conference on Neural Networks, volume 4, pages 1942–1948”, 1995.
14. B. Korel. Automated software test data generation. IEEE Trans. Softw. Eng.,
16(8):870–879, August 1990.
15. B Korel, H Wedde, and R Ferguson. Dynamic method of test data generation for
distributed software. Information and Software Technology, 34(8):523 – 531, 1992.
163
16. Soma Sekhara Babu Lam, M L Hari Prasad Raju, Uday Kiran M, Swaraj Ch, and
Praveen Ranjan Srivastav. Automated generation of independent paths and test
suite optimization using artificial bee colony. Procedia Engineering, 30:191 – 200,
2012. International Conference on Communication Technology and System Design
2011.
17. Gentiana Ioana Latiu, Octavian Augustin Cret, and Lucia Vacariu. Automatic
test data generation for software path testing using evolutionary algorithms. In
Proceedings of the 2012 Third International Conference on Emerging Intelligent
Data and Web Technologies, EIDWT ’12, pages 1–8, Washington, DC, USA, 2012.
IEEE Computer Society.
18. D. Jeya Mala and V. Mohan. Abc tester artificial bee colony optimization for soft-
ware test suite optimization. IJSE International Journal Of Software Engineering,
2(2):15–48, 2009.
19. D. Jeya Mala, V. Mohan, and M. Kamalapriya. Automated software test opti-
misation framework – an artificial bee colony optimisation-based approach. IET
Software, 4(5):334, 2010.
20. D.J. Mala, M. Kamalapriya, R. Shobana, and V. Mohan. A non-pheromone based
intelligent swarm optimization technique in software test suite optimization. In In-
telligent Agent Multi-Agent Systems, 2009. IAMA 2009. International Conference
on, pages 1–5, July 2009.
21. Ruchika Malhotra, Chand Anand, Nikita Jain, and Apoorva Mittal. Article: Com-
parison of search based techniques for automated test data generation. Interna-
tional Journal of Computer Applications, 95(23):4–8, June 2014.
22. Ruchika Malhotra and Manju Khari. Test suite optimization using mutated arti-
ficial bee colony. In Proc. of Int. Conf. on Advances in Communication Network
and Computing, CNC, pages 45 – 54, 2014.
23. P. McMinn. Search-based software testing: Past, present and future. In Software
Testing, Verification and Validation Workshops (ICSTW), 2011 IEEE Fourth In-
ternational Conference on, pages 153–163, March 2011.
24. P. McMinn, M. Harman, K. Lakhotia, Y. Hassoun, and J. Wegener. Input domain
reduction through irrelevant variable removal and its effect on local, global, and
hybrid search-based structural test data generation. Software Engineering, IEEE
Transactions on, 38(2):453–477, March 2012.
25. Phil McMinn. Search-based software test data generation: A survey: Research
articles. Softw. Test. Verif. Reliab., 14(2):105–156, June 2004.
26. Xiao mei Zhu and Xian feng Yang. Software test data generation automatically
based on improved adaptive particle swarm optimizer. In 2010 International Con-
ference on Computational and Information Sciences. Institute of Electrical & Elec-
tronics Engineers (IEEE), dec 2010.
27. C. C. Michael, G. McGraw, and M. A. Schatz. Generating software test data by
evolution. IEEE Trans. Softw. Eng., 27(12):1085–1110, December 2001.
28. W. Miller and D.L. Spooner. Automatic generation of floating-point test data.
Software Engineering, IEEE Transactions on, SE-2(3):223–226, Sept 1976.
29. R.V. Rao, V.J. Savsani, and D.P. Vakharia. Teaching-learning-based optimization:
An optimization method for continuous non-linear large scale problems. Informa-
tion Sciences, 183(1):1 – 15, 2012.
30. Outi Räihä. A survey on search-based software design. Computer Science Review,
4(4):203 – 249, 2010.
31. D. Rubenstein. Standish group report: There’s less development chaos, 2007.
164
32. H M Rai Sanjay Singla, Dharminder Kumar and Priti Singla. A hybrid pso ap-
proach to automate test data generation for data flow coverage with dominance
concepts. International Journal of Advanced Science and Technology, 37, 2011.
33. Stephen Schach. Object-Oriented and Classical Software Engineering. McGraw-Hill
Education, 2010.
34. Praveen Ranjan Srivatsava, B. Mallikarjun, and Xin-She Yang. Optimal test se-
quence generation using firefly algorithm. Swarm and Evolutionary Computation,
8:44 – 53, 2013.
35. Rainer Storn and Kenneth Price. Differential evolution - a simple and efficient
heyristic for global optimization over continuous spaces. Journal of Global Opti-
mization, 11(4):341–359, 1997.
36. Dr.Bharti Suri and Prabhneet Kaur. Path based test suite augmentation using
artificial bee colony algorithm. International Journal For Research in Applied
Science and Engineering Technology, 2:156–164, 2014.
37. Shailesh Tiwari, K.K. Mishra, and A.K. Misra. Test case generation for modified
code using a variant of particle swarm optimization (PSO) algorithm. In 2013 10th
International Conference on Information Technology: New Generations. Institute
of Electrical & Electronics Engineers (IEEE), apr 2013.
38. Paolo Tonella. Evolutionary testing of classes. SIGSOFT Softw. Eng. Notes,
29(4):119–128, July 2004.
39. N. Tracey, J. Clark, K. Mander, and J. McDermid. An automated framework
for structural test-data generation. In Proceedings of the 13th IEEE International
Conference on Automated Software Engineering, ASE ’98, pages 285–, Washington,
DC, USA, 1998. IEEE Computer Society.
40. Joachim Wegener and Oliver Bühler. Evaluation of different fitness functions for
the evolutionary testing of an autonomous parking system. In Kalyanmoy Deb,
editor, Genetic and Evolutionary Computation – GECCO 2004, volume 3103 of
Lecture Notes in Computer Science, pages 1400–1412. Springer Berlin Heidelberg,
2004.
41. Joachim Wegener and Matthias Grochtmann. Verifying timing constraints of real-
time systems by means of evolutionary testing. Real-Time Systems, 15(3):275–298,
1998.
42. Andreas Windisch, Stefan Wappler, and Joachim Wegener. Applying particle
swarm optimization to software testing. In Proceedings of the 9th Annual Con-
ference on Genetic and Evolutionary Computation, GECCO ’07, pages 1121–1128,
New York, NY, USA, 2007. ACM.
43. S. Xanthakis, C. Ellis, C. Skourlas, A. Le Gal, S. Katsikas, and K. Karapoulios. Ap-
plication of Genetic Algorithms to Software Testing. In International Conference
on Software Engineering, 1992.
44. Xin-She Yang. Nature-Inspired Metaheuristic Algorithms. Luniver Press, 2008.
165