مابين العامين 1985 و1987، أخطأ الجهاز المعالج لمرض السرطان بالإشعاعات مما أدى إلى العديد من الوفيات والاصابات المتعددة للآخرين. وكانت المشكلة في الجهاز المبرمج، لأن الجهاز يحسب الجرعات التي سوف يتناولها المريض بصورة خاطئة، حيث أنه كان يعتمد على المدخلات من الجرعات ولكنه بشكل خاطئ، أصبح يحسب أضعاف هذه الجرعات مما أدى إلى هذه الكارثة الطبية والبرمجية وتمت محاكمة القائمين علي هذا المشروع.[1]
وكانت أسباب هذة الكارثة ليس الجزء الخطأ في الكود ولكن أيضا اخطاء القائمين على المشروع لأنهم لم يقوموا بتطبيق هندسة البرمجيات فكان يجب الاهتمام بمرحلة التجريب (testing) و بالأخص لأن هناك حالات خاصة يمكن للكود ان يعجز عنها فيتصرف الجهاز المعالج بشكل غير صحيح كما حدث في هذه الحالة.
لذلك الخطأ ليس واقع على الجزء الخطأ في كتابة الكود وحسب، ولكن المسؤلية مشتركة مع عدم تطبيق مبادئ هندسة البرمجيات لذلك المشكلة تقع في الأساس على المجرب (tester)، لان وظيفة الـtester هي وضع الحالات الخاصة والمعقدة في الكود حتى يكتشف ما إذ كان الكود يعمل جيدا أو لا.
فعندما تقوم شركة بعمل مشروع ضخم مثل هذا فيكون جزء كتابة الكود جزء معقد جدا فيجب على إدارة المشروع ان تنتبه إلى هذه النقطة الهامة فيجب أن تضع في اعتبارها أن من يكتب الكود من الممكن جدا ان يخطأ فيجب أن تجهز فريق كبير من الذين يختبرون هذا الكود وأن يضعوا حالات خاصة لكي تخضع للاختبار.
ففي هذه الكارثة المسؤولية تقع على من يكتب الكود وعلى من قام بعمل الاختبار له ولكن المسؤولية الأكبر هي على من يختبر الكود.
مراجع
- كوارث أخطاء البرمجة . نسخة محفوظة 27 يونيو 2017 على موقع واي باك مشين.