单元测试进阶之路

2016-09-07   出处: 搜狗测试  作/译者: lmy

                                                 

前面两篇文章里,讲述了如何评估测试范围,介绍了白盒测试入门基础。本篇转向实战,沿着项目实践的时间线,从单元测试的设计、实现、调试和剩余价值四方面分享小编的所思所想。

Part1: 单元测试用例设计

单元测试用例的设计方法有很多,不再一一赘述。这里讲讲单元测试用例的设计原则。

a.控制每个用例的检查点数目,最好是一个用例检查一个点;

b.用例之间杜绝数据依赖,或者关联影响;

c.用例不仅要覆盖正确情况,还要测试异常情况,检查函数健壮性;

d.拒绝无谓的断言;

e.用例要尽可能覆盖到较多的逻辑路径;

f.用例要做到检查点敏感,在功能失效时候能立即反馈。

Part2: 单元测试用例实现

编码实现单元测试用例的过程中,需要注意一下问题:

a.编码规范性。为了提高程序可读性,建议大家使用匈牙利命名法来命名程序中的变量,方便团队合作

b.合适的注释。注释不是越多越好,好的注释旨在提供有用的信息,要清楚明了,避免缩写。建议在函数头加上注释,统一列出函数的功能,输入输出参数,返回值,调用场景等;

c.确保代码和注释的一致性。如果有注释,请在代码变动的同时,维护相应的注释;否则不如没有注释;

d.减少重复代码。比如每个case中都进行数据初始化,检查数据正确性的操作,就可以把这些提取为辅助函数,便于修改和维护;

e.充分使用断言。在用例中,如果对某一点的数据状态不清楚,请用assert.一来,如果有数据异常,可以第一时间定位到;二来,可以避免因为数据问题造成用例崩溃;

f.数据逻辑隔离。可以考虑把用例中的数据和逻辑验证分割开来,既可以方便维护,又使得各个用例清晰易读。


Part3: 单元测试用例调试

用例编写完成后,难免会有fail或者崩溃,这时需要调试,确认问题原因,如果是开发代码问题,恭喜你,找到了bug。

小编总结了几个工作中常用到的调试技巧:

a.ctrl+F10 跳到当前光标处,即使目标代码位于独立的类或方法中,你仍然可以从当前正在检查的地方跳过去;

b.条件中断

c.记录到达断点次数:

d.跟踪点:是种特殊的断点,当它被命中时,它会触发一系列自定义操作。如果你想观察程序的行为,而又不想中断调试的时候,这个功能尤其有用

e:善用AddWatch跟踪变量数值变化

Part4: 单元测试用例价值

辛辛苦苦写的单元测试用例,测试完成就没用了吗?No!

单测的价值远不止于这种一次性的测试,我们可以:

a.一般性用途:定位问题,验证bug ;

b.回归运行:自动测试,减少手工回归;

c.持续集成:通过累积单测,并在每一次代码变更时,自动运行单测。达成对代码的实时监控和自动测试;

d.扩大覆盖:持续积累单测,可以逐步扩大对当前项目的测试覆盖度;

e. 策略参考:每一个case的检查点都是对策略的解读,读懂白盒case,也就明了了代码策略。

声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
269° /2695 人阅读/0 条评论 发表评论

登录 后发表评论