关于测试用例的粒度,虽然没有统一的标准,需要根据具体的业务及自己的经验来把握,但是还是有一些原则可以参考的,以下整理出一些参考知识点(整理自互联网),希望对大家测试工作有帮助

软件测试架构师在测试设计中除了为整个团队在测试设计的方法上提供指导外,还有一项十分重要的工作,就是控制用例粒度。

控制用例粒度

用例粒度是对测试用例是精细还是笼统地描述测试点的通俗说法。测试用例越聚焦到一个功能点上,这个功能点越小越细,用例粒度就越细;

反之,如果一个测试用例包含了比较多的功能点,这个测试用例的用例粒度就会比较粗。

一般说来,用例粒度细的测试用例,更容易发现产品在设计上的问题,但是如果整个测试团队的用例粒度都很细,那么需要测试的测试用例就会比较多,给测试进度、测试投入和测试用例的编写与维护等带来不少问题。

而用例粒度粗的测试用例,更容易发现产品在系统上、设计上、功能交互上和需求方面的问题,但是如果整个测试团队的用例粒度都很粗,虽然测试用例的数目可能会少很多,但我们又有可能漏掉很多功能设计上的细节问题,影响产品质量。

所以对软件测试架构师来说,控制用例粒度,绝对是在测试设计中非常重要的一项工作。

控制用例粒度,意味着我们要做以下两件事。

第一,我们希望整个团队的测试用例的总数维持在一个比较合理的范围内,同时很好地达到测试验证产品的效果,这就需要我们控制测试用例的源头——测试点:让测试点不要过粗或者过细。

如果测试点过粗或过细,我们就要去拆分或者组合它,保证设计岀来的测试用例粒度比较统一。

这时我们使用四步测试设计法的优势就淋漓尽致地展现出来了:对这些拆分或组合后的测试点,我们还可以找到适合的测试点类型,还能够找到合适的测试设计方法,如图4-64所示。

这也使得我们的测试设计变得更为灵活、更有技巧性。

第二,不同的用例粒度,可能会发现产品不同层次的问题(细粒度的用例可能更容易发现产品功能的设计和实现方面的问题,而粗粒度的用例可能更容易从系统的角度去发现一些功能交互或是需求方面的问题),

所以我们需要在不同的测试阶段,对测试点进行一些拆分或组合,以求可以从不同的层次去测试产品,发现问题,见表4-53。

策略覆盖 

还有一种控制测试用例粒度的方法,就是策略覆盖。

在测试设计时,我们经常会遇到这样的情况:

□有些因子,如操作系统、平台等,除了那些可以分析到的对系统有影响的地方之外,对系统的其他功能可能没有影响、影响很弱或者影响未知,没有必要使用Pairwise来进行正交。

□有些数据类的测试点,比如就是测试一个名称,测试点比较细,但是它和其他的测试点可能没有关系或者关系很弱,也没有必要使用Pairwise来做正交。

这时我们就可以考虑使用策略覆盖的方式,将这些因子或数据的取值,分配到其他测试用例中,作为其他测试用例的测试数据输入或者是测试条件(或预置条件)。

例如,对第一种情况,假设“因子A”有4个因子值,见表4-54。

我们已经通过流程、参数、数据或组合的测试设计方法,得到了6个测试用例,见表4-55。

我们将“因子A”作为预置条件,分配到这6个测试用例中,见表4-56。

对第二种情况,假设“数据B”使用等价类和边界值分析后,得到4个测试数据,见表4-57。

我们将“数据B”作为测试输入数据,分配到这6个测试用例中,见表4-58。

需要特别说明的是,上面在“分配”因子或数据的时候,使用的是“轮询”的方式,即按照“Al”“A2”“A3”“A4”“A1”……的顺序进行。在实际项目中,“轮询”方式不一定适合,我们还需要考虑:

□内容的重要性:不同的因子或数据值,它们的重要性可能不同。对重要的、优先级高的因子,我们可以加大分配量。例如,“因子A”中的“A1”重要性相对“A2”〜“A4”都要高一些,我们就可以在测试用例中多分配一些“A1”,见表4-59。

□测试执行的便利性:我们可以尽量将和这个测试用例有关的“因子”或“数据”值分配到一起,达到测试用例的时候可以“顺便”测试这个“因子”或“数据”值的效果。

最后我们来看一个实际的例子:我们还是以“PC连接WiFi”为例。

这时我们考虑“PC会使用不同的操作系统”来连接WiFi,即考虑“操作系统”这个因子,并将这个因子在“PC连接WiFi”的测试用例中进行“策略覆盖”。

举例:对“PC连接WiFi”这个功能,考虑“操作系统”后,进行策略覆盖

假设PC可以通过下述操作系统来连接WiFi:

我们要将这个因子策略覆盖到表4-60所示的测试用例中(关于这些测试用例的生成,参见4.4.7节)

我们首先来分析“操作系统”这个因子,看看不同的操作系统是否具有不同的优先级。

作为举例,我们假设“Windows7”和“Windows8”的优先级比较高。

接下来我们来考虑测试执行的便利性。

从测试时的配置顺序来看,我们会先选择是使用“首选WiFi”还是“备选WiFi”,再选择“是否要加密”,如果要“加密”,我们还要选择“加密算法”。我们可以将上述配置过程绘成一棵“树”的形式,

如图4-65所示。

然后我们选择让每种“操作系统”覆盖一个“树杈”,如图4-66所示。

其中(1)和(3)中还包含了3种加密的情况,包含的“测试用例”比(2)和(4)要多一些,我们可以将(1)和(3)

分别分配给我们分析出来的重要的操作系统:Windows7和Windows8;将(2)和(4)分别分配给相对不那么重要的操作系统:WindowsXP和MacOSX。

这样,按照上述分配策略,我们将“操作系统”这个因子在测试用例中分配,见表4-61。

END

今天的分享就到此结束了,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!


最后基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源在下方公众号免费获取~

【软件测试基础】控制用例粒度:测试点的组合和拆分相关推荐

  1. 软件测试- 基础篇 用例篇铺垫案例

    文章目录 回顾上篇博客[软件测试 - 概念篇](https://blog.csdn.net/DarkAndGrey/article/details/125281778?spm=1001.2014.30 ...

  2. 软件测试—软件测试基础知识—用例模板

    测试用例包含哪些内容: 用例编号(出现错误容易和开发沟通) 模块(对各大模块的划分为不同的模块,登录,注册) 场景 (比如现在是支付模块,场景就可分为微信支付,支付宝支付) 用例名称(测试的一个描述) ...

  3. 软件测试基础之用例设计方法

    #等价类划分* (正向的.错误的)** 与边界值一起使用** 例如:微信红包是0.01~200之间 那么 有效等价类 无效等价类 0.01~200 <0.01/>200 数字 非数字(中文 ...

  4. 01.软件测试基础知识整合

    软件测试基础 前言 一.什么是软件测试 二.软件测试的目的 三.软件测试的基本流程 四.测试分类 五.测试用例 1.什么是测试用例 2.测试用例的重要性 3.测试用例的设计方法 4.测试点分析 5.如 ...

  5. 软件测试基础【一篇足矣】

    目录 软件测试基础概念 1.什么是软件测试?其目的是什么?你怎么看待软件测试? 2.软件测试的生命周期?各阶段对应的工作? 3.测试计划和测试方案的内容和区别? 4.需求评审的内容?参与人员?测试人员 ...

  6. 软件测试基础知识-问答

    说明:本文以问答方式组织,分享一些软件测试的基础知识(有部分可能来自网络).如有不正确之处请指出,共同学习. 什么是软件测试? 答:依据软件需求规格和测试用例,使用人工和自动化的手段,来测试软件系统的 ...

  7. 软件测试基础——概念篇

    一.软件概念以及分类 软件的概念 软件就是指用以指挥计算机运行活动所使用的程序 软件的分类 软件可以分为系统软件和应用软件 系统软件 系统软件是指管理.控制和维护计算机及外部设备,提供用户与计算机之间 ...

  8. 软件测试基础知识大全【乐搏TestPRO】

    在很多人的认知里,软件测试入门门槛低,简单易学.确实,软件测试基础知识更偏向于理论方法的学习,及部分常用工具的学习. 接下来的70个基础知识讲解,弄明白后这些问题后,软件测试入门也基本掌握了.本篇共分 ...

  9. [荐] 软件测试与质量保障系列课程1:ISTQB软件测试基础核心课程

    推荐理由: 无论是初涉软件测试或打算入行软件测试的"小白",还是在软件测试行业滚打多年的"老鸟",如果想在这个领域要有好的发展,系统化.专业化的了解.学习.掌握 ...

  10. 软件测试基础----缺陷

    软件测试基础----缺陷 缺陷的定义:★★★★ 产生缺陷的原因: 缺陷的类型: 缺陷的严重程度:★★★★★ 缺陷的修复优先级:★★★★★ 缺陷的状态: 缺陷的来源: 缺陷的根源: 缺陷的识别: 缺陷的 ...

最新文章

  1. python小学_小学生学python(二)
  2. 【原】高清显示屏原理及设计方案
  3. Leetcode 24. Swap Nodes in Pairs
  4. [BX] 和 loop 指令---汇编学习笔记
  5. 【Tools】GitBook入门教程
  6. 120余家自动驾驶公司的行业汇总
  7. android消息机制 Message, Looper,Handler
  8. LINUX下的GNU调试工具,GNU调试器 GDB 8.3 发布及安装更新,支持RISC-V与IPv6连接等
  9. python一对一_Python:在数据存储区中建立一对一的关系
  10. Spring ---- ssm整合
  11. 云免等候服务器响应,云服务器响应
  12. scrt配置服务器免密登录
  13. oa人员导入模板_九思OA办公系统平台:提高企业综合办公能力,助力企业高速成长...
  14. 我也来开发2048之终极奥义
  15. Windows系统怎么换硬盘图标
  16. 求html写一个羽毛球拍的代码,一种组合式羽毛球拍的制作方法
  17. 服务器96g运行内存,别被坑了,2019入手小米9到底选择6G运存还是8G?看完你就懂了!...
  18. 亲情的矛盾都是因为爱而化解 写给17 岁的你
  19. Rootkit的技术发展史
  20. 我的世界服务器披风文件在哪,关于我的世界国际版披风导入方法与详解(联机可用...

热门文章

  1. 在中文维基百科新建用户框
  2. matlab机器人运动仿真,基于MATLAB机器人手臂运动仿真
  3. white-space 与换行和空格的控制?
  4. iphone分辨率中的scale参数
  5. matlab双峰滤波,MATLAB中的单峰或双峰分布
  6. Vue搭脚手架及创建项目
  7. Opencv之threshold
  8. 【原】win 7 屏幕旋转问题的解决
  9. DLL load failed while importing _imaging怎么处理
  10. lisp princ详解_LISP - 输入和输出(Input Output)