聊聊测试覆盖率
作为测试人,我们每天都在经历各种新功能上线,比如微信小程序、网站、 app、小程序等。
而这其中的测试也是每天都要经历的事情,但是你有没有想过测试覆盖率也是一项重要的技能呢?如果你有一天发现自己所做的测试效果不理想,你会怎么办?
对于普通的测试人员来说,这是非常头疼的事情。我们先来了解一下什么是测试覆盖率。
「测试覆盖率是指一项测试人员所获得的测试效果数占测试整体数量的百分比。」
1、概念
换句话说,测试人员所测试获得的结果和所获得的整体数量相比,是占百分比数。那么,我们怎么才能知道自己所做的测试是否合格呢?
答案是:在开始进行测试之前,我们需要确定一个测试目的或者一个测试需求。那么这个测试目的或者需求是什么呢?就是为了确定是否能够通过某项测试获得满意的结果。所以测试覆盖率就显得非常重要了,这个指标很重要。在我们进行任何一项测试之前都应该确定测试目的或者目标。
2、为什么要对产品测试覆盖率进行定义
所以,对于某些业务来说,可能你一个小功能在你实际测试中没有问题,但是可能存在一些问题没有被发现。这时候为了保障测试效率我们就需要找到问题原因。而对于测试覆盖率来说,可以更好地解决这一问题。因为覆盖率反映出在测试中可能会存在的某些情况——如果测试环境中的所有产品都符合这一要求并且能够实现,那么可以更好地保障系统的安全性。所以我们可以在一定程度上降低测试覆盖率过高的情况——这样既可以让我们有时间去寻找问题原因和解决方案,也可以让我们发现一些可能导致产品功能缺陷的问题以及处理方法。但是,我们还是需要指出一点,测试覆盖率不能过于频繁地改变测试环境或设置,也不能完全依赖测试环境和设置。而需要结合具体情况分析解决方案或者调整设定来应对这种情况。
3、测试覆盖率的使用场景
对于不熟悉的情况下,我们可以在测试人员较少的情况下使用覆盖率。比如,一款微信小程序开发在测试之前,需要进行测试验证是否具备打开微信 App的功能。这个时候,我们可以测试,而不是完全依赖测试人员来完成测试。当然,这也不是说测试覆盖率一定要全部覆盖,但是我们在使用过程中也要注意一些问题。比如当我们测试一个 app时,可能会有多种 app,我们可能需要分别去测试不同的 API接口: app内直接访问功能进行操作;跳转到该 app首页进行操作;跳转到其他页面操作;跳转到下一步操作等等。这时候我们需要通过不断地测试来不断调整测试策略来提高覆盖率。在这里,我还给大家提供一个简单的测试策略:选择最优测试策略。
4、了解产品特性
产品特性是指:
- (1)稳定性:系统的稳定性、逻辑关系与产品在开发过程中、在产品的测试过程中,是保持一致的,而且有很多种方法。
- (2)响应速度:比如:功能启动、响应时间,以及响应速度;响应时间越短,响应就越快。
- (3)用户参与度也就是你的用户人数。
- (4)易用性:对某个产品来说,用户粘性比较高,同时也是一种复购行为;
如果是针对一个小程序或者功能来说更明显;对某个老产品来说则更难。另外,有些产品可能比较难做的,比如说: APP功能设计上可以让你的业务更加容易上手操作;另外对于特定场景也没有特殊要求。
5、实现产品特性时如何确定实现覆盖率
当测试团队中的成员不能确定要测试什么产品时,他们通常会使用测试覆盖率来衡量他们的产品测试覆盖率。如果一个项目中有很多方面的特性,比如:交互方式、数据存储、异常处理等等。那么很容易就会被识别出一个功能来,并需要不断地进行测试以发现其中不同的方面存在不同程度的问题。这时测试覆盖率往往是无法确定出来的,因此需要根据具体情况进行具体分析,再根据具体情况来决定是否要进行测试。当项目中有很多方面可以实现测试覆盖率时,这就意味着有很多方面可以测试。所以可以使用一些通用但又相对简单的方法来衡量自己所负责的产品是否已经达到测试覆盖率的要求。
6、如何在测试过程中把控覆盖率
我们都知道,当我们完成一项新功能时,如果测试不能准确的判断其是否存在不可用,就需要进行测试覆盖率的把控:可以是多测试几次,但不能太多也不能太少。对于测试覆盖率来说,就可以通过三次测试来了解测试人员完成一个新功能后,有多少次测试通过了,就可以知道是不是该产品。我们在测试中会遇到很多类型的问题(很多时候不会有经验),「那么我们应该怎么解决呢?」
- 1、在目标范围内设定覆盖率:对于不同规模的公司来说,一个月内产品上线一次是比较正常的事情,所以在设定覆盖率时一定要有一个上限值。
- 2、设定覆盖阈值:对于新功能来说,如果一个月内产品上线了三次,那么覆盖率可以设定为50%;但如果该产品没有上线三次,那么覆盖率可以设置为60%。
- 3、在设定覆盖率时要结合实际情况。