Luangkan waktu berapa pun untuk bekerja atau bermain di komputer dan segera Anda akan mendengar tiga kata yang dibicarakan: pemecahan masalah, pengujian, dan debugging. Sementara dua yang pertama cukup umum, artinya mungkin tampak kabur atau bahkan sinonim. Dalam praktiknya masing-masing tindakan ini berbeda, meskipun terkait.
Pemecahan masalah adalah kutukan dari pengguna akhir dan teknisi dukungan pelanggan, dan dimulai ketika perangkat lunak atau perangkat keras tidak berfungsi seperti yang diharapkan, memberikan hasil yang tidak terduga atau tidak memuaskan. Dalam banyak kasus kesalahan pengguna yang salah.
Langkah pertama dalam pemecahan masalah adalah untuk menutupi dasar-dasar. Apakah perangkat lunak atau perangkat keras terpasang dengan benar? Apakah dikonfigurasi dengan benar? Sudahkah Anda membaca manual dan mengikuti semua instruksi? Mungkin Anda mengubah sesuatu di sistem Anda yang memicu masalah? Apakah Anda telah menggunakan produk ini selama ini, atau apakah itu pemasangan baru?
Jika ini adalah instalasi baru, Anda hampir dapat memastikan bahwa masalahnya terletak pada proses instalasi, terutama dalam hal perangkat keras. Perangkat keras membutuhkan driver perangkat (software file) yang bertindak sebagai jembatan atau antarmuka antara perangkat keras dan sistem operasi. Jika driver perangkat gagal, perangkat keras tidak dapat berkomunikasi dengan baik dengan komponen sistem lainnya. Driver perangkat mungkin tidak ada atau mungkin telah diinstal dalam urutan yang salah relatif terhadap perangkat.
Jika masalahnya terletak pada perangkat keras yang berfungsi dengan baik hingga saat ini, kerusakan pada driver perangkat mungkin menjadi penyebabnya. Menginstal ulang driver mungkin menyelesaikan masalah. Driver yang diperbarui mungkin juga melakukan trik. Di lain waktu, memasang kembali komponen di motherboard dengan mematikan komputer, mengekstrak komponen lalu memasangnya kembali akan mengatasi masalah tersebut.
Pemecahan masalah perangkat keras di sistem operasi Windows™ juga tersedia melalui Manajer Perangkat dan menu Bantuan. Tanda seru berwarna kuning di sebelah komponen di Pengelola Perangkat menunjukkan adanya masalah.
Perangkat lunak yang mulai berperilaku buruk mungkin juga rusak. Penginstalan ulang terkadang dapat membantu, tetapi jika sebuah program mulai bekerja setelah perangkat lunak baru yang tidak terkait diinstal, mungkin ada konflik di antara keduanya. Firewall dan program anti-virus terkenal tidak dapat bekerja sama dengan baik, dan mungkin bijaksana untuk tetap menggunakan satu program saja di setiap kategori ini kecuali Anda adalah pengguna tingkat lanjut.
Pemecahan masalah secara umum biasanya melibatkan membaca manual atau file bantuan, membahas dasar-dasar untuk menghilangkan kesalahan pengguna sebagai penyebab potensial, dan menggunakan mesin pencari untuk menyelidiki bagaimana orang lain telah memecahkan masalah. Jika ada satu hal yang selalu dapat Anda andalkan sebagai pengguna akhir, itu adalah bahwa seseorang telah berjalan di posisi Anda sebelumnya. Komunitas Internet sangat baik dalam memberikan bantuan, dan dalam banyak kasus jawaban dapat ditemukan dengan rajin mencari.
Pengujian adalah pendahulu dari debugging. Pengujian biasanya keahlian programmer dan pengguna tingkat lanjut, dan terjadi ketika produk baru atau sedang diperbarui dan perlu dilakukan untuk menghilangkan potensi masalah. Pengujian mengidentifikasi “bug” atau ketidaksempurnaan sehingga dapat diperbaiki dalam proses debugging, sebelum rilis resmi produk [berikutnya]. Rilis “tidak resmi” ini dikenal sebagai rilis beta (misalnya 3.0b), dan sukarelawan publik dikenal sebagai penguji beta.
Pengujian beta adalah sumber daya yang berharga bagi pengembang perangkat lunak karena beragam sistem komputer yang berpartisipasi, dikombinasikan dengan jumlah jam dan skenario di mana program digunakan. Ini menghilangkan masalah yang tidak terduga dengan cara yang tidak dapat dicapai secara efektif hanya dengan menggunakan debugger internal. Fase pengujian beta memberi penulis ide bagus tentang kesiapan suatu produk untuk domain publik.
Perangkat keras juga diuji beta tetapi karena secara finansial sulit untuk menyediakan perangkat keras beta gratis kepada publik, pengujian perangkat keras dan debugging biasanya dilakukan di rumah. Namun, produk beta mungkin akan ditayangkan perdana dan dalam beberapa kasus didistribusikan dalam jumlah terbatas kepada orang dalam industri di konferensi seperti COMDEX.
Perangkat lunak beta secara khusus tersedia untuk pengujian dan tidak dianggap sebagai rilis yang stabil. Penguji beta menginstal perangkat lunak beta dengan risiko mereka sendiri, dan untuk membantu pengembang perangkat lunak mengidentifikasi sumber masalah, mereka harus menyediakan sejumlah informasi yang sehat saat melaporkan bug. Data yang diperlukan bervariasi tetapi umumnya mencakup spesifikasi sistem, versi beta dan build, kondisi pasti saat bug terjadi, dan konten pesan kesalahan.
Debugging adalah keahlian programmer dan pengembang, dan melibatkan perbaikan kode perangkat lunak untuk menghilangkan kesalahan atau bug. Pengembang mencoba mereplikasi bug yang dilaporkan beta pada sistem internal untuk tujuan menghilangkannya.
Meskipun ada banyak jenis alat debugging, contoh sederhananya adalah alat yang memungkinkan pemrogram untuk memantau kode program sambil memanipulasinya untuk menjalankan berbagai perintah dan rutinitas. Salah satu pendekatan dasar adalah menyederhanakan kode sebanyak mungkin di tempat yang dicurigai bermasalah, sambil tetap mereplikasi masalah, mempersempit fokus ke jalur masalah potensial. Pada kenyataannya, debugging adalah proses kompleks yang memerlukan pendekatan berbeda berdasarkan faktor-faktor seperti kompleksitas dan panjang kode perangkat lunak itu sendiri, dan bahasa yang digunakan untuk menulisnya.
Debugging bisa menjadi tugas yang melelahkan, meskipun beberapa bahasa lebih mudah untuk di-debug daripada yang lain. Java, misalnya, menyertakan rutinitas yang menangani kesalahan pengecualian. Kesalahan pengecualian terjadi ketika program menghadapi situasi yang harus diatasi sebelum program dapat melanjutkan dengan benar. Dalam hal ini, rutinitas bawaan memulai “pencarian” di dalam berbagai lapisan kode perangkat lunak, mencari jawaban untuk masalah tersebut. Jika perbaikan tidak dapat ditemukan, kesalahan pengecualian fatal terjadi dan program dimatikan. Pesan kesalahan yang dihasilkan mungkin termasuk alamat memori atau beberapa data samar lainnya yang tidak akan membantu pengguna tetapi bisa berharga untuk debugging. Program yang ditulis dengan baik seharusnya tidak memiliki kesalahan fatal.
Bahasa pemrograman lama seperti C atau assembly tidak setransparan dan tidak menangani kesalahan dengan sangat efisien. Program debug yang ditulis dalam bahasa ini dapat menguji keterampilan dan kesabaran debugger.
Untungnya bagi pengguna akhir, perangkat lunak yang tersedia secara komersial telah di-debug dari kelemahan utama. Karena alasan ini, sebagian besar masalah yang dihadapi oleh pengguna akhir termasuk dalam lingkup pemecahan masalah dan dapat diperbaiki dengan cara yang disebutkan sebelumnya. Pada saat pengguna akhir menemukan bug, melalui gerakan pemecahan masalah dapat mengungkapkan solusi hingga bug diperbaiki oleh pengembang.
Saat meminta bantuan di forum Web atau newsgroup, pastikan untuk mengerjakan pekerjaan rumah Anda sebelumnya. Pemecahan masalah memakan waktu, dan orang-orang yang secara sukarela membantu menghargai seseorang yang telah berusaha menemukan jawaban. Menanyakan tentang masalah yang telah ditanyakan dan dijawab berulang kali tidak akan membuat Anda menang dan dianggap sebagai netiket yang buruk.