软件测试|缺陷的生命周期是怎么样的
问题
一个缺陷的生命周期是怎么样的?
考察点
面试官想了解:
是否了解缺陷测试
技术点
涉及的技术点:
缺陷测试
回答
在回答缺陷的生命周期的时候,我们首先要知道对应的软件缺陷是什么?以及缺陷的处理流程是什么?
缺陷
那么什么是软件缺陷?其实,软件缺陷一般被我们叫做 Bug。对应的软件缺陷,就是我们所测试的程序中存在的无法正常运行或功能有相关缺陷。
那为什么会关注软件缺陷呢?其实是因为 Bug 的存在导致被测产品在某种场景下不能满足用户的需求。
IEEE729-1983 对缺陷的标准定义:
从产品内部看,缺陷是软件产品开发或维护过程中存在的错误、毛病等各种问题;
从产品外部看,缺陷是系统所需要实现的某种功能的失效或违背。
缺陷的生命周期
其实缺陷的处理过程和缺陷的生命周期是同一个含义。
生命周期就是它的一个整体的处理过程,即一个缺陷从创建到关闭的全过程。
一个缺陷可能会经历几种不同的处理流程,根据它的不同处理方式分为以下几种:
最短的第一种处理流程
当测试人员发现 Bug 后,提交相关的缺陷场景描述及现象,即 缺陷的状态为 New。
测试人员在创建缺陷之前首先应该保证,这个缺陷是没有被提过的,以免造成有重复的缺陷。
创建时会指定给开发,缺陷创建成功后,对应的开发确认缺陷,即 缺陷的状态为 Open。
开发接收到一个缺陷时,首先是根据测试人员的描述对缺陷进行分析及重现,如果发现不是缺陷或缺陷对应的场景无法复现,则需要将缺陷直接重新指派给测试人员,并注明原因。
当开发确认缺陷并解决完后,此时 缺陷的状态为 Fixed,并当前缺陷被重新指派给测试人员。
测试发现缺陷的指派更改后,进行当前缺陷的回归测试,若通过,则关闭缺陷,即 缺陷的状态为 Close。
以上,为最短的一个流程缺陷的处理方式,即确认缺陷并及时解决。
第二种处理流程
当测试人员发现 Bug 后,提交相关的缺陷内容,即 缺陷的状态为 New。
创建时会指定给开发,缺陷创建成功后,对应的开发确认缺陷,即 缺陷的状态为 Open。
当开发确认缺陷并解决完后,此时 缺陷的状态为 Fixed,并当前缺陷被重新指派给测试人员。
测试发现缺陷的指派更改后,进行当前缺陷的回归测试,测试未通过,重新添加对应描述并指派给开发继续解决,此时 缺陷的状态为 ReOpen。
以上,为缺陷的一个二次处理方式,即缺陷虽然确认但是解决后的二次验证未通过。
第三种处理流程
当缺陷关闭后,由于某些原因,导致该缺陷场景再次复现,则测试人员把已关闭的缺陷需要重新打开并再次指派给相关研发,此时 缺陷的状态为 ReOpen。
该处理流程为缺陷的重新打开。
第四种处理流程
当测试人员提交缺陷,对应的开发人员也确认缺陷。但是由于该缺陷的触发场景为某些外在的极端条件,或者该缺陷的更改需要对架构进行调整,以至于该缺陷的解决优先级比较低,则对于开发而言可以暂时对该缺陷不进行处理,先挂起状态,等下个大版本发版时修复即可。则此时 缺陷的状态为 推迟 Postponed 或 挂起 Hang
第五种处理流程
当测试人员提交缺陷,对应的开发人员也确认缺陷,但是缺陷是由于对需求文档理解有偏差误解导致,那么研发人员可以将这些缺陷标为拒绝修复,则此时 缺陷的状态为拒绝修复。
总结
以下为缺陷生命周期对应场景的流程示意图:
评论