SQ – 5 – Control Flow Testing

Download Report

Transcript SQ – 5 – Control Flow Testing

Control Flow Testing
Software Quality
Eko Prasetyo
Teknik Informatika
Univ. Pembangunan Nasional Veteran Jawa Timur
2011
1
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).
2
Lintasan (path) unit program





Sebuah 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.
3
Outline Control Flow Testing
4
Simbol Control Flow Graph (CFG)
5
Contoh CFG
Unit program untuk menentukan bilangan terbesar dari 3
bilangan.
 Koding:

1
A, B, C
A, B, C
if A>B
if A>C
max =
else
max =
end
else
if B>C
max =
else
max =
end
2
T
A>B
F
A
3
B
A>C
T
B
5
max = A
4
F
6
max = C
B>C
T
7
max = B
F
8
max = C
C
6
1
A, B, C
2
T
A>B
Jalur yang mungkin terjadi
Path Rantai Jalur
F
3
A>C
T
5
max = A
4
F
T
7
6
max = C
B>C
1
1-2(T)-3(T)-5
2
1-2(T)-3(F)-6
3
1-2(F)-4(T)-7
4
F
1-2(F)-4(F)-8
8
max = B
max = C
Input Domain dan Jalur yang mungkin terjadi
A
Terbesar pertama
Terbesar pertama
Terbesar ketiga
Terbesar kedua
Terbesar kedua
Terbesar ketiga
Input Domain
B
Terbesar kedua
Terbesar ketiga
Terbesar pertama
Terbesar pertama
Terbesar ketiga
Terbesar kedua
C
Terbesar ketiga
Terbesar kedua
Terbesar kedua
Terbesar ketiga
Terbesar pertama
Terbesar pertama
Jalur
1-2(T)-3(T)-5
1-2(T)-3(T)-5
1-2(F)-4(T)-7
1-2(F)-4(T)-7
1-2(T)-3(F)-6
1-2(F)-4(F)-8
7
Pengujian
KASUS
UJI
1
2
3
4
5
6
7
8
9
10
INTERPRETASI
MASUKAN
A
B
C
10
8
5
10
5
8
5
10
8
8
10
5
8
5
10
5
8
10
12
4
1
9
3
10
5
15
4
1
2
3
JALUR
1-2(T)-3(T)-5
1-2(T)-3(T)-5
1-2(F)-4(T)-7
1-2(F)-4(T)-7
1-2(T)-3(F)-6
1-2(F)-4(F)-8
1-2(T)-3(T)-5
1-2(T)-3(F)-6
1-2(F)-4(T)-7
1-2(F)-4(F)-8
KELUARAN
DIHARAPKAN
max = 10
max = 10
max = 10
max = 10
max = 10
max = 10
max = 12
max = 10
max = 15
max = 3
8
Latihan
Jika 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
9
Latihan
A = ?
sisa = A mod 2
H = 0;
if sisa == 0
B = 2*A
while B > 5
H = H+1
B = B - 5;
end while
else
B = 2*A+1
while B > 10
H = H+1
B = B - 10;
end while
End if
H = H+1
A=?
sisa = A mod 2
H=0
T
3
F
2
sisa == 0
B = 2*A
4
B = 2*A+1
5
6
B>5
7
1
T
B > 10
F
9
H=H+1
B=B-5
T
F
H=H+1
B = B - 10
10
H=H+1
10
A=?
sisa = A mod 2
H=0
Input domain dan Jalur yang mungkin terjadi
Input
Domain
A Genap
A  Genap
A  Ganjil
A  Ganjil
Jalur
1-2(T)-3-5(T)-7-5(F)-10
1-2(T)-3-5(F)-10
1-2(F)-4-6(T)-9-6(F)-10
1-2(F)-4-6(F)-10
T
3
sisa == 0
B = 2*A
7
JALUR
1-2(T)-3-5(F)-10
KELUARAN
DIHARAPKAN
H=1
4
B = 2*A+1
6
B>5
Pengujian
F
2
5
KASUS
UJI
A=2
A=4
A = 10
A=3
A=7
A = 11
1
T
B > 10
F
9
H=H+1
B=B-5
T
F
H=H+1
B = B - 10
10
H=H+1
11
A=?
sisa = A mod 2
H=0
Input domain dan Jalur yang mungkin terjadi
Input
Domain
A Genap
A  Genap
A  Ganjil
A  Ganjil
Jalur
1-2(T)-3-5(T)-7-5(F)-10
1-2(T)-3-5(F)-10
1-2(F)-4-6(T)-9-6(F)-10
1-2(F)-4-6(F)-10
T
3
sisa == 0
B = 2*A
A=3
A=7
A = 11
7
JALUR
1-2(T)-3-5(F)-10
1-2(T)-3-5(T)-7-5(F)-10
1-2(T)-3-5(T)-7-5(T)-75(T)-7-5(F)-10
1-2(F)-4-6(F)-10
1-2(F)-4-6(T)-9-6(F)-10
1-2(F)-4-6(T)-9-6(T)-96(F)-10
KELUARAN
DIHARAPKAN
H=1
H=2
H=4
H=1
H=2
H=3
4
B = 2*A+1
6
B>5
Pengujian
F
2
5
KASUS
UJI
A=2
A=4
A = 10
1
T
B > 10
F
9
H=H+1
B=B-5
T
F
H=H+1
B = B - 10
10
H=H+1
12