• Aucun résultat trouvé

Yazılım Yapısal Kapsama Analizinde Testlerin Önceliklendirilmesi

N/A
N/A
Protected

Academic year: 2022

Partager "Yazılım Yapısal Kapsama Analizinde Testlerin Önceliklendirilmesi"

Copied!
11
0
0

Texte intégral

(1)

Yazlm Yapsal Kapsama Analizinde Testlerin Önceliklendirilmesi

Tolga Ayav

zmir Yüksek Teknoloji Enstitüsü Bilgisayar Mühendisli§i Bölümü

35430 Urla, zmir tolgaayav@iyte.edu.tr

Özet. Bu çal³ma de§i³tirilmi³ ko³ul/karar kapsama stratejisince türe- tilmi³ test giri³lerinin önceliklendirilmesi için bir teknik sunmaktadr.

Teknik Fourier analizine dayanmaktadr ve testlerin hata ortaya çkarma potansiyellerine göre sralanabilmesini hedeemektedir. Bu sayede yazl- mn yüksek öncelikli testlerden ba³layarak dü³ü§e do§ru snanmas veya test kümesinin yüksek öncelikli testleri kapsayacak ³ekilde daraltlmas mümkün olabilecektir.

Anahtar Kelimeler: Yazlm snama, yapsal kapsama analizi, de§i³tir- ilmi³ ko³ul/karar kapsama, Fourier analizi.

1 Giri³

Ara³trmalar test maliyetinin toplam yazlm geli³tirme maliyetinin yarsndan fazla tutabilece§ini göstermi³tir [10]. Bir yazlmn hatasz oldu§unu göstermek pratikte mümkün olamamaktadr ancak yazlm snama metotlaryla hatalarn- dan arndrlan yazlmlarn kalite ve güvenilirli§ini arttrmak mümkündür. Yaz- lmlarn büyüklü§üne, test maliyetine ve eldeki bütçeye göre tam kapsaml bir s- nama istenmeyebilir. Bu durumda, yazlmn hangi ksmlarnn hangi test küme- siyle test edilece§ine karar verilmesi kritik bir öneme sahiptir. Bu çal³ma test durumlarnn önceliklendirilmesi konusunu ele almaktadr. Test önceliklendirme yöntemleri testleri baz öncelik kriterlerine göre sralamaya dayal tekniklerdir.

Böylelikle testler hata bulma yetenekleri ölçüsünde sraland§nda, i) Hatalarn erken tespit edilme olasl§ artar, ii) Testlerin tamam uygulanamad§nda yük- sek öncelikli testlerden olu³an bir alt küme seçilebilir.

Bu çal³ma yazlm yapsal kapsama tekniklerinden biri olan de§i³tirilmi³ ko³ul/karar kapsama (MCDC) analizi ile elde edilmi³ testlerin önceliklendirilmesi üzerinedir. Federal Havaclk daresi'nin (FAA) ³art ko³tu§u yazlm testlerinin ba³nda MCDC kapsama analizi gelmektedir1. Elbaum çal³masnda endüstriden gelen bir bilgiye göre 20,000 satrdan olu³an bir kodun MCDC test kümesiyle

1 FAA'nn onaylam³ oldu§u DO-178C Software Considerations in Airborne Systems and Equipment Certication standard en kritik olan A seviyesi yazlmlarn kap- sama analizi için MCDC'yi kullanmaktadr.

(2)

testinin yedi hafta sürdü§ünü belirtmektedir [3]. Öncelik srasna göre uygu- lanan testlerin hata bulma olasl§ daha yüksek olaca§ndan test daha önce sonlandrlabilecektir ve özellikle regresyon testleri açsndan dü³ünüldü§ünde, bu konu daha da önemli olmaktadr [4].

Bu çal³mada testlerin öncelikleri mutasyon analizine göre hata ortaya ç- karma potansiyelleri üzerinden tanmlanm³tr. Öncelikler ile ko³ullarn Fourier analiziyle elde edilen spektral katsaylar arasnda tanmlanan bir negatif kore- lasyon kapsaml denemelerle snanmaya çal³lm³tr. Böylelikle test öncelikleri do§rudan spektral katsaylara bakarak belirlenebilmektedir.

Bölüm 2'de, önerilen metot detayl olarak açklanmaktadr. Öncelikle Ksm 2.1, MCDC analizinde kullanlan Boole i³levlerinin türevlerini, Ksm 2.2 Boole i³levlerinin Fourier analizini ve Ksm 2.3 de§i³tirilmi³ ko³ul/karar kapsama ana- lizini sunmaktadr. Bölüm 3 hata snarn ve çal³mada yararlanlan mutas- yon analizini anlatmaktadr. Bölüm 4 ise çe³itli i³levler için belirli hata snar içerisinde ve 1,2,3-hata varsaymlar altnda spektral katsaylarla testlerin hata ortaya çkarma potansiyelleri arasnda negatif ilintiyi kapsaml denemelerle göster- mektedir. Çal³ma Bölüm 5 ile sonuçlandrlmaktadr.

2 Testlerin Önceliklendirilmesi

c= (c1, . . . , ci, . . . , cn)nadet Boole de§i³keninden/ko³ulundan olu³an bir vektör olsun. Boole i³levif(c)a³a§daki ³ekilde ifade edilebilir:

f :Bn→B, B={0,1}.

Bu çal³mada Boole de§i³kenleri ve operasyonlar için a³a§daki tanm kullanlm³tr:

x::= 0|1|x0|x1Θx2, Θ={ ·,+}.

· ve + srasyla VE ve VEYA mantk operasyonlarn, x0 isexde§i³keninin olumsuzunu ifade etmektedir. Di§er operatörler bu temel olanlardan türetilebilir.

Boole i³levleri yazlmlarn yapsal kapsama analizinde yazlmn veya kod parçasnn yapsn ifade etmekte de kullanlabilir. Örnek olarak a³a§daki kod parçasn ele alalm:

if ((( curTemp < dTemp - thresholdDiff ) ||

( override && curTemp < overTemp - thresholdDiff )) &&

( timeSinceLastRun > minLag ) ) {...}

(Örnek, NASA/TM-2001-210876 A Practical Tutorial on Modied Condition/Decision Coverage raporundan alnm³tr.)

fade içerisindeki ko³ullarn her birini a³a§da görüldü§ü ³ekilde Boole de§i³ken- lerle ifade edersek,

c0: curTemp < dTemp - thresholdDiff c1: override

c2: curTemp < overTemp - thresholdDiff c3: timeSinceLastRun > minLag

(3)

Test vektörü c= [c0, c1, c2, c3]T olmak üzere Boole i³levi a³a§daki gibi yazla- bilir:

f(c) = (c0+ (c1·c2))·c3

Testlerin önceliklendirilmesi ilk kez formel olarak Elbaum vd. tarafndan yaplm³tr [3]. Buradan uyarlayarak gerekli tanmlar a³a§daki ³ekilde yapla- bilir:

Tanm 1 (Hata Ortaya Çkarma Potansiyeli). f :Bn →B olarak verilen birn giri³li Boole i³levi için maskeleyen de§i³tirilmi³ ko³ul/karar kapsama kriterine göre elde edilmi³ test ikilileri T ={t0, t1, . . . , tn−1} olsun. Boole i³levine ili³kin madet mutant yaratlm³ olsun. Test ikililerinin hata bulma potansiyeliHP(ti), ayrt edebildikleri mutant saysnn toplam mutant saysm'e bölünmesiyle elde edilir.

Burada mutantlar Bölüm 3'te daha detayl anlatlaca§ üzere i³levin belirli hata prototipleri varsaym altnda mutasyona u§ratlmasyla elde edilirler.

Tanm 2 (Testlerin Öncelikleri). t0, t1,· · · , tn, c0, c1, cn−1 ko³ullarna ili³kin üretilmi³ test ikilileri olsun. Test ikililerinin öncelikleri P r(ti), hata ortaya ç- karma potansiyelleriyle orantldr:

P r(ti)∼HP(ti), i∈ {0, . . . , n−1}.

2.1 Boole ³levlerinin Türevi

Boole i³levleri için literatürde çe³itli türev ve integral hesaplamalar tanmlan- m³tr. En kabul görmü³ türev tanm uyarnca bir Boole i³levinin ci'ye göre türevi a³a§daki gibi hesaplanr [11]:

∂f(c)

∂ci

=f(c1, . . . , ci, . . . , cn)⊕f(c1, . . . , c0i, . . . , cn) (1) Burada⊕d³layan-VEYA operatörüdür. Buna göre, di§er de§i³kenler sabit kal- mak kaydylaci'nin 0 ve 1 de§erleri için i³levin sonucu de§i³miyorsa, bu i³levin ci'ye göre türevi 0'dr. E§er her iki durumda sonuçlar farklysa türev 1'dir.

2.2 Boole ³levlerinin Fourier Analizi

Boole i³levlerinin spektrum analizinde Fourier, Walsh, Walsh-Hadamard dönü-

³ümlerinin hepsi ayn anlama gelmektedir ve literatürde birbirinin yerine kul- lanlmaktadr [6, 12]. Bir x(t) sinyalinin Fourier (Walsh) açlm a³a§daki gibi yazlr:

x(t) =a0+

X

i=1

(aisal(i, t) +bical(i, t)) (2) Buradaa0do§ru akm bile³eni,ai vebi ise Walsh spektrum katsaylardr.salve cali³levleri ise Fourier açlmndaki sinüs ve kosinüs i³levlerine olan benzerlikleri

(4)

nedeniyle bu ³ekilde isimlendirilmi³ olup a³a§da gösterilen Walsh i³levlerine denk dü³erler:

sal(ω, x) =wal(2ω−1, x) (3)

cal(ω, x) =wal(2ω, x) (4)

Walsh i³levleri[0,1]zaman aral§nda tanmlanm³tr ve do§al sral Walsh i³lev- leri a³a§da verilen Walsh dönü³üm dizeyince de ifade edilebilirler:

W(n) =

n

O

i=1

W(1), W(1) = 1 1

1−1

,

BuradaNKronecker çarpmn ifade etmektedir. Dizeyin her bir satr ayr bir Walsh i³levine aittir. Örne§in,W(2)a³a§daki ³ekilde hesaplanr:

W(2) =

1 1 1 1 1−1 1−1 1 1−1−1 1−1−1 1

 1 x1

x2

x1⊕x2

Dizeyin her bir satrnn denk geldi§i Walsh i³levi/bile³eni dizeyin yannda be- lirtilmi³tir. ⊕x1,2 ³eklindeki ifade x1⊕x2 ile ayndr. Walsh dizeyi görüldü§ü gibi elemanlar sadece +1 ve -1'den olu³an bir kare dizeydir ve satrlar kar³lkl dikgendir. Öyle ki,In birn×nbirim dizey olmak üzereW(n)×W(n)T =nIn diyebiliriz. Walsh dönü³ümü ve bunun ters dönü³ümü a³a§daki gibi tanmlanr:

Sf(ω) = 2−n

2n−1

X

x=0

(1−2f(x))wal(ω, x) (5)

f(x) =1 2 −1

2

2n−1

X

ω=0

Sf(ω)wal(ω, x) (6)

Dizey simgeleminde dönü³ümler ³u ³ekilde ifade edilebilirler:

Sf = 2−nW(n)(1−2F) (7) F= 1

2(1−W(n)Sf) (8) Formül (7)'de görülen 1−2F ifadesi dönü³ümden önce Boole de§i³kenlerinin ald§{0,1} de§erlerini{1,−1} de§erlerine dönü³türmeye yarar. Benzer ³ekilde ters dönü³ümde de W(n)Sf, {1,−1} de§erini üretir ve bu de§er{0,1}'e dönü³- türülür. Herhangi birf(x)i³levinin Walsh açlm a³a§daki ³ekilde yazlr:

f(x) =Sf(0) +Sf(1)x1+Sf(2)x2+Sf(3)(x1⊕x2) +

Sf(4)x3+· · ·+Sf(2n−1)(x1⊕ · · · ⊕xn) (9) Walsh katsaylar sinyal çk³yla ilgili bile³ene ait Walsh i³levi arasndaki ilin- tiyi gösterirler. Örne§in,k∈ {1,2, . . . , n}olmak üzerewal(2k−1, t)devreninxk

giri³ine kar³lk gelen bile³endir ve Sf(2k−1) sinyal ile, di§er bir deyi³le Boole i³levinin do§ruluk yöneyi ile bu bile³en arasndaki ilintidir.

(5)

2.3 Maskeleyen De§i³tirilmi³ Ko³ul/Karar Kapsama (Masking MCDC) Analizi

Maskeleyen De§i³tirilmi³ Ko³ul/Karar Kapsama (Masking MCDC) tekni§i, ya- psal kapsama analizinde kullanlan yöntemlerden biridir. MCDC'nin üç farkl formu bulunmaktadr. Bu çal³mada kullanlan maskeleyen tipinin di§er yön- temlerle kyaslamal olarak zayklar ve üstünlükleri hakknda detayl bilgi için [2] ve [5]'e ba³vurun. MCDC stratejisine göre test kümesi her bir ko³ul için elde edilecek test vektör ikililerinden olu³ur (x,y) ve a³a§daki ³ekilde tanm- lanr:

T={ti= (x,y) : ∀i∈ {1, . . . , n}: xi=yi0∧f(x) =f0(y)∧∂f(x)

∂xi = 1∧∂f(y)

∂yi = 1} (10)

fadedeki her ko³ul için öyle test ikilileri bulunmaldr ki her bir test ikilisinde:

1. Ko³ul iher iki testte farkl olmaldr (xi=y0i)

2. fade her iki test için farkl de§er üretmelidir (f(x) =f0(y))

3. Birinci testx için Ko³uli'nin sonuç üzerinde etkisi olmaldr (∂f(x)∂xi = 1) 4. kinci testyiçin Ko³ul i'nin sonuç üzerinde etkisi olmaldr (∂f(y)∂yi = 1)

Örnek i³levin her bir de§i³kene göre ksmi türevi Formül 1'e göre analitik olarak a³a§daki gibi hesaplanabilir:

∂f(c)

∂c0 = (c01+c02)c3 (11)

∂f(c)

∂c1

=c00c2c3 (12)

∂f(c)

∂c2

=c00c1c3 (13)

∂f(c)

∂c3

=c00+ (c1c2) (14)

Ksmi türevlerin yardmyla test giri³leri kolaylkla bulunabilir. Örne§in,c1ko³ulu için test ikilisini olu³tururken ∂f(c)/∂c1 = 1 ³artn sa§layan tek (c0, c2, c3) de§erinin (0,1,1) oldu§u görülmektedir. Bu durumda ilgili test ikilisi c(1) = [0,1,1,1]T ve c(2) = [0,0,1,1]T olarak yazlabilir. Ayn zamanda f(c(1)) = 1 ve f(c(2)) = 0 ³artlarnn yerine getirildi§ine de dikkat edilmelidir. Benzer ³e- kilde hesapland§nda Tablo 1'de görüldü§ü ³ekilde dört test ikilisi, di§er bir deyi³le sekiz test vektörü elde edilir. çlerinden ikisi tekrar etti§inden elenebilir, böylelikle toplam alt test yeterli olur.

Bir önceki ksmda açkland§ ³ekliyle Boole i³levinin giri³lerine ili³kin spek- tral katsaylar hesaplamak üzere öncelikle i³levin do§ruluk yöneyi a³a§daki gibi yazlr:

F= [0,0,0,0,0,0,0,1,0,1,0,1,0,1,0,1]T

(6)

Test No c0 c1 c2 c3 f(c)

1 1 1 0 1 1

2 0 1 0 1 0

3 0 1 1 1 1

4 0 0 1 1 0

5 0 1 1 1 1

6 0 1 0 1 0

7 1 1 1 1 1

8 1 1 1 0 0

Tablo 1.f(c)için bulunan test vektörleri

Formül (7)'de verilen dönü³üm hesaplamas yapld§ndaysa a³a§daki spektral katsaylar elde edilir:

Sf= [0.375,0.375,0.125,0.125,0.125,0.125,−0.125,−0.125,0.625,

−0.375,−0.125,−0.125,−0.125,−0.125,0.125,0.125]T (15) Buna göre, i³levinc0, c1, c2 vec3ile ilintilerinin srasylaSf(1) = 0.375,Sf(2) = 0.125,Sf(4) = 0.125veSf(8) = 0.625oldu§u görülmektedir. Yaznn devamnda sözkonusu ilintiler srasylas0,s1,s2 ves3olarak adlandrlacaktr.

Regresyon testi için testlerin önceliklendirilmesi konusunda literatürde çal³- malara rastlanmaktadr [79]. Jones ve Harrold ise çal³malarnda MCDC test kümesinin küçültülmesi ve testlerin önceliklendirilmesi için iki yeni teknik sun- mu³tur [4]. Test önceliklendirme çal³malarnda önerilen tekniklerin ço§u APFD (Average Percentage of Faults Detected) metri§ine dayanan sezgisel algoritmalar kullanmaktadr. Bu çal³madaysa literatürdeki di§er çal³malardan farkl olarak Boole i³levlerinin spektral analizine dayanan matematiksel bir yöntem sunul- maktadr.

Testlerin spektral katsaylara ba§l olarak önceliklendirilmesi a³a§da verilen teoremle ele alnm³tr.

Teorem 1 f :Bn→B,n giri³li Boole i³levi ve s0, s1, . . . , sn−1 srasyla c0, c1, . . . , cn−1 ko³ullarna ili³kin Walsh i³levlerine ait spektral katsaylar olsun. Test- lerin öncelikleri ile spektral katsaylar arasnda negatif korelasyon vardr.

Teoremin ispat burada yaplmayacak olup do§rulu§u Bölüm 4'te verilen kap- saml denemelerle snanmaya çal³lacaktr.

3 Hata Prototiplerinin Snandrlmas

n ko³ula sahip bir Boole i³levi bu ko³ullara ba§l olarak 2n farkl çk³ ürete- bilir. Öte yandan n ko³ula sahip 22n farkl Boole i³levi yazmak mümkündür.

Örne§in, dört ko³ul olmas durumunda, 224 = 65536 farkl Boole i³levi olu³tu- rulabilir. Tablo 3 bu i³levlerden bir ksmn göstermektedir. Orijinal i³levimiz

(7)

olan f43648 = (c0 + (c1c2))c3 bunlardan sadece biridir ve testin amac oriji- nal i³levi di§erlerinden ayrabilmektir. ³levi di§er22n−1 i³levden ayrabilmek için 2n adet test gerekir. Çoklu-ko³ul kapsama testi olarak adlandrlan bu test ko³ullarn fazla olmas durumunda imkanszla³r. E§er m <2n adet test uygu- layacak olursak, 2n−m kadar kombinasyon denenmemi³ olur. Bu durumda m adet testinnko³ulu kapsama oran a³a§daki formülle hesaplanabilir:

P(n,m)= 1−2(2n−m)−1

22n (16)

Bir test kümesinin hata kapsama orann incelerken yukarda verilen formülden yola çkmak çok sa§lkl olmayabilir. Yazlm geli³tirilirken ko³ullarda yaplabile- cek hatalar sonucunda istenenden farkl Boole i³levleri olu³turmak olasdr ancak her bir hatal Boole i³levinin ortaya çkma olasl§ birbirinden farkldr ve22n−1 i³levin çok büyük bir ksmnn hatal yazlmla elde edilme olasl§ çok dü³üktür.

Bu nedenle hata kapsama oran hesaplanrken yazlm geli³tiricilerin sk yapt§

hatalara dayal bilgiden faydalanarak mutasyon metoduna dayal bir hesaplama yapmak daha gerçekçi olacaktr. Testlerin veya test olu³turma yöntemlerinin per-

c0c1c2c3 f0f1f2f3 · · · f32768· · · f43648· · · f65514 · · · f65535

0000 0 1 0 1 0 0 0 1

0001 0 0 1 1 0 0 1 1

0010 0 0 0 0 0 0 0 1

(0011) 0 0 0 0 0 0 1 1

0100 0 0 0 0 0 0 0 1

(0101) 0 0 0 0 0 0 1 1

0110 0 0 0 0 0 0 1 1

(0111) 0 0 0 0 0 1 1 1

1000 0 0 0 0 0 0 1 1

1001 0 0 0 0 0 1 1 1

1010 0 0 0 0 0 0 1 1

1011 0 0 0 0 0 1 1 1

1100 0 0 0 0 0 0 1 1

(1101) 0 0 0 0 0 1 1 1

(1110) 0 0 0 0 0 0 1 1

(1111) 0 0 0 0 1 1 1 1

Tablo 2. Dört de§i³kenli Boole i³levlerine ili³kin örnek gösterim

formanslar genellikle mutasyon analizleriyle de§erlendirilir. Bir mutant, orijinal Boole i³levinde küçük bir de§i³iklik yaparak elde edilir ve bir hata prototipini temsil eder. Bir testin mutantlarn orijinalinden ayrabilme yetene§i arttkça hata kapsama oran da artar. Literatürde önerilen ve genel kabul görmü³ hata prototipleri a³a§da ksa açklamalarla verilmi³tir [1].

³lem Hatalar:

(8)

RH ³lem Referans Hatas. VE i³lemi VEYA ile veya VEYA i³lemi VE ile de§i³tirilir. Örn.(c0+ (c1c2)) +c3.

OH fade Olumsuzlama Hatas. fadenin bir ksm (alt ifade) olumsuzlanr.

Örn.(c0+ (c1c2)0)c3.

DOH De§i³ken Olumsuzlama Hatas. Boolean de§i³kenlerinden biri olumsu- zlanr. Örn.(c0+ (c01c2))c3.

KH li³kisel Kaydrma Hatas. fadedeki ko³ullar arasndaki ili³kilerde hata yaplmasndan kaynaklanr.

PUH Parantez Unutma Hatas. fade içerisindeki bir parantez çifti unutu- lursa olu³ur. Örn.(c0+c1c2)c3.

PEH Parantez Ekleme Hatas. Bir parantez çifti yanl³lkla ifadeye eklen- di§inde ortaya çkar. Örn.(c0+ (c1c2))c3.

Terim Hatalar:

EDH Eksik De§i³ken Hatas. Ko³ullardan birinin unutulmas durumudur. Örn.

(c0+ (c1c2)).

DRH De§i³ken Referans Hatas. Ko³ullardan biri ifadede yer alan ba³ka bir ko³ul ile yer de§i³tirilir. Örn.(c1+ (c1c2))c3.

YBH Yantümce Birle³me Hatas. Ko³ulayerineabyazlmas durumudur. Örn.

(c0+ (c1c3c2))c3.

YAH Yantümce Ayrlma Hatas. Ko³ul a yerine a+b yazlmas durumudur.

Örn.(c0+c3+ (c1c2))c3.

0-T-H 0'a Taklma Hatas. Ko³ullardan birinin hep 0 olmas durumudur. Örn.

(0 + (c1c2))c3.

1-T-H 1'e Taklma Hatas. Ko³ullardan birinin hep 1 olmas durumudur. Örn.

(c0+ (1·c2))c3.

4 Deneyler

Bu bölümde çal³mann konusu olan, spektral katsaylarla testlerin hata ortaya çkarma potansiyelleri arasndaki ili³ki deneysel olarak verilecektir. lk olarak dört giri³li sekiz farkl Boole i³levi olu³turulmu³, bunlar için spektral katsaylar ve test giri³leri hesaplanm³tr. Testlerin hata ortaya çkarma potansiyellerini ölçebilmek için mutasyon yönteminden yararlanlm³tr. Bölüm 3'te tanmlan- m³ olan hata snarndan RH, OH, DOH, DRH, 0-T-H ve 1-T-H'a göre olas tüm mutantlar olu³turulmu³tur. Mutantlar 1-hata, 2-hata ve 3-hata varsaym- larna göre yaratlm³tr. 1-hata varsaym sistemde tek bir hata olu³abilece§ini söyler. Bu durumda, RH snf için 3 mutant, OH ve DOH snar için 6 mu- tant, DRH snf için 12 mutant, 0-T-H ve 1-T-H snar için de 6'³ar mutant olmak üzere toplam33mutant elde edilmektedir. Tablo 4 1-hata durumuna göre dört giri³li sekiz farkl i³levin spektral katsaylar (s0, s1, s2 ve s3) ile her bir ko³ula ba§l test ikililerinin hata ortaya çkarma potansiyellerini (c0, c1, c2 ve c3) göstermektedir. Bu de§erlerle spektral katsaylar arasndaki r ile gösterilen ilinti, a³a§daki korelasyon formülüyle hesaplanm³tr. Buna göre ilinti -1 ile +1

(9)

arasnda de§i³mekte olup, -1 güçlü bir negatif ili³kiyi, +1 ise güçlü bir pozitif ili³kiyi ifade eder.

r=

n

n−1

P

i=0

cisi

n−1

P

i=0

ci

n−1

P

i=0

si s

n

n−1

P

i=0

c2i −(

n−1

P

i=0

ci)2 n

n−1

P

i=0

s2i −(

n−1

P

i=0

si)2

(17)

Tablo 4'e göre, r tanmsz oldu§u 1 ve 8 numaral i³levlerin d³nda -1'e çok yakn olup ko³ullara ili³kin spektral katsaylar ile yine ko³ullara ba§l testlerin hata ortaya çkarma potansiyelleri arasnda kuvvetli bir negatif ilinti oldu§unu söylemektedir. 1 ve 8 numaral i³levlerdeki tüm ko³ullar denk olup spektral kat- saylar birbirine e³ittir. Bu durumda Formül 17'nin sonucu tanmsz oldu§undan testler arasnda bir önceliklendirme yaplamamaktadr.

Önceki bölümde ele alnan 3 numaral i³levf = (c0+ (c1c2))c3için tablodan bakld§nda a³a§daki ili³ki görülebilir:

s3> s0> s1=s2 =⇒ P r(c1) =P r(c2)> P r(c0)> P r(c3) Buna göre test giri³leri Tablo 3'te görüldü§ü ³ekilde sralanabilir.

Öncelik De§eri c0 c1 c2 c3 f(c)

1 0 1 1 1 1

1 0 0 1 1 0

2 0 1 0 1 0

3 1 1 0 1 1

4 1 1 1 1 1

4 1 1 1 0 0

Tablo 3.f(c)için sralanm³ test vektörleri

Tablo 5 ve 6 ayn hesaplamalarn 2-hata ve 3-hata varsaymlarna göre so- nuçlarn göstermektedir. 2-hata varsaym sistemde ayn anda 2 hatann olabile- ce§ini söyler ve bu durumunda toplam 414 mutant yaratlabilir. 3-hata duru- mundaysa en fazla 2484 mutant yaratlabilmektedir. Negatif korelasyon her iki durumda da geçerlili§ini korumu³tur.

5 Sonuç

Bu çal³mada yazlm snama için maskeleyen de§i³tirilmi³ ko³ul/karar kapsama stratejisince üretilen testlere öncelik de§erlerinin atanmas için bir yöntem sunul- mu³tur. Önceliklendirme Fourier analizine dayanmaktadr ve öncelikler test ikili- lerinin hata ayklama yeteneklerine göre verilmektedir. Önerilen yöntem sayesinde önceliklendirme do§rudan Fourier analiziyle hesaplanan spektral katsaylar üze- rinden yaplabilmektedir. Yöntem, testlerin öncelik sralamasna göre uygulan- masnda ve test kümelerinin küçültülmesinde kullanlabilir.

(10)

No ³lev s0 s1 s2 s3 c0 c1 c2 c3 r 1 f= (c0(c1c2))c3 0.125 0.125 0.125 0.125 0.485 0.545 0.545 0.424 tanmsz 2 f= (c0(c1+c2))c3 0.375 0.125 0.125 0.375 0.576 0.667 0.667 0.515 -0.943 3 f= (c0+ (c1c2))c3 0.375 0.125 0.125 0.625 0.576 0.667 0.667 0.364 -0.978 4 f= (c0+ (c1+c2))c3 0.125 0.125 0.125 0.875 0.606 0.667 0.667 0.364 -0.980 5 f= (c0(c1c2)) +c3 0.125 0.125 0.125 0.875 0.606 0.667 0.667 0.273 -0.989 6 f= (c0(c1+c2)) +c3 0.375 0.125 0.125 0.625 0.576 0.667 0.667 0.364 -0.978 7 f= (c0+ (c1c2)) +c3 0.375 0.125 0.125 0.375 0.485 0.667 0.667 0.424 -0.980 8 f= (c0+ (c1+c2)) +c3 0.125 0.125 0.125 0.125 0.485 0.545 0.545 0.424 tanmsz Tablo 4. Tek hata olmas durumunda test ikililerinin hata ortaya çkarma potansiyel- leriyle spektral katsaylar arasndaki korelasyon (Toplam mutant says: 33).

No ³lev s0 s1 s2 s3 c0 c1 c2 c3 r

1 f= (c0(c1c2))c3 0.125 0.125 0.125 0.125 0.792 0.855 0.855 0.700 tanmsz 2 f= (c0(c1+c2))c3 0.375 0.125 0.125 0.375 0.800 0.872 0.872 0.703 -0.870 3 f= (c0+ (c1c2))c3 0.375 0.125 0.125 0.625 0.795 0.872 0.872 0.546 -0.962 4 f= (c0+ (c1+c2))c3 0.125 0.125 0.125 0.875 0.816 0.874 0.874 0.575 -0.982 5 f= (c0(c1c2)) +c3 0.125 0.125 0.125 0.875 0.812 0.872 0.872 0.435 -0.991 6 f= (c0(c1+c2)) +c3 0.375 0.125 0.125 0.625 0.792 0.874 0.874 0.548 -0.957 7 f= (c0+ (c1c2)) +c3 0.375 0.125 0.125 0.375 0.720 0.874 0.874 0.635 -0.957 8 f= (c0+ (c1+c2)) +c3 0.125 0.125 0.125 0.125 0.802 0.862 0.862 0.713 tanmsz Tablo 5. Çift hata olmas durumunda test ikililerinin hata ortaya çkarma potansiyel- leriyle spektral katsaylar arasndaki korelasyon (Toplam mutant says: 414).

No ³lev s0 s1 s2 s3 c0 c1 c2 c3 r

1 f= (c0(c1c2))c3 0.125 0.125 0.125 0.125 0.833 0.882 0.882 0.738 tanmsz 2 f= (c0(c1+c2))c3 0.375 0.125 0.125 0.375 0.844 0.886 0.886 0.745 -0.796 3 f= (c0+ (c1c2))c3 0.375 0.125 0.125 0.625 0.836 0.882 0.882 0.716 -0.973 4 f= (c0+ (c1+c2))c3 0.125 0.125 0.125 0.875 0.845 0.885 0.885 0.699 -0.977 5 f= (c0(c1c2)) +c3 0.125 0.125 0.125 0.875 0.843 0.884 0.884 0.537 -0.993 6 f= (c0(c1+c2)) +c3 0.375 0.125 0.125 0.625 0.835 0.886 0.886 0.721 -0.980 7 f= (c0+ (c1c2)) +c3 0.375 0.125 0.125 0.375 0.853 0.894 0.894 0.763 -0.805 8 f= (c0+ (c1+c2)) +c3 0.125 0.125 0.125 0.125 0.853 0.899 0.899 0.759 tanmsz Tablo 6. Üç hata olmas durumunda test ikililerinin hata ortaya çkarma potansiyel- leriyle spektral katsaylar arasndaki korelasyon (Toplam mutant says: 2484).

(11)

Kaynaklar

1. Badhera, U., Purohit, G.N., Taruna, S.: Fault based techniques for testing boolean expressions: A survey. CoRR abs/1202.4836 (2012), http://arxiv.org/abs/1202.

2. Chilenski, J.J.: An investigation of three forms of the modied condition decision4836 coverage (mcdc) criterion. Tech. rep., Oce of Aviation Research (2001)

3. Elbaum, S., Malishevsky, A.G., Rothermel, G.: Prioritizing test cases for regression testing. SIGSOFT Softw. Eng. Notes 25(5), 102112 (Aug 2000), http://doi.acm.

org/10.1145/347636.348910

4. Jones, J.a., Harrold, M.J.: Test-suite reduction and prioritization for modied con- dition/decision coverage. IEEE International Conference on Software Maintenance, ICSM pp. 92103 (2001)

5. Kelly J., H., Dan S., V., John J., C., Leanna K., R.: A practical tutorial on modied condition/decision coverage. Tech. rep. (2001)

6. O'Donnell, R.: Some topics in analysis of boolean functions. In: Proceedings of the Fortieth Annual ACM Symposium on Theory of Computing. pp. 569578. STOC '08, ACM, New York, NY, USA (2008), http://doi.acm.org/10.1145/1374376.

1374458

7. Rothermel, G., Untch, R.H., Chu, C., Harrold, M.J.: Test Case Prioritization: An Empirical Study pp. 110 (1999)

8. Rothermel, G., Untch, R.H., Chu, C., Harrold, M.J., Society, I.C.: Prioritizing Test Cases For Regression Testing Prioritizing Test Cases For Regression Testing (August), 102112 (2001)

9. Srivastava, P.: Test case prioritization. Journal of Theoretical and Applied Infor- mation . . . (December), 132 (2008)

10. Tassey, G.: The economic impacts of inadequate infrastructure for software testing.

Tech. rep. (2002), http://www.nist.gov/director/prog-ofc/report02-3.pdf 11. Thayse, A., Davio, M.: Boolean dierential calculus and its application to switching

theory. IEEE Trans. Comput. 22(4), 409420 (Apr 1973), http://dx.doi.org/10.

1109/T-C.1973.223729

12. de Wolf, R.: A Brief Introduction to Fourier Analysis on the Boolean Cube.

No. 1 in Graduate Surveys, Theory of Computing Library (2008), http://www.

theoryofcomputing.org/library.html

Références

Documents relatifs

Kullanılabilirliğin özellikle etkileşimli sistemler başta olmak üzere tüm yazılımlar için önemli bir özellik olduğu genel olarak kabul görmüş olsa da [7],

İkinci regreasyon testi sırasında (t = 2) ilk regresyon testleri sırasında ölçülen hata tespit oranı, ilgili test durumu için öncelik olarak belirlenir.. Daha

Tablo 1.. Bu veritabanı 5 farklı projeden toplamda 5371 örneklem içer- mektedir. Verilerin elde edilmesinde popüler açık kaynak kodlu bazı projelerin kodla- rından

lgili yazlm sistemini olu³turan 274 adet yazlm bile³eni için ayr ayr ve de§i³ik- lik ba§la³m ve hata ölçütleri (hata says ve hata yo§unlu§u) kullanlarak kore- lasyon

Her ne kadar yakın olsalar da tüm hataların tespit edilmesi için önerilen çözümlerde ısıl işlem algoritmasının çözüm 80,2 test, genetik algoritmanın önerdiği

Yazılım kalite maliyeti sonuçları, CMMI yüksek olgunluk seviyesi faaliyetleri için üst yönetimin desteğinin alınması ve süreç iyileştirme faaliyetleri kapsamında mercek

˙Ilgili ¸calı¸smalarda ortaya ¸cıkarılmı¸s olan veri setinin zen- ginle¸stirilmesi fikrine paralel olarak ilerisi i¸cin web uygulamalarında hata tahmini yapılması i¸cin

Daha sonraki bölümde ise, yazılım kalitesini etkileyen faktörlerden biri olan insan faktörlerinin neler olduğu ve etkileri ile kişilik tipleri ile ilgili bilgi