3.4 代码走查
代码走查与代码检查很相似,都是以小组为单位进行代码阅读,是一系列规程和错误检查技术的集合。代码走查的过程与代码检查大体相同,但是规程稍微有所不同,采用的错误检查技术也不一样。
就像代码检查一样,代码走查也是采用持续一至两个小时的不间断会议的形式。代码走查小组由三至五人组成,其中一个人扮演类似代码检查过程中“协调人”的角色,一个人担任秘书(负责记录所有查出的错误)的角色,还有一个人担任测试人员。关于这三到五个人的组成结构,有各种各样的建议。当然,程序员应该是其中之一。我们建议另外的参与者应该包括:
·一位极富经验的程序员;
·一位程序设计语言专家;
·一位程序员新手(可以给出新颖、不带偏见的观点);
·最终维护程序的人员;
·一位来自其他不同项目的人员;
·一位来自该软件编程小组的程序员。
开始的过程与代码检查相同:参与者在走查会议的前几天得到材料,这样可以专心钻研程序。然而走查会议的规程则不相同。不同于仅阅读程序或使用错误检查列表,代码走查的参与者“使用了计算机”。被指定为测试人员的那个人会带着一些书面的测试用例(程序或模块具有代表性的输入集及预期的输出集)来参加会议。在会议期间,每个测试用例都在人们脑中进行推演。也就是说,把测试数据沿程序的逻辑结构走一遍。程序的状态(如变量的值)记录在纸张或白板上以供监视。
当然,这些测试用例必须结构简单、数量较少,因为人脑执行程序的速度比计算机执行程序的速度慢上若干量级。因此,这些测试用例本身并不起到关键的作用;相反,它们的作用是提供了启动代码走查和质疑程序员逻辑思路及其设想的手段。在大多数的代码走查中,很多问题是在向程序员提问的过程中发现的,而不是由测试用例本身直接发现的。
与代码检查相同,代码走查参与者所持的态度非常关键。提出的建议应针对程序本身,而不应针对程序员。换句话说,软件中存在的错误不应被视为编写程序的人员自身的弱点。相反,这些错误应被看做是伴随着软件开发的艰难性所固有的。
与代码检查过程中描述的相似,代码走查应该有一个后续过程。同样,代码检查所带来的附带作用(如可以发现易出错的程序区域,通过接触软件错误、编程风格和方法来获得教育等)同样也会发生在代码走查过程中。