Control Flow Testing Software Quality Eko Prasetyo Teknik












- Slides: 12

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 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 ketiga Terbesar kedua Terbesar ketiga Input Domain B Terbesar kedua Terbesar ketiga Terbesar pertama Terbesar ketiga Terbesar kedua C Terbesar ketiga Terbesar kedua Terbesar ketiga Terbesar pertama Jalur 1 -2(T)-3(T)-5 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(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 = 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 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 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(T)-7 -5(F)-10 1 -2(F)-4 -6(T)-9 -6(F)-10 1 -2(F)-4 -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