منظور از کلمه ی باگ (BUG) در زبان انگلیسی حشره میباشد و درعلم برنامه نویسی به معنای نقص و اشکال در عملکرد نرم افزارا میباشد .اولین بار این کلمه توسط خانم Grace Murray Hopper زمانی که مشغول اشکال زدایی از یک کامپبوتر بود بیان شد که منظور از این کلمه ایراد کوچکی بود که در عملکرد نرم افزار رخ میدهد .
شرکت های نرم افزاری بعد از اماده کردن محصول نهایی خود و به منظور پیدا کردن باگ های نرم افزار نسخه های الفا و بتا در اختیار کاربران قرار داده تا از عملکرد صحیح برنامه اطمینان حاصل کنند و در صورت مشاهده باگ به رفع ایراد گزارش شده و یا اصلاح دیباگ (DeBug) بپردازند.
ارایه محصول بدون کیفیت و همراه با باگ های فراوان باعث مشکل در کارکرد برنامه شده و باعث نارضایتی از محصول شده و سپس باعث از دست رفتن مشتری میشود و همین مورد یکی از عوامل شکست بسیاری از پروژه ها میباشد .در شرکت های نرم افزاری به منظور رفع ایرادات نرم افزار و به حد اقل رساندن ان ها از تیم های تست که متشکل از مدیر تست و کارشناس تست نرم افزار میباشد بهره گرفته میشود تا با استفاده از ابزار و تکنیک های مختلف به شناسایی این باگ ها بپردازند .
باگ ها انواع مختلفی دارند که در زیر به معرفی اسامی ان ها میپردازیم :
1- syntax
2- logic
3- Arithmetic
4- Resource
5- Teamworking
6- Interfacing
7- Multi-threading