Ch 6. 检查代码
本章主要描述静态白盒测试的优势、类型、技术,此外也将介绍有关编码规范和标准、如何从整体审查代码错误。
静态白盒测试:检查设计和代码
静态白盒测试是在不执行软件的条件下有条理地仔细审查软件设计、体系结构和代码,从而发现错误的一种测试方法。有时称为结构化分析。
静态白盒测试是对动态黑盒测试的一种补充,以便在软件开发的早期阶段发现那些在黑盒测试难以发现或隔离的软件缺陷。
静态白盒测试能够为黑盒测试员提供那些容易产生缺陷的软件代码范围,从而更好地设计和应用测试用例。
正式审查
正式审查——也就是进行静态白盒测试的过程——通常包含四个基本要素:
- 确定问题:审查的目的是找出软件的问题,而非指责参与者。
- 遵守规则:要提前制定好一套适用于代码审查的规则,为审查提供一个框架。例如评审多少代码、从何种角度审查代码等。重要的是,让每个参与者知晓自己的责任。
- 准备:每个参与者都需要为审查做准备,包括阅读代码、准备问题、准备解决方案等。
- 撰写报告:审查结束后,需要撰写一份报告,记录审查过程中发现的问题和解决方案。报告应当尽快通知到相关人员,以供他们及时解决。
一旦正式审查的流程确定下来,就应该严格地按照既有的固定流程完成审查,否则可能会导致审查的效果不佳。
注意
要注意的是,不要以“为了写报告而写报告”的心态来进行审查。审查的目的是找出问题,而非为了写报告;报告本身的格式规定和要求也是为了更好的可读性。
千万别本末倒置。
审查的方式
- 同事审查(或者伙伴审查):由团队内的其他成员进行非正式的审查。可以是开发者之间,也可以有测试员参与。
- 走查(Walkthrough):编写代码的程序员向其他程序员和测试员组成的小组做正式陈述,审查队伍中应当尽可能包含一位高级程序员。通过汇报和提问-解答的方式发现代码中的缺陷,并在事后编写报告,描述问题并给出解决问题的计划。
- 检验(Inspection):最正式的审查方式,要求每一个参与者都要提前准备好,审查的过程中要有一个记录员记录问题和解决方案。审查小组的成员按角色分工,从用户、测试员或产品支持人员的角度阅读代码,以发现问题。
- 与前二者最大的区别在于做汇报的人非编写者,这迫使他阅读和学习代码,从而可能发现编写者忽略的问题。