خطا در اجرای نرم افزار From Wikipedia, the free encyclopedia
اِشکال،[1] یا باگ (به انگلیسی: bug) نوعی خطا یا اشتباه در اجرای نرمافزار است که موجب نتایج اشتباه یا اجرا نشدن نرمافزار میشود. علت این اشکالات میتواند اشتباه در هنگام برنامهنویسی باشد. شرکتهای سازنده نرمافزارها برای حل این مشکل قبل از ارائه نسخه نهایی نسخههایی تحت نام بتا یا آلفا انتشار میدهند تا افرادی آنها را بررسی کنند و این باگها را گزارش کنند. به این افراد بتا تستر (به انگلیسی: Beta Tester) میگویند.
بعضی اوقات شرکتهای سازنده نرمافزار به عمد یک یا چند اشکال در نسخههای قابل بازی قبل از انتشار، که رایگان پخش میکنند، میگذارند تا از کپی غیرمجاز آنها جلوگیری کنند مانند بازی کیش یک آدمکش.
این اصطلاح اولین بار توسط خانم گریس موری هاپر به کار گرفته شدهاست. خانم گریس هاپر به عنوان یکی از اولین برنامه نویسان زن شناخته میشود. زمانی که هاپر در دانشگاه هاروارد در حال اشکالزدایی یا دیباگ کردن (به انگلیسی: debugging) کامپیوتر Mark II بود، از این لغت به معنای خطا و اشکال استفاده کرد؛ زیرا زمانی که هوپر به همراه تعدادی از متخصصین در حال بررسی کامپیوتر Mark II بودند، متوجه شدند که اختلال در عملکرد این کامپیوتر به دلیل وجود یک حشره در آن ایجاد شدهاست؛ بنابراین در آنجا از اصطلاح Bug به معنای نقص نرمافزاری استفاده کردند.[2]
این خطاها انواع مختلفی دارند و هر کدام از این نوعها در زمان خاصی تشخیص داده میشوند، انواع خطاهای برنامهنویسی به شرح زیر میباشد:
بسیاری از شرکتهای بزرگ نرمافزاری دنیا در ازای یافتن اشکالات نرمافزاری محصولاتشان جایزههایی را در نظر گرفتهاند که از معروفترین آنها میتوان به جایزه نیم میلیون دلاری گوگل در مسابقات Pwn2Own که یک مسابقه یافتن باگهای نرمافزاری است نام برد