خطأ برمجيخطأ برمجي
الخطأ البرمجي[1][2][3][4] أو العطب البرمجي[1][2] في عالم الحوسبة هو ارتكاب هفوات في مرحلة تصميم البرنامج الحاسوبي أو أثناء كتابته بإحدى لغات البرمجة. ينتج عن هذا الخطأ غالبا أداء سيئ أو غير منتظر. في الإنجليزية (وحتى غيرها من اللغات) تستعمل كلمة bug عند الحديث عن خطأ برمجي. آثار هذا الخطأ غالبا ما تصيب البرمجيات ولكنها تصيب أيضا بعض الأجهزة والآلات التي تضبط عملها برمجيات. وأشهر هذه الأخطاء هو خطأ عام 2000 والذي نتج عن سوء تقدير في عملية التعامل مع التواريخ وتخزينها. تدخل عملية تصحيح الأخطاء في الدورة الحياتية لأي برنامج. في الغالب يصدر مطورو هذه البرامج ترقيعات تصحيحية أو حتى إصدارات جديدة تضيف إلى جانب الخدمات الجديدة تصحيحاً للأخطاء السابقة. الآثاربعض الأخطاء ليس لها تأثير ظاهر على وظيفة البرنامج، وبالتالي فقد تبقى مختفية وغير مرصودة لمدة طويلة. أخطاء أخرى أكثر اضرارا قد تتسبب في خلل في تنفيذ البرنامج فتعطل أو تجمده وقد يؤدي ذلك إلى الحرمان من الخدمة. صفات أخرى كأخطاء أو ثغرات أمنية قد تسمح على سبيل المثال لمتطفلين من تجاوز الرقابة للحصول على امتيازات غير مسموح بها. قد يكون للأخطاء نتائج خطيرة للغاية. الأخطاء التي شابت برنامج مراقبة جهاز العلاج الإشعاعي Therac-25 كانت المسؤولة مباشرة عن وفاة بعض المرضى في ثمانينيات القرن العشرين. في عام 1996، فقدت وكالة الفضاء الأوروبية صاروخ اريان 5 (1ما يعادل مليار دولار أمريكي) بعد أقل من دقيقة من إطلاقه، وذلك بسبب خلل في برنامج التوجيه على متن الحاسوب. في يونيو 1994، تحطمت طائرة سلاح الجو الملكي البريطاني من طراز شينوك ما أسفر عن مقتل 29 شخص. في البداية ألصق خطأ بالطيار، ولكن تحقيق Computer Weekly كشف وبأدلة كافية لإقناع مجلس اللوردات أن خطأ برمجي في حاسوب الطائرة هو سبب الحادثة.[5] في عام 2002، خلصت دراسة من المعهد الوطني للمعايير والتكنولوجيا بتكليف من وزارة التجارة الأمريكية أن للعيوب أو الأخطاء البرمجية تأثيرا هاما لدرجة تكبيد الاقتصاد الأمريكي خسائر قدرت بـ 59 مليار دولار أمريكي سنويا أي نحو 0.6 في المئة من إجمالي الناتج المحلي.[6] الوقايةالأخطاء البرمجية هي نتيجة لطبيعة العوامل البشرية في عملية البرمجة. تنشأ الأخطاء من سوء الفهم المتبادل أو السهو الذي يقع فيه الفريق المبرمج أثناء:
الترميز في إدخال البيانات والوثائق. يمكن أن تنشأ أخطاء أكثر تعقيدا عن تفاعلات غير مقصودة بين أجزاء مختلفة من برنامج حاسوبي. يحدث هذا في كثير من الأحيان لأن برامج الحاسوب قد تكون معقدة، ملايين من الأسطر الطويلة في بعض الحالات وفي أحيان كثيرة مبرمجة من قبل العديد من المطورين على مدى زمني طويل، بحيث يفقد المبرمجون القدرة العقلية على تتبع كل ظرف ممكن يسمح للأجزاء بالتفاعل. فئة أخرى من الأخطاء تلقب سباق الشروط تقع عندما يتنافس أكثر من خيط على نفس المورد. وضعت صناعة البرمجيات الكثير من الجهد في البحث عن وسائل لوقاية المبرمجين من ارتكاب أخطاء أثناء كتابة البرنامج [7][8] ويشمل هذا:
مراجع
|