软件测试基础——PIE模型的原理

文章目录

  • 引言
  • PIE模型
  • 随堂测试

引言

咳咳 QAQ
经历了将近两个月的假期,终于还是要忍受不了社会的毒打(寂寞),回归到学校课堂之中。

PIE模型

那么什么是IE模型呢
在了解PIE模型之前,我们要深入了解一下令我们程序猿深感痛楚的bug。
Bug的类型:

Fault:静态存在于软件中的缺陷,如code写错了。

Error:软件运行时,运行到fault触发产生错误的中间状态。

Failure:Error传不到软件外部,使得用户或测试人员观测到失效的行为。

是不是有种听天书的感觉~~
不急,代我慢慢道来

程序中:如for(i = 0;i

当有Fault的代码,在运行过程中就会导致相应的Error。
如下代码,若将i = 0,打成 i = 1,则会导致 s =2 + 3(正常情况:i = 0,则s = 1 + 2 + 3)
Fault导致的s表现出计算错误,这种 s计算错误为Error。即i = 1 导致 s = 2 + 3这种漏算错误。

当Fault :i=1 导致Error:s = 2 + 3,代码继续运行会导致 平均数average的结果错误,average的计算错误表现在输出,即为Failure。
如果input为(0,1,1,3) 时,虽然导致了error,但是输出中并没有体现出计算错误,这时Failure就不存在。

再看看PLE模型的定义

PIE模型的三个必要条件:

(1)Execution/Reachability:执行必须通过错误的代码

(2)Infection:在执行错误代码时必须触发一个错误的中间状态

(3)Propagation:错误的中间状态必须传播到最后输出,使得观测到的输出结果和预期结果不一致,即失效。
PIE模型实际上就是代码执行到Fault,感染产生Error,传播出去(输出),我们可以观测到Failure失效行为。这就是PIE模型。

随堂测试

了解自己是否掌握上述姿势,请独立完成下述题目

构造一个尽可能简单的程序P(包含两个Fualts: F1和F2),同时构造t1, t2和t3,使得

  1. t1单独执行到F1并且发现Failure;
  2. t2单独执行到F2并且发现Failure;
  3. t3同时执行到F1和F2,并且能够对F1产生Error,但没有Failure。//请标明详细注释

来源:破风小k

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年1月22日
下一篇 2020年1月22日

相关推荐