就“到上位”自检本身的功能正确性来说,有上面SelfTest-001正向用例1条, SelfTest-002、SelfTest-003逆向用例2条,完全达到了对需求点的覆盖要求。
但不好的事情发生了,此产品上市不久,终端用户反馈“自检功能使用失效”。测试部收到这个消息后,每个人都非常诧异。测试经理马上派人进行追查,测试工程师A找出当时的测试记录来看,如表3-2所示,很清楚写着是“PASS”的。用户就是公司的上帝,投诉电话已接到,投诉单很快会收到。于是测试经理亲自再在仪器上进行确认,结果是自检功能好好的。依往常经验,用户的投诉常有描述不准确,或误操作的可能,这已是常有的事了。测试工程师A于是打电话和用户进行沟通,了解问题发生的详细情况。最后了解到“并不是自检功能失效,而是做了自检功能后,接着做一个用到此部件的测量,测量不成功,仪器报故障”。
当测试工程师A了解到此信息后,已明白了事情的一半原因,再进行测试,果真是这样的结果。这条路径测试确实没走到,是用户场景测试的重大遗漏,须马上出ECR(Engineering Change Request,工程变更申请)补救。
事故影响:一旦出现这种使用场景,用户不能正常使用到此部件的测量功能,部分功能丧失。
问题分析:对于测试来说,表面上看是测试用例的缺失,没有像用户那样操作,对用户使用场景缺乏全面足够的认识。而往深层次思考,是缺乏对设计实现原理的理解,而恰好设计对这一点也没考虑周全。正如前面所说,仪器部件A的工作状态任何时候开始前都要在“初始位”。用户投诉的此事件,是因为部件A在自检中途退出时,没有复位,接着使用它,仪器状态不正确,所以上报了故障。理解了原理后,设计相关的测试用例也是自然而然的事了。开发最后解决此问题实际上也是增加了复位命令,即不管部件A当前在哪一个位置,调试完成后,如果当前位不是“初始位”,都要回到“初始位”。
解决措施:紧急解决措施(临时解决)是用户关机,再开机,即重新启动仪器即可。但作为厂家,需考虑用户使用的满意度,彻底解决此问题才是上策。须及时出ECR,以支持已售仪器的全线升级。
案例中的漏测是用例的缺失造成的,但什么原因导致做测试设计时没有考虑到这种情况,是值得重点思考的。也只有从教训中找到防范的控制措施,才能避免类似的问题重复出现。
小贴士:
ISO 9000质量体系相关知识
ECR: Engineering Change Request 工程变更申请
ECN: Engineering Change Notice 工程变更通知
相关链接: