• Tidak ada hasil yang ditemukan

1 Proses debugging Deb

Dalam dokumen Testing Dan Implementasi Sistem (Halaman 120-124)

tes, bers

4.7

ting software adalah suatu proses yang dapat direncanakan dan dispesifikasikan secara ematis. Disain test case dapat dilakukan, suat

dapat dievaluasi terhadap harapan yang telah dituliskan sebelumnya.

Debugging terjadi sebagai konsekuensi testing yang berhasil. Yaitu bilamana test case menemukan error, debugging adalah proses menghilangkan error.

Walaupun debugging dapat dan seharusnya merupakan suatu prose

ugging masih merupakan suatu seni. Teknisi software dalam mengevaluasi hasil suatu kadang dihadapkan pada masalah indikasi dari gejala penyebab masalah dari software

angkutan. Yaitu, manifestasi eksternal dari error dan penyebab internal dari error yang mungkin tidak mempunyai hubungan langsung antara satu dengan yang lainnya.

.1 Proses debugging

Deb

Ber bar 4.6, proses debugging dimulai dari eksekusi test case. Hasil-hasil kan dengan kinerja seb

indi

men n inidikasi dengan penyebab sehingga dapat mengarahkan pembenahan kesalahan.

ugging bukan testing tapi selalu terjadi sebagai konsekuensi testing. dasarkan pada gam

dinilai dan kurangnya korespondensi antara kinerja yang diharap

enarnya dihitung. Pada banyak kasus, data yang tidak berkorespondensi merupakan kasi dari suatu penyebab yang tersembunyi. Proses debugging adalah proses untuk

Bab IV Strategi Testing Halaman 111

Gambar 4.6 Proses debugging.

ebugging selalu mempunyai dua hasil : . Penyebab ditemukan dan dibenahi.

. Penyebab tidak ditemukan.

ebugger akan memperkirakan penyebab, dan mendisain test case untuk membantu dalam alidasi perkiraan penyebab, serta mengkoreksi error dalam suatu bentuk proses yang beriterasi.

Mengapa debugging sangat sulit? Psikologi manusia merupakan alasan yang lebih utama daripada teknologi software itu sendiri. Berikut ini beberapa karakteristik bug yang menyediakan beberapa petunjuk:

Indikasi dan penyebab mungkin dipicu secara geografis. Yaitu indikasi akan muncul sebagai bagian dari program, dimana penyebab sebenarnya berlokasi di tempat lain. Indikasi mungkin menghilang sementara waktu ketika error lain dibenahi.

Indikasi mungkin disebabkan oleh non error misalnya pembulatan yang tidak akurat. Indikasi disebabkan oleh kesalahan manusia yang tidak mudah dilacak.

Indikasi disebabkan karena masalah waktu bukan proses.

Akan sulit untuk secara akurat memproduksi kembali kondisi masukan, misal seperti pada aplikasi real time.

Indikasi mungkin dipengaruhi oleh sistem dalam interaksi software dan hardware.

Indikasi mungkin disebabkan jalannya tugas yang terdistribusi diantara processor yang berlainan.

4.7.2 Pertimbangan psikologi

Proses d 1 2 D v

Sangat disayangkan beberapa bukti menunjukan bahwa kemampuan debugging tergantung pada bakat dari manusia. Walaupun bukti eksperimen terhadap debugging terbuka untuk banyak interpretasi, namun kebanyakan varian eksperimen dalam kemampuan debugging

Bab IV Strategi Testing Halaman 112 yang telah dilaporkan menggunakan data sampling programmers yang memiliki edukasi dan S

pemrograman yang cahan masalah

atau akal dari otak, ditambah dengan pencocokan terhadap pengalaman dari kes

i yang besar, bilamana bug pada akhirnya ….. telah dikoreksi.” pengalaman yang sama.

hneiderman [SHN80] menyatakan bahwa: “Debugging adalah satu dari beberapa bagian membuat frustasi. Ia memiliki elemen-elemen dari peme

alahan yang pernah dibuat sebelumnya. Tingkat kegugupan dan ketidakinginan untuk menerima kemungkinan errors meningkatkan kesulitan dari tugas debugging. Untungnya, terdapat rasa lega dan pengurangan tens

4.7.3 Pendekatan debugging

Pada umumnya ada tiga kategori pendekatan debugging [MYE79], yaitu:

Brute force adalah metode paling umum dan tidak efisien untuk isolasi penyebab error dari software. Penerapan brute force, hanya dilakukan bilamana pendekatan yang lain telah gagal. Dengan menggunakan filosofi “biarkan komputer menemukan error”, seperti terjadinya kekurangan memori, dll, diharapkan dimana pada suatu kekacauan informasi yang dihasilkan, akan dapat ditemukan petunjuk yang dapat menuntun ke penyebab dari suatu error. Walaupun banyak informasi yang dihasilkan akan membuat proses

at dimana penyebab ditemukan. Sayangnya, seiring ial pelacakan ke ksi atau deduksi dan menggunakan konsep diorganisasi untuk mengisolasi dibu

Seb kemungkinan penyebab dikembangkan dan

men dibe

Bila sua arus dilakukan koreksi terhadapnya. Van Vleck [VAN89] mem

terlebih lum membuat koreksi dan mengilangkan penyebab dari suatu bug: 1.

Dal atu pola logika yang salah yang

ada uan errors yang lain.

2. Apakah bug berikutnya merupakan hasil dari perbaikan yang telah dilakukan?

debugging sukses, akan banyak pula hal-hal yang menghabiskan usaha dan waktu secara percuma. Akal harus digunakan terlebih dahulu!

BackTracking adalah metode cukup umum yang biasanya digunakan untuk program kecil. Dimulai dari dimana indikasi telah dicakup, source codes dilacak ke belakang secara manual sampai ke temp

dengan makin meningkatnya jumlah baris kode, jumlah jalur potens belakang akan menjadi semakin banyak pula dan tak termanajemeni. Cause Elemenation adalah manifestasi indu

binary partitioning. Data yang berhubungan dengan error

penyebab yang potensial. Suatu hipotesa penyebab dikembangkan dan data yang tuhkan untuk membuktikan atau menggagalkan hipotesa tersebut.

agai alternatif, suatu daftar dari semua

lakukan tes untuk menghilangkan tiap kemungkinan tersebut. Jika tes inisial gindikasikan bahwa suatu bagian hipotesa penyebab terlihat berpotensi, data ntuk dalam rangka untuk mengisolasi bug.

tu bug ditemukan, maka h

berikan tiga pertanyaan sederhana, dimana tiap teknisi software harus menanyakannya dahulu sebe

Apakah penyebab bug dihasilkan lagi pada bagian lain dari program? am banyak situasi, defect program disebabkan oleh su

mungkin akan dihasilkan lagi di lain tempat.Pertimbangan eksplisit dari pola logika, lah adanya kemungkinan merupakan hasil di dalam penem

Bab IV Strategi Testing Halaman 113 Sebelum koreksi dilakukan, source code (atau disain) harus dievaluasi untuk menilai ting

peru

dihi program saat ini dan akan dihilangkan dari semua program yang akan pasangan struktur data dan logika. Jika koreksi dilakukan pada bagian yang mempunyai kat keterikatan tinggi dalam program, harus memberikan perhatian khusus saat tiap

bahan dibuat.

3. Apa yang dapat dilakukan untuk mencegah terjadinya bug di awal?

Jika proses dikoreksi maka produk secara otomatis akan terkoreksi. Bug akan dapat langkan dari

Dalam dokumen Testing Dan Implementasi Sistem (Halaman 120-124)