Програмне забезпечення може приховувати небезпеку, здатну призвести до серйозних наслідків. Одним із найгучніших прикладів стала трагедія, що сталася у 1985–1987 роках із апаратом для променевої терапії Therac-25. Через критичні збої в програмі цей медичний пристрій опромінив шістьох пацієнтів радіацією, що перевищувала допустимі дози у сто разів, внаслідок чого загинули троє людей.
Про це розповідає ProIT
Медичний прорив із фатальними наслідками
У 1985 році Therac-25 позиціонувався як інноваційна розробка для лікарів, адже поєднував два режими лікування в одному компактному апараті. Він дозволяв проводити терапію захворювань поверхневих тканин, зокрема раку шкіри, а також застосовувати мегавольтну рентгенівську терапію для впливу на глибоко розташовані тканини організму. Важливо, що Therac-25 був одним із перших пристроїв, який замість електромеханічних систем безпеки повністю перейшов на програмне керування. До цього подібні апарати мали електромеханічні блокування, які не дозволяли перевищувати безпечні параметри навіть у разі збою програмного забезпечення.
За словами експертів, у Therac-25 залишилися ті ж помилки, що й у попередньої моделі — Therac-20. Проте тоді апаратні блокування гарантували безпеку пацієнтів навіть при збоях програми. В Therac-25 ж відмова від таких блокувань обернулася трагедією.
Причини трагедії та її наслідки
Над дослідженням інцидентів із Therac-25 працювала студентка магістратури з інформатики Каліфорнійського державного університету Енн Марі Поррелло. Вона детально описала обставини шести відомих випадків, коли пацієнти постраждали через цю систему. Причиною збою, як правило, ставало швидке перемикання режимів лікування оператором. Досвідчені користувачі могли так оперативно змінювати параметри, що програма не встигала провести перевірку безпеки. Це створювало так званий “стан перегонів” між обробкою введених даних і контролем променя випромінювання.
Therac-25 потребував приблизно 8 секунд для зміни режиму пучка. Якщо оператор за цей час встигав ввести нові дані, програмне забезпечення плуталося й не виконувало необхідних перевірок. Перший інцидент такого типу зафіксували у червні 1985 року, а останній — у січні 1987 року.

3 червня 1985 року перша пацієнтка в Джорджії, США, після терапії на Therac-25 втратила руку й пережила мастектомію. Вже за місяць у канадській провінції Онтаріо інший пацієнт після процедури мусив пройти повну заміну тазостегнового суглоба.
6 січня 1986 року в США ще один пацієнт отримав інвалідність і рубці. 21 березня того ж року в Техасі стався перший летальний випадок. 11 квітня там же померла ще одна людина, а 17 січня 1987 року у Вашингтоні зафіксовано останню смерть, пов’язану з цим апаратом.
“Після низки смертей, пов’язаних з терапією на Therac-25, почали з’являтись заклики до формальної верифікації, ретельного тестування та покращення документації для усього медичного програмного забезпечення”.
На початку AECL — компанія-виробник Therac-25 — відкидала звинувачення, проте вже навесні 1986 року розпочалося офіційне розслідування інцидентів, до якого долучилося й Управління санітарного нагляду за якістю харчових продуктів і медикаментів США (FDA).
Після трагедії із Therac-25 у сфері медичного програмного забезпечення посилили вимоги до верифікації, тестування й документації. Події навколо цього апарата стали класичним прикладом, що розглядають у курсах з комп’ютерних наук як попередження про важливість безпеки у критичних системах.