control flow testing

12
Control Flow Testing Software Quality Eko Prasetyo Teknik Informatika Univ. Pembangunan Nasional Veteran Jawa Timur 2011 1

Upload: primo

Post on 19-Mar-2016

32 views

Category:

Documents


0 download

DESCRIPTION

Control Flow Testing. Software Quality. Eko Prasetyo Teknik Informatika Univ. Pembangunan Nasional Veteran Jawa Timur 2011. Basic Idea. Dua jenis statemen dasar dalam unit program adalah assignment statements dan conditional statements. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Control Flow Testing

1

Control Flow TestingSoftware Quality

Eko PrasetyoTeknik Informatika

Univ. Pembangunan Nasional Veteran Jawa Timur2011

Page 2: Control Flow Testing

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).

Page 3: Control Flow Testing

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.

Page 4: Control Flow Testing

4

Outline Control Flow Testing

Page 5: Control Flow Testing

5

Simbol Control Flow Graph (CFG)

Page 6: Control Flow Testing

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

Page 7: Control Flow Testing

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

Page 8: Control Flow Testing

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

Page 9: Control Flow Testing

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

Page 10: Control Flow Testing

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

Page 11: Control Flow Testing

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

Page 12: Control Flow Testing

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