Therac-25 คือเครื่องเร่งอนุภาคเชิงเส้น (Linear Accelerator) สำหรับรักษามะเร็งในปี 1980 ที่ล้ำสมัยที่สุด แต่บั๊กในซอฟต์แวร์ทำให้ผู้ป่วยได้รับรังสีเกินขนาด ส่งผลให้มีเนื้อเยื่อเน่าเปื่อย เป็นอัมพาต และเสียชีวิต
สาเหตุหลักของความผิดพลาด
- พึ่งพาซอฟต์แวร์เกินไป: AECL ถอดระบบความปลอดภัยเชิงกลไกเกือบทั้งหมด
- ปัญหาซอฟต์แวร์: โค้ดคัดลอกจาก Therac-20, เขียนโดยโปรแกรมเมอร์เพียงคนเดียว และไม่ได้ทดสอบอย่างอิสระ
- ความประมาทขององค์กร: ปฏิเสธความรับผิดชอบและตำหนิข่าวลือช่วงแรก
บั๊กร้ายแรง
- Race Condition (Malfunction 54): การแก้ไขข้อมูลเร็วเกิน 8 วินาที ทำให้ระบบค้างและยิงลำแสงอิเล็กตรอนพลังงานสูง
- Arithmetic Overflow: ตัวนับความปลอดภัย 1 ไบต์ ตีกลับเป็น 0 → ระบบเข้าใจผิดว่าไม่มีข้อผิดพลาดและปล่อยรังสีมหาศาล
ผลกระทบ
- ผู้ป่วยได้รับรังสี 17,000–20,000 rads (ปกติ 200 rads)
- FDA ระงับการใช้งาน และกำหนดมาตรฐานเอกสารประเมินความเสี่ยงซอฟต์แวร์
- AECL ยุบแผนกการแพทย์ในปี 1988
- ปัจจุบันใช้เป็นกรณีศึกษาบังคับด้าน จริยธรรมวิศวกรรมและวิทยาการคอมพิวเตอร์ ทั่วโลก
FAQ
Q1: Therac-25 คืออะไร?
A: เครื่องเร่งอนุภาคเชิงเส้นสำหรับรักษามะเร็งที่ล้ำสมัยในปี 1980 แต่เกิดบั๊กซอฟต์แวร์ร้ายแรง
Q2: สาเหตุที่เกิดอุบัติเหตุคืออะไร?
A: พึ่งพาซอฟต์แวร์มากเกินไป, Race Condition, Arithmetic Overflow, และไม่มีการทดสอบอย่างอิสระ
Q3: ผลกระทบต่อผู้ป่วยคืออะไร?
A: ได้รับรังสีเกินขนาด 17,000–20,000 rads ทำให้เนื้อเยื่อเน่าเปื่อย, อัมพาต, และเสียชีวิต
Q4: AECL ปรับปรุงอย่างไรหลังเหตุการณ์?
A: FDA สั่งระงับการใช้งาน, กำหนดมาตรฐานเอกสารประเมินความเสี่ยงซอฟต์แวร์ และ AECL ยุบแผนกการแพทย์
Q5: ทำไมเหตุการณ์นี้สำคัญต่อวิศวกรรมและซอฟต์แวร์?
A: เป็นบทเรียนด้าน จริยธรรมวิศวกรรม, ความปลอดภัยของผู้ป่วย, และการตรวจสอบซอฟต์แวร์ในอุปกรณ์แพทย์