(承上篇)ide
3.3 如何解决“作很差”工具
如今来看作很差的问题。作很差的主要缘由,是高标准的测试覆盖难以实现。测试
为何要关注测试覆盖呢?由于未覆盖的单位,一般对应未测试的数据分类,也就是说,能够用覆盖率来检查测试的完整性,衡量测试效果。设计
应该在完成功能测试的基础上,统计覆盖率,找出遗漏用例来完成白盒覆盖,而不是功能测试作一遍,白盒覆盖又作一遍。开发
下面,我用一个案例来演示讲解覆盖。it
首先是覆盖率统计,工具能够支持六种覆盖:语句、条件、分支、C/DC(断定条件覆盖)、路径覆盖、MC/DC(修正断定条件覆盖)。
哪些单位没覆盖呢?这个红色且带淡红色背景的,是未覆盖语句;这个T是未覆盖的条件真值;这个F是未覆盖的条件假值;这个M是未覆盖的MC/DC。自动化
淡红色背景的分支是未覆盖分支,淡绿色背景的是已覆盖分支。路径是从入口到出口的路线,这条用绿色画出的是已覆盖的路径。class
这条用红色画出的是未覆盖路径。基础
如何完成覆盖呢?点击未覆盖的单位,好比这个T,右键菜单选择“用例设计”。可视化
工具会自动计算出一个近似用例,所谓近似用例,就是通过最小修改就能够覆盖选中单位的用例。
如何修改呢?工具提供了修改提示,按这个蓝色粗体的提示修改就能够了。这里的提示是A >1,把它改成大于1的数,如2。在实际工做中,输出也要根据功能进行修改,这里忽略。
执行测试后,能够看到刚才那个T已经覆盖了。点击F,打开用例设计器。
这里的提示是B不等于0,把B改成不等于0,好比1。
如今来覆盖这个T。
把X改成大于1的数,如2。
如今,代码这边已经完成所有覆盖了,看一下覆盖率,还有一条路径未覆盖。
在这里选择未覆盖的路径,打开用列设计器。
提示是:A不等于2,X小于等于1,X原本就小于1,不用改它,把A改成不等于2的数就好了,如3。
如今,完成了所有覆盖。
总结
咱们用可视化来解决“不肯作”,用自动化来解决“没时间”,这二者结合起来,就是ETDD开发模式。
形成作不了的主要缘由是代码的耦合关系造成的内部输入问题,咱们用底层模拟来解决内部输入,真正能够作到“不管别人怎么样,我老是对的”。
在覆盖方面,咱们利用工具不只统计覆盖率,清晰标示未覆盖单位,并且,用例设计器能够帮助咱们快速找出遗漏用例,实现高覆盖,解决作很差的问题。
---------------------------------------------------------------------------
(全文完。感谢广大网友的关注和支持!!)