Yazılım Yapısal Kapsama Analizinde Testlerin - CEUR

Transkript

Yazılım Yapısal Kapsama Analizinde Testlerin - CEUR
Yazlm Yapsal Kapsama Analizinde
Testlerin Önceliklendirilmesi
Tolga Ayav
zmir Yüksek Teknoloji Enstitüsü
Bilgisayar Mühendisli§i Bölümü
35430 Urla, zmir
[email protected]
Ö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 yazlmn 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 hatalarndan arndrlan yazlmlarn kalite ve güvenilirli§ini arttrmak mümkündür. Yazlmlarn büyüklü§üne, test maliyetine ve eldeki bütçeye göre tam kapsaml bir snama istenmeyebilir. Bu durumda, yazlmn hangi ksmlarnn hangi test kümesiyle 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üksek ö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 gelmektedir
1 . 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 kapsama analizi için MCDC'yi kullanmaktadr.
14
testinin yedi hafta sürdü§ünü belirtmektedir [3]. Öncelik srasna göre uygulanan 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 korelasyon 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 analizini sunmaktadr. Bölüm 3 hata snarn ve çal³mada yararlanlan mutasyon 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östermektedir. Çal³ma Bölüm 5 ile sonuçlandrlmaktadr.
2
Testlerin Önceliklendirilmesi
c = (c1 , . . . , ci , . . . , cn ) n adet Boole de§i³keninden/ko³ulundan olu³an bir vektör
olsun. Boole i³levi f (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
ise
x
de§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³kenlerle ifade edersek,
c0 :
c1 :
c2 :
c3 :
curTemp < dTemp - thresholdDiff
override
curTemp < overTemp - thresholdDiff
timeSinceLastRun > minLag
15
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 yaplabilir:
Tanm 1 (Hata Ortaya Çkarma Potansiyeli).
f : Bn → B
olarak verilen bir
n
giri³li Boole i³levi için maskeleyen de§i³tirilmi³ ko³ul/karar kapsama kriterine
göre elde edilmi³ test ikilileri
m
T = {t0 , t1 , . . . , tn−1 }
olsun. Boole i³levine ili³kin
adet mutant yaratlm³ olsun. Test ikililerinin hata bulma potansiyeli
ayrt edebildikleri mutant saysnn toplam mutant says
m'e
HP (ti ),
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.
t0 , t1 , · · · , tn , c0 , c1 , cn−1 ko³ullarna ili³kin
P r(ti ), hata ortaya ç-
Tanm 2 (Testlerin Öncelikleri).
üretilmi³ test ikilileri olsun. Test ikililerinin öncelikleri
karma potansiyelleriyle orantldr:
P r(ti ) ∼ HP (ti ),
2.1
i ∈ {0, . . . , n − 1}.
Boole ³levlerinin Türevi
Boole i³levleri için literatürde çe³itli türev ve integral hesaplamalar tanmlanm³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)
= f (c1 , . . . , ci , . . . , cn ) ⊕ f (c1 , . . . , c0i , . . . , cn )
∂ci
Burada
⊕
d³layan-VEYA operatörüdür. Buna göre, di§er de§i³kenler sabit kal-
mak kaydyla
ci 'ye
2.2
(1)
ci 'nin
0 ve 1 de§erleri için i³levin sonucu de§i³miyorsa, bu i³levin
göre türevi 0'dr. E§er her iki durumda sonuçlar farklysa türev 1'dir.
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 kullanlmaktadr [6, 12]. Bir
x(t)
sinyalinin Fourier (Walsh) açlm a³a§daki gibi
yazlr:
x(t) = a0 +
∞
X
(ai sal(i, t) + bi cal(i, t))
(2)
i=1
Burada
cal
a0
do§ru akm bile³eni,
ai
ve
bi
ise Walsh spektrum katsaylardr.
sal
ve
i³levleri ise Fourier açlmndaki sinüs ve kosinüs i³levlerine olan benzerlikleri
16
nedeniyle bu ³ekilde isimlendirilmi³ olup a³a§da gösterilen Walsh i³levlerine
denk dü³erler:
Walsh i³levleri
sal(ω, x) = wal(2ω − 1, x)
(3)
cal(ω, x) = wal(2ω, x)
(4)
[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
W(1),
i=1
Burada
N
1 1
W(1) =
,
1 −1
Kronecker çarpmn ifade etmektedir. Dizeyin her bir satr ayr bir
W(2) a³a§daki ³ekilde hesaplanr:


1 1 1 1 1
 1 −1 1 −1  x1

W(2) = 
 1 1 −1 −1  x2
1 −1 −1 1 x1 ⊕ x2
Walsh i³levine aittir. Örne§in,
Dizeyin her bir satrnn denk geldi§i Walsh i³levi/bile³eni dizeyin yannda belirtilmi³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
bir
n×n
birim dizey olmak üzere
T
W(n) × W(n) = nIn
diyebiliriz. Walsh dönü³ümü ve bunun ters dönü³ümü a³a§daki gibi tanmlanr:
−n
Sf (ω) = 2
n
2X
−1
(1 − 2f (x))wal(ω, x)
(5)
x=0
n
2 −1
1 1 X
Sf (ω)wal(ω, x)
f (x) = −
2 2 ω=0
(6)
Dizey simgeleminde dönü³ümler ³u ³ekilde ifade edilebilirler:
Sf = 2−n W(n)(1 − 2F)
1
F = (1 − W(n)Sf )
2
(7)
(8)
1 − 2F ifadesi dönü³ümden önce Boole de§i³kenlerinin
{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 bir f (x) i³levinin Walsh açlm a³a§daki ³ekilde yazlr:
Formül (7)'de görülen
ald§
{0, 1}
de§erlerini
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 ilintiyi gösterirler. Örne§in,
k ∈ {1, 2, . . . , n} olmak üzere wal(2k−1 , t) devrenin xk
Sf (2k−1 ) sinyal ile, di§er bir deyi³le Boole
giri³ine kar³lk gelen bile³endir ve
i³levinin do§ruluk yöneyi ile bu bile³en arasndaki ilintidir.
17
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, yapsal kapsama analizinde kullanlan yöntemlerden biridir. MCDC'nin üç farkl
formu bulunmaktadr. Bu çal³mada kullanlan maskeleyen tipinin di§er yöntemlerle 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
(x, y)
elde edilecek test vektör ikililerinden olu³ur
ve a³a§daki ³ekilde tanm-
lanr:
T = {ti = (x, y) :
∀i ∈ {1, . . . , n} :
∂f (y)
∂f (x)
=1∧
= 1}
∂xi
∂yi
xi = yi0 ∧ f (x) = f 0 (y) ∧
(10)
fadedeki her ko³ul için öyle test ikilileri bulunmaldr ki her bir test ikilisinde:
1. Ko³ul
i
her iki testte farkl olmaldr (xi
= yi0 )
2. fade her iki test için farkl de§er üretmelidir (f (x)
3. Birinci test
4. kinci test
∂f (x)
∂xi = 1)
∂f (y)
için Ko³ul i'nin sonuç üzerinde etkisi olmaldr (
∂yi = 1)
x
y
= f 0 (y))
için Ko³ul
i'nin
sonuç üzerinde etkisi olmaldr (
Ö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
∂f (c)
∂c1
∂f (c)
∂c2
∂f (c)
∂c3
= (c01 + c02 )c3
(11)
= c00 c2 c3
(12)
= c00 c1 c3
(13)
= c00 + (c1 c2 )
(14)
Ksmi türevlerin yardmyla test giri³leri kolaylkla bulunabilir. Örne§in, c1 ko³ulu
∂f (c)/∂c1 = 1 ³artn sa§layan tek (c0 , c2 , c3 )
(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
(2)
ve f (c
) = 0 ³artlarnn yerine getirildi§ine de dikkat edilmelidir. Benzer ³e-
için test ikilisini olu³tururken
de§erinin
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 spektral 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
18
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)
c0 , c1 , c2 ve c3 ile ilintilerinin srasyla Sf (1) = 0.375, Sf (2) =
0.125, Sf (4) = 0.125 ve Sf (8) = 0.625 oldu§u görülmektedir. Yaznn devamnda
sözkonusu ilintiler srasyla s0 , s1 , s2 ve s3 olarak adlandrlacaktr.
Buna göre, i³levin
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 sunmu³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 sunulmaktadr.
Testlerin spektral katsaylara ba§l olarak önceliklendirilmesi a³a§da verilen
teoremle ele alnm³tr.
Teorem 1
. . . , cn−1
f : Bn → B, n
giri³li Boole i³levi ve
s0 , s1 , . . . , sn−1
srasyla
c0 , c1 ,
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 kapsaml denemelerle snanmaya çal³lacaktr.
3
Hata Prototiplerinin Snandrlmas
n
ko³ula sahip bir Boole i³levi bu ko³ullara ba§l olarak
bilir. Öte yandan
n
ko³ula sahip
2n
2
2n
farkl çk³ ürete-
farkl Boole i³levi yazmak mümkündür.
Örne§in, dört ko³ul olmas durumunda,
4
22 = 65536
farkl Boole i³levi olu³tu-
rulabilir. Tablo 3 bu i³levlerden bir ksmn göstermektedir. Orijinal i³levimiz
19
olan
f43648 = (c0 + (c1 c2 ))c3
bunlardan sadece biridir ve testin amac oriji-
nal i³levi di§erlerinden ayrabilmektir. ³levi di§er
için
2
n
n
22 − 1
i³levden ayrabilmek
adet test gerekir. Çoklu-ko³ul kapsama testi olarak adlandrlan bu test
ko³ullarn fazla olmas durumunda imkanszla³r. E§er
layacak olursak,
adet testin
n
n
2 −m
m < 2n
adet test uygu-
kadar kombinasyon denenmemi³ olur. Bu durumda
m
ko³ulu kapsama oran a³a§daki formülle hesaplanabilir:
P(n,m) = 1 −
2(2
n
−m)
−1
(16)
22n
Bir test kümesinin hata kapsama orann incelerken yukarda verilen formülden
yola çkmak çok sa§lkl olmayabilir. Yazlm geli³tirilirken ko³ullarda yaplabilecek hatalar sonucunda istenenden farkl Boole i³levleri olu³turmak olasdr ancak
her bir hatal Boole i³levinin ortaya çkma olasl§ birbirinden farkldr ve
n
22 −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-
c0 c1 c2 c3 f0 f1 f2 f3 · · · 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:
20
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.
Örn.
(c0 + (c1 c2 )0 )c3 .
DOH De§i³ken Olumsuzlama Hatas. Boolean de§i³kenlerinden biri olumsu-
zlanr. Örn.
(c0 + (c01 c2 ))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 + c1 c2 )c3 .
PEH Parantez Ekleme Hatas. Bir parantez çifti yanl³lkla ifadeye eklen-
di§inde ortaya çkar. Örn.
(c0 + (c1 c2 ))c3 .
Terim Hatalar:
EDH Eksik De§i³ken Hatas. Ko³ullardan birinin unutulmas durumudur. Örn.
(c0 + (c1 c2 )).
DRH De§i³ken Referans Hatas. Ko³ullardan biri ifadede yer alan ba³ka bir
ko³ul ile yer de§i³tirilir. Örn.
(c1 + (c1 c2 ))c3 .
a yerine ab yazlmas durumudur. Örn.
YBH Yantümce Birle³me Hatas. Ko³ul
(c0 + (c1 c3 c2 ))c3 .
YAH Yantümce Ayrlma Hatas. Ko³ul
Örn.
a
yerine
a+b
yazlmas durumudur.
(c0 + c3 + (c1 c2 ))c3 .
0-T-H 0'a Taklma Hatas. Ko³ullardan birinin hep 0 olmas durumudur. Örn.
(0 + (c1 c2 ))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 tanmlanm³ 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 varsaymlarna 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 mutant, DRH snf için 12 mutant, 0-T-H ve 1-T-H snar için de 6'³ar mutant
33 mutant elde edilmektedir. Tablo 4 1-hata durumuna göre
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
olmak üzere toplam
dört giri³li sekiz farkl i³levin spektral katsaylar (s0 , s1 , s2 ve
ilinti, a³a§daki korelasyon formülüyle hesaplanm³tr. Buna göre ilinti -1 ile +1
21
arasnda de§i³mekte olup, -1 güçlü bir negatif ili³kiyi, +1 ise güçlü bir pozitif
ili³kiyi ifade eder.
n
n
n−1
P
i=0
r
ci si −
i=0
r = s
Tablo 4'e göre,
n−1
P
c2i
n−1
P
−(
i=0
n−1
P
ci
i=0
n−1
P
si
i=0
(17)
n−1
n−1
P
P 2
si )2
ci )2
n
si − (
i=0
i=0
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 katsaylar 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³lev
f = (c0 + (c1 c2 ))c3
iç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 sonuçlarn göstermektedir. 2-hata varsaym sistemde ayn anda 2 hatann olabilece§ini söyler ve bu durumunda toplam 414 mutant yaratlabilir. 3-hata duru5
Sonuç
mundaysa en fazla 2484 mutant yaratlabilmektedir. Negatif korelasyon her iki
durumda da geçerlili§ini korumu³tur.
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 sunulmu³tur. Önceliklendirme Fourier analizine dayanmaktadr ve öncelikler test ikililerinin hata ayklama yeteneklerine göre verilmektedir. Önerilen yöntem sayesinde
önceliklendirme do§rudan Fourier analiziyle hesaplanan spektral katsaylar üzerinden yaplabilmektedir. Yöntem, testlerin öncelik sralamasna göre uygulanmasnda ve test kümelerinin küçültülmesinde kullanlabilir.
22
No ³lev
1
2
3
4
5
6
7
8
f
f
f
f
f
f
f
f
= (c0 (c1 c2 ))c3
= (c0 (c1 + c2 ))c3
= (c0 + (c1 c2 ))c3
= (c0 + (c1 + c2 ))c3
= (c0 (c1 c2 )) + c3
= (c0 (c1 + c2 )) + c3
= (c0 + (c1 c2 )) + c3
= (c0 + (c1 + c2 )) + c3
s0
s1
s2
s3
c0
c1
c2
c3
r
0.125 0.125 0.125 0.125 0.485 0.545 0.545 0.424 tanmsz
0.375 0.125 0.125 0.375 0.576 0.667 0.667 0.515
-0.943
0.375 0.125 0.125 0.625 0.576 0.667 0.667 0.364
-0.978
0.125 0.125 0.125 0.875 0.606 0.667 0.667 0.364
-0.980
0.125 0.125 0.125 0.875 0.606 0.667 0.667 0.273
-0.989
0.375 0.125 0.125 0.625 0.576 0.667 0.667 0.364
-0.978
0.375 0.125 0.125 0.375 0.485 0.667 0.667 0.424
-0.980
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
1
2
3
4
5
6
7
8
f
f
f
f
f
f
f
f
= (c0 (c1 c2 ))c3
= (c0 (c1 + c2 ))c3
= (c0 + (c1 c2 ))c3
= (c0 + (c1 + c2 ))c3
= (c0 (c1 c2 )) + c3
= (c0 (c1 + c2 )) + c3
= (c0 + (c1 c2 )) + c3
= (c0 + (c1 + c2 )) + c3
s0
s1
s2
s3
c0
c1
c2
c3
r
0.125 0.125 0.125 0.125 0.792 0.855 0.855 0.700 tanmsz
0.375 0.125 0.125 0.375 0.800 0.872 0.872 0.703
-0.870
0.375 0.125 0.125 0.625 0.795 0.872 0.872 0.546
-0.962
0.125 0.125 0.125 0.875 0.816 0.874 0.874 0.575
-0.982
0.125 0.125 0.125 0.875 0.812 0.872 0.872 0.435
-0.991
0.375 0.125 0.125 0.625 0.792 0.874 0.874 0.548
-0.957
0.375 0.125 0.125 0.375 0.720 0.874 0.874 0.635
-0.957
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
1
2
3
4
5
6
7
8
f
f
f
f
f
f
f
f
= (c0 (c1 c2 ))c3
= (c0 (c1 + c2 ))c3
= (c0 + (c1 c2 ))c3
= (c0 + (c1 + c2 ))c3
= (c0 (c1 c2 )) + c3
= (c0 (c1 + c2 )) + c3
= (c0 + (c1 c2 )) + c3
= (c0 + (c1 + c2 )) + c3
s0
s1
s2
s3
c0
c1
c2
c3
r
0.125 0.125 0.125 0.125 0.833 0.882 0.882 0.738 tanmsz
0.375 0.125 0.125 0.375 0.844 0.886 0.886 0.745
-0.796
0.375 0.125 0.125 0.625 0.836 0.882 0.882 0.716
-0.973
0.125 0.125 0.125 0.875 0.845 0.885 0.885 0.699
-0.977
0.125 0.125 0.125 0.875 0.843 0.884 0.884 0.537
-0.993
0.375 0.125 0.125 0.625 0.835 0.886 0.886 0.721
-0.980
0.375 0.125 0.125 0.375 0.853 0.894 0.894 0.763
-0.805
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).
23
Kaynaklar
1. Badhera, U., Purohit, G.N., Taruna, S.: Fault based techniques for testing boolean
expressions: A survey. CoRR abs/1202.4836 (2012),
4836
http://arxiv.org/abs/1202.
2. Chilenski, J.J.: An investigation of three forms of the modied condition decision
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),
org/10.1145/347636.348910
http://doi.acm.
4. Jones, J.a., Harrold, M.J.: Test-suite reduction and prioritization for modied condition/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),
1374458
http://doi.acm.org/10.1145/1374376.
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 Information . . . (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),
1109/T-C.1973.223729
http://dx.doi.org/10.
12. de Wolf, R.: A Brief Introduction to Fourier Analysis on the Boolean Cube.
No. 1 in Graduate Surveys, Theory of Computing Library (2008),
theoryofcomputing.org/library.html
24
http://www.

Benzer belgeler