软件测试MOOC

Author Avatar
YZ 4月 16, 2018

软件测试基础

1.2 PIE模型【Execution,Infection,Propagation】

  • Fault:静态存在于软件代码中的缺陷,coding过程中的错误【缺陷】
  • Error:运行到Fault,触发了错误的中间状态
  • Failure:失效,Error一直传送到软件外部,用户可以看出失效行为

观测到Failure的三个必要条件:

执行必须通过错误的代码;感染(触发错误的中间状态);传播(输出,可以观察到)

Fault不一定Error;Error不一定Failure;这也是为什么Fault会隐藏在软件中;

1.3 测试术语

  • 测试用例:测试输入,测试预言(Test Oracle),测试环境
  • 测试与调试:测试发现bug(执行软件观察是否失效),调试修复bug(找到fault修正)
  • Verification确认文档与实现是否一致 vs Validation确认规格文档;测试属于Verification;
  • Static Testing(严格来讲不是测试,不执行程序) vs Dynamic Testing(本节课)
  • 黑盒测试(运行程序,无需知道内部信息) vs 白盒测试(源代码,通过内部结构等分析可能存在的问题)
  • 介于黑盒&白盒测试有灰盒测试(通过其他软件制品或反编译等获得程序的部分结构信息,进而进行测试)
  • 测试层次:单元测试(一个函数方法)、模块测试(模块级别输入输出)、集成测试(模块组合)、系统测试
  • V model:尤其移动互联网开发(短平快)Vmodel已不再适用

1.4 Fault反思

如何确定Fault? 断点调试如何确定错误的中间状态? 规格文档判断Failure比较可行。

白盒测试

2.1 测试中的图

功能测试

4.1 图形化界面的功能测试

正确性 可靠性 易用性