Neden-Sonuç Çizgelerinden Test Giri³lerinin Olu³turulmas 1,2 1 1 Deniz Kavzak , Tolga Ayav ve Fevzi Belli 1 zmir Yüksek Teknoloji Enstitüsü Bilgisayar Mühendisli§i Bölümü, 35430 Urla, zmir 2 Ya³ar Üniversitesi Yazlm Mühendisli§i Bölümü, 35100 Bornova, zmir deniz.kavzak@yasar.edu.tr, tolgaayav@iyte.edu.tr, belli@upb.de Özet. Neden-sonuç çizgeleri çok bilinen gereksinim tabanl yazlm test yöntemlerinden biri oldu§u halde Myers tarafndan önerildi§i 1979 yln- dan beri bu çizgelerden test giri³leri üretilmesi konusunda yeterince kap- saml çal³ma yaplmam³tr. Bu bildiri, çizgelerin Boole ifadelerine dö- nü³türülmesini ve Boole ifadelerinin testi için önerilmi³ olan MI, MAX-A ve CUTPNFP stratejilerini kullanarak test giri³leri üretilmesini öner- mektedir. Mutasyon analizi kullanlarak bu yöntemlerin hata ortaya ç- karma ba³armlar ölçülmü³ ve Myers'n önerdi§i orijinal test üretme yön- temiyle kyaslanm³tr. Anahtar Kelimeler: Yazlm testi, neden-sonuç çizgesi, modele dayal test, mutasyon test analizi. Abstract. Cause-eect graphing is a well-known requirement based test- ing technique. However, since it was introduced by Myers in 1979, there seems not to have been any suciently comprehensive studies to generate test cases from these graphs. This paper proposes to convert cause-eect graphs into Boolean expressions and nd out the test cases using test in- put generation techniques for Boolean expressions, such as MI, MAX-A and CUTPNFP. Mutation analysis is used to compare the fault detection capabilities of these techniques and the results are also compared to the Myers' original test generation technique. Keywords: Software testing, Cause-eect graph, model-based testing, mutation test analysis. 1 Giri³ Gereksinim tabanl test yöntemleri, test senaryolar için ko³ullar ve bilgilerin gereksinimlerden çkarsand§ yöntemlerdir. Gereksinim tabanl testler, gereksin- imlerin iyi belirlenmi³ oldu§u ve de§i³me ihtimalinin çok dü³ük oldu§u durum- larda büyük avantaj sa§lar. Gereksinimleri ifade etmek için kullanlan Boole ifadeler, modeller veya çizgeler aracl§ ile, kaynak kod henüz yazlmadan test senaryolarnn olu³masna imkan verir. Ancak test edilen program de§i³ime açk bir sistem ise, her de§i³en gereksinim ile birlikte test senaryolarnn ba³tan olu³- turulmas gerekti§i için, gereksinim tabanl bir test yöntemi kullanmak çok mas- ra olacaktr. Bu nedenlerle, genellikle sa§lk veya havaclk ile ilgili, gereksin- imleri neredeyse de§i³mez olan kritik yazlmlar için kullanlr. 142 Gereksinim tabanl test yöntemlerinden biri olan neden-sonuç çizgeleri (Cause- Eect Graph), birimlerin birbirleriyle ba§mllk ve ili³kilerini modelleyerek sis- tem gereksinimlerinin modellenmesi ve bu model üzerinden test üretilebilmesi için geli³tirilmi³tir [1, 2]. lk olarak Myers [2], neden-sonuç çizgelerinden, model yollarndan en az bir kere geçilmesini garanti ederek, giri³ kombinasyonlarn kapsayacak bir karar tablosu yaratmak amacyla sistematik bir yöntem tant- m³tr. Bu yöntemle, giri³ says büyüdükçe çözülemeyecek boyutlara çkan karar tablosu kombinasyonlarn (test giri³lerinin saysn) azaltm³tr. Myers'n sun- du§u algoritma tart³lm³ [3], neden-sonuç çizgesinden karar tablosu olu³turmak için ba³ka algoritmalar da sunulmu³tur [4, 5]. Sistem gereksinimlerinin Boole ifadelerle gösterilebilmesinden yararlanarak MI, MAX-A [6], MUMCUT [7, 8], BOR, MC/DC [9], RC/DC [10] gibi bir çok test yöntemi sunulmu³tur. Chen ve arkada³lar [11], Boole ifadelerden sunduk- lar MUMCUT yöntemi ile test senaryosu üretilmesi için bir araç geli³tirmi³tir. Kaminski ve Ammann [12], MUMCUT'u geli³tirerek Minimal-MUMCUT ola- rak adlandrdklar, MUMCUT'un kriterlerini sa§layan, ancak ayn tip hatalar daha az test giri³i ile yakalayan bir yöntem geli³tirmi³lerdir. Sunulan bu yöntem- lerin ço§unun ortak özelli§i yöntemin uygulanabilmesi için Boole ifadenin Ayrc Normal Form'da (ANF), di§er bir deyi³le çarpmlarn toplam ³eklinde ifadesinin gereklili§idir. BOR yönteminin uygulanabilmesi için, ANF gereksinimine ek ola- rak Boole ifadenin tekil (singular) olmas da gerekmektedir. Singh ve arkada³lar [13], Boole ifadelerden test üretme yöntemlerini birlikte de§erlendirmek ve kar³la³trmak için Elmendorf 'un yöntemi [1], BOR, MC/DC ve RC/DC yöntemlerini incelemi³tir. Boole türevleri kullanlarak neden-sonuç çizgelerinden formel olarak MC/DC test giri³leri üretilmesi gösterilmi³tir [14]. Fraser ve Gargantini [15], hata bulma i³lemini mantksal bir SAT problemi olarak formelle³tirmi³, çözümünü MUMCUT yöntemi ile kyaslam³tr. Sonraki çal³- malarnda [16], bu çözüm geni³letilerek Boole ifade genel formda iken çal³abile- cek bir yöntem sunmu³lardr ve bu yöntemi MUMCUT ve MC/DC yöntemleri ile kyaslam³lardr. Sziray [17], neden-sonuç çizgelerinden test senaryolar üretmek için, karar a§ac kullanlan yeni bir algoritma geli³tirmi³tir. Vilkomir ve arkada³lar [18], t- li test üretme yönteminin Boole ifadeler üzerindeki etkinli§ini mutasyon analizi kullanarak ölçmü³ ve sonuçlar rastgele test üretimi ile kar³la³trm³tr. Paul ve arkada³lar [19], daha önce tantlm³ olan farkl MC/DC formlarn sistematik olarak incelemi³ ve yeni bir MC/DC formu tantm³lar, bu formu eski MC/DC formlar ile kar³la³trm³lardr. Chung [20], neden-sonuç çizgeleri için yeni hata snar olu³turarak, Myers'n yöntemi ve kombinatoryel test yöntemi ile üretti§i test kümelerinin, olu³turdu§u bu hata snarndaki hata yakalama ba³arlarn ölçmü³tür. Chung [21], daha sonra, neden-sonuç çizgelerinden ikili test üre- tim yöntemi ile test senaryolar üreten otomatize edilmi³ bir araç geli³tirmi³tir. Chung [22], ba³ka bir bak³ açs ile, neden-sonuç çizgelerinden ikili test üretim yöntemi ile SAT çözücü kullanarak test senaryolar üretmi³tir. Sun ve arkada³lar [23], Boole ifadeler üzerinde tanmlanan test üretme yön- temlerinin bir ksmn (ONE, MIN, MUMCUT ve de§i³ik formlar,..) bir araya toplam³, rastgele ürettikleri Boole ifadeler üzerinde bu yöntemlerle ürettikleri test kümelerini çal³trm³ ve mutasyon analizi ile bu yöntemlerin hata yakalama ba³arlarn ölçmü³lerdir. Yöntemlerdeki ANF olma kstlarnn ötesine geçmek için, genel formdaki ifadeler üzerindeki ba³arlarn da ölçmü³ler, sonuç olarak 143 MUMCUT yönteminin daha ba³arl oldu§unu göstermi³ ve MUMCUT yöntem- ine çe³itli eklentiler yapm³lardr. Bu çal³mada neden-sonuç çizgesinden MI, MAX-A, CUTPNFP ve Myers yöntemleri kullanlarak test giri³leri elde edilmi³, olu³an test giri³leri muta- syon analizi ile de§erlendirilmi³, yöntemlerin farkl hata snarndaki ba³arlar kar³la³trlm³tr. Amaç, hangi yöntemin hangi hata snarndaki hatalar yaka- lama olasl§nn daha yüksek oldu§unu anlamaya çal³maktr. Bölüm 2'de neden- sonuç çizgeleri ve özellikleri özetlenmi³tir. Test giri³ üretme yöntemlerinden, Bölüm 3.1'de MI, Bölüm 3.2'de MAX-A, CUTPNFP ve 3.3'te Myers açklan- m³tr. Bölüm 4'te hata tipleri ve mutasyon analizi sunulmaktadr. Bölüm 5'te olu³turulan neden-sonuç modeli ve araç mimarisi verilmi³tir. Bölüm 6'da yaplan deneyler açklanm³, de§erlendirme ve sonuçlar payla³lm³tr. 2 Neden-Sonuç Çizgesi Neden-sonuç çizgesi, yazlm testlerinde kullanlan, nedenler kümesini sonuçlar kümesine e³le³tiren, yönsüz bir çizgedir. Çizgenin elemanlar sistemi olu³turan Boole ifadelerini görsel olarak temsil etmektedir. Neden dü§ümleri programa verilen, ikili sistemde de§er alabilen, sistemin bir durumunu ya da bir etkinli§ini tanmlayan girdiler, sistem gereksinim cümleleri, Boole ifadeleri olarak tanm- lanabilmektedir. Sonuç dü§ümleri de, yine ikili sistemde de§er alabilen, sistemin bir durumunu ya da bir sonuç etkisini belirten çktlar olarak dü³ünülebilir. Çizgenin genel yapsndaki dü§ümler soldan sa§a: neden dü§ümü → ara dü§üm → sonuç dü§ümü ³eklinde tasarlanr. Çizgeler arasndaki ili³kiler, ve, veya, de§il olmak üzere temel Boole ifadesi i³lemleridir. “ekil 1. Neden-sonuç çizgesinde tanmlanabilen ko³ullar Bu ili³kilere ek olarak, a, b neden dü§ümleri, e, f sonuç dü§ümleri olmak üzere, “ekil 1'de gösterilen a³a§daki ko³ullar tanmlanabilir:  D³layan veya (E) : a ve b de§i³kenlerinden en fazla biri 1 de§erini alabilir.  çeren veya (I) : a ve b de§i³kenlerinden en az biri 1 de§erini almaldr  Tekil (O) : a ve b de§i³kenlerinden sadece ve sadece biri 1 de§erini almaldr.  Gerektirme (R) : a de§i³keninin 1 de§erini alabilmesi için, b de§i³keninin 1 olmas gereklidir.  Maskeleme (M) : e sonucu 1 de§erini ald§nda, f sonucu 0 de§erini almak zorundadr. 144 Basit bir neden-sonuç çizgesi örne§i olarak, sistem gereksinimlerinin ³u ³ek- ilde tanmland§n kabul edelim [2]: ki girdili sistemin ilk girdisi 'A' ya da 'B' harerinden biri olmal, ikinci girdi ise bir say olmaldr. Girdiler do§ruysa, dosya güncellemesi yaplr. lk karakter yanl³sa, X12 hata mesaj, ikinci karak- ter say de§ilse X13 hata mesaj verilir. Bu gereksinimlerden çkarlan neden ve sonuç dü§ümleri a³a§da, olu³an neden-sonuç çizgesi ise “ekil 2'de verilmi³tir. Nedenler: Sonuçlar: 1- ilk girdi 'A' 70- dosya güncellemesi yapld 2- ilk girdi 'B' 71- X12 mesaj verildi 3- ikinci girdi bir say 72- X13 mesaj verildi “ekil 2. Örnek neden-sonuç çizgesi 3 Test Giri³i Üretme Yöntemleri E 'nin ANF olarak verilen, n terimli, m de§i³kenli bir Boole ifadesi oldu§unu varsayalm: E = e1 + e2 + ... + en (1) Her ei (1 ≤ i ≤ n), lj sayda de§i³kenden olu³an bir terim olsun. Bu tanma dayanarak takip eden bölümlerde MI, MAX-A ve CUTPNFP test üretme yön- temleri sunulacaktr. 3.1 MI Anlaml etki yöntemi (Meaningful Impact (MI)), Weyuker ve arkada³lar [6] tarafndan TCAS-2 sisteminin Boole ifadeleri üzerinde çal³larak tanmlanm³tr. ANF olarak verilen Boole ifadeleri üzerinde, özgün do§ruluk noktalar (UTP) ve yakn yanl³lk noktalar (NFP) mant§ ile, eksik de§i³ken hatas (EDH), de§i³ken olumsuzlama hatas (DOH), de§i³ken referans hatas (DRH), i³lem referans hatas (RH), ili³kisel kaydrma hatas, ifade olumsuzlama hatas (OH) gibi hatalar yakalayabilir. Ancak özgün do§ruluk noktalar rastgele seçildi§i için her zaman bu hatalar ortaya çkaramayabilir. Hatal Boole ifadesindeki hatal bile³en, orijinal Boole ifadesindeki ba³ka bir bile³enin özgün do§ruluk noktas veya yakn yanl³lk noktas ile çak³yor olabilir. MI algoritmas a³a§daki ³ekilde tanmlanm³tr [24]: 145 1. Her terim ei , 1 ≤ i ≤ n için, ei 'yi do§ru yapan T ei kümeleri olu³turulur. n S 2. Her i 6= j, T Sei ∩ T Sej = ∅ için T Sei = T ei − T ej . j=1,i6=j t 3. Her T Sei , 1 ≤ i ≤ n kümesinden birer eleman seçerek SE olu³turulur. j 4. ei , 1 ≤ i ≤ n ve 1 ≤ j ≤ lj için ei teriminin j .inci de§i³keninin de§ilinin j j alnmasyla olu³an terimler olu³turulur. ei 'yi do§ru yapan F ei kümeleri olu³- turulur. n F Seji = F eji − S 5. T ek . k=1 j f 6. Her F Sei kümesini en az bir kere örten ve minimal olan SE olu³turulur. t f 7. E için gerekli toplam küme SE = SE ∪ SE lk olarak Boole ifadenin (E ) her terimi (ei ) için, o terimi do§ru yapan test giri³ kümeleri (T ei ) olu³turulur. Bu olu³turulan kümelerden, her bir terim için, birbirlerinden ayr³k (kesi³imleri bo³ küme) olacak ³ekilde alt kümeler (T Sei ) seçilir. Bu olu³an alt kümelerden, rastgele birer eleman seçilerek do§rular kümesi t (SE ) olu³turulur. Daha sonra her terim (ei ) için olu³turulan olumsuz terimi j j (ei 'yi) do§ru yapan test giri³ kümeleri (F ei ) olu³turulur. Bu kümelerden, ilk admda olu³turulan do§ru kümeler ile (T ei ) ortak olanlar varsa, bu ortak kümeler j çkarlarak olu³turulan alt kümeler (F Sei ) elde edilerek do§ru ve yanl³ test giri³ kümelerinin hedeedi§i durumlarn birbirleriyle kar³mas önlenir. Olu³turulan f bu alt kümelerin hepsini içeren bir yanl³lar kümesi (SE ) olu³turulur. MI yöntemi için gerekli olan küme de bu iki kümenin birle³tirilmesi ile olu³maktadr. 3.2 MAX-A ve CUTPNFP Weyuker ve arkada³lar [6], UTP ve NFP kümelerinin herhangi bir ko³ul olmadan birle³tirilmesinden olu³an MAX-A yöntemini tantm³lardr. Chen ve arkada³lar [7, 8], üç farkl yöntemin (CUTPNFP, MUTP ve MNFP) birle³mesiyle olu³an MUMCUT yöntemini tantm³lardr. Bu üç yöntem tekrarsz (irredundant) ANF olarak verilen Boole ifadeler üzerinden gerçekle³tirilmi³tir. Boole ifadelerinin tekrarsz ANF olarak kstlanmasnn sebebi test giri³leri saysn dü³ürmek ve karma³kl§ azaltmaktr, performans ve hassasiyet derecesi arasndaki dengede bu seçim yaplm³tr. Bu çal³mada kanonik (her terim bütün de§i³kenleri bir kere içeren) ANF kullanld§ için, MUMCUT'u olu³turan parçalardan CUTP- NFP yöntemi incelenmi³tir. Tanm 1 Özgün Do§ruluk Noktas (UTP): U T Pi , (1) Boole ifadesinde ei terim- ini do§ru yapan, di§er tüm terimleri yanl³ yapan test giri³leri kümesidir. Boole S ifadesi için tüm özgün do§ruluk noktalar kümesi: U T P (S) = i U T Pi (S). Tanm 2 Yakn Yanl³lk Noktas (NFP): N F Pi,j , (1) Boole ifadesinde ei,j ter- e imini ( i teriminin j . de§i³keninin de§ilinin alnmasyla olu³an terim) do§ru yapan, di§er tüm terimleri yanl³ yapan test giri³leri kümesidir. Boole ifadesinin S ei terimi için tüm yakn yanl³lk noktalar kümesi: N F Pi (S) = S j N F Pi,j (S). Boole ifadesi için tüm yakn yanl³lk noktalar kümesi: N F P (S) = i N F Pi (S). Tanm 3 MAX-A: fadenin her terimi için ilgili U T Pi ve N F Pi,j kümelerindeki tüm noktalar seçilir. Boole ifadesi için MAX-A kümesi : MAX-A(S) = U T P (S)∪ N F P (S). 146 Tanm 4 li³kili özgün do§ruluk noktas ve yakn yanl³lk noktas ikilisi (CUTP- NFP): U T Pi (S) ve N F Pi,j (S) kümelerinden srasyla → − u ve → −v test giri³i ikilisi seçilir. Bu ikilinin arasndaki tek fark, j indisi ile belirtilen de§i³kenin ald§ do§ruluk de§eri olmaldr. Bu i³lem olas tüm j de§erleri ve tüm terimler için gerçekle³tirilerek CU T P N F P (S) kümesi elde edilir. Bu kümenin i³lem referans hatas (RH), de§i³ken olumsuzlama hatas (DOH) ve ifade olumsuzlama hatas (OH) snarndaki hatalar yakalamas amaçlanr. 3.3 Myers'n Yöntemi Myers'n kitabnda tantt§ neden-sonuç çizgelerinden test giri³leri üretme yön- temi a³a§da verilmektedir [2]: 1. Bir sonuç dü§ümü seçilir ve do§ru de§er ald§ varsaylarak çizge üzerinde geriye do§ru gidilir. 2. Seçilen dü§ümü do§ru yapan tüm kombinasyonlar alnr. Kombinasyonlar alnrken: (a) Dü§üm "VEYA" ili³kisi ile ba§lysa ve do§ru de§er almas gerekiyorsa, bu dü§üme giden dü§ümlerden ayn anda en fazla birine do§ru de§er atanr. (Ayn anda tek bir de§i³kenin etkisini görebilmek için). (b) Dü§üm "VE" ili³kisi ile ba§lysa ve yanl³ de§er almas gerekiyorsa, - her dü§ümün yanl³ de§er ald§ tek bir durum seçilir, - en az bir dü§ümün yanl³ de§er ald§ durumlarda, her dü§üm için do§ru de§er ald§ tek bir durum seçilir Myers'n yönteminde di§er iki yöntemdeki gibi ANF Boole ifadeye ihtiyaç yoktur, çizge üzerinden ya da genel formdaki Boole ifadeden test giri³leri üreti- lebilir. 4 Mutasyon Test Analizi Olu³turulan test kümelerinin hata yakalama yeteneklerini kar³la³trmak için mu- tasyon analizi yöntemi oldukça sk kullanlmaktadr. Mutantlar asl Boole ifade üzerinde, yazlm geli³tiricilerin sk yapt§ hatalara dayal bilgiden faydalanarak olu³turulan belli kurallar çerçevesinde yaplan küçük de§i³iklikler ile elde edilir. Yaplan de§i³ikliklerin tipine göre, olu³turulan mutant, literatürde tanmlanan bir veya daha fazla hata snfn temsil eder. Bir test kümesi, bir mutant üzerinde çal³trld§nda hatay yakalayabiliyorsa o mutant yok etmi³ olarak kabul edilir. Test kümesinin ba³ars yok edebildi§i mutant says ile ölçülür. yi bir test üre- tim yönteminde amaç, olabilecek en az test giri³i says ile, en fazla mutant yok etme ba³arsn elde etmektir. Örnek bir S = (c0 + (c1c2))c3 Boole ifadesi üzerinde temel hata tipleri a³a§- daki gibi tanmlanabilir [25]: RH ³lem Referans Hatas. VE i³lemi VEYA ile veya VEYA i³lemi VE ile de§i³tirilir. Örn. (c0 + (c1 c2 )) + c3 . OH fade Olumsuzlama Hatas. fadenin bir ksm (alt ifade) olumsuzlanr. 0 Örn. (c0 + (c1 c2 ) )c3 . DOH De§i³ken Olumsuzlama Hatas. Boole ifadedeki de§i³kenlerden biri olum- 0 suzlanr. Örn. (c0 + (c1 c2 ))c3 . 147 EDH Eksik De§i³ken Hatas. De§i³kenlerden birinin unutulmas durumudur. Örn. (c0 + (c1 c2 )). DRH De§i³ken Referans Hatas. De§i³kenlerden biri ifadede yer alan ba³ka bir de§i³ken ile yer de§i³tirilir. Örn. (c1 + (c1 c2 ))c3 . YBH Yantümce Birle³me Hatas. De§i³ken a yerine ab yazlmas durumudur. Örn. (c0 + (c1 c3 c2 ))c3 . YAH Yantümce Ayrlma Hatas. De§i³ken a yerine a + b yazlmas durumudur. Örn. (c0 + c3 + (c1 c2 ))c3 . 0-T-H 0'a Taklma Hatas. De§i³kenlerden birinin hep 0 olmas durumudur. Örn. (0 + (c1 c2 ))c3 . 1-T-H 1'e Taklma Hatas. De§i³kenlerden birinin hep 1 olmas durumudur. Örn. (c0 + (1 · c2 ))c3 . EDH DOH 0TH DRH 1TH RH OH YBH YAH “ekil 3. Hata snf hiyerar³isi Bütün hata snarna uygun mutantlar olu³turulduktan sonra, bu mutant- larn her biri üzerinde test takmn tekrar tekrar çal³trmak büyük program- larda, zaman ve kaynaklarn harcanmas açsndan anlaml olmayabilir. Kuhn'un [26] çal³masna göre, bir hata snf ba³ka bir hata snfnn yaratabilece§i tüm hatal ifadeleri kapsayabiliyorsa o snf, di§erinden güçlü olarak kabul edilir. Bu çal³mada OH'un DOH'a göre, DOH'un ise DRH'ye göre daha güçlü oldu§u bir hiyerar³ik yap teorik olarak gösterilmi³tir. Tsuchiya ve Kikuno [27], Kuhn'un [26] çal³masndaki hiyerar³iye ek olarak eksik ifade hatas snfn da eklemi³tir. Lau ve Yu [28], bu hiyerar³iyi terim ve de§i³ken hatalarnn ili³kilerini analiz ederek daha da geni³letmi³tir. Tüm bu çal³malarda analiz edilen Boole ifadelerinin ANF olmas gerekmek- tedir. Ancak, Kapoor ve Bowen [29], hiyerar³ik analizi ve yeni hata snar da ekleyerek, genel Boole ifadeleri için de geçerli olacak ³ekilde düzenlemi³tir. Son olarak da, Chen ve arkada³lar [30], Kapoor ve Bowen'in [29] çal³masn geni³leterek, “ekil 3'te verilen hata snf hiyerar³isini sunmu³tur. Bu yapya göre, dokuz adet hata snfndan yalnzca dört tanesini ele almak yeterlidir: RH, YBH, YAH ve OH. 148 Boole Boole ANF'ye CEG ifadeye ifade dönü³tür dönü³tür Mutantlar Myers yarat Mutant ANF ifadeler fade Mutasyon analizi MI MAX-A CUTPNFP Analiz Test sonuçlar Giri³leri “ekil 4. Neden-sonuç çizgelerinden test giri³i üretme yöntemi 5 Neden-Sonuç Çizge Modeli ve Geli³tirilen Araç Mimarisi Neden-sonuç çizgesinin modellenmesi için GraphML [31] isimli, çizge tanmla- mak için hazrlanm³, xml tabanl bir dosya format kullanlm³tr. GraphML yaps içerisindeki dü§üm ve kenar özelliklerine ek olarak ba³ka özellikler tanm- lanabilmektedir. Neden-sonuç çizgelerini tanmlayabilmek için dü§ümlere; se- viye (çizim srasnda neden-ara dü§üm-sonuç ili³kisini korumak için), ili³ki (dü- §ümü olu³turan Boole ifadesini tanmlamak için), dü§üm tipi (neden, sonuç, ara dü§üm, ko³ul dü§ümü), ko³ul sonuç dü§ümü bilgisi (ko³ul dü§ümlerinin ba§l olduklar ara dü§üm veya sonuç dü§ümü bilgisini tutmak için) tanmlanm³tr. Kenarlara ise yalnzca olumsuzluk bilgisi eklenmesi yeterli olmu³tur. Neden-sonuç çizgelerinin çizilmesi ve .graphml formatnda bir çktsnn aln- abilmesi ya da olu³turulan bir .graphml formatndaki çizgeyi çizdirmek için Gephi [32] isimli, açk kaynak kodlu kütüphane ve ona ait masaüstü program kullanlm³tr. Java tabanl Gephi kütüphanesi aracl§ ile .graphml dosyasn- dan alnan çizge bilgileri, yine Java ile geli³tirilen araçta olu³turulan model ile neden-sonuç çizge modeline dönü³türülmü³tür. Tüm sonuç dü§ümleri için ayrca çizge ili³ki bilgilerinden yola çkarak Boole ifadeleri olu³turulmu³tur. Boole ifadeleri MI, MAX-A ve CUTPNFP yöntem- lerinde kullanlmak üzere kanonik ANF'ye dönü³türülmü³tür. Bu dönü³üm için do§ruluk tablosu (truth table) aracl§ ile dönü³üm algoritmas kullanlm³tr. Bu algoritmada; her sonuç dü§ümü için, de§i³kenler için olas tüm de§er kom- binasyonlarna baklr, sonucu do§ru yapan satrlar seçilir. Bu satrlar seçilirken birbiri ile herhangi bir ko³ul (d³layan veya, içeren veya, gerektirme vs.) ile ba§l olan de§i³kenlerin ald§ de§erler ayrca kontrol edilir, ko³ula aykr olan bir du- rum varsa o kombinasyon seçilmez. Bu kombinasyonlarda do§ru de§erini alan de§i³kenler ve yanl³ de§eri alan de§i³kenlerin de§illeri 've' ba§lac ile ba§lanr. Bu kombinasyonlardan olu³turulan terimler daha sonra 'veya' ba§lac ile ba§la- narak orijinal Boole ifadeye ili³kin olan kanonik ANF Boole ifadesi olu³turulmu³ olur. Mutantlar olu³turmak için, farkl hata tiplerine göre ayr ayr mutant olu³- turma modelleri kurulmu³tur. Sonuç dü§ümleri için olu³turulmu³ olan orijinal 149 Boole ifadeleri üzerinden, istenen hata tipine göre olu³turulan bu modeller kul- lanlarak mutantlar olu³turulmu³tur. Bu yöntem “ekil 4'te gösterilmektedir. “ekil 5. TCAS-II'ye ait 14 gereksinimin çizilen neden-sonuç çizgesi 150 6 De§erlendirme ve Sonuçlar TCAS-II, birçok hava arac tipiyle uyumlu olan bir çarp³ma önleme sistemidir ve literatürde test ile ilgili çal³malarda çok sk kullanlm³tr [28, 33, 24, 6, 16]. TCAS-II'ye ait 14 gereksinim “ekil 5'teki neden-sonuç çizgesi olarak modellen- mi³ ve bu çizgeyi ifade eden graphml dosyas hazrlanm³tr. Neden-sonuç çiz- gesi Boole ifadelere çevrilerek, bu ifadeler Bölüm 5'te tanmlanan yöntem ile kanonik ANF'ye çevrilmi³tir. Kanonik ANF'ye dönü³türülen ifadeler üzerinden MI, MAX-A ve CUTPNFP yöntemleri ile test kümeleri olu³turulmu³tur. Bölüm 4'te açklanan mutasyon analizini uygulamak için, DOH, OH, RH, 0-TH, 1-TH, DRH, YBH, YAH hata snarndan olas tüm tekli (ayn anda tek bir de§i³iklik yaplarak) mutantlar olu³turulmu³tur. Mutantlar üzerinde test takmlar çal³trlarak yakalanan mutant saylar ayr ayr hata snar ve üç ayr yöntem için listelenmi³tir. Tüm Boole ifadeler üzerinde sonuçlar elde et- mek için, açk kaynak kodlu bir Boole ifade de§erlendirme kütüphanesi olan JBooleanExpression [34] kullanlm³tr. Yaplan deney sonucu elde edilen sonuçlardan sonra: Tablo 1'de yöntemler sonucu olu³an toplam test giri³ saylar ve Tablo 2'de olu³turulan toplam mu- tant saylar verilmi³tir. Tablo 3'de farkl yöntemlerle olu³turulmu³ olan test giri³lerinin olu³an mutantlar üzerindeki hata yakalama ba³ars verilmi³tir. Son olarak da, Tablo 4'de bu ba³arlarn toplam mutantlar üzerinde oranlanmas ile elde edilen yüzdeler verilmi³tir. MI MAX-A CUTPNFP Myers Test Says 2125 4370 59 708 Tablo 1. Olu³an test giri³ saylar DOH+OH RH 0-TH+1-TH DRH YBH YAH Tüm Snar Mutant Says 391 238 504 238 252 252 1889 Tablo 2. Olu³an mutant saylar Yakalanan Mutant Says DOH+OH RH 0-TH+1-TH DRH YBH YAH Tüm Snar MI 270 176 254 146 99 91 1034 MAX-A 344 214 438 215 220 218 1649 CUTPNFP 267 168 150 130 84 64 863 Myers 267 173 252 148 92 86 1018 Tablo 3. Mutant yok etme saylar Yakalanan Mutant Yüzdesi DOH+OH RH 0-TH+1-TH DRH YBH YAH Tüm Snar MI 0.69 0.74 0.50 0.61 0.39 0.36 0.55 MAX-A 0.88 0.90 0.87 0.90 0.87 0.87 0.87 CUTPNFP 0.68 0.71 0.30 0.55 0.34 0.25 0.46 Myers 0.68 0.73 0.50 0.62 0.36 0.34 0.54 Tablo 4. Mutant yok etme yüzdeleri 151 Olu³an toplam test giri³ saylar de§erlendirildi§inde; MI ve MAX-A, kanonik ANF'deki tüm terimler ve tüm terimlerin de§i³kenlerini tek tek de§erlendirdi§i için, Myers'a göre daha fazla test olu³turmaktadr. Sonuçlar ba³ar yüzdeleri üzerinden de§erlendirildi§inde, tüm hata tipleri için: MAX-A, MI, Myers ve CUTPNFP olarak sralanm³tr. Myers ile MI arasn- daki ba³ar farknn çok dü³ük olmasnn sebebi, MI yönteminde UTP seçim- lerinin rastgele yaplm³ olmasdr. MI ve Myers'n ba³ar yüzdeleri arasndaki fark, MI'daki rastgele seçimden dolay az olabilse de, MI'n kapsad§ test gir- i³i daha fazla oldu§u için MI Myers yerine tercih edilebilir. Kstl bir zaman ve kaynak var ise, test giri³ saylar arasndaki farktan dolay Myers, MI yerine tercih edilebilir. Bu noktada MI yönteminin uygulanabilmesi için Boole ifadeye dönü³türme, olu³an Boole ifadeyi kanonik ANF'ye dönü³türme gibi a³amalarn masraar ayrca dü³ünülmelidir. CUTPNFP, yakalamay amaçlad§ DOH,OH ve RH snarnda çok daha az sayda test giri³i ile MI ve Myers'n de§erlerini yakalam³tr. Bu çal³maya ek olarak, Bölüm 1'de bahsedilen farkl test giri³i üretme yön- temlerinden BOR ve MC/DC'nin de uygulamalarnn yaplmas, araca eklenmesi ve ayn analizden geçirilerek kar³la³trma tablosuna eklenmesi planlanmaktadr. Kaynakça 1. Elmendorf, W. R.: Cause-Eect Graphs on Functional Testing. TR-00.2487, IBM Systems Development Division, Poughkeepsie, NY (1973). 2. Myers, G.: The Art of Software Testing, Second edition, (2004). 3. Paradkar, A., Tai, K. C., Vouk, M. A.: Automatic Test-Generation for Predicates. IEEE Transactions on Reliability, vol.45, no.4, 515530 (1996). 4. Srivastava, P.R., Patel, P., Hatrola, S.: Cause Eect Graph to Decision Table gen- eration. ACM SIGSOFT Software Eng.Notes, vol.34, no.2 (2009). 5. Matur, A. P.: Software testing. 1st edition, Pearson Publication (2008). 6. Weyuker, E., Goradia, T., Singh, A.: Automatically Generating Test Data from a Boolean Specication. IEEE Transactions on Software Engineering, vol.20, no.5, 353-363 (1994). 7. Chen, T., Lau, M., Yu, Y.: MUMCUT: A fault-based strategy for testing boolean specications. In: Asia-Pacic Software Engineering Conference, 606, IEEE Computer Society, Los Alamitos, CA, USA, (1999). 8. Chen, T.Y., Lau, M.F.: Test case selection strategies based on Boolean specica- tions. Softw. Test. Verif. Reliab. vol.11, 165180 (2001). 9. Paradkar, A., Tai, K. C., Vouk, M. A.: Specication-Based Testing Using Cause- Eect Graphs. Annals of Software Engineering, vol.4, 133157 (1997). 10. Vilkomir, S. A., Bowen, J. P.: Reinforced Condition/Decision Coverage (RC/DC): A New Criterion for Software Testing. In 2nd International Conference, Formal Spec- ication and Development in Z and B, volume 2272 of Lecture Notes in Computer Science, 295313. Springer-Verlag, (2002). 11. Chen, T.Y., Grant, D.D., Lau, M.F., Ng, S.P., Vasa, V.R.: BEAT:Boolean Expres- sion Fault-Based Test Case Generator. In: Information Technology:Research and Education Conference, 625-629, (2003) 12. Kaminski,G. K. and Ammann, P.: Using Logic Criterion Feasibility to Reduce Test Set Size While Guaranteeing Fault Detection. In: ICST'09: Proceedings of the 2nd International Conference on Software Testing Verication and Validation. Washington, DC, USA: IEEE Computer Society, Apr. 14, 356365, (2009). 13. Singh, R.K., Chandra, P., Singh, Y.: An Evaluation of Boolean Expression Testing Techniques. ACM SIGSOFT Software Engineering Notes, vol.31, no.5, 1-6 (2006). 152 14. Ayav, T., Belli, F.: Boolean Dierentiation for Formalizin Myers' Cause-Eect Graph Testing Technique. In: Software Quality, Reliability and Security-Companion, IEEE, 138-143, Vancouver, BC (2015). 15. Fraser, G., Gargantini,A.: Generating minimal fault detecting test suites for Boolean expressions. In: Software Testing, Verication, and Validation Workshops, 37-45, Paris (2010). 16. Gargantini,A., Fraser,G.: Generating minimal fault detecting test suites for gen- eral Boolean specications. Information and Software Technology, vol.53, no.11, 12631273 (2011). 17. Sziray, J.: Evaluation of boolean graphs in software testing. In Computational Cybernetics (ICCC), 2013 IEEE 9th International Conference on, 225-230, IEEE, (2013). 18. Vilkomir, S., Starov, O., Bhambroo, R.: Evaluation of t-wise approach for test- ing logical expressions in software. In Software Testing, Verication and Validation Workshops (ICSTW), 2013 IEEE Sixth International Conference on. 249-256, IEEE, (2013). 19. Paul, T. K., Lau, M. F.: A systematic literature review on modied condition and decision coverage. Proceedings of the 29th Annual ACM Symposium on Applied Computing, 1301-1308, ACM, (2014). 20. Chung, I.: Investigating eectiveness of software testing with cause-eect graphs. International Journal of Software Engineering and Its Applications, vol.8, no.7, 41- 54 (2014). 21. Chung, I.: CEGPairGen: an automated tool for generating pairwise tests from causeeect graphs. International Journal of Software Engineering and Its Applica- tions, vol.9, no.1, 53-66 (2015). 22. Chung, I.: Modeling Pairwise Test Generation from Cause-Eect Graphs as a Boolean Satisability Problem. International Journal of Contents. vol.10, no.3, 41- 46 (2014). 23. Sun, C., Zai, Y., Liu, H.: Evaluating and Comparing Fault-Based Testing Strategies for General Boolean Specications: A Series of Experiments. The Computer Journal, vol.58, no.5, 1199-1213 (2015). 24. Badhera, U., G.N. P., Taruna, S.: Fault Based Techniques for Testing Boolean Expressions : A Survey. International Journal of Computer Science & Engineering Survey. vol.3, no.1, 8190 (2011). 25. Ayav, T.: Yazlm Yapsal Kapsama Analizinde Testlerin Önceliklendirilmesi. 9th UYMS , zmir (2015). 26. Kuhn, R.: Fault classes and error detection capability of specication-based testing. ACM Trans. Softw. Eng. and Methodol., vol.8, no.4, 411424 (1999). 27. Tsuchiya, T., Kikuno, T.: On fault classes and error detection capability of specication-based testing. ACM Trans. Softw. Eng. and Methodol., vol.11, no.1, 5862 (2002). 28. Lau, M.F., Yu, Y.T.: An extended fault class hierarchy for specication-based testing. ACM Trans. Softw. Eng. and Methodol., vol.14, no.3, 247-276 (2005). 29. Kapoor, K., Bowen, J.P.: Test conditions for fault classes in Boolean specications. ACM Trans. Softw. Eng. Methodol., vol.16, no.3, 10 (2007). 30. Chen, Z., Chen, T.Y., Xu, B.: A Revisit of Fault Class Hierarchies in General Boolean Specications. ACM Trans. Softw. Eng. Methodol., vol.20, no.3, 13:1-13:11 (2011). 31. The GraphML File Format, http://graphml.graphdrawing.org/ 32. Gephi: The Open Graph Viz Platform, https://gephi.org/ 33. Chen,T.Y., Lau,M.F., Sim,K.Y., Sun,C.a.: On detecting faults for boolean expres- sions. Software Quality Journal, vol.17, no.3, 245261, (2009). 34. JBooleanExpression: Java Boolean Expression Evaluator, http://jboolexpr. sourceforge.net/ 153