软件测试的目的之一就是发现软件中的缺陷。但是,软件缺陷却是没有那么好发现的。
在解释这个原因之前,我们首先介绍下缺陷在不同阶段的不同名称及其含义:
Fault(故障):故障是指静态存在于程序中的缺陷代码,有时也称之为程序缺陷(Defect)。
Error(错误):错误是指程序运行缺陷代码后导致的错误状态。
Failure(失效):失效是指程序错误状态传播到外部被感知的现象。
针对缺陷不同阶段的性质,我们可以构建一个软件测试的基本模型——PIE(Propagation-Infection-Execution)模型来解释缺陷产生的整体过程。
PIE模型指出,软件测试发现一个缺陷需要满足以下三个必要条件:
Execution(运行):测试必须运行到包含缺陷的程序代码。
Infection(感染):程序必须被感染出一个错误的中间状态。
Propagation(传播):错误的中间状态必须传播到外部并被观察到。
所以,根据PIE模型,测试要发现缺陷必须同时满足上述三个条件,即运行、感染和传播。这就解释了为什么测试发现缺陷的困难性,因为有时候测试满足条件1不一定能满足条件2,即测试运行到包含缺陷的代码,但不一定能感染出错误的中间状态;测试满足条件1和2也不一定能满足条件3,即测试能感染出错误的中间状态,但不一定能成功传播出去并被发现。
因此,测试人员要全面发现软件Bug,不仅需要理解需求,针对特定需求和软件特性进行专项设计,还需要善于利用各种软件测试方法。
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取【保证100%免费】

软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。



1364

被折叠的 条评论
为什么被折叠?



