الخطأ البرمجي[1][2][3][4] أو العطب البرمجي[1][2] في عالم الحوسبة هو ارتكاب هفوات في مرحلة تصميم البرنامج الحاسوبي أو أثناء كتابته بإحدى لغات البرمجة. ينتج عن هذا الخطأ غالبا أداء سيئ أو غير منتظر. في الإنجليزية (وحتى غيرها من اللغات) تستعمل كلمة bug عند الحديث عن خطأ برمجي.
عملية تطوير البرمجيات | |
---|---|
نشاطات وخطوات | |
المتطلبات · مواصفة وظيفية البنيان · تصميم البرمجيات التنفيذ · الفحص نشر البرمجيات · صيانة البرمجيات | |
منهجيات | |
أجيل · هندسة برمجيات الغرفة النظيفة · Iterative RAD · RUP · Spiral Waterfall · XP · Lean سكرم · V-Model · TDD | |
اختصاصات داعمة | |
إدارة تكوين البرمجيات توثيق البرمجيات ضمان الجودة Project management تصميم تجربة المستخدم | |
أدوات | |
المصرف · المصحح · Profiler GUI designer · ب ت م | |
أثار هذا الخطأ غالبا ما تصيب البرمجيات ولكنها تصيب أيضا بعض الأجهزة والآلات التي تضبط عملها برمجيات. وأشهر هذه الأخطاء هو خطأ عام 2000 والذي نتج عن سوء تقدير في عملية التعامل مع التواريخ وتخزينها.
تدخل عملية تصحيح الأخطاء في الدورة الحياتية لأي برنامج. في الغالب يصدر مطورو هاته البرامج ترقيعات تصحيحية أو حتى اصدارات جديدة تضيف إلى جانب الخدمات الجديدة تصحيحا للأخطاء السابقة.
الآثار
بعض الأخطاء ليس لها تأثير ظاهر على وظيفة البرنامج، وبالتالي فقد تبقى مختفية وغير مرصودة لمدة طويلة. أخطاء أخرى أكثر اضرارا قد تتسبب في خلل في تنفيذ البرنامج فتعطل أو تجمده وقد يؤدي ذلك إلى الحرمان من الخدمة. صفات أخرى كأخطاء أو ثغرات أمنية قد تسمح على سبيل المثال لمتطفلين من تجاوز الرقابة للحصول على امتيازات غير مسموح بها.
قد يكون للأخطاء نتائج خطيرة للغاية. الأخطاء التي شابت برنامج مراقبة جهاز العلاج الإشعاعي Therac-25 كانت المسؤولة مباشرة عن وفاة بعض المرضى في ثمانينيات القرن العشرين. في عام 1996، فقدت وكالة الفضاء الأوروبية صاروخ اريان 5 (1ما يعادل مليار دولار أمريكي) بعد أقل من دقيقة من إطلاقه، وذلك بسبب خلل في برنامج التوجيه على متن الحاسوب. في يونيو 1994، تحطمت طائرة سلاح الجو الملكي البريطاني من طراز شينوك ما أسفر عن مقتل 29 شخص. في البداية ألصق خطأ بالطيار، ولكن تحقيق Computer Weekly كشف وبأدلة كافية لإقناع مجلس اللوردات أن خطأ برمجي في حاسوب الطائرة هو سبب الحادثة.[5]
في عام 2002، خلصت دراسة من المعهد الوطني للمعايير والتكنولوجيا بتكليف من وزارة التجارة الأمريكية أن للعيوب أو الأخطاء البرمجية تأثيرا هاما لدرجة تكبيد الاقتصاد الأمريكي خسائر قدرت بـ 59 مليار دولار أمريكي سنويا أي نحو 0.6 في المئة من إجمالي الناتج المحلي.[6]
الوقاية
الأخطاء البرمجية هي نتيجة لطبيعة العوامل البشرية في عملية البرمجة. تنشأ الأخطاء من سوء الفهم المتبادل أو السهو الذي يقع فيه الفريق المبرمج أثناء :
- تحديد المواصفات
- التصميم
الترميز في إدخال البيانات والوثائق. يمكن أن تنشأ أخطاء أكثر تعقيدا عن تفاعلات غير مقصودة بين أجزاء مختلفة من برنامج حاسوبي. يحدث هذا في كثير من الأحيان لأن برامج الحاسوب قد تكون معقدة، ملايين من الأسطر الطويلة في بعض الحالات وفي أحيان كثيرة مبرمجة من قبل العديد من المطورين على مدى زمني طويل، بحيث يفقد المبرمجون القدرة العقلية على تتبع كل ظرف ممكن يسمح للأجزاء بالتفاعل. فئة أخرى من الأخطاء تلقب سباق الشروط تقع عندما يتنافس أكثر من خيط على نفس المورد.
وضعت صناعة البرمجيات الكثير من الجهد في البحث عن وسائل لوقاية المبرمجين من ارتكاب أخطاء أثناء كتابة البرنامج [7][8] ويشمل هذا :
- أسلوب البرمجة
- بينما يتكفل المترجم في كثير من الأحيان بالأخطاء المطبعية والنحوية في نص البرنامج، تظهر الأخطاء عادة عندما يقع المبرمج في خطأ منطقي. تم تصميم عدة ابتكارات مختلفة في نمط البرمجة والبرمجة دفاعية لجعل هذه الأخطاء أقل احتمالا أو سهلة الاكتشاف. في بعض لغات البرمجة لا يتم الإشارة إلى بعض الأخطاء المنطقية لأنها قد تحمل معنا آخر مقبول للمترجم.
- تقنيات البرمجة
- تخلق الأخطاء في كثير من الأحيان تناقضات في البيانات الداخلية أثناء تشغيل برنامج. يمكن كتابة برامج للتحقق من اتساق البيانات الداخلية الخاصة أثناء التشغيل. وإذا صادف أن تضاربت يمكن للبرنامج أن يتوقف على الفور بحيث يمكن اكتشاف الأخطاء وتصليحها. بدلا عن ذلك، يمكن للبرنامج إبلاغ المستخدم ببساطة بمحاولة تصحيح التضارب ومتابعة تشغيل.
- تطوير منهجيات
- هناك عدة مخططات لإدارة نشاط مبرمج، بحيث يتم تقليل من عدد الأخطاء.
- لغة البرمجة الدعم
- رمز تحليل
- الأجهزة
مراجع
- "Al-Qamoos القاموس - English Arabic dictionary / قاموس إنجليزي عربي". www.alqamoos.org. مؤرشف من الأصل في 28 فبراير 201927 فبراير 2019.
- "ترجمة و معنى software bug بالعربي في قاموس المعاني. قاموس عربي انجليزي مصطلحات صفحة 1". www.almaany.com. مؤرشف من الأصل في 28 فبراير 201927 فبراير 2019.
- "LDLP - Librairie Du Liban Publishers". ldlp-dictionary.com. مؤرشف من الأصل في 28 فبراير 201927 فبراير 2019.
- "LDLP - Librairie Du Liban Publishers". ldlp-dictionary.com. مؤرشف من الأصل في 28 فبراير 201927 فبراير 2019.
- The Chinook Helicopter Disaster - تصفح: نسخة محفوظة 10 أبريل 2016 على موقع واي باك مشين.
- Software bugs cost US economy dear - تصفح: نسخة محفوظة 22 يناير 2013 على موقع واي باك مشين.
- Huizinga, Dorota (2007). Automated Defect Prevention: Best Practices in Software Management. Wiley-IEEE Computer Society Press. صفحة 426. . مؤرشف من الأصل في 9 ديسمبر 2017.
- McDonald, Marc (2007). The Practical Guide to Defect Prevention. Microsoft Press. صفحة 480. . مؤرشف من الأصل في 24 يوليو 2008.