快给你的用例做减法吧

01热身:数一数你的用例数

随着互联网时代节奏的日益加快,许多产品都会在版本迭代中对功能做加法,于是累计的测试用例似乎都无可避免地越来越多。从小编自己的经验,作为测试人员,最开始设计测试用例的时候追求做到“全面”,导致我们的用例似乎也不知不觉中在做加法。你有没有思考过一个问题,你的产品总用例究竟有多少?而当下你是否也感受着用例多带来的效率不高的痛点?

不妨坐下来,随小编一起打开这几个版本产品的总用例。

你的用例是否也有以下几个问题中的任意一个:

1、用例量庞大:以笔者的用例为例子,每个版本都有一份该版本的用例以及一份总用例,总用例文件分散,用例数多(总用例数接近2000),无整体清晰视图;

2、可读性差:由于测试人员分工的不断调整,同个模块的用例的维护是经由几轮不同编写风格的迭代,甚至有些用例格式不统一(既有excel又有mm图);

3、用例优先级不明确:用例优先级是凭经验拍脑袋定的,同时历经几个版本未对旧用例的优先级做调整,导致测试执行时间冗长且部分用例已不是核心内容。

如果你的用例也有上述问题中的任意一个,是时候要开始思索,是不是该重新整理一下用例,是不是该对用例做减法了?如何用科学武装自己,有底气来做减法呢?

接下来请follow小编的脚步,一起对用例做科学的缩减大法。

02 缩减:ACC+统计点齐发力

小编的精简用例,运用了ACC建模法去建立核心模块的能力矩阵图,再根据产品数据埋点上报的排名来确定模块热点图(重要等级),确定测试优先级,最终运用到用例的删减中。

本次用例精简,可以解读为以下几步:

1、 建立能力矩阵图——根据ACC建模思想

注:ACC(Attributes Components Compatibilities)是Google测试团队使用的一种建模方法,是对测试内容进行划分属性(Attributes),部件(Components),组成能力表(Compatibilities),用来快速地建立产品的模型,以指导下一步的测试计划和设计。

ACC的定义与使用可以参考文章:

http://www.cnblogs.com/liangshi/archive/2012/04/23/2465897.html

ACC方法可以让测试人员对整体项目有一个全观的视图, 但是ACC也有一定的局限性——需要和其他的建模方法结合起来使用,也就是对某个模块可以通过ACC确定测试策略,具体测试实施需要依赖其他的建模方法。

小编跟产品同学根据产品策略,确认了当前的几个模块的属性值(即与竞争对手相区别的关键特征),再根据从HTSM的角度确立对应的能力(即产品实现其核心价值的手段),得出以下能力矩阵图:

2、确定热点图,得出测试优先级——根据梳理统计点数据

建立好能力矩阵图后,如何去确定模块的重要程度(矩阵热力图)呢?

以前我们会根据经验来做判断,那么有没有更科学一点的方法?

答案是肯定的,我们可以让用户来告诉我们,什么才是他们关注的,这才是合理的优先级划分的方式。也就是可以通过统计点的上报量来确立对应模块的重要程度。

(1)导出产品的统计点数据,根据模块做归类,根据渗透率做排序。

注: 渗透率 = 功能点击人数/用户数

(2)分析渗透率数据,定出合理的界定标准。

如何根据埋点数据来界定重要程度的标准呢?

小编这边采用的是二八定律(把主要测试精力花在20%模块上),于是选出排名前20%的统计点标为最高优先级,再把剩余80%按照一样的规则分成三层,得出如图的四层结构:

注:统计点从上到下按照渗透率从高到低的排序。

举个例子:假设一个产品总共100个统计点,那么我们将这100个统计点按照从高到低的顺序进行排序为(A1,A2,...,A100),那么可以得到以下的分层关系。  

注:这个划分依据是小编根据二八原则以及产品特点来划分的,统计点个数比接近为1:1:1:2,读者可以根据不同产品情况灵活调整。

(3)根据界定标准,完善能力矩阵的热点图,区分测试优先级。

据以上三个步骤所述,小编得到的最终的产品能力矩阵热点图如下,此时我们已对产品的重点模块已有了比较清晰的了解:

3、精简对应用例—根据能力矩阵热点图

走到这一步,终于可以开始进行用例精简了。那么问题来了,得到这张能力矩阵热力图之后,如何运用到用例精简中呢?

(1)对用例做预处理

为了方便下一步能痛快做用例精简,预处理测试用例是必要的。预处理主要是做以下几步工作:

① 统一用例格式与风格:如统一为思维导图或excel的形式;

② 合并测试路径:把操作与结果分开写的用例合并为完整的测试路径(如下图1),或者把可组合的场景的用例组合起来(运用场景组合如图2、正交法、最大路径组合等方式),减少用例的分支扩散;

  图1 操作与结果合并

 图2 场景组合

 ③ 去掉功能无关、已过时的需求对应的用例,确保当下用例为最新。

(2)对用例做二次处理

小编的用例精简二次处理,是采用与功能点重要程度强关联的原则(详见下图)。

在热力图为低优先级的功能点,采用只保留功能可用性相关的用例且优先级置低的方法。因为在整个产品功能里面,若一个功能重要程度较低却写了很多用例,那么我们需要反思一下是不是测试策略定位有问题。也就是说,功能的重要性占比小,那么对应的用例肯定少,同时测试执行优先级也不会很高。

在热力图为高优先级的功能点,会把统计点涉及的场景对应的用例标注较高优先级,其余异常或复杂路径按情况定义不同优先级来保留的方式,只删除无关或废弃或过于复杂的用例。一来是因为高优先级的功能点不会太多(根据之前所述的二八原则),二来是因为重要性高,用例保留得多可以方便对整体功能的把握。

03 精简用例的收益

经历了一场轰轰烈烈的精简后,小编这边也简单总结下缩减大法带来的收益:

1、整体用例数据

2、执行策略优化(发挥优先级的作用)

3、用例格式统一管理

格式统一为mm图,且模块重要性标注了颜色来区分,每个用例只有1个优先级,优先级按照第二点用例处理原则所述进行标识。

4、执行效率与质量

根据2.0两次灰度版本验证,得出如下数据:

有理论有实际、有科学有底气,既能对用例来次大裁剪,又能对产品逻辑有个整体的梳理和重点的把握。看到这里,你是否动心了?快给你的用例做减法吧。

04 读者互动环节

你在项目迭代间是如何管理测试用例的?是否有什么痛点?有尝试过哪些精简用例的方法呢?

原文发布于微信公众号 - 腾讯移动品质中心TMQ(gh_2052d3e8c27d)

原文发表时间:2018-08-27

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯移动品质中心TMQ的专栏

快给你的用例做减法吧

前言 生活的智慧,有时不在于多,而在于少。 同理适用于测试用例的管理中。 一. 热身:数一数你的用例数 随着互联网时代节奏的日益加快,许多产品都会在版本迭代中对...

244100
来自专栏腾讯移动品质中心TMQ的专栏

浅谈ACC建模测试

1、黔驴技穷 随着测试新鲜血液的引入,如何在测试领域站稳脚跟,成为一名老司机是很多测试人头疼的问题,之前听过一门课程讲过测试人员发展的心路历程(图...

42870
来自专栏腾讯移动品质中心TMQ的专栏

【腾讯TMQ】快给你的用例做减法吧

随着互联网时代节奏的日益加快,许多产品都会在版本迭代中对功能做加法,于是累计的测试用例似乎都无可避免地越来越多。从小编自己的经验,作为测试人员,最开始设计测试用...

29200
来自专栏企鹅号快讯

最常用的几种编程语言讲解

我们来看一下编程语言的排行榜 ? 我们可以看到前五分别是Java,C,C++,C#,Python,我们就先讲一下这五种语言吧,让大家快速入门。 1.Java是一...

392100
来自专栏架构师之路

互联网公司研发RD如何撰写总体设计与详细设计文档

研发工程师(RD)需要撰写的设计文档主要分为:总体设计文档 + 详细设计文档,后简称为“总设”+“详设”。 总设和详设都应该包含的部分: (1) 需求:一般以产...

65070
来自专栏玉树芝兰

如何高效入门Github?

如今的编程,早已不是单打独斗的模式了。优秀的编程人员,甚至是初学者,都必须学会如何与他人高效协作。Github是编程协作中须要掌握的基础知识。如何尽快入门,少走...

10420
来自专栏阮一峰的网络日志

1TB字节有多大?

我们都知道,硬盘的储存容量是用字节(Byte)来表示的。1个字节是最小的储存单位。 1KB(kilobyte)表示1024个字节,1MB表示1024个KB,1G...

415130
来自专栏钱曙光的专栏

一周极客热文:从分析8000条软件工程师招聘信息所学到的

Aline Lerner 过去以编程谋生,现在从事招聘工程师的工作。去年,她通过参考全年的有效招聘数据编写了一篇文章,总结如下: 如果可以的话,尽可能让招聘信息...

23880
来自专栏Crossin的编程教室

想用 Python 做数据分析?先玩玩这个再说

数据分析是 Python 的一大应用领域。据我所知,本教室的读者中有不少学习 Python 就是为了在工作中能用它分析数据。这其中,又有相当一部分人是涉及金融相...

59970
来自专栏Spark学习技巧

数据仓库③-实现与使用(含OLAP重点讲解)

本文将对这些方面做一个总体性的介绍(尤其是OLAP),旨在让读者对数据仓库的认识提升到一个全局性的高度。 创建数据仓库 数据仓库的创建方法和数据库类似,也是通过...

62980

扫码关注云+社区

领取腾讯云代金券