1、单元测试
XXXX作为一个新项目,和其他所有项目一样,在开发工作进行之初就在考虑如何保证代码开发的质量。答案很容易找到:充分的单元测试。但是以前真正做得好得项目却不多。
经过分析,总结了一下做好单元测试工作的四个要素:
――思想上的重视
――计划上保证
――测试手段保证
――测试效果的可验证
1.1 思想上重视
从以往的开发过程总结了一些教训:
――开发人员模块在交付联调前,测试不充分,导致联调周期较长
――代码进入维护期后,修改代码往往引起不可预期的错误。导致开发人员比较害怕在相对稳定的代码上进行修改。
由于有这些教训,所以在编码之前,项目从领导到员工都很重视单元测试工作。
1.2 计划上保证
计划制定经过了XXXX的分解流程,XXXX分解小组成员讨论时充分意识到了单元测试工作的必要性,也意识到了为之要付出的代价。最终确定了单元测试和代码开发的比重为2:1左右。以操作维护的配置模块为例,最终制定的计划如下:
从计划中可以看出,花在单元测试上的时间和代码开发的时间的比重甚至超过了2:1。
附:表方法测试代码和被测代码的行数统计数据(该部分测试覆盖率已达95%以上)
从数据看来,我们当初的估计是对的。测试代码行数和被测代码行数的比值大致是2:1
1.3 测试手段保证
1.3.1 测试框架
对于一个系统工程来说,一个好的框架是至关重要的。一个好的框架应该有如下一些特点:
――结构清晰。不同的粒度层次在框架中一目了然
――可扩展性良好。
我们选择单元测试工具就是为了满足能基于该工具搭建一个好的单元测试框架,另外还有以下几个方面的考虑:
――整个开发组负责三个模块:数据库,操作维护,传输。每个模块由不同的开发人员负责。从测试代码的可维护性考虑,需要统一各人编写测试代码的框架以及风格
――前台代码是由C语言编写的
――单元测试应该是可回归的,自动化的
最终我们选择了Cunit,因为Cunit完全符合我们的要求。