单元测试相关问题

1、单元测试的单元选取

  单元测试,测试对象是单元,似乎很简单,但是单元选取不合理是很多人在做单元测试时候容易犯得到错误。

  比如C语言编程,很多人直接就把每个函数作为单元来对待,把函数作为单元并没有错,错的是并不是所有的C语言函数都是单元。

  我们在选取单元的时候要注意两点:单元应该高内聚、低耦合

  • 高内聚就是一个单元应该是一个实现一定逻辑功能的相对完整的单元,做单元测试我们经常要对一些函数作桩来代替依赖函数的功能,而高内聚保证我们一般不需要在单元的内部做桩;
  • 低耦合就是,单元逻辑边界应该比较清晰稳定,这样单元测试通过逻辑边界接口来驱动单元的时候,单元测试用例的稳定性相对比较好,不至于经常一点小小的变化就要对单元测试用例做大规模变更。

  2、单元测试的度

  到底单元测试应该做到什么度呢?当然不是那么简单,很多项目在没有正确答案的情况下都用白盒覆盖率来衡量,比如语句覆盖80%,分支覆盖60%等等,项目组以为达到覆盖率目标就可以了,殊不知这样恰恰是顾了指标忘了目标,特别白盒覆盖率指标,这些指标只是用来进行辅助判断的,根本的还是应该关注单元的逻辑功能的覆盖,通过代码覆盖率的不足来分析这些代码涉及的逻辑功能测试上的场景缺失。

  那么到底如何做单元测试呢?这里给大家推荐一个方法,那就是软件质量分级。因为不同的单元对于质量的要求不同,因此我们针对不同的单元可以采取不同的质量方法。对于低质量要求的单元,我们可以只进行基本的代码走读等基本代码质量保障活动就可以了;一般的交付质量要求的单元,我们除了基本的代码走读之外,一般要求至少100%的代码语句覆盖和基本代码静态检查;一些质量高的单元可能还需要增加更加深入的覆盖,比如80%的分支判定覆盖,增加动态检查等;对于最高质量要求的单元,除了上面的我们可能还得考虑其他办法,比如不同的编译器,多种不同的静态检查、动态检查等。通过分级的单元测试确保分级的单元质量。

  3、单元测试自动化

  不同公司单元测试的方法可能不一样,但是有一点一点必须保证,就是单元测试自动化。因为单元测试的目的是为了保证代码的质量防护,如果不能自动化运行必然不能频繁运行,这样也就谈不上对代码的看护了。


http://www.51testing.com/html/69/n-808269.html

阅读更多
个人分类: TEST
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭