Control Flow Testing Software Quality Eko Prasetyo Teknik

  • Slides: 12
Download presentation
Control Flow Testing Software Quality Eko Prasetyo Teknik Informatika Univ. Pembangunan Nasional Veteran Jawa

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

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

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

Outline Control Flow Testing 4

Simbol Control Flow Graph (CFG) 5

Simbol Control Flow Graph (CFG) 5

Contoh CFG � Unit program untuk menentukan bilangan terbesar dari 3 bilangan. � Koding:

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

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

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

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

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

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

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