软件单元测试之我见
本文是个人对于UT的一些想法和总结,参考时建议请查阅官方资料。 转载请注明出处:http://www.cnblogs.com/sizzle/p/4476392.html 测试思想 编写UT测试代码,通常是为了达到下面几个目的: 在程序可以运行前确认部分模块的正确性。 实行自动测试,减少人力成本。 增加测试手段,降低bug到下游的概率。 明确变更代码时产生的影响。 但是在实际的开发过程中,UT做成后很难达成以上目标,反而会产生一些副作用: UT代码难于编写导致成本增加。 使用UT检测出的bug量少,甚至在初期检测出的bug都是UT编写错误而引入的无效bug。 以上问题发生的原因是开发人员在设计和编码时没有考虑可测试性,导致UT容易发生弊大于利的情况。 在设计和编码时充分考虑可测试性,需要具备丰富的测试经验,而且难于达成,因此产生了”测试驱动开发“(Test Driven Development,简称TDD)。 TDD的测试做成过程很简单,基本可以概括为以下步骤: 根据需求和接口式样书编写测试代码,验证接下来编写的功能代码是否满足期待实现的需求点(此时的测试结果是NG)。 编写功能代码。 确认测试结果,如果NG需要修改功能代码或测试代码,如果OK则从1步骤开始实现下一个需求点或完善功能代码。 总之,TDD过程就是先写期待实现功能的测试代码,然后实装代码使测试通过的。当然