# مهندسی نرم افزار > مباحث مرتبط با مهندسی نرم‌افزار > ارزیابی نرم افزار >  BUG  &  DEBUG  چیست؟؟

## omidreza812

سلام دوستان
نمیدونم این سوال رو باید توی این انجمن مطرح کنم یا جای دیگه؟
وقتی میگن یه نرم افزار   باگ   داره یعنی؟ و چطوری میشه تشخیص داد؟
ودر همین رابطه دیباگ و دیباگر چیه؟
تشکر

----------


## Bahmany

BUG : http://en.wikipedia.org/wiki/Software_bug
Debug : http://en.wikipedia.org/wiki/Debug
Debugger : http://en.wikipedia.org/wiki/Debugger

----------


## Nima_NF

bug خطا هایی هست که در هنگام کامپایل تشخیص داده نمی شوند و اکثر آن ها پس از انجام یک سری اعمال مختلف محاسباتی بدون اینکه از قبل آن را پیش بینی کرده باشیم رخ می دهند. 
مثل overflow که رشته ای که 10 کارکتر دارد را در یک رشته 5 کارکتری کپی می کنید (آن 5 کارکتر بعدی ممکن است بر روی حافظه اختصاص داده شده بقیه نرم افزار ها یا حتی سیستم قرار گیرد. ) که این خطا به نام یک bug بحرانی است و به هکر ها اجازه حمله به سیستم را می دهد.
و یا تقسیم بر صفر , مثل x=2-y که اشتباها بشود صفر و بعد بخواهید عددی را بر آن x که صفر شده است ، تقسیم کنیم.
برای تشخیص ، شرکت ها علاوه بر کار کردن با برنامه خودشان آن را به ده ها و یا صد ها فرد مختلف قبل از فروش نهایی می دهند تا هر کس با کار کردن با آن ، شاید بتواند خطایی در آن بیابد.

debug هم عمل پیدا کردن bug ها هست (با هر روش ممکن)

debugger ها هم ابزاری هستند که برای این کار به کار می روند که می توانند سطح پایین اعمال انجام شده را نمایش دهند (کار با رجیستر ها در Cpu و ... ) تا شما بتوانید تشخیص دهید در کجا Bug وجود دارد. و با داشتن سورس کد ها هم به طور دقیق تر و خط به خط  می توان کد ها را اشکال زدایی کرد.

----------

