七、用测试来衡量进度

  7.1 衡量测试结果

  基于测试的进度报告能够用一种容易理解的、客观的观点来审视项目进度。在我们的项目中,对每个模块需要报告下面的测试状态:

  ● 全部的测试用例

  ● 通过的测试

  ● 失败的测试

  ● 还未进行的测试

  我们从下面三个主要方面来进行度量:

  ● 一个模块当所有的测试用例都由QA执行过,并测试成功,这个模块算完成了。QA包括内部测试组和用户测试人员。

  ● 测试一个模块需要的测试用例的数目反映了模块的复杂度。虽然不总是这样,但常常如此。

  ● 开发是迭代的:新版本被频繁的交付,测试也需要不停的进行,而不是仅仅在项目的后才进行测试。

  在这些条件下,各个模块的全部进度都可以通过各个模块的测试用例通过的数目来衡量。如果你能可靠的在特定的时间点(里程碑节点),获得各个模块通过的测试用例数、失败的测试用例数和未测试的用例数,可以把它制成如图一所示的表格。

图一:测试状态表

  7.2 模块进度状态

  我从不相信一个开发者说他的一个模块快要完成了。在我的书中,只有所有的测试用例都通过了,一个模块才算完成了。然而,有些被普遍接受的原则认为,如果一个程序,85%的测试用例通过了,可以进行beta版测试了。尽管你理论上认为必须的测试用例通过,才能说产品准备好了,但是我们的用户通常会接受产品,尽管产品还存在一些不严重的问题,并且这些问题在将来能够被修补。因此,我们把模块的“预产品”状态定义为至少95%的测试用例通过并且没有严重的问题。后,我把模块开发过程的阶段划分原则制定出来。

  我们划分成五个状态来表示五个开发阶段,通过测试成功的测试用例的数目来客观的衡量。

  ● 计划阶段:还没有开始编码

  ● 开发阶段:开始编码

  ● beta版本阶段:85%测试用例通过。

  ● 预产品阶段:95%的测试用例通过,没有发现严重的问题

  ● 产品准备好阶段:的测试用例通过

  一旦你有了测试用例通过的百分数,你对模块的开发进度和稳定性有了一个很好的评价。我们将这些数据用图形来表示,写在每周的进度报告中。

  可以将进度表示成紫色的条图,用来指示模块的工作进展。这能够鼓励开发者自发主动的清楚工作的进度。如图2所示。

图2 进度颜色条码图