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
DebBer 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 vSangat 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