在设计测试用例工作中,把握测试用例粒度的粗细是件很伤神的事:测试用例写得很细,会带来很多问题:首先是效率问题,测试人员的首要任务有效地测试产品尽可能多的发现产品缺陷,如果测试用例写的过细,在设计测试用例时势必花费大量时间,这些时间中很大一部分是应该用在有效地测试产品上的;再次,测试用例设计得过于详细,测试执行人员就成了执行用例的机器,只能按照用例去操作而缺少了的思考空间,使测试执行人员的思维局限于测试用例中;还有如果这些用例还要复用在其他版本中时,产品功能稍微改动,就需要修改大量的测试用例,从而使用例的维护代价大大提高。但是测试用例写得太粗就会包含太多验证点,当用例在执行到某一个验证点时被卡住,这个用例就被标为无法通过,下面的验证点可能就不再执行,直接标记用例无法通过,同时也为定位bug增加了难度;还有测试用例粒度过大还容易遗漏测试项。下面也就小探讨一下测试用例粒度问题。

首先说下划分测试用例粒度粗细的标准

划分粒度粗细的标准是什么?什么样的用例粒度算粗粒度?什么样的粒度算细粒度?

1.一条用例的步骤:小于5步为细粒度,大于10步为粗粒度(合理吗)

2.以项目的用例个数:几百个用例为粗粒度,几千个用例为细粒度(合理吗)

3.以数据覆盖度:等价类为粗,穷举为细(合理吗)

个人感觉以上几种参考划分都有点片面,设计出何时粒度的测试用例需要根据软件的有效功能进行设计。首先说一下什么是有效功能,有效功能就是整个业务流完成一个具有实际意义的功能,任何一部分从业务流中独立出来都无实际意义。

再说一个纠结的问题,几个功能之间存在相互依赖的关系,这时候用例该怎样设计?多个功能融合在一个用例中,一个用例需要很多步骤描述,有人认为描述的步骤很多,就说测试粒度细。其实不然,这样写虽然每个步骤很多,但是想全面的写出这几个功能组合起来形成的用例几乎是不可能的,很有可能漏掉一些重要的测试点。最好的办法就是将多个相互之间存在依赖关系的功能区分为单个的有效功能。例如,现在有A、B、C三个功能,其中B功能的开始必须依赖于A功能的完成,而且A功能如果出现不同的完成状态,B功能也会做出不同的反应;C功能对B功能的依赖也是如此。我们可以发现A、B、C都是独立的有效功能,它们之间存在的依赖性,可以理解为是一种状态或者说数据的依赖性。后一个功能关心的,是前一个功能最终提供给它的是什么样的“输入”,而不是前一个功能到底作了些什么。这样看来,我们完全可以将它们分别包含在几个独立的测试用例中,而在每个测试用例的开始,把不同的输入作为不同前置条件来描述。

最后哪些因素决定了测试用例的粒度

1、时间、资源因素:

时间短、项目紧、编写用例评审时间较短时,而且人手短缺,适合粗颗粒度用例。项目周期较长时,人员配备充足,适合细颗粒度用例。

2、执行测试用例的人员:

测试人员都是思路和基础技能扎实的有多年测试经验的高手,他们都有高度的责任心而且对产品十分熟悉可以采用粗颗粒度用例。测试人员新手多,没有经验,对产品几乎不了解,需要再指导下进行基础测试工作,或责任心一般时,需采用细颗粒度用例。

下面是ls命令查看一个目录下文件的属性写给不同类型执行者的用例

写给自己看的:使用ls命令查看该目录下文件的属性

写给稍微有点基础的人看:打开终端,使用“ls -l

目录路径”,查看该目录下文件文件属性

写给linux盲看的:点击桌面上的终端图标,打开终端,在终端中输入

“ls -l /../../目录名”

3、需求变更:

需求变更较多时,建议采用粗颗粒度的用例,可较灵活的覆盖需求。经过一轮轮的评审,等需求基线化之后,在实际的滚动测试中,在逐步细化用例。需求变更较少时,或需求变更波及较小,系统设计框架不会频繁改动,可对应较大的细化测试用例变更量。

例如:一个需求,粗颗粒度的用例为100条,细颗粒度的用例为10000条。此需求变更,如果要修改粗颗粒度的用例,只需要修改10条;修改细颗粒度的用例,牵扯到细化的交叉逻辑,需要审阅3000条用例并可能修改1000条。

总结;测试用例的粒度粗细多大算粗多小算细没有一定的标准,还需要在工作中不断地实践积累,熟能生巧,做得多了,见得多了,再设计用例自然是得心应手。

软件测试颗粒度,测试用例粒度粗细的划分相关推荐

  1. 【软件测试】使用边界值分析法和等价类划分法计算佣金

    [软件测试]使用边界值分析法和等价类划分法计算佣金 前言 1.边界值分析法 1.1 边界分析 1.1.1 设计测试用例 1.2 程序源码 2.等价类划分法 2.1 划分等价类 2.2 为有效等价类设计 ...

  2. 软件测试用例设计方法-等价类划分法

    本篇文章,来分享大家比较熟悉的测试用例设计方法--等价类划分法. 首先,我们可以使用上一篇文章介绍的场景法来梳理业务流程. 其次,根据流程中的每个节点的需求说明,使用等价来划分来设计用例. 定义 等价 ...

  3. 【黑盒测试用例设计】等价类划分法

    等价类划分法是一种黑盒测试方法,用于将测试过程合理分类以确保设计出的测试用例具有完整性和代表性.在使用等价类划分法时,需要按照需求规格说明书生成等价类,其中包括有效等价类和无效等价类.有效等价类是合理 ...

  4. 测试用例设计之等价类划分法

    一.关于等价类划分法的解释 把程序的输入域划分成若干部分. 从每个部分选取少数代表性数据当作测试用例. 每一类代表性数据在测试中的作用等价于这一类中的其他数据. 若某一类中的一个例子发现了错误,这一等 ...

  5. 【软件测试】07 -- 黑盒测试方法(等价类划分法)

       等价类划分法    等价类划分法是一种常用的黑盒测试方法,它主张从大量的数据中选择一部分数据用于测试,即尽可能使用最少的测试用例覆盖最多的数据,以发现更多的软件缺陷.    一个程序可以有多个输 ...

  6. 软件测试颗粒度,测试用例之度——系列之颗粒度(上)

    测试用例颗粒度粗.细的特点是什么? 用例设计分析: 粗颗粒度面向宏观,面向正向的功能点.大的功能模块和整体性,体现测试用例的设计思路:细颗粒度面向微观,面对具体的一个个功能点的正向/负向逻辑,体现测试 ...

  7. 软件测试 通用技术03 测试用例 黑盒测试用例设计方法 等价类划分法 边界值分析法 判定表法 场景法 功能图法 其他用例设计方法 用例设计方法综合选择

    文章目录 1 测试用例 1.1 测试用例的定义 1.2 测试用例模板 1.3 测试用例模板的内容 测试用例编号 测试项 依赖用例 测试步骤 测试数据 预期结果 测试结果 测试人 备注 2 测试用例编写 ...

  8. 软件测试理论之测试用例设计六把刀

    日常设计测试用例的时候,有许多经典的测试理论.比如边界法.等价法,这些经常用到我们日常的工作中.当然也有许多的理论,比如正交分解法是使用起来非常费劲.往往转化为实际的容易理解的测试语言就非常困难. 测 ...

  9. 软件测试基础:测试用例设计

    测试需求收集完毕后,开始测试设计.测试用例是什么?测试用例就是一个文档,描述输入.动作.或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作.设计测试用例需要考虑以下问题: 了解更多 ...

最新文章

  1. 【问链财经-区块链基础知识系列】 第二十一课 区块链应用于大宗商品供应链金融
  2. 二叉排序树(完整案例与完整C语言代码)
  3. pycharm创建python虚拟环境好处_pycharm虚拟环境的搭建
  4. 4行代码AC——L1-024 后天(5分)
  5. xmapp apache与mysql无法启动_XAMPP Apache Mysql 无法启动原因及解决方法
  6. 组合模式的安全模式与透明模式
  7. HardLink SymbolLink Junctions
  8. 基于华为云服务器Docker nginx安装和配置挂载
  9. 1和4互素吗_互素是什么意思?1~10中与10互素的数有多少个
  10. 精通Matlab数字图像处理与识别nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;
  11. angular ts 表格_Angular8 ui-grid替代方案ag-grid入门
  12. service层的作业+mybatis中的重要组件
  13. O - 期末考试之排名次
  14. Win10任务管理器不显示GPU的解决方法
  15. 原创 | 连面拼多多、美团、头条、快手后给大家划下重点
  16. 强力推荐Linux下的五大BT下载工具
  17. stm32f051 TIM15、16、17 无法出PWM
  18. S3C2440之按键中断
  19. C++的static关键字
  20. The Definitive Guide to ARM Cortex M3 and Cortex M4 Processors, 3rd Edition.pdf

热门文章

  1. SpringBoot之接收url参数
  2. php和mysql防伪网站源码,2015年最新php+mysql防伪查询程序源码微信认证查询含7套模板...
  3. java中panel显示不出来_为什么我的JPanel中的某些项目没有显示?
  4. php语句创建数据表,用mysql语句创建数据表详细教程
  5. 怎么做应力应变曲线_常用的应力测试方法及其在船舶系统零部件中的应用
  6. 手动搭建vue2框架还有vue3框架
  7. python中什么是异常,python中异常处理,python异常处理,什么是异常?异常是一
  8. php中对数组进行转码,php实现转码的方式(支持数组类型转码)
  9. washer和shell有什么区别_disk or washer method?
  10. python pyecharts 折线图_Python数据可视化之pyecharts实现各种图表