وردپرس

باگ چیست؟ (باگ در برنامه نویسی با نگاهی متفاوت)

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

 

باگ (Bug) چیست؟

هر کس شروع به برنامه نویسی می کند باید بداند که باگ چیست و چگونه می تواند به رفع آن بپردازد. باگ در برنامه نویسی یک خطای کدگذاری است که باعث می شود به خروجی مورد نظر و مطلوب دست نیابیم و نتیجه نادرست یا غیرمنتظره ای ایجاد کند.

از این رو هر زمانی که با یک اشکال در برنامه نویسی مواجه می شوید نیاز است که نسبت به رفع آن اقدام نمایید. به فرایند رفع اشکال دیباگ می گویند. برای یافتن این اشکال در برنامه نویسی نیاز است که با انواع باگ آشنا باشید.

 

معنی باگ در عامیانه

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

 

اولین باگ

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

تکنسین های خانم هوپر در ابتدا برای شوخی این واژه را به کار بردند. البته پیش از آن واژه Bug برای ایراد در دستگاه استفاده می شد، ولی در دنیای کامپیوتر اولین بار توسط خانم هوپر استفاده شد.

 

 

انواع باگ در برنامه نویسی

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

 

Syntax (سینتکسی)

زمانی که هنگام نگارش کد از کاراکتر اشتباهی استفاده کنید، یا استفاده از یک کاراکتر را فراموش کنید با باگ سینتکسی روبرو می شوید. مثلاً یکی از کاراکتر ها را اشتباه تایپ کنید یا یکی از حروف و عملگر ها را اشتباه استفاده کنید.

 

Logic (منطقی)

باگ منطقی همانطور که از نام آن پیداست مربوط به زمانی می شود که عملیاتی برخلاف منطق نرم‌افزار انجام داده باشید. این کار باعث می شود برنامه اطلاعات اشتباهی خروجی دهد و یا گیر گند و خروجی ارائه ندهد. مثلاً با ایجاد یک حلقه بی نهایت باعث شوید دنباله ای از کد ها به صورت مادام اجرا شوند.

 

Arithmetic (محاسباتی)

اگر هنگام ایجاد کد برای انجام محاسبات ریاضی اشتباهی صورت پذیرد به آن باگ محاسباتی می گویند. مثلاً یک عدد بر صفر تقسیم شود.

 

Resource (منابع)

این خطا زمانی رخ می دهد که هنگام به کارگیری منابع با خطا مواجه شوید. مثلاً به یک متغیر اشاره کنید که قبل از آن تعریف نشده و یا تهی باشد.

 

Teamworking (کار تیمی)

زمانی که به صورت تیمی کار می کنید و ارتباط درستی بین گروه وجود ندارد ممکن چنین اشتباهی (به دلایلی مانند نامگذاری متفاوت مستندات) برای شما رخ دهد.

 

Interfacing (تعامل)

خطای تعامل زمانی رخ می‌دهد که نرم‌افزار در تعامل با سایر بخش ها دچار خطا گردد مانند اجرای اشتباه پروتکل استفاده نادرست از api مدیریت نادرست سخت افزاری و … .

 

Multi-threading (چند رشته ای)

اگر در میان کد های خود برای اجرای رشته های متفاوت دچار اشتباه شوید به آن خطای چند رشته ای می گویند. مثلاً اگر کار B زمانی شروع شود که کار A به اتمام برسد. ولی شما به اشتباه A را به صورتی تعریف کنید که برای شروع آن نیاز باشد که کار B به اتمام برسد.

 

 

انواع باگ از نگاه کاربر

یک نوع دسته بندی دیگر برای باگ ها دسته بندی بر اساس دید کاربران است  که به باگ دیداری و عملکردی تقسیم می شوند.

دیداری 

برنامه به درستی کار می کند، ولی کاربر عملکردی که از او انتظار داریم را انجام نمی دهد. این نوع اشکال ممکن است در مواردی مانند طراحی واکنشگرا صورت پذیرد.

 

عملکردی

عملیاتی که برای برنامه در نظر گرفته ایم به درستی اجرا نمی شود. مثلاً زمانی که کاربر بر روی دکمه ذخیره کلیک می کند داده ها ذخیره نمی شود

 

انواع باگ از نظر سطح دشواری

اشکالات با تأثیر کم که بر تجربه کاربران کمترین اثر را می گذارند.

اشکالات با تأثیر بالا که تاثیر زیادی بر عملکرد کاربران دارند. ولی برنامه همچنان کار می کند.

اشکالات حیاتی که باعث می شود برنامه به صورت کلی از کار بیفتد.

 

طبقه بندی باگ بر اساس محل وقوع آنها

اشکالات سطح واحد

این نوع خطا یک اشکال ساده نرم افزاری است که در یک واحد کد قرار می گیرد. این خطاها معمولاً به دلیل خطای منطقی و محاسباتی رخ می دهد و به راحتی رفع می‌شوند.

 

خطای سطح سیستم

این نوع باگ یک خطای پیچیده‌تر است که در هنگام تعامل چندین سیستم اتفاق می افتد .

 

خطا های خارج از محدوده

این خطا زمان رخ می دهد که کاربر به صورتی خارج از انتظار با برنامه تعامل می کند. مثلاً زمان پر کردن یک فرم، مقادیری را وارد کند که برنامه برای آن طراحی نشده است.

 

جایزه نیم میلیون دلاری برای یافتن باگ در گوگل

تعداد زیادی از شرکت های بزرگ نرم افزاری دنیا جایزه هایی را برای پیدا کردن باگ و اشکال در نرم افزار محصولاتشان تعیین کرده اند. به عنوان مثال گوگل برای یافتن باگ در نرم افزار خود در مسابقه Pwn2Own یک جایزه نیم میلیون دلاری در نظر گرفت.

 

رفع باگ (دیباگ)

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

بازگشت به لیست

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *