之前已经讲了一些白盒测试测试的原理及一些方法,这次,我们从白盒测试出发,讲讲单元测试,相信做过的朋友都了解,今天就线简单说说单元测试的原理。
从重点开始,还是用例设计,单元测试用例的设计方法有很多,先总结单元测试用例的设计原则:
控制每个用例的检查点数目,最好是一个用例检查一个点;用例之间杜绝数据依赖,或者关联影响;用例不仅要覆盖正确情况,还要测试异常情况,检查函数健壮性;用例要尽可能覆盖到较多的逻辑路径;用例要做到对检查点敏感,在功能失效时候能立即反馈。
那么编码实现单元测试用例的过程中,有一些需要注意一下问题:
编码规范性。为了提高程序可读性,建议大家使用匈牙利命名法来命名程序中的变量,方便团队合作
合适的注释。注释不是越多越好,好的注释旨在提供有用的信息,要清楚明了,避免缩写。建议在函数头加上注释,统一列出函数的功能,输入输出参数,返回值,调用场景等;
确保代码和注释的一致性。如果有注释,请在代码变动的同时,维护相应的注释;否则不如没有注释;
减少重复代码。比如每个case中都进行数据初始化,检查数据正确性的操作,就可以把这些提取为辅助函数,便于修改和维护;
充分使用断言。在用例中,如果对某一点的数据状态不清楚,请用assert.一来,如果有数据异常,可以第一时间定位到;二来,可以避免因为数据问题造成用例崩溃;
数据逻辑隔离。可以考虑把用例中的数据和逻辑验证分割开来,既可以方便维护,又使得各个用例清晰易读。
需要注意的是,单测的价值远不止于这种一次性的测试:
一般性用途:定位问题,验证bug;
回归运行:自动化测试,减少手工回归;
持续集成:通过累积单测,并在每一次代码变更时,自动运行单测。达成对代码的实时监控和自动测试;
扩大覆盖:持续积累单测,可以逐步扩大对当前项目的测试覆盖度;
策略参考:每一个case的检查点都是对策略的解读,读懂白盒case,也就明了了代码策略。
这次从单元测试的设计、实现、价值等简单叙述了,之后在从实例上写写单元测试的调试问题。