Historia błędów oprogramowania zazwyczaj kończy się na irytacji użytkowników i utracie czasu, ale w latach 80. jeden z takich błędów miał tragiczne konsekwencje. Aparat do radioterapii Therac-25, reklamowany jako przełom w leczeniu onkologicznym, stał się przyczyną serii śmiertelnych wypadków. W latach 1985–1987 co najmniej sześciu pacjentów otrzymało dawki promieniowania stukrotnie przekraczające normę, a trzy osoby zmarły w wyniku tych zdarzeń.
Artykuł opublikowany przez Anne Marie Porrello, studentkę informatyki na California Public University, szczegółowo opisuje naturę błędu/wypadku w sześciu znanych przypadkach. Therac-25 miał być urządzeniem nowej generacji, łączącym w jednym kompaktowym systemie dwa tryby działania. Pierwszy pozwalał na terapię wiązką elektronów w leczeniu nowotworów skóry, drugi – na wykorzystanie promieniowania rentgenowskiego do terapii guzów głębokich. Z perspektywy szpitali była to atrakcyjna oferta: dwa tryby leczenia w jednym urządzeniu, przy jednoczesnym ograniczeniu kosztów i miejsca.
Odejście od blokad sprzętowych
Największą innowacją Therac-25 było przejście na sterowanie wyłącznie programowe. Wcześniejsze maszyny, jak Therac-20, posiadały blokady elektromechaniczne, które zapobiegały uruchomieniu niebezpiecznych trybów, nawet jeśli oprogramowanie zawierało błędy. W nowym modelu producent, firma AECL, zrezygnował z tych zabezpieczeń, zakładając, że oprogramowanie jest wystarczająco niezawodne. Decyzja ta okazała się fatalna.
Wyścig z maszyną
Analizy wykazały, że tragiczne wypadki były efektem rzadkiego, lecz powtarzalnego błędu w logice programu. Jeśli operator wprowadzał zmiany w trybie pracy wyjątkowo szybko – na przykład poprawiając błędnie wybraną opcję – oprogramowanie nie nadążało z kontrolą bezpieczeństwa. Maszyna potrzebowała około ośmiu sekund na przełączenie wiązki, lecz szybkie komendy operatorów zakłócały proces i prowadziły do sytuacji, w której pacjent otrzymywał dawkę promieniowania nieprzeznaczoną dla wybranego trybu.
Od urazów do śmierci
Pierwszy udokumentowany przypadek miał miejsce w czerwcu 1985 roku w Marietta w stanie Georgia, gdzie pacjentka doznała ciężkich obrażeń i utraty sprawności ramienia. W kolejnych miesiącach podobne zdarzenia wystąpiły w Kanadzie i Stanach Zjednoczonych. Trzy ofiary zmarły po sesjach radioterapii w latach 1986–1987 w Tyler w Teksasie oraz w Yakimie w stanie Waszyngton. Raporty medyczne wskazywały na poparzenia, uszkodzenia organów i nieodwracalne zmiany w tkankach.
Reakcja producenta i organów regulacyjnych
Firma AECL początkowo unikała odpowiedzialności i sugerowała błędy po stronie operatorów. Dopiero wiosną 1986 roku rozpoczęto szczegółowe dochodzenie, a amerykańska FDA podjęła własne działania kontrolne. Badania potwierdziły, że źródłem problemu był krytyczny błąd w logice programu oraz brak niezależnych zabezpieczeń sprzętowych.
Skandal związany z Therac-25 stał się punktem zwrotnym w podejściu do oprogramowania medycznego. W środowisku akademickim i przemysłowym zaczęto szerzej mówić o konieczności formalnej weryfikacji kodu, rygorystycznych testów i dokładniejszej dokumentacji. Do dziś przypadek ten omawiany jest jako jedna z najbardziej znanych przestrog w historii inżynierii oprogramowania, pokazująca, że w systemach odpowiedzialnych za ludzkie życie najmniejszy błąd może prowadzić do katastrofy.

Pokaż / Dodaj komentarze do: Błąd oprogramowania zabijał ludzi. Dostawali śmiertelne dawki promieniowania