Modul Testing

14
III. METODE / TEKNIK PENGUJIAN P.LUNAK KONSEP PENGUJIAN P.LUNAK - Pengembangan p.lunak melibatkan sederatan aktifitas, dimana peluang terjadinya kesalahan manusia sangat besar. - Pengujian p.lunak adalah elemen kritis dari jaminan kualitas p.lunak. - Pengujian mengharuskan pengembang membuang pemikiran- 2 sebelumnya mengenai “kebenaran” p.lunak yg baru saja dikembangkan Ada beberapa sasaran pengujian , yaitu: 1. Pengujian adalah proses eksekusi suatu p.lunak dg maksud menemukan kesalahan. 2. Test case (kasus uji) yg baik adalah test case yg memiliki probabilitas (peluang) tinggi untuk menemukan kesalahan yg belum pernah ditemukan sebelumnya. 3. Pengujian yg sukses adalah pengujian yg mengungkap semua kesalahan yg belum pernah ditemukan sebelumnya Beberapa prinsip dasar pengujian p.lunak: 1. Semua pengujian harus dapat ditelusuri sampai ke persyaratan pelanggan. 2. Pengujian harus direncanakan lama sebelum pengujian itu mulai. 3. “Prinsip Pareto” berlaku untuk pengujian p.lunak. yaitu: prinsip pareto mengimplikasikan bahwa 80% dari semua kesalahan yg ditemukan selama pengujian sepertinya akan dapat ditelusuri sampai 20% dari semua modul program. 4. Pengujian harus dimulai dari “yg kecil” dan berkembang ke pengujian “yg besar” 5. Pengujian yg mendalam (terinci) tidak mungkin. 6. Untuk menjadi paling efektif, pengujian harus dilakukan oleh pihak ketiga yg independen. TESTABILITAS P.LUNAK Testabilitas p.lunak adalah: seberapa mudah sebuah p.lunak dapat diuji.

Transcript of Modul Testing

Page 1: Modul Testing

III. METODE / TEKNIK PENGUJIAN P.LUNAKKONSEP PENGUJIAN P.LUNAK

- Pengembangan p.lunak melibatkan sederatan aktifitas, dimana peluang terjadinya kesalahan manusia sangat besar.

- Pengujian p.lunak adalah elemen kritis dari jaminan kualitas p.lunak.

- Pengujian mengharuskan pengembang membuang pemikiran-2 sebelumnya mengenai “kebenaran” p.lunak yg baru saja dikembangkan

Ada beberapa sasaran pengujian, yaitu:1. Pengujian adalah proses eksekusi suatu p.lunak dg maksud menemukan kesalahan.

2. Test case (kasus uji) yg baik adalah test case yg memiliki probabilitas (peluang) tinggi untuk menemukan kesalahan yg belum pernah ditemukan sebelumnya.

3. Pengujian yg sukses adalah pengujian yg mengungkap semua kesalahan yg belum pernah ditemukan sebelumnya

Beberapa prinsip dasar pengujian p.lunak:1. Semua pengujian harus dapat ditelusuri sampai ke persyaratan pelanggan.2. Pengujian harus direncanakan lama sebelum pengujian itu mulai.3. “Prinsip Pareto” berlaku untuk pengujian p.lunak.

yaitu: prinsip pareto mengimplikasikan bahwa 80% dari semua kesalahan yg ditemukan selama pengujian sepertinya akan dapat ditelusuri sampai 20% dari semua modul program.

4. Pengujian harus dimulai dari “yg kecil” dan berkembang ke pengujian “yg besar”5. Pengujian yg mendalam (terinci) tidak mungkin.6. Untuk menjadi paling efektif, pengujian harus dilakukan oleh pihak ketiga yg independen.

TESTABILITAS P.LUNAK Testabilitas p.lunak adalah: seberapa mudah sebuah p.lunak dapat diuji.

- Karena pengujian sangat sulit, perlu diketahui apa yg dapat dilakukan untuk membuatnya menjadi mudah.

- Berikut beberapa karakteristik yg membawa kepada p.lunak yg dapat mudah diuji (testabilitas):

1. Operabilitas

“Semakin baik p.lunak bekerja, semakin efisian p.lunak itu dapat diuji”.2. Observabilitas

“apa yg anda lihat dari p.lunak tsb, adalah apa yg anda uji”3. Kontrolabilitas

“Semakin baik kita dapat mengontrol p.lunak, semakin banyak pengujian yg dapat diotomatisasi dan dioptimalkan”

Page 2: Modul Testing

4. Dekomposabilitas“Dg mengontrol ruang lingkup pengujian, kita dapat dg lebih cepat mengisolasi masalah dan melakukan pengujian kembali secara lebih halus (rinci)”

5. Kesederhanaan“Semakin sedikit (sederhana) yg diuji, semakin cepat kita dapat mengujinya”

6. Stabilitas“Semakin sedikit perubahan pd p.lunak, semakin sedikit gangguan dalam pengujian”

7. Kemampuan untuk dapat dipahami “Semakin banyak informasi yg kita miliki tentang p.lunak yg akan diuji, semakin halus (rinci) pengujian yg dapat kita lakukan”

Atribut- 2 dari pengujian “yg baik” :

Pengujian yg baik memiliki probabilitas (peluang) yg tinggi untuk menemukan kesalahan.

Pengujian yg baik tidak redudan.

Pengujian yg baik seharusnya “jenis terbaik”

Pengujian yg baik tidak boleh terlalu sederhana atau terlalu kompleks.DESAIN TEST CASE

Desain test case pengujian p.lunak haruslah memiliki kemungkinan tertinggi dlm menemukan kesalahan dg jumlah waktu dan usaha yg minimum.

Metode-2/teknik-2 desain test case sudah berkembang, dimana metode/teknik tsb memberikan sebuah pendekatan yg sistematis untuk pengujian.

Yg lebih penting, metode/teknik itu memberikan mekanisme yg dpt membantu memastikan kelengkapan pengujian dan memberikan kemungkinan tertinggi untuk mengungkap kesalahan pada p.lunak/program.

P.lunak/program yg dibuat dpt diuji dg 2 cara:

1. Pengujian Black-Box

dg mengetahui fungsi-2 yg ada pd p.lunak, pengujian dpt dilakukan untuk memperlihatkan bahwa masing-2 fungsi dpt beroperasi sepenuhnya.

2. Pengujian White-Box

Dg mengetahui kerja internal (cara kerja secara rinci) dari p.lunak, maka pengujian dpt dilakukan untuk memastikan bahwa semua operasi internal bekerja sesuai dg spesifikasinya.

PENGUJIAN WHITE-BOX

Pengujian white-box, disebut juga pengujian glass-box adalah: suatu metode/teknik desain test case yg menggunakan struktur kontrol dari desain prosedural.

Dg metode/teknik ini, dpt diperoleh test-case yg:

Dpt menelusuri semua jalur independen pd p.lunak, paling tidak satu kali.

Page 3: Modul Testing

Mengerjakan semua keputusan logika.

Mengerjakan seluruh loop sesuai dg batasannya.

Mengerjakan seluruh struktur data internal untuk menjamin validitasnya.Ada beberapa metode/teknik yg termasuk dlm pengujian white-box:

1. Pengujian Basis Path

Pengujian basis path adalah metode/teknik pengujian white-box, dimana metode/teknik ini memungkinkan si-perancang test-case untuk mengukur kompleksitas logis dari desain prosedural dan menggunakannya sebagai pedoman untuk menetapkan basis set dari jalur eksekusi.

Test-case yg dibuat untuk menggunakan basis set tsb dijamin untuk melalui setiap statement pd p.lunak yg diuji.

Tools/alat bantu yg dipakai pada basis path adalah: Grafik Alir .

Simpul Predikat (P)

-> Suatu simpul yg berisi sebuah kondisi dan

ditandai dg dua atau lebih link yg berasal darinya.

Region (R)

-> Area yg dibatasi oleh simpul dan link

(termasuk area diluar grafik)

Page 4: Modul Testing

Kompleksitas Siklomatis (V)

-> Adalah metrik p.lunak yg memberikan pengukuran kuantitatif terhadap kompleksitas logis suatu p.lunak.

Catt:

Nilai yg terhitung dari Kompleksitas Siklomatis digunakan untuk menentukan jumlah jalur independen dlm basis set.

Untuk menentukan jumlah jalur independen, bisa digunakan metrik Kompleksitas Siklomatis dg 3 cara, yaitu:

1. V(G) = jumlah region (R)

2. V(G) = E – N + 2 (dimana, E= jml. link, N=jml. simpul)

3. V(G) = P + 1

Langkah-2 Pengujian Basis Path:

1. Dengan menggunakan Desain program (programflowchart) atau kode program sebagai dasar, gambarkan sebuah grafik alir.

2. Tentukan jumlah jalur independen dari grafik alir dg menggunakan Kompleksitas Siklomatis.

3. Tentukan sebuah basis set dari jalur independen.

4. Siapkan test case yg akan memaksa adanya eksekusi setiap basis set.

Page 5: Modul Testing

MATRIK GRAFIK

Matrik Grafik adalah: alat bantu untuk menghitung kompleksitas siklomatis.

Matrik grafik ini merupakan matrik bujursangkar yg ukurannya (baris,kolom) sama dg jumlah simpul pd grafik alir, dan entry (isi) matrik sesuai dg link diantara simpul.

Contoh:

Catt.:

- Entry matrik diberikan Link Weight (beban link), misal:

1 -> (ada hubungan)

0 -> (tidak ada hubungan)

Catt.:

- Entry matrik “0” bisa dihilangkan.

- Matrik diatas disebut : Matrik Koneksi.

- Pd matrik, jika baris berisi dua atau lebih entry yg ada link (simbol 1), maka disebut Simpul Predikat.

2. PENGUJIAN KONDISI

Pengujian kondisi adalah: sebuah metode/teknik desain test case yg menggunakan kondisi logis yg ada pd suatu program.

Kondisi dapat dibagi atas:

(-) Kondisi sederhana

Page 6: Modul Testing

dapat terdiri dari:

- 1 (satu) variabel boolean

- persamaan relasional

- dapat didahului dg operator NOT

(-) Kondisi gabungan

terdiri dari 2 (dua) atau lebih kondisi sederhana, operator boolean, dan tanda kurung.

Dengan demikian, tipe-2 komponen yg mungkin di dlm suatu kondisi meliputi:

- operator boolean

- sebuah variabel boolean

- sepasang tanda kurung boolean (yg mengelilingi suatu kondisi gabungan dan kondisi sederhana)

- sebuah operator relasional atau sebuah persamaan aritmatik

Metode/teknik pengujian kondisi berfokus pada: pengujian masing-2 kondisi yg ada didalam program.

Catatan:

- Operator

Operator adalah : simbol-2 khusus untuk mengoperasikan suatu nilai data (operand).

- Operator Aritmatik : +, -, *, /, ^

- Operator Relasional : >, <, =, >=, <=, <>

- Operator Boolean : AND atau “&”, OR atau “|”, NOT atau “-”

Ada beberapa strategi pengujian kondisi:

(a) Pengujian Cabang

Pengujian Cabang merupakan strategi pengujian kondisi yg paling sederhana. Untuk suatu kondisi gabungan, cabang-2 true (benar) dan false (salah) dan setiap kondisi sederhana yg ada perlu dieksekusi paling tidak 1 (satu) kali.

Page 7: Modul Testing

(b) Pengujian Domain

Pengujian Domain membutuhkan 3 atau 4 pengujian untuk sebuah persamaan relasional, karena persamaan relasional mengambil bentuk:

Maka diperlukan 3 pengujian untuk membuat :

- nilai E1 besar dari E2

- nilai E1 sama dengan E2

- nilai E1 kecil dari E2

secara berurutan

Bila operator relasional salah dan E1, E2 benar, maka ke-3 pengujian diatas menjamin pendeteksian kesalahan pada operator relasional.

Untuk mendeteksi kesalahan pada E1 dan E2, maka test case yg membuat nilai E1 lebih besar dari E2 atau kurang dari E2 harus dibuat perbedaan harga keduanya (E1,E2) sekecil mungkin.

Untuk persamaan boolean dg n variabel, semua 2 n pengujian yg mungkin (dimana n>0) perlu dilakukan. Strategi ini dpt mendeteksi kesalahan : operator, variabel, dan kesalahan tanda kurung boolean. (catt: tetapi strategi ini praktis untuk n yg kecil)

Page 8: Modul Testing

(c) Pengujian BRO (Branch and Relational Operator)

- Strategi pengujian BRO menjamin pendeteksian kesalahan cabang dan operator relasional, dg kondisi bahwa; semua variabel boolean dan operator relasional pada kondisi itu terjadi hanya sekali dan tidak memiliki variabel umum.

- Strategi BRO menggunakan batasan kondisi bagi suatu kondisi.

- Misal:

suatu kondisi-C, dimana batasan kondisi untuk kondisi- C dg n kondisi sederhana ditentukan sebagai (D1, D2, … , Dn), dimana Di (0 < i< = n) merupakan simbol yg menentukan batasan pd hasil akhir dari kondisi sederhana ke-i dlm kondisi-C.

Catatan:

Batasan-kondisi-D untuk kondisi-C dikatakan dipenuhi oleh eksekusi dari kondisi-C bila selama eksekusi dari kondisi-C, hasil akhir dari masing-2 kondisi sederhana di dalam kondisi-C memenuhi batasan yg bersesuaian di dlm kondisi-C.

- Untuk variabel-boolean-B, kita menentukan batasan pd hasil akhir variabel-boolean-B yg menyatakan bahwa variabel-boolean-B harus; true (.t.) atau false (.f.).

- Begitu juga untuk persamaan relasional, dimana simbol: >,=,< digunakan untuk menentukan batasan pd hasil akhir persamaan relasional.

- batasan kondisi untuk C1 adalah bentuk: ( D1 , D2 )

- dimana masing-2 dari D1 dan D2 adalah : .t. atau .f.

Catatan:

- Nilai (t,f) adalah batasan kondisi untuk kondisi C1 dan dicakup oleh pengujian yg membuat harga B1 = .t. dan B2 = .f.

- Strategi pengujian BRO mengharuskan himpunan batasan:

[ (t,t), (t,f), (f,t) ]

dicakup oleh eksekusi C1

Page 9: Modul Testing

- batasan kondisi C2 adalah bentuk: ( D1 , D2 )

dimana: D1 adalah: .t. atau .f.

D2 adalah: > , = , <

- Himpunan batasan : [ (t,t), (t,f), (f,t) ] dimodifikasi menjadi:

[ (t,=), (t,>), (t,<), (f,=) ]

- batasan kondisi C3 adalah bentuk: ( D1 , D2 )

dimana: D1 adalah: > , = , <

D2 adalah: > , = , <

- Himpunan batasan : [ (t,t), (t,f), (f,t) ] dimodifikasi menjadi:

[ (>,=), (>,>), (>,<), (=,=), (<,=) ]

3. PENGUJIAN LOOP

Page 10: Modul Testing

Pengujian loop merupakan metode/teknik penggujian white-box yg secara eksklusif/khusus berfokus pada pengujian konstruksi loop.

Ada 4 macam/kelas loop, yaitu :

1. Loop Sederhana

2. Loop Tersarang / Bersarang

3. Loop Terangkai / Berangkai

4. Loop Tidak Terstruktur

Ad. 1.) Loop Sederhana

- Loop sederhana terdiri dari satu buah loop (bentuk: while, for atau repeat-until) yang berdiri sendiri.

- Himpunan pengujian berikut dapat diaplikasikan pada loop sederhana :

1. Abaikan keseluruhan loop

2. Hanya satu yg melewati loop

3. Dua yg melewati loop

4. Sebanyak m melewati loop, dimana m < n

5. Sebanyak n-1, n, n+1 melewati loop

- Himpunan pengujian diatas disebut dengan :

“pendekatan pengujian loop sederhana (p.p.l.s)”

Catt:

- n adalah jumlah maksimum yg diijinkan melewati loop

- pilih salah satu dari himpunan pengujian diatas

Page 11: Modul Testing

Ad. 2.) Loop Tersarang / bersarang

- Loop tersarang/bersarang adalah suatu loop yang berada dalam loop yang lain.

Loop tersarang/bersarang dapat diuji dengan menggunakan “p.p.l.s”, tetapi jumlah pengujian menjadi banyak dan tidak praktis.

Ada suatu pendekatan yg dapat digunakan untuk menguji loop tersarang/bersarang, dimana jumlah pengujian bisa sedikit dan praktis.

Pendekatan ini disebut dengan:

“pendekatan pengujian loop tersarang (p.p.l.t)”

Langkah-langkah dari “p.p.l.t” :

Page 12: Modul Testing

Langkah 1:

Mulai pada loop yg paling dalam. Atur semua loop ke nilai minimumnya.

Langkah 2:

Gunakan p.p.l.s untuk menguji loop yg paling dalam, sementara itu menjaga loop yg terluar dengan nilai minimumnya.

Tambahkan satu pengujian lain untuk nilai “out-of-range”.

Langkah 3:

Bekerja menuju keluar, dengan melakukan pengujian untuk loop selanjutnya, tetapi menjaga loop terluar lainnya dengan nilai minimumnya dan loop terdalam lainnya dengan nilai tertentu (out-of-range).

Langkah 4:

Lanjutkan pengujian sampai semua loop diuji.

Contoh: (sama dengan contoh sebelumnya)