软件企业对于单元测试的执行情况可以划分为4类:
(1)不做单元测试
(2)组织级要求了开发人员做单元测试,但是开发人员在做单元测试时,测试用例仅覆盖了程序中的正常路径,基本上是一个函数只有一个单元测试用例
(3)组织级要求了每千行代码必须有多少个单元测试用例,一般是在50个/KLOC到100个/KLOC之间。
(4)要求语句覆盖与分支覆盖必须达到100%。
其中(3)、(4)两种情况基本上都是在对日外包的企业中,是日方的客户要求软件开发商必须达到上述要求。
对于(1)、(2)类的客户要想真正的将单元测试在公司内推广起来,需要从下面3个大的方面着手:
1 人员
(1)选择一个推广单元测试的负责人
对该负责人的基本要求:
对单元测试理解比较深刻,做过开发和测试
具有比较好的沟通与管理能力
(2)改变开发人员及项目经理的思想认识
大部分开发人员对单元测试存在排斥心理:
工作量太大,认为得不偿失;
编写测试用例
准备测试数据
覆盖率分析
工期太紧,没时间做;
还要学习单元测试工具,麻烦;
不符合以前的工作习惯。
改变思想不是1、2次培训可以解决的,需要在实践中逐步改变。改变其思想的主要手段有:
培训:要充分准备,让开发人员意识到单元测试是有帮助的,单元测试并不复杂。可以是内部讲师培训,也可以外来讲师培训。外来的和尚好念经,公司内部从上到下会比较重视,内部的员工熟悉公司的业务比较容易结合实际。
试点:要找试点项目,通过试点项目的实例来证明单元测试的有效性,如果选择了试点项目,需要推广测试的负责人花费比较大的精力去指导该项目的试点,确保成功
行政命令:公司定义相应的考核制度,通过考核约束。考核的力量也是无穷的,考核的制度代表了公司的价值观。
(3)树立单元测试的模范人物
任何一项措施,在企业里有反对者也会有支持者,要善于发现支持者,团结支持者,有的员工可能自己已经朴素的实践了单元测试,要树立单元测试的典型人物,榜样的力量是无穷的人,让一个人影响几个人,让几个人影响一群人。
(4)改变领导的思想
领导的思想问题在于没有意识到单元测试的重要性,认为只要做后交付前的系统测试就OK了。对于领导要以事实说话、以数字说话、以标杆企业的最佳实践说话,让领导认识到单元测试的重要性,让领导认识到公司的差距,让领导认可定义的关于单元测试的规章制度。相比而言,领导的思想比开发人员的思想好转变。