Control Flow Testing
description
Transcript of Control Flow Testing
1
Control Flow TestingSoftware Quality
Eko PrasetyoTeknik Informatika
Univ. Pembangunan Nasional Veteran Jawa Timur2011
2
Basic Idea Dua jenis statemen dasar dalam unit program adalah
assignment statements dan conditional statements. Statemen assignment secara eksplisit direpresentasikan
menggunakan simbol assignment “=“, ◦ seperti : x = 2*y, dimana x dan y are variables.
Condition adalah inti dalam statement kondisi, seperti: if(), for() loop, while() loop, and goto. ◦ Misal, dalam if(x! = y), kita menguji ketidaksamaan x dan y.
Pemanggilan fungsi adalah mekanisme untuk memberikan abstraksi desain program.◦ Karena fungsi menerima input dan memberikan output, maka
sebuah fungsi sebenarnya menjalankan serangkaian statemen dari titik masukan sampai ke titik keluaran.
◦ Eksekusi serangkaian instruksi dari titik masuk ke titik keluar disebut dengan lintasan (path).
3
Lintasan (path) unit programSebuah unit program bisa mempunyai
sejumlah path, banyak, bahkan tak terhingga jumlahnya.
Sebuah path dikarakteristikkan dengan sebuah input dan sebuah output yang diharapkan.
Sebuah masukan bisa memberikan keluaran yang berbeda karena lintasan yang dilalui juga berbeda.
Semakin banyak kemungkinan pengujian, akan memberikan kualitas unit yang lebih baik.
Control flow testing, dilakukan oleh programmer.
4
Outline Control Flow Testing
5
Simbol Control Flow Graph (CFG)
6
Contoh CFG Unit program untuk menentukan bilangan terbesar
dari 3 bilangan. Koding:A, B, Cif A>B if A>C max = A else max = B endelse if B>C max = B else max = Cend
A, B, C
A > B
B > C
A > C
max = Cmax = Bmax = Cmax = A
12
3 4
5 6 7 8
FT
FFT T
7
Path
Rantai Jalur
1 1-2(T)-3(T)-52 1-2(T)-3(F)-63 1-2(F)-4(T)-74 1-2(F)-4(F)-8
Input Domain JalurA B CTerbesar pertama Terbesar kedua Terbesar ketiga 1-2(T)-3(T)-5Terbesar pertama Terbesar ketiga Terbesar kedua 1-2(T)-3(T)-5Terbesar ketiga Terbesar pertama Terbesar kedua 1-2(F)-4(T)-7Terbesar kedua Terbesar pertama Terbesar ketiga 1-2(F)-4(T)-7Terbesar kedua Terbesar ketiga Terbesar pertama 1-2(T)-3(F)-6Terbesar ketiga Terbesar kedua Terbesar pertama 1-2(F)-4(F)-8
A, B, C
A > B
B > C
A > C
max = Cmax = Bmax = Cmax = A
12
3 4
5 6 7 8
FT
FFT T
Input Domain dan Jalur yang mungkin terjadi
Jalur yang mungkin terjadi
8
PengujianKASUS
UJI
INTERPRETASI MASUKAN JALUR KELUARAN
DIHARAPKANA B C
1 10 8 5 1-2(T)-3(T)-5 max = 102 10 5 8 1-2(T)-3(T)-5 max = 103 5 10 8 1-2(F)-4(T)-7 max = 104 8 10 5 1-2(F)-4(T)-7 max = 105 8 5 10 1-2(T)-3(F)-6 max = 106 5 8 10 1-2(F)-4(F)-8 max = 107 12 4 1 1-2(T)-3(T)-5 max = 128 9 3 10 1-2(T)-3(F)-6 max = 109 5 15 4 1-2(F)-4(T)-7 max = 15
10 1 2 3 1-2(F)-4(F)-8 max = 3
9
LatihanJika A adalah bilangan genap maka kalikan A
dengan 2, kemudian hitung jumlah dari kelipatan 5 untuk 2*A
Jika A adalah bilangan ganjil maka kalikan A dengan 2 kemudian ditambah 1, kemudian hitung jumlah dari kelipatan 10 untuk 2*A+1
Misal:◦ A= 2, B=2*A=4, H=1◦ A= 4, B = 2*A = 8, H = 2◦ A = 10, B = 2*A=20, H=4◦ A = 3, B = 2*A+1=7, H=1◦ A= 7, B = 2*A+1 = 15, H=2◦ A = 11, B = 2*A+1 = 23, H=3
10
A = ?sisa = A mod 2H = 0;if sisa == 0 B = 2*A while B > 5 H = H+1 B = B - 5; end whileelse B = 2*A+1 while B > 10 H = H+1 B = B - 10; end whileEnd ifH = H+1
Latihan A = ?sisa = A mod 2
H = 0
sisa == 0
B = 2*A+1
B > 10
H = H + 1B = B - 10
H = H + 1
B = 2*A
T
FB > 5
H = H + 1B = B - 5
F
F
T T
1
23 4
5 6
7 9
10
11
Input Domain Jalur
A Genap 1-2(T)-3-5(T)-7-5(F)-10A Genap 1-2(T)-3-5(F)-10A Ganjil 1-2(F)-4-6(T)-9-6(F)-10A Ganjil 1-2(F)-4-6(F)-10
A = ?sisa = A mod 2
H = 0
sisa == 0
B = 2*A+1
B > 10
H = H + 1B = B - 10
H = H + 1
B = 2*A
T
FB > 5
H = H + 1B = B - 5
F
F
T T
1
23 4
5 6
7 9
10
KASUS UJI JALUR KELUARAN
DIHARAPKANA = 2 1-2(T)-3-5(F)-10 H = 1A = 4A = 10A = 3A = 7A = 11
Pengujian
Input domain dan Jalur yang mungkin terjadi
12
Input Domain Jalur
A Genap 1-2(T)-3-5(T)-7-5(F)-10A Genap 1-2(T)-3-5(F)-10A Ganjil 1-2(F)-4-6(T)-9-6(F)-10A Ganjil 1-2(F)-4-6(F)-10
KASUS UJI JALUR KELUARAN
DIHARAPKANA = 2 1-2(T)-3-5(F)-10 H = 1A = 4 1-2(T)-3-5(T)-7-5(F)-10 H = 2A = 10 1-2(T)-3-5(T)-7-5(T)-7-
5(T)-7-5(F)-10H = 4
A = 3 1-2(F)-4-6(F)-10 H = 1A = 7 1-2(F)-4-6(T)-9-6(F)-10 H = 2A = 11 1-2(F)-4-6(T)-9-6(T)-9-
6(F)-10H = 3
Pengujian
Input domain dan Jalur yang mungkin terjadiA = ?
sisa = A mod 2H = 0
sisa == 0
B = 2*A+1
B > 10
H = H + 1B = B - 10
H = H + 1
B = 2*A
T
FB > 5
H = H + 1B = B - 5
F
F
T T
1
23 4
5 6
7 9
10