Kesalahan perangkat lunak, adalah masalah dalam program komputer atau sistem perangkat lunak yang memicu hasil yang tidak diinginkan. Program yang membantu dalam mendeteksi dan menghapus kesalahan pemrograman perangkat lunak disebut debugger. Banyak insiden penting yang disebabkan oleh jenis kesalahan ini termasuk penghancuran wahana antariksa Mariner 1.1 pada tahun 1962, Ariane 5 5012, dan Airbus A400M.3 pada 2015.
Pada tahun 1967, pencipta Mak III melaporkan kasus pertama kesalahan komputer yang disebabkan oleh bug. Mark III, komputer penerus ASCC Mark II, yang dibuat pada tahun 1944, mengalami kegagalan relai elektromagnetik. Ketika relay ini diselidiki, ditemukan ngengat (bug) yang menyebabkan relay tetap terbuka. Grace Murray Hopper, seorang matematikawan dan fisikawan terkemuka yang bekerja sebagai programmer di Mark II, mencatat serangga itu di log memancingnya.
Insiden ini secara keliru disebut sebagai asal mula penggunaan kata bug dalam bahasa Inggris ("bug") untuk menunjukkan masalah pada perangkat atau sistem.5 6 Faktanya, istilah bug sudah menjadi bagian dari bahasa Inggris, setidaknya Sejak Thomas Alva Edison menggunakannya pada tahun 1889 tentang gangguan dan kerusakan. Hopper mungkin pertama kali mengaitkannya dengan komputasi - dalam hal ini, terkait dengan bug nyata. Di sisi lain, meskipun selama tahun 1950-an Hopper juga menggunakan istilah debug dalam bahasa Inggris saat membahas debugging dalam kode pemrograman, penggunaan istilah yang tercatat pertama kali ditemukan dalam Journal of Royal Aeronautical Society 1945.
Dalam kasus kesalahan, itu adalah kata yang digunakan oleh semua orang yang memiliki pengetahuan di bidang ilmu komputer. Kata ini dalam bahasa Inggris, terjemahan literalnya adalah "bug", digunakan untuk menamai kesalahan yang terjadi pada program komputer.
Kesalahan dihasilkan dalam pemrograman desain perangkat lunak dan, pada titik tertentu, itu memanifestasikan dirinya kepada pengguna. Beberapa kesalahan umum adalah penyertaan variabel yang tidak diinisialisasi pada saat yang tepat, pengindeksan tabel yang buruk dalam database, pembuatan loop tak terbatas, penggunaan font yang sulit dibaca atau pilihan warna yang membingungkan pengguna.