تخطي إلى المحتوى الرئيسي
علوم حاسوب GCSE والمستوى المتقدم

اصطياد الأخطاء: أخطاء برمجية شهيرة كلَّفت الملايين

Sudershan Soniبقلم Sudershan Soni 28 July 2026 7 دقائق قراءة

علامة ترقيم واحدة مفقودة دمَّرت صاروخاً بقيمة ملايين الدولارات، ثوانٍ بعد الإطلاق. خطأ تقريب كاد يُحطِّم افتتاح بورصة أوراق مالية. الأخطاء البرمجية الأغلى في تاريخ البرمجيات ليست تقريباً أبداً أخطاءً دراماتيكية ومعقدة — إنها صغيرة ويسهل تجاهلها، صادف وقوعها في المكان الخاطئ بالضبط.

مارينر 1: علامة الترقيم التي كلَّفت صاروخاً

في 1962، دُمِّر مسبار مارينر 1 التابع لناسا من قِبل التحكم الأرضي بعد أقل من خمس دقائق من الإطلاق، بعد أن بدأ برنامج توجيهه بإصدار أوامر توجيه خاطئة بشدة. عاد السبب الجذري إلى حرف واحد مفقود في معادلة توجيه مُنسوخة يدوياً — صيغة تنعيم كان من المفترض أن تُتوسِّط تباينات المستشعر الصغيرة عاملت بدلاً من ذلك كل تذبذب صغير كتصحيح مسار حقيقي وعاجل، مُرسِلةً الصاروخ خارج مساره المقصود.

DO 5 I = 1.10intended: DO 5 I = 1,10 (a loop) — one typo (. instead of ,)DO5I = 1.10read as: create a variable and assign it 1.10 — no loop at all

حرف واحد مفقود غيَّر صيغة تنعيم إلى شيء يقرأ كل تذبذب صغير في المستشعر كأمر توجيه حقيقي — فرق ضئيل بنتيجة كارثية.

لماذا تُسبِّب الأخطاء الصغيرة أكبر الكوارث

الخطأ الكبير والواضح يُلتَقَط عادةً بسرعة — يتعطل البرنامج فوراً، أو يُنتِج إجابة خاطئة بوضوح يلاحظها شخص ما في الاختبار. الأخطاء التي تُسبِّب ضرراً حقيقياً هي دائماً تقريباً تلك الدقيقة كفاية للنجاة من الاختبار والوصول إلى الإنتاج: خطأ انزياح بواحد في حلقة، افتراض تقريب لا ينكسر إلا عند قيمة غير عادية، شرط صحيح 99.9% من الوقت وخاطئ كارثياً بقية الوقت. كلما كان الخطأ أصغر وأهدأ، زادت الأماكن التي يمكنه الاختباء فيها.

ما الذي غيَّرته هذه الإخفاقات فعلياً

أصبح فشل مارينر 1 دراسة حالة معيارية في تعليم هندسة البرمجيات، وأثَّر مباشرةً على كيفية مراجعة الكود بالغ الأهمية للمهمة — فكرة أن خطأ نسخ واحد يمكن أن يصل إطلاقاً إلى نظام توجيه حي دون فحص ثانٍ هي بالضبط ما توجد مراجعة الكود الحديثة والاختبار الآلي والتحقق الرسمي لمنعه. كل خطأ تاريخي شهير هو، بمعنى حقيقي، السبب وراء وجود ضمانة هندسية محددة اليوم. إذا كان تصحيح الأخطاء أو الاختبار أو ممارسة هندسة البرمجيات تحتاج شرحاً كمهارة مهنية حقيقية بدلاً من مادة للامتحان فقط، فهذا بالضبط ما بُني حوله تدريسنا لعلوم حاسوب GCSE — انظر مسار التعلم الكامل هنا.

أسئلة شائعة

هل كان خطأ الواصلة في مارينر 1 حرفاً واحداً فعلاً؟

النسخة الأكثر تكراراً من القصة هي واصلة مفقودة (أو خط علوي، في تدوين FORTRAN الأصلي) في معادلة توجيه، مما تسبب في إساءة تفسير برنامج الصاروخ لصيغة وإصدار أوامر توجيه خاطئة — دُمِّر الصاروخ عمداً بعد أقل من 5 دقائق من الإطلاق لمنعه من الاصطدام بمنطقة مأهولة. يتجادل بعض المؤرخين حول التفصيل التقني الدقيق، لكن الدرس الأساسي — خطأ صغير يسهل تفويته يُسبِّب فشلاً كارثياً — موثَّق جيداً.

لماذا تحدث أخطاء "الانزياح بواحد" كثيراً؟

لأن العد في الكود غالباً يبدأ من 0، لا 1 — العنصر الأول في قائمة عادةً في الموضع 0، لا الموضع 1 — ومن السهل جداً كتابة حلقة أو شرط منزاح بموضع واحد بالضبط في أي اتجاه. إنها من أكثر فئات الأخطاء شيوعاً في البرمجة كلها، تحديداً لأن الخطأ صغير جداً وسهل ارتكابه دون ملاحظة.

ما الذي يمنع فعلياً أخطاء كهذه من الوصول إلى الإنتاج اليوم؟

الاختبار الآلي (تشغيل الكود مقابل نتائج متوقعة معروفة قبل شحنه)، مراجعة الكود (شخص ثانٍ يتحقق من المنطق قبل دمجه)، ولغات مُصنَّفة بصرامة أكبر تلتقط بعض فئات الأخطاء قبل تشغيل البرنامج حتى. لا شيء من هذا يضمن صفر أخطاء، لكنها تلتقط الغالبية العظمى من نوع الأخطاء الصغيرة يسهل تفويتها التي تسببت في أشهر الإخفاقات التاريخية.

هل كان هذا المقال مفيداً؟

أخبرنا برأيك — تصحيح، سؤال لم تتم الإجابة عنه، أو موضوع تودّ أن نغطيه لاحقاً.

Sudershan Soni

عن الكاتب

Sudershan Soni

المؤسس والمدرّس الرئيسي في موستاك — مدرّس رياضيات وعلوم وعلوم حاسوب و STEM حاصل على الماجستير بخبرة تتجاوز 20 عاماً، يدرّس الطلاب من اختبار +11 و GCSE حتى A-Level وما بعده، عبر الإنترنت حول العالم.

اقرأ الملف الكامل

هل تريد علوم حاسوب تبني فهماً حقيقياً؟

الدروس الفردية تبني مهارة تصحيح أخطاء حقيقية، لا مجرد حفظ صياغة. احجز جلسة مجانية وسنريك كيف.