07:19

White Box Testing

White Box Testing: White box testing yapısal (structural) veya program tabanlı(merkezli) testtir. Programın kodu kullanılabilir. Test case programın içyapısından türetilir. Bunun dezavantajı ise mission(görev) hatalarının yakalanmayışıdır. Yani programın cevap vermesini beklediğimiz ihtiyaçların, gereksinimler deki hatalar nelerdir sorusunun cevabın bulamazsınız. İkinci olarak ise test-oracle sağlayamaz bu ne demek sizin programa yapacağınız bir input girdisi için beklenilen outout çıktının ne olacağı sorusunun cevabını bu test yöntemiyle alamazsınız. White box testing test takımının oluşturmak istediği test case lerin prosedürüne uygun tasarım mimarisinin kontrolü altında test case tasarımının yaklaşımıdır. White box testing bize sunmuş olduğu test case lerin neler olduğuna bakalım.

1-) Koşul Şart Testi (Condition Testing):
Program koşulları içerisinde mevcut koşullara göre test case in oluşturulmasıdır. Peki, bunlar neler olabilir.

a-) Basit Boolean Koşulu Olabilir:
Boolean sadece true veya false değerleri alabilir. Bu yüzden bu test türünde iki tane test case oluşturulabilir.

Örnek olarak
İF (DATA VALİD ) THEN…

İF (DATA İNVALİD) THEN…

2-) Koşulu Olan Değeri Operatör Değeriyle Sınamak: Bu tür koşullu testlerde üç tane test case türetilmelidir. Değerlerimizin x ve y gibi iki değer olduğunu varsayarsak

a-) x ve y nin eşit olduğu durumlar
x = = y

b-) x’in y’den büyük olduğu durumlar.
X > y

c-) x’in y’den küçük olduğu durumlar
x < Y
3-) Bileşik Şartlar: (AND &&) veya (OR || ) Burada ise dört tane test case mevcuttur.

a-) 1.koşulun ve 2. koşulun doğru olma olasılığı.

b-) 1.koşulun doğru 2. koşulun yanlış olma olasılığı.

c-) 1.koşulun yanlış 2. koşulun doğru olma olasılığı.

d-) 1.ve 2. koşulun yanlış olma olasılığı.

Örnek:
İF (KOŞUL 1) && (KOŞUL 2 ) THEN…

İF (KOŞUL 1) || (KOŞUL 2 ) THEN…





4-)Döngü (Loop ) Test: Burada test case ler program içindeki mevcut döngülere göre hazırlanır.

a-) Basit Döngü (Simple Loops ) Testing:



Basit bir döngü için kurulması gereken test case ler:

I-) Döngüdeki girdileri Atlamak.
II-) Döngülerden sadece bir defa geçmek.
III-) M defa geçilen bir döngüde MIV-) (N–1) ,N defa geçilen bir döngüde N maksimum geçilebilecek döngü sayısıdır.

b-) İç İçe (Nested Loop) Döngüler:

 En içteki döngü ile başlanmalı. Diğer dışarıdaki döngüler küçük değerler ile test case leri oluşturulmalıdır.
 En içteki döngü için basit döngü kuralları uygulanır.
 Ne zaman en içteki döngü test edilmesi bitti dıştaki döngü ile birlikte çalıştırılmalı bu testte bittikten sonra diğer döngüye geçilmelidir.
 Bu işlemler bütün döngüler bitene kadar devam etmelidir.

c-)Ard arda eklenmiş (Concatenated Loops) Döngüler:


 Burada döngüler eğer birbirilerinden bağımsız iseler basit döngü testin benzeri bir yaklaşım uygulanır.
 Eğer döngüler birbirilerine bağımlı iseler iç içe döngü testin benzeri bir yaklaşım uygulanır.


Veri Akışı (Data Flow) Testing: Basit bir girdi ile mevcut noktaların program içindeki kodun küçük parçalara bölünmesidir. Herhangi bir parça için hangi değişkenlerin tanımlanacağı ve nerde kullanılacağının tanımlanmasıdır. Tabi çeşitli koruma kriterleri mevcuttur bunlara örnek verecek olursak

1-) Bütün tanımlar için use-pairs (kullanım çiftlerinin) oluşturulması.
2-) Bütün tanımlar için Benzer kullanım alanlarının tanımlanması.

DEF(s) = { x | S ifadesi, X’in tanımını içermektedir.}
USE(s) = { x | S ifadesi, X’in kullanımını içermektedir.}

Örnek:
1- i= get-a-number-from-console();
2- j= get-a-number-from-console();
3- if (a < 90 ) {
4- i= get-a-number-from-console(); }
5- else {
6- j= 5;
7- }
8- İf (a > b) {
9- İ = 8;
10- J = 6 ;
11- } else {
12- Printf (“ %d \n”,i);
13- }
14- İf ( b < 30 )
15- Printf (“ %d \n”,i);
16- J=6;
17- } else {
18- Printf (“ %d \n “,i);
19- }

Soru 1: Hangi satırda i tanımlanmıştır(Definition)? (siz j yi yazınız)

Yani burada İ nin tanımlandığı yerleri soruyor satır : 1 – 4 ve 9

Soru 2: Hangi satırda i kullanılmıştır (Use)?

Line 15 ve 18


Soru 3: İ için kaç tane Def-Use çifti oluşturulabilir.

6 tane bunları oluşturalım.

a- 1 – 15
b- 1 – 18
c- 4 – 15
d- 4 – 18
e- 9 – 15
f- 9 – 18

Soru 4: Soru 3 te oluşturmuş olduğumuz def-use çifti için test caseleri oluşturunuz.
Burada şartların oluşa bilmesi için satır satır test’e başlıyorsunuz.

A şıkkı için sonra yapalım b’den başlayalım

b- 1 - 18

eğer a=35 ve b= 36 olursa a 90 dan küçük olmuş olur if in içersine girer devam eder.

c- 4 - 15 yani bunun anlamı 4. satırdan başlayıp 15. satırı çalıştıracaksın
a=25 b=26 olursa bu şartı sağlamış olur.

d- 4 – 18 a=25 b=35

e- 9 – 15 a=25 b= 20

f- 9 – 18 a=35 b=31

a şıkkına baktığımız zaman a >= 30 a><= b, ve b<30 olmalı böyle bir durum söz konusu olamaz a şıkkı çalışmaz.(bu örnek bana ait degildir. ders notlarımdan alıntıdı.)