首页 > 代码库 > SWTBOK测试实践系列(3) -- 既然计划永远赶不上变化,我们还要测试计划干嘛?

SWTBOK测试实践系列(3) -- 既然计划永远赶不上变化,我们还要测试计划干嘛?

一天,测试经理老马迟疑着点下了Email的“发送”按钮,长叹一声,往后一仰靠到椅背上。发送这个主题为“回归测试将推迟一周”的通知实为无奈之举啊!一些重要的缺陷开发团队还来不及修复,加上最近几天测试环境的部署经常出现莫名的异常,导致半天都无法测试,原定下周开始的回归测试不得不推迟了!几分钟后,测试人员小王兴冲冲地跑到老马跟前,满脸疑惑地问:“经理,我刚看到你的Email了。又要延期啊!既然我们的测试计划老是在变,干嘛还要定计划?”老马坐正,略带欣慰地说:“这是个好问题!”接下来,让我们和老马一起为小王解惑。

 

首先让我们分析一下“计划为何会常常变化”。通常当我们说“计划15天完成本轮测试”的时候,其实我们想说的是“在开发质量与以前的大部分情况下的质量状况一致(没有大量严重的缺陷)的时候,且当整个测试过程测试环境持续稳定的时候,且当测试资源(包括硬件、软件、测试人员)按照计划得到保证的时候,且测试执行过程中没有大的需求变更的时候,且开发人员能及时修复缺陷的时候。。。依据我们的经验和一定的主观判断,估计15天左右能完成本轮测试。”所以,当这么多的前提能够得到保证的时候,我们才得到了这个计划。换而言之,如果前提之一发生了变化,计划就可能被迫改变。而且,计划制定的时间和实际执行的时间相隔越久,这些前提产生变化的可能性就越大,计划的变化也就更难避免。

 

那么,既然计划常常变化,我们为什么还要计划呢?

首先,现在的计划已经排除了现在就觉得不可行的方案,找到了基于这样那样的前提能得到我们可接受结果的方案。做项目和做生意一样,没有人会开始一桩现在就知道要赔本的买买,也没有人会开发一个明知不能产生收益的项目。做计划,都是基于当下我们的认知水平和掌握的信息作出的我们认为最合理的判断。纵然未来充满着不确定性,但至少通过此刻的计划,我们已经排除了那些我们已经知道不可行的项目。而对于可行的项目,接下来要做的就是去不断监控那些我们已知的影响结果的前提,并对我们当时并没有意识到的新的影响结果的因素进行风险应对。

其次,即使外部条件不变,或者变化不会带来对原有计划的冲击,计划本身也可能产生变化。这是因为随着项目的推进,掌握的新的真实的信息越来越多,计划从粒度、可靠度、准确度上都可以得到一定的提升。有效的计划本身具有不断迭代、渐进明细的特征。从这一角度,变化是计划本身应有的特点,一成不变的计划反而不妥。