# مهندسی نرم افزار > مباحث مرتبط با مهندسی نرم‌افزار > مباحث و مقالات فراگیر مهندسی نرم افزار > سوال: تفاوت مفاهیم Failure,fault,Error,bug,defect

## arashganbari

سلام
در مباحث تست و نگهداری نرم افزار مکررا به مفاهیم Failure,fault,Error,bug,defect اشاره شده و توی سایتهای مختلف هم براش تعاریف متفاوتی ارائه کردن.
ولی من این تعاریف رو هر چقدر می خونم برام ملموس نیست. به نظر میاد که باید برای هر کدومش یه مثال عنوان بشه ولی جایی هم که این موضوع رو تشریح کرده باشه پیدا نکردم از IEEE گرفته تا سایتهای تخصصی تست نرم افزار. دوستان لطفا اگه می تونید در این خصوص اظهار نظر کنید.
متشکرم

----------


## arashganbari

کسی نمی دونه؟

----------


## saeed410

Error : خطایی که در کد برنامه وجود دارد.
Fault : زمانی است که یک error  به وجود بیاد و باعث به وجود آمدن Fault  میشه.یعنی فرض کنید خطای در کد برنامه (error)وجود داشته باشد بعد از اجرا شدن با اجرای نادرست(Fault) سیستم میشه.
Failure : در کل سیستم به وجود می آید و از fault  به وجود میاد و به معنی شکست در سیستم نرم افزاری است. 
رابطه ها در بالا سببی است. یعنی error باعث Fault  میشه و Fault باعث Failure
Bug: زمینه این کلمه به زمانی برمیگرده که از لامپ های خلا برای کامپیوتر استفاده میشد. در آن زمان یک سوسک وارد سیستم شده بود و باعث اشتباه کار کردن سیستم میشد. بنابراین زمانی که سوسک را بیرون آوردن اشکال برطرف شد. فرایند اشکال زدایی رو Debug  میگن. باگ ها خطاهایی هستند که تحت شرایط خاصی به وجود می آیند. مثلاً فرض کنید شما یک برنامه تقسیم اعداد صحیح نوشتید. همه هم میدونن که تقسیم بر صفر وجود نداره. ولی بعضی افراد بیان و تقسیم بر صفر انجام بدن یا سرریزی بافر.

----------


## saeed410

در کتابهای Fault Tolerance معمولاً 3 واژه اول به خوبی تعریف شده است.

----------

