测试用例之度——系列之颗粒度(上)

简介:

测试用例是测试工作的核心。测试工作是讲究投入产出比的工作,这也是测试用例设计的指导思想。

  测试用例有度的概念,正如亚里士多德在《伦理学》中讨论道德为例:道德意味着过与不及之间的状态。面向测试用例,网上流传着这么一句话:“不同的机构会有不同的测试目的;相同的机构也可能有不同测试目的,可能是测试不同区域或是对同一区域的不同层次的测试”

  下面就列举测试用例设计的方方面面,看不同的团队,不同的测试目的,如何把握测试用例设计之度。

  颗粒度:

  颗粒度的粗细,有无标准?什么是粗?什么是细?

  1、以功能点划分?

  仅仅覆盖所有的功能性需求为粗?

  仅仅正向覆盖所有的功能需求(功能、性能)为粗?

  正向/负向覆盖所有的功能需求(功能、性能)以及正向覆盖性能需求为粗?

  正向/负向覆盖所有的需求为细?覆盖到产品包,涵盖兼容性、升级、安装、易用性为细?

  2、以STEP划分?

  每条用例有一个STEP为粗,三?五?十为细?以上为细?

  以测试设计思路的体现?

  只采用正向为粗?只采用正/负向为粗?考虑应用场景为细?考虑业务逻辑为细?

  3、以数量级?

  百条?千条?万条?

  4、以数据覆盖?

  等价类是粗?穷举是细?

  每个人、每个机构判定测试用例粗细的标准都不一样,没有标准的答案。所以测试用例颗粒度的粗细,本身就是一个相对而言的标准。

  尝试用图示来表示颗粒度粗细的常规概念:




 测试用例颗粒度粗、细的特点是什么?

  用例设计分析:

  粗颗粒度面向宏观,面向正向的功能点、大的功能模块和整体性,体现测试用例的设计思路;细颗粒度面向微观,面对具体的一个个功能点的正向/负向逻辑,体现测试用例的细节和完备性。

  面对测试执行人员:

  粗颗粒度用例不容易被测试新手执行,因为很多约定成俗的操作、现象,甚至行业术语都不清楚。细颗粒度用例相对较易被测试新手执行。

  覆盖度:

  粗颗粒度覆盖度可能小于细颗粒度用例(粗颗粒度只覆盖全部正向和部分负向,细颗粒度覆盖全部正向、负向、其他等);但还有一种可能性,就是粗细用例均覆盖全面,但是深度不同。类似下雨的降雨量不同,对农作物(产品)的意义不同。

  可维护性:

  毫无疑问,测试用例和需求的匹配,测试用例本身的维护是大多数团队的工作难点重点,粗颗粒度便于维护,方便和需求保持高度一致;细颗粒度用例,越细越不容易维护,维护成本过大,特别是需求频繁变更会导致不可维护。

  类似的概念,比如自动化测试环节,GUI不停改变导致的脚本重写类似。

  时间:

  粗颗粒度构架和评审的时间较短,适合周期较紧的项目;细颗粒度构建和编写的时间较长,适合周期宽松或更倾向于质量的项目。

  资源:

  粗颗粒度占用资源较少(人力、评审、会议室等),适合小团队或同一团队多项目模式;细颗粒度占用资源较多,适合大团队或单一项目模式。

  风险:

  毫无疑问,粗颗粒度用例的风险是漏测,存在很大概率漏测的风险,依赖于测试人员的个人素质;细颗粒度也存在漏测,不过相对更可能是测试人员自己的想当然跳过用例不执行。

  细颗粒度用例最大的风险就是可维护性,或者投入产出比。


本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

目录
相关文章
|
存储 算法 NoSQL
还分不清 Cookie、Session、Token、JWT?看这一篇就够了
Cookie、Session、Token 和 JWT(JSON Web Token)都是用于在网络应用中进行身份验证和状态管理的机制。虽然它们有一些相似之处,但在实际应用中有着不同的作用和特点,接下来就让我们一起看看吧,本文转载至http://juejin.im/post/5e055d9ef265da33997a42cc
46894 13
|
敏捷开发 安全 JavaScript
敏捷测试的8大原则和7大挑战
敏捷测试的8大原则和7大挑战
429 0
敏捷测试的8大原则和7大挑战
|
10月前
|
存储 安全 虚拟化
虚拟化技术:实现资源高效利用和灵活管理的利器
虚拟化技术作为实现资源高效利用和灵活管理的重要手段,在数字化时代背景下,正逐步改变传统IT架构模式。本文概述了虚拟化技术的概念、原理及其在数据中心管理、云计算平台、企业信息化建设、科研教育及医疗行业的应用,并探讨了其面临的挑战与未来发展趋势。
555 3
|
10月前
|
机器学习/深度学习 人工智能 算法
青否数字人声音克隆算法升级,16个超真实直播声音模型免费送!
青否数字人的声音克隆算法全面升级,能够完美克隆真人的音调、语速、情感和呼吸。提供16种超真实的直播声音模型,支持3大AI直播类型和6大核心AIGC技术,60秒快速开播,助力商家轻松赚钱。AI讲品、互动和售卖功能强大,支持多平台直播,确保每场直播话术不重复,智能互动和真实感十足。新手小白也能轻松上手,有效规避违规风险。
|
缓存 Linux Shell
Linux 内存管理与 Swap 空间扩展实践
该文介绍了Linux系统中`free`命令的使用,解析了其输出信息,包括物理内存(总内存、已用、空闲、缓存)和交换空间(总大小、使用和空闲)。Linux优先使用物理内存作缓存,当内存紧张时使用Swap空间。文章还提供了扩展Swap空间的步骤,并强调适度Swap使用对性能的影响,建议合理平衡物理内存和Swap的比例。
|
Java 关系型数据库 数据库连接
MyBatis-Plus 实战教程一 快速入门(一)
MyBatis-Plus 实战教程一 快速入门
424 0
|
JSON 自然语言处理 机器人
接口自动化测试教程:如何使用 Robot Framework
Robot Framework 是一个用于实现自动化测试和机器人流程自动化(RPA)的开放源代码框架。它由一个名为 Robot Framework Foundation 的组织得到推广,得到了多家领军企业在软件开发中的广泛应用。框架以其开放性和灵活性为特点,能够无缝整合各种其他工具,无论团队规模大小,均无需承担额外许可成本。
|
Java 程序员 uml
【程序员小知识】使用 PlantUML 画 UML(上)类图
【程序员小知识】使用 PlantUML 画 UML(上)类图
1040 0
|
Web App开发 jenkins 持续交付
|
SQL 缓存 监控
性能测试(23)——完整性能项目案例
性能测试需求分析与传统的功能测试需求有所不同 功能测试需求分析:重点在于分析被测系统的功能是否满足产品功能需求规格(正向、逆向) 性能测试需求分析:重点在于分析被测系统是否能满足特定的业务需求场景(时间、资源) 需要从业务场景、程序代码、服务器、硬件配置等多个维度分析系统可能存在性能瓶颈
4816 1