🔺باگ چیست ؟ (Bug)
در فرآیند توسعه نرم افزارها، همیشه خطاها و یا نقصهای نرم افزاری دیده میشوند که به آنها باگ میگویند. تقریبا هیچ برنامه نویسی در دنیا وجود ندارد که با باگهای نرم افزاری در زمان توسعه یک نرم افزار برخورد نکرده باشد. همواره توسعه دهندگان در تلاش اند که نرم افزارهایی را در اختیار کاربران قرار دهند که کمترین خطا را داشته باشد. بنابراین عملیاتی به اسم دیباگ کردن به یکی از اصلیترین مراحل توسعه نرم افزار تبدیل شده است.
🔺دیباگ چیست ؟ (Debugging)
به فرآیند اشکال زدایی و رفع خطای یک نرم افزار عملیات دیباگ کردن می گویند. در زمان کدنویسی یک نرم افزار، امکان دارد باگهای مختلفی در آن ایجاد شوند که اجرای صحیح آن را با اختلال رو به رو سازند. بنابراین برنامه نویسان برای برطرف سازی باگ های نرم افزار باید به طور مداوم عملیات دیباگ کردن کدهای خود را انجام دهند تا باگ های آن را بر طرف سازند.
دیباگ کردن جزو مراحل اصلی و جدا نشدنی برنامه نویسی یک نرم افزار است. در فرآیند کدنویسی، نمیتوان انتظار داشت که کدهای نوشته شده، خالی از اشتباه باشند و همواره به صورت صحیح عمل کنند. زیرا در فرآیند کدنویسی قطعا خطاهای منطقی و نوشتاری زیادی پیش میآید که باعث بروز خطا در عملکرد نرم افزار میشوند. این خطاها میتوانند در اشکال و زمانهای مختلف ظاهر شوند و در نهایت باعث شوند نتیجه نهایی و خروجی نرم افزار، با نتیجه مورد انتظار برنامه نویس تناقض داشته باشد.عملیات اشکال زدایی کدها، مانند بازبینی و ویرایش یک متن ادبی است.
🔺انواع خطا ها (bug)▫️خطای نوشتاری (Syntax)
به قوائد و نوع نوشتار کدهای یک زبان برنامه نویسی Syntax گفته میشود.یکی از متداولترین عوامل ایجاد باگ در نرم افزارها مربوط به اشتباهات نوشتاری برنامه نویسان است. زمانی که برنامه نویسان در کدهای خود اشتباه تایپی یا دستوری داشته باشند، اجرای نرم افزار با اختلال رو به رو خواهد شد. زبان هایی مانند HTML و Css به خطاهای نوشتاری حساسیت زیادی نشان نمیدهند، اما در زبان هایی مانند PHP یا Python این خطاها از اجرای نرم افزار جلوگیری میکنند.
▫️خطای معنایی (Semantics)
برخی خطاها در حالی که از نظر کدنویسی صحیح هستند، اما نتیجه نهایی آنها از نظر معنایی اشتباه است. برای مثال فرض کنید قصد داریم با کلمات کارشناس قهرمان،کانال، مدرسه، است، برنامه نویسی، جمله ای طبق اصول فارسی بنویسیم. اگر بنویسیم کانال مدرسه برنامه نویسی کارشناس قهرمان است در حالی که در ظاهر از کلمات صحیح استفاده کردیم اما جمله نوشته شده از نظر معنایی اشتباه است. بنابراین باید چنین نوشت کانال کارشناس قهرمان مدرسه برنامه نویسی است. در فرآیند برنامه نویسی نیز ممکن است خطاهای معنایی نیز ایجاد شوند،مثلا عددی را بر صفر تقسیم کنید که این عمل در ریاضیات امکان پذیر نیست.
▫️خطای منطقی (Logic)
این دسته از خطاها جزو سختترین خطاهای برنامه نویسی محسوب میشوند. برنامه نویسان زمان زیادی را باید برای رفع خطاهای منطقی صرف کنند. زمانی که کدهای نوشته شده از نظر نوشتاری کاملا صحیح هستند،اما نرم افزار به درستی اجرا نمیشود و یا در حالی که اجرا میشود خروجی آن اشتباه است، باید به دنبال یک خطایی منطقی بود.خطاهای منطقی از خود نشانه ای بر جای نمیگذارند و معمولا توسط برنامه های دیباگ شناسایی نمیشوند.گاهی برای رفع چنین خطاهایی برنامه نویس راهی جز خواندن خط به خط کدهای نوشته شده ندارد.برای درک بهتر این خطاها،تصور کنید که میخواهیم نرم افزاری بنویسیم که تعداد کاربران سایت را محاسبه کند. فرض کنید اطلاع داریم که 20 کاربر در سایت میباشند ولی این نرم افزار عددی غیر 20 را به ما نمایش میدهد،زمانی که نرم افزار بدون هیچ خطایی اجرا شود ولی جواب صحیحی به ما نمایش ندهد،خطای منطقی رخ داده است.