软件测试MOOC
软件测试基础
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 图形化界面的功能测试
正确性 可靠性 易用性