为什么我们需要单元测试?

 

1)很多人写程序,只做集成测试,不做单元测试。等到集成测试发现问题,再去捉虫。

2)但是,集成测试有很多局限不能替代单元测试。 举一个例子。 系统由4个带用户输入的单元串联构成。 A单元的测试数据分成a1、a2两大类, B单元的测试数据分成b1、b2两大类, C、D单元也都是如此各自有两类测试数据,如果只做集成测试,就需要构造多少个测试例子呢? 2^4=16种例子。 而如果只做单元测试,则只需要8个例子。但是,由于一般软件系统不会如此简单,每个类别中一般也不止两类测试数据。所以如果集成测试想要发现问题,而要测试数据全面覆盖的话,则需要做n多乘法,而单元测试只需要做加法。实际上,如果不做单元测试,就会导致测试集合无限膨胀才能发现问题。这个时候,由于测试数据准备不足,则导致集成测试中遗漏了很多问题。

3)集成测试最容易遗漏的问题,不是必然发生的bug,而是半节子问题。就比如说输出一部分正确结果,另外错误的结果被拦截而没有输出、而软件运行中没有发现bug。bug作为数据性的隐患还遗留在系统中。这种问题往往是只做集成测试而不做单元测试遗留的最常见的问题。这些问题由于不引起程序死掉、也不是毫无正确输出结果,所以非常隐蔽。根据我个人的经验,这些bug占到第一次排除bug后80%左右的剩余bug的比例。

4)所以,一定要做单元测试。集成测试不能取代单元测试。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值