【CSDN 编者按】2018 年 10 月 29 日,印度尼西亚狮航一架波音 737 MAX 8 从首都雅加达起飞 13 分钟后,在附近海域坠毁,机上 189 人无一幸免。

2019 年 3 月 10 日,埃塞俄比亚航空一架波音 737 MAX 8 从首都亚的斯亚贝巴起飞后约 6 分钟,飞机坠落,8 名机组人员和 149 名乘客无人生还。

短短 130 多天,两起事故,346 人罹难,我们沉痛哀悼的同时,也不禁发问,究竟是什么原因导致了空难的发生?

随后根据埃航空难的最新调查报告显示,事故的疑点被指向该机型的控制系统。而最新消息显示,波音总裁丹尼斯·米伦伯格于 4 月 4 日发布声明正式承认两起空难与飞机自动防失速系统“机动特性增强系统”(MCAS)有关。为此,在许许多多的人因软件的 Bug、错误和漏洞而丧失生命的同时,肩负该软件开发的工程师是否有责任?其他软件工程师又能从中吸取什么教训?

作者 | Keri Savoca

译者 | 谭开朗

责编 | 屠敏

出品 | CSDN(ID:CSDNnews)

以下为译文:

波音737飞机的两次重大坠机事故共造成了346人死亡,经过初步调查,该公司的专用软件难辞其咎。

这不是近几年唯一一次因软件的 Bug,错误或漏洞而导致的灾难事件。某些情况下造成了大量的金钱损失,而有些情况甚至造成了重大的人员伤亡。

我们如何确保安全苛求系统的软件的可靠性?软件的失误又总该归咎于人为的失误吗?软件工程师能从中吸取什么教训呢?

历史上的灾难性软件失误

1985到1987年,由软件控制的放射治疗设备Therac-25,因人员疏忽大意而使用了超过规定剂量100倍的大剂量辐射,造成至少5名患者死亡(其他患者重伤)。

2000年也发生过一起类似的事故,由美国公司Multidata开发的软件导致数十名巴拿马患者接受了过量的辐射,其中5人因此而亡。在后续的几年时间里,又共有9名患者离开了人世,很可能同样死于过度辐射。辐射的剂量决定于系统输入数据的顺序,一旦存在差异,错误就发生了——当医生在寻找漏洞以调整软件的可用性时,错误就会加剧。没有反复核查软件计算结果的医生会被控告为谋杀罪。

1991年,一枚弹道导弹击中了沙特阿拉伯的一处美国军营,造成28人死亡,96人受伤。因一个软件的失误而停止了对导弹的拦截。

1997年,一架韩国飞机坠毁而导致228人死亡,其部分责任归咎于近地警告系统编程不良。FFA确认并纠正了该系统错误。虽然人为的失误也是此次坠机的原因之一,但近地警告系统也未能提醒空中交通管制员飞机处于近地面的危险高度。

2018年,优步一款自动驾驶汽车上的软件计算失误导致一位行人死亡。实际上,这辆车的传感器检测到行人了,但认定她是“假阳性”——就像马路上的空汽水瓶一样无关紧要——于是继续行驶。

一些人成功识别出了有缺陷的软件,但并不总能如此。1983年,苏联早期警报系统警报美国向苏联发射了5枚导弹,但负责人认为该警报是误报。但是,我们真的能指望所有的用户识别出软件错误并作出适当的调整吗?尤其是在安全受到威胁的时候。

谁是真正的责任人?

软件引发灾难的原因是多样的,但最紧要的是相关负责人没能检出潜在严重的bug,而且很可能没有尽职尽责的分析bug报告。

苹果FaceTime的漏洞,Facetime允许用户在等待接听FaceTime电话时偷听和监视他人。撰写《与苹果安全团队取得联系如此之难》的作者几乎放弃了。直到一名开发者在一篇广为流传的帖子中提到了这个bug,苹果公司才采取行动。

我在几家大公司中寻找报告软件缺陷的方法——其中的两家公司是Chase(处理敏感数据)和Dodge(已卖出数百万辆汽车)——但我找不到报告软件缺陷的方法。

Chase软件中的漏洞可能不会给用户带来直接的安全隐患,但Dodge软件中的漏洞可能会将用户置于危险之中。

实际情况是——总不能打电话给客服并要求和软件工程师谈一谈吧。

我们可以通过用户报告来了解到更多的小问题和安全问题,但当大型系统上运行的复杂代码事关人命时,又会发生什么呢?

我们应该期望飞行员注意到并曝出波音在飞行中自动化系统的问题或缺陷吗?或者,我们应该期望软件工程师进行频繁、彻底的测试与拓展用户服务吗?我们能期望工程师猜中哪些特性需要额外注意吗?飞行员是否有提前反馈在控制波音737飞机时遇到困难?

如果在代码中错入了正常剂量的辐射值,这些医生是否应该被控告为谋杀罪?对于用户正要用或可能会用到的软件,软件测试人员是否要负责?

有没有办法帮医生在他们的放射管理软件中增加一个新功能,而不是人为的试图避免错误?如果用户能够篡改软件,工程师要承担责任吗?

我们是否应该期望工程师(专攻软件开发)识别并质疑客户(针对软件的任何用途)所提出的漏洞或缺陷/效果欠佳的特性?开发人员如何能知道医生可能在软件中输入的X值呢 ?

软件的开发人员和用户之间是否有充分的沟通?

可以认为用户需对他们使用软件的行为负责,但是当安全受到威胁时又该如何呢?

谁最后来为生命保驾护航?

原文:https://medium.com/swlh/when-software-kills-ab6f48a15825

本文为 CSDN 翻译,如需转载,请注明来源出处。作者独立观点,不代表 CSDN 立场。

Python 成功上位,为什么逐渐与 Java 拉开差距?

https://edu.csdn.net/topic/python115?utm_source=csdn_bw

【End】

 热 文 推 荐 

☞下过富士康工厂、做过华为外包,这位程序员是如何花 6 年逆袭成为技术大佬的?

苹果高通 5G 开战!

我是技术男,也曾创业过,也拿过风投......

身为程序员的父母,你年薪多少才能让“码二代” 不输在起跑线上

搜狗员工吐槽“统计加班时长裁人”,CEO 王小川破口大骂:“赶快滚”

漫话:如何给女朋友解释什么是系统可用性? | 技术头条

EOS现状: 72%应用涉赌被列为高危, 说好的诗和远方, 你竟沦落成了这样?

ICPC 2019国际大学生程序设计竞赛,中国高校未能夺冠

☞刺激!我31岁敲代码10年,明天退休!

System.out.println("点个在看吧!");
console.log("点个在看吧!");
print("点个在看吧!");
printf("点个在看吧!\n");
cout << "点个在看吧!" << endl;
Console.WriteLine("点个在看吧!");
Response.Write("点个在看吧!");
alert("点个在看吧!")
echo "点个在看吧!"

点击阅读原文,输入关键词,即可搜索您想要的 CSDN 文章。

你点的每个“在看”,我都认真当成了喜欢

软件 Bug 引发的致命事故,程序员责任何在?| 技术头条相关推荐

  1. vc6开发一个抓包软件_惊奇软件[21]:这是一个程序员开发的背单词网站,可好用了!...

    惊奇软件 未经授权禁止转载 正文--------------------------------- 哔哩哔哩小破站的UP主们就是厉害...... 就在前几天,小编我想找一款背单词的软件(某百词用的有点 ...

  2. 微信翻译出Bug上热搜,程序员又背锅?

    作者| 伍杏玲 来源 | 程序人生(ID:coder_life) 60s测试:你是否适合转型人工智能? https://edu.csdn.net/topic/ai30?utm_source=cxrs_ ...

  3. dba的前景_运维、测试、程序员,这些技术岗位哪个更有前景?

    在一个初具规模的互联网公司,从业务方面出发,有很多岗位类型,比如运营.客服.市场.产品.设计.技术等等. 在这些大类下面,还要细分各种小类,以技术为例,可分为前端(客户端).后端.测试.运维.DBA等 ...

  4. 程序员如何在技术上提升自己

    程序员如何在技术上提升自己 发表于2014-10-29 09:48| 26529次阅读| 来源CSDN| 111 条评论| 作者钱曙光 社区之星访谈李运华程序员面向对象团队管理 allowtransp ...

  5. 对标阿里P6-P7高级Java程序员的进阶技术路线

    最近部门招聘,很多工程师,包括我在内都参与了内推和面试的过程,经过这次招聘,我发现能够最终拿到offer的人,基本上在看到简历的那一瞬间就已经定下来了,后续的面试只不过是一种验证而已(注意,是验证,而 ...

  6. 程序员如何用技术变现

    如今的中国人,不再羞于谈钱,甚至有些过度追求金钱,这是时代的进步,而程序员拥有编写代码的手艺,作为一名匠人,当然可以通过手艺来赚钱.谈到程序员的变现途径,我们通常会想到的方法有: 接项目 开发小软件 ...

  7. 程序员如何讲清楚技术方案

    最近在评审技术方案,和代码review的时候,遇到刚入行的同学们,很多都讲不清楚技术方案. 具体表现是: – 上来不说需求,直接说算法实现.台下一头雾水,根本不知道设计方案是否合理. – 描述完需求后 ...

  8. 好程序员web前端技术分享媒体查询

    为什么80%的码农都做不了架构师?>>>    好程序员web前端技术分享媒体查询 什么是媒体查询 媒体查询可以让我们根据设备显示器的特性(如视口宽度.屏幕比例.设备方向:横向或纵向 ...

  9. 好程序员web前端技术之CSS3过渡

    好程序员web前端技术之CSS3过渡,css3的transition允许css的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标单击.获得焦点.被点击或对元素任何改变中触发,并圆滑地以动画效果改 ...

最新文章

  1. 顺序表应用6:有序顺序表查询
  2. JS字符串 window.open() window.opener window.name window对象总结
  3. Linux软raid创建和维护
  4. 字符串是单一字符的无序组合吗_计算机二级教程 Python语言程序设计 第6章组合数据类型...
  5. Hadoop hdfs配置
  6. Python+Opencv实现无参数、全自动的Canny算法
  7. 自定义SeekBar 实时显示百分比进度
  8. 【报告分享】2020年国风爆品的进阶之路-详析花西子的社媒营销策略.pdf(附下载链接)...
  9. [短评]企业裁员行为对整个社会的正面意义
  10. Tricks(二十三)—— Python 实现树这种数据结构
  11. sybase 连接mysql_安装sybase服务器并连接数据库
  12. 【Android项目实战 | 从零开始写app(一)】 创建项目
  13. 淘宝618超级喵运会怎么玩 如何获取喵币?
  14. 2月29日,四年一遇的日子!
  15. 开心农场前端程序源码
  16. [转载]铁路订票系统的简单设计
  17. TCP四次挥手中的2MSL是什么?
  18. 讓TQ2440也用上設備樹(1)
  19. 1、电脑鼠标右键反应慢,解决办法
  20. 新浪短连接(t.cn)在线生成工具

热门文章

  1. anaconda + pycharm安装教程补充
  2. 微信python天天学_教你使用python实现微信每天给女朋友说晚安
  3. torch.Tensor.scatter_(dim, index, src, reduce=None)
  4. 新机发布会用鸿蒙吗,鸿蒙操作系统及华为全场景新品发布会即将到来,硬件生态发展有望迎来加速度...
  5. 【QT】QT从零入门教程(四):菜单栏、工具栏、状态栏
  6. Flutter进阶—路由和导航
  7. vs code linux 权限,在linux系统中安装VSCode(Visual Studio Code)
  8. java applet布局_Java:Applet布局问题
  9. 索引添加后,ACCESS数据库表查询运行速度的区别
  10. 国行 iPhone 12/Pro/Max双卡模式支持5G网络;支付宝推出「晚点付」功能;MySQL 8.0.22 GA|极客头条