Tahun 1945 sewaktu
ukuran komputer masih sebesar kamar, pihak militer Amerika Serikat menggunakan komputer yang bernama “Mark
Debugging adalah
proses menghilangkan bug dari suatu program. Debugging terjadi sebagai akibat dari
pengujian yang berhasil. Jika test case mengungkap kesalahan, maka debugging
adalah proses yang menghasilkan penghilangan kesalahan. Perekayasa perangkat
lunak yang mengevaluasi hasil suatu pengujian sering dihadapkan pada indikasi
“simtomatis” dari suatu masalah pernagkat lunak, yaitu bahwa manisfestasi
eksternaldari kesalahan dan penyebab internal kesalahan dapat tidak memiliki
hubungan yang jelas satu dengan lainnya. Proses mental yang dipahami secara
buruk yang menghubungkan sebuah symptom dengan suatu penyebab disebut
debugging.
Tiga kategoti pendekatan
debugging (MYE79)
1. Gaya
yang kasar (Brute force)
Kategori
debugging brute force mungkin merupakan yang paling umum dan
metode yang paling efisien untuk mengisolasi penyebab kesalahan perangkat
lunak. Kita mengaplikasikan metode debugging brute force bila
semua yang lain telah gagal. Dengan menggunakan filosofi ”biarkan komputer
menemukan kesalahan”, tempat sampah memori dipakai, penelusuran runtime
dilakukan, dan program dibebani dengan statemen WRITE. Kita mengharapkan bahwa
dimanapun didalam rawa informasi yang diproduksi, kita akan menemukan suatu
kunci yang akan membawa kita kepada penyebab kesalahan. Meskipun banyaknya
informasi yang dihasilkan pada akhirnya akan membawa kita meraih sukses, lebih
sering dia menyebabkan kita menghambur-hamburkan usaha dan waktu. Kita harus
memikirkannya terlebih dahulu.
2. Penelusuran balik (backtracking)
Backtracking adalah
pendekatan debugging yang sangat umum yang dapat digunakan secara sukses
didalam program yang kecil. Mulai pada sisi dimana suatu gejala diungkap, kode
sumber ditelusuri balik (secara manual) samapai sisi penyebab ditemukan.
Sayangnya, bila jumlah baris sumber bertambah, maka jumlah jalur balik
potensial dapat sangat banyak.
3. Eliminasi penyebab
Cause
elimination dimanisfestasikan
oleh induksi atau deduksi serta mengawali konsep partisi biner.
Data yang berhubungan dengan kejadian kesalahan dikumpulkan untuk mengisolasi
penyebab potensial. Hipotesis penyebab dibuat dan data digunakan untuk
membuktikan penolakan hipotesis tersebut. Sebagai alternatif, daftar semua
penyebab yang mungkin dikembangkan dan dilakukan pengujian untuk mengeliminasi
masing-masing kesalahan. Jika pengujian awal menunjukkan bahwa suatu hipotesis
penyebab memberikan gambaran hasil yang jelas, maka data itu disaring sebagai
usaha untuk mengisolasi bug.
Masing-masing pendekatan debugging tersebut dapat ditambah dengan piranti debugging. Kita dapat mengaplikasikan berbagai kompiler debugging yang luas, bantuan debugging yang dinamis (tracer), generator test case, ruang sisa memori dan peta cross-reference. Namun piranti bukanlah pengganti bagi evaluasi yang berhati-hati yang didasarkan atas dokumen desain perangkat lunak yang lengkap dan kode sumber yang jelas. Sekali bug ditemukan, bug harus dibetulkan. Tetapi seperti telah kita ketahui bahwa, koreksi terhadap suatu bug dapat memunculkan kesalahan lain sehingga lebih banyak merugikan daripada menguntungkan.

Tidak ada komentar:
Posting Komentar