测试猿课堂沿着项目实践的时间线,从单元测试的设计、实现、调试和剩余价值四方面展开描述。
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,也就明了了代码策略。