软件测试的艺术(原书第3版)
上QQ阅读APP看书,第一时间看更新

3.6 同行评审

最后一种人工评审方法与程序测试并无关系(其目标不是为了发现错误),却仍在这里谈到,这是因为它与代码阅读的思想有关。

同行评审是一种依据程序整体质量、可维护性、可扩展性、易用性和清晰性对匿名程序进行评价的技术。该项技术的目的是为程序员提供自我评价的手段。

选出一位程序员来担任这个评审过程的管理员,管理员又会挑选出6~20名参与者(为保持匿名性,6人是最少数量)。这些参与者都应具备相似的背景(例如,不能把Java应用程序员与汇编语言系统程序员编为一组)。要求每名参与者都挑选出两个由自己编写的程序以供评审。其中的一个程序应是参与者自认为能代表其自身能力的最好作品,而另一个则是参与者自认为质量较差的作品。

当所有的程序都收集完毕后,就将这些程序随机分发给参与者。每名参与者拿到4个程序进行评审,其中的两个是“最好”的程序,另外两个则是相对“较差”的程序,但评审人自己并不知道。每名参与者每评审一个程序得花费30分钟,评审完后填写一张评价表。所有4个程序都评审完后,参与者对4个程序的相对质量进行分级。评价表要求评审人用1~10的分值(1代表明确的“是”,10代表明确的“否”),对诸如下面的问题进行回答:

·程序是否易于理解?

·高层次的设计是否可见且合理?

·低层次的设计是否可见且合理?

·修改此程序对评审者而言是否容易?

·评审者是否会以编写出该程序而骄傲?

评审人还应给出总的评价和建议的改进意见。

评审结束之后,参与者会收到自己的那两个程序的匿名评价表,此外还会收到一个带统计的总结,说明在所有的程序中其程序的整体和具体得分情况,以及他对其他程序的评价与其他评审人对同一程序打分的比较分析情况。同行评审的目的是让程序员对自身的编程技术进行自我评价。同样,该过程也适用于企业开发和课堂教学环境。