软件测试(四) 静态测试

本文是软件测试课程课堂笔记总结

大纲

静态测试

定义:通过检查、评审软件而不是运行软件的方式对软件进行测试,可以手工也可以借助软件进行
对象:主要对各类文档(需求定义等)+源代码进行测试
优点:
1.识别缺陷成本低:识别缺陷的时间成本在静态测试阶段(需求-2.5h、设计-3.5h,代码评审-4h),而动态测试识别缺陷平均花费15-25h
2.人工成本低:不必动态运行程序,不必设计测试用例,充分发挥人的思维逻辑
3.环境条件成本低:实施不需要特别条件,容易开展

静态测试技术与内容

技术
1.代码审查(Inspection):程序员与测试员组成小组,集体阅读、脑补程序执行过程来发现错误
2.代码走查(Walkthrough):类似代码审查,但不是阅读代码而是检验程序逻辑
3.桌面检查:程序员阅读自己所编的程序
4.软件需求分析和设计阶段的技术评审(Review):综合运用走查和审查技术检查软件开发前期的需求分析和设计的文档
内容:
1.需求定义的静态测试
2.设计文档的静态测试
3.源代码的静态测试

代码审查(Code Inspection)

检查代码的四个方面:1.设计的一致性 2.标准的可读性 3.逻辑的正确性 3.结构的合理性
代码审查组:4人 组长、资深程序员、程序编写者、转职测序人员
步骤:准备-程序阅读(深度、广度)-审查会(发现错误)-跟踪报告
错误类型(Myers):数据引用错误、数据声明错误、计算错误、比较错误、控制流程错误、子程序参数错误、输入输出错误、其他错误

代码走查(Code Walkthrough)

代码走查组形式:组长、秘书(记录错误)、测试人员
内容:测试员提供若干测试用例,参会成员将测试用例沿程序逻辑走一遍,测试人员讲述程序执行过程并监视程序状态(变量值)
优点:随测试实例遍历程序逻辑来发现错误
缺点:不如代码审查检查范围广、错误覆盖面全

需求定义的静态测试

定义:需求定义对于用户需求的描述和解释是否完整、准确
步骤:高级审查-底层测试
高级审查:发现大的原理性问题,功能遗漏或者过度复杂的描述
底层测试:在更低的层次测试需求定义,标准有完备性、一致性、正确性、可行性、易修改性、健壮性、易追溯性、易理解性、易测试性可验证性、兼容性

设计文档的静态测试

定义:分析设计是否与需求定义一致
标准:完备性、一致性、正确性、可行性、易修改性、模块性、可预测性、健壮性、结构化、易追溯性、易理解性、可验证性

源代码的静态测试

定义:分析代码实现是否正确、完备
标准:完备性、一致性、正确性、易修改性、可预测性、健壮性、结构化、易追溯性、易理解性、可验证性