در فناوری کامپیوتر، باگ به خطای کدنویسی در یک برنامه کامپیوتری گفته میشود. (برنامه شامل میکروکدی نیز میشود که درون یک ریزپردازنده تولید شده است.) فرآیند یافتن باگها پیش از اینکه کاربران آنها را پیدا کنند به دیباگ کردن یا اشکالزدایی معروف است. دیباگ کردن پس از نوشتن کد آغاز شده و به مراحل مختلفی ادامه مییابد تا زمانی که کد با واحدهای دیگر برنامهنویسی ترکیب شود و یک محصول نرمافزاری، مانند سیستمعامل یا یک اپلیکیشن، تشکیل دهد.
باگ ها اغلب پس از انتشار یک محصول یا در طول آزمایشهای عمومی بتا کشف میشوند. در این شرایط، کاربران باید یا راهی پیدا کنند که از بخش دارای باگ استفاده نکنند، یا از توسعهدهندگان نرمافزار یک پچ (اصلاحیه) دریافت کنند.
باگ تنها یکی از مشکلاتی است که یک برنامه میتواند داشته باشد. برنامهها ممکن است بدون وجود باگ اجرا شوند اما همچنان استفاده از آنها دشوار باشد یا در دستیابی به اهداف اصلی خود شکست بخورند. چنین اشکالاتی آزمایش کردنشان دشوارتر است. یک برنامه خوب که با فرآیندهای کنترلشده بهدرستی طراحی و توسعه داده شده باشد، به ازای هر هزار خط کد، باگهای کمتری خواهد داشت. به همین دلیل، گنجاندن ارزیابی قابلیت استفاده در فرآیند تست اهمیت زیادی دارد.
