测试工作有时也能人命关天?

提起波音公司,大家首先想到的是什么呢?是美国最大的飞机制造商吗?还是军用及民用航空领域的霸主?过去你这么说并不奇怪,可是最近,这家公司的日子却不太好过呢:半年内两起重大空难,737 MAX 8机型被多个国家和地区列入禁飞期,市值暴跌300多亿美元,被自家公司的股东起诉到法庭……

而这背后的直接原因是一个叫做MCAS的自动化系统。小编先带大家简单认识一下MCAS。

MCAS是一套自动化的飞行安全系统,设计初衷是控制飞机飞行迎角超过给定极限值后,自动操纵飞机低头,避免迎角过大导致的飞机失速。

而在出现空难的737 MAX 8机型当中,该系统由于获取了错误数据,在不应启动的情况下开启,使飞机坠毁并造成了严重的事故。

读者可能会好奇,自动化系统作为人工的辅助,在出现错误操作的时候,飞机飞行员不能及时发现并给出正确指令吗?

其实在最近的埃塞俄比亚空难之后,根据飞行数据可以判断,飞机起飞之后出现过多次MCAS系统的错误操作,飞行员在起飞后也一直在与MCAS“争抢”飞机的控制权,试图阻止MCAS将飞机向低头的方向操纵。但由于MCAS始终在接收来自故障传感器的错误数据,因此飞机“自动低头”的指令一直没有停止,最终飞机还是坠毁了。

看似简单的一个异常情况,与波音联系在一起时竟能导致这种重大事故和灾难。由此我们不妨反思一下作为测试人员,怎样来保证质量?

简单来说呢,任何一个产品在正常情况下能够保证正常工作,这是最基本的要求。其实往往需要我们特别关注的是产品对待异常情况的处理。Steve Miller在《Top 10 Negative Test Cases》一书中总结了一些常用的应对异常测试的用例点,在此分享给大家。

1. 输入特殊符号。大多数基于SQL的数据库系统在用户存储包含一个单引号的信息时会出现问题,例如John's car。

2. 字段类型测试。如果需求中已清楚地指出了输入内容的类型要求(比如日期、电话号码、邮编等等),测试中不妨使用规定类型以外的数据来进行验证。

3. 字段长度测试。需求中应该指出可以在字段中输入的字符数(例如,用户的昵称不要超过20个字符等),写测试用例时要保证你只可以输入特定的字符数。当然对于没有长度限制的输入区域,最好也能验证一下无限输入是否会出错或造成崩溃。

4. 数字型的边界测试。对于数字型的字段,测试上下边界是非常重要的。例如,如果你正在计算某个账户的利息时,你永远不会输入一个负的利息数给应该赢取利息的账户。因此,你应该尝试用负数测试。同样,如果需求当中要求某字段在一个特定的范围,如10~50内,你就应该尝试输入9或51,此时用户应该得到一个合理的错误提示。

5. 日期的有效性。对于日期字段,确保不允许无效的日期是很重要的(例如,2019年4月31日是一个无效的日期)。测试用例也应该检查闰年。

6. 必需输入的字段。如果需求中指出某些字段是必须提供的,那么当这些字段为空时就属于异常,用户应该得到必要的提示信息。

可以想象,像波音这种老牌公司对待产品质量也不会特别放松或大意的,但是有时在面对利益和标准进行选择时,守护质量的底线往往就是难上加难。而从另一个角度来看,能够保证品质,才能够保证长远的利益。

原文发布于微信公众号 - 搜狗测试(SogouQA)

原文发表时间:2019-04-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券