تراژدی تراک-۲۵ و پیامدهای مرگبار باگ نرم‌افزاری پزشکی

باگ نرم‌افزاری مرگبار و فراموش‌نشدنی تراک-۲۵

چهل سال پیش، یک عیب برنامه‌نویسی در دستگاه پرتودرمانی تراک-۲۵ جان چندین بیمار را گرفت. این سانحه به یکی از مهم‌ترین و ترسناک‌ترین درس‌های تاریخ مهندسی نرم‌افزار تبدیل شد.

دستگاه تراک-۲۵ در زمان خود یک پیشرفت بزرگ محسوب می‌شد. توانایی انجام دو نوع پرتودرمانی کاملاً متفاوت — پرتودرمانی با الکترون برای تومورهای سطحی و پرتودرمانی با اشعه ایکس پرقدرت برای تومورهای عمیق — آن را به فناوری پیشرفته‌ای مبدل کرده بود. اما بزرگ‌ترین نوآوری و در عین حال، پاشنه آشیل آن، حذف قفل‌های ایمنی سخت‌افزاری بود. در مدل‌های قدیمی‌تر، حتی اگر نرم‌افزار دچار خطا می‌شد، مکانیسم‌های فیزیکی از فعال‌شدن پرتو خطرناک در شرایط ناامن جلوگیری می‌کردند. اما در تراک-۲۵، کنترل‌ها کاملاً به نرم‌افزار واگذار شده بود و این یعنی یک باگ کوچک می‌توانست فاجعه‌آفرین باشد.

شرایط مسابقه: علت اصلی سانحه تراک-۲۵

به گزارش تامز هاردوور، ریشه این فاجعه یک باگ پیچیده نرم‌افزاری به نام «شرایط مسابقه» (Race Condition) بود. این عیب تنها تحت شرایط خاصی و توسط اپراتورهای باتجربه و سریع فعال می‌شد. سناریوی مرگبار زمانی رخ می‌داد که اپراتور به اشتباه حالت درمانی اشعه ایکس (حالت پرقدرت) را انتخاب می‌کرد. سپس، قبل از اینکه سیستم به‌طور کامل آماده شود، اپراتور متوجه خطای خود شده و حالت را به پرتو الکترونی (حالت کم‌قدرت) تغییر می‌داد.

از آنجا که اپراتور بسیار سریع خطا را اصلاح می‌کرد، نرم‌افزار دچار سردرگمی می‌شد. در این حالت، بخش کنترلر ورودی دستور تازه (حالت کم‌قدرت) را ثبت می‌کرد، اما بخش کنترلر پرتو همچنان در حال آماده‌سازی برای حالت پرقدرت قبلی بود. در نتیجه تداخل زمانی، دستگاه پرتو الکترونی پرقدرت را بدون فعال‌سازی سپر محافظ ملزوم شلیک می‌کرد و دوز کشنده‌ای از تشعشع را مستقیماً به بیمار منتقل می‌کرد.

بین ژوئن ۱۹۸۵ تا ژانویه ۱۹۸۷، حداقل شش حادثه مستند از این نوع رخ داد که منجر به جراحات شدید و مرگ سه بیمار شد. در ابتدا، شرکت سازنده (اِی‌سی‌ال) هرگونه نقص در سیستم خود را انکار می‌کرد، اما با افزایش تعداد قربانیان و آغاز تحقیقات سازمان غذا و داروی آمریکا (اف‌دی‌ای) سرانجام ناچار به پذیرش مسئولیت و بازبینی کامل سیستم خود شد.

بررسی‌های و پیامدهای فاجعه تراک-۲۵

از آن زمان تا به امروز، سانحه تراک-۲۵ به یک مورد کلاسیک در مطالعات علوم کامپیوتر و مهندسی نرم‌افزار تبدیل شده است. این حادثه بر اهمیت آزمایش‌های دقیق، مستندسازی کامل و وجود سیستم‌های ایمنی چندلایه (سخت‌افزاری و نرم‌افاری) تأکید می‌کند.