从MFQ方法到需求分析
前几天看了一篇性能测试相关的文章:性能测试模型初探及应用方法分析,其中提到了MFQ分析方法。专门去查阅了MFQ相关的一些资料,学习了一番。
之后想起了以前看《Google的软件测试之道》这本书时,书中提到的一种测试分析方法:ACC分析方法。
还有我个人在工作学习中总结的一个分析方法:象限分析法。
这篇博客,对这三种方法进行一个简单介绍,仅供参考。。。
参考资料:
MFQ在实践中的应用
邰晓梅博客
一、MFQ方法
MFQ是由邰晓梅提出的一种结构化的思维以及测试分析和测试设计方法,分为四部曲。整个四部曲之间实质上是全貌到细节,整体到部分的关系。
它运用启发思维的方式让大家从不同的维度对需求进行进一步了解,从测试的角度重新定义需求,结构化的思维方式辅助图形化工具使得场景遗漏概率降低。
MFQ的四部曲分别如下:
1、KYM
KYM(Kown Your Mission),即了解自己的测试对象。对于需求承接者来说,需要从不同的维度去了解、分析需求,在分析过程中,有任何疑问均可以罗列出来。
KYM通用的维度可用如下引导词来标识:CIDTESTD,即:Customer、Information、Developer Relations、Test Team、Equipment&Tools、Sheduler、Test Item、Deliverables。
2、TCO
TCO(Testing Coverage Outline),即从测试的角度对原始需求进行提炼,提炼出对测试有用的测试点,并且对提取出的信息进行重组,识别出需求中的风险,做到对需求心中有数。
KYM与TCO均不是一次性过程,并且需要各种角色成员一起梳理,其中TCO中最重要的是要识别出M、F、Q:
M:基于模型的单功能测试分析和设计;
F:功能交互测试分析和设计;
Q:质量属性测试分析和设计;
3、建模MFQ&PPDCS
通过TCO对需求的整理之后,划分了单功能和功能交互点,这时的输出物还只是测试点,不足以支撑整个测试,还需要对具体的单功能使用建模方法。
PPDCS(Process,Parameter,DATA,Conbination,State)建模方法从不同维度设立了建模思路,下面简单介绍一下其中三种建模方法的适用场景:
Parameter:需求中或者划分出来的单功能或者功能交互点有许多参数,且这些参数相互之间有一定的业务规则约束,即某些参数之间组合才能符合需求。
DATA:需求中或者划分出来的单功能或者功能交互点有许多参数,但是这些参数之间没有业务规则的约束。
State:需求中或者划分出来的单功能或者功能交互点涉及多种状态,且各种状态之间由于某些业务规则,能够相互转换。
4、TCON
根据上一步建模的测试场景,生成TCON,用上述判定不同情况下的测试条件转变,TCON这里可以理解为TestCase。
总结:MFQ需要团队每个成员参与完成测试点的梳理,并且,MFQ不是一次性过程,需要在迭代中针对任务完成情况以及风险点进行及时纠正及完善。
二、ACC分析方法
来源:《Google软件测试之道》
具体可参考我之前的博客:《Google软件测试之道》测试工程师
ACC(Attribute Component Capability)分析方法即:特质、组件、能力。这是从Google众多测试团队实践中总结的一个优秀流程,受众较多,搜索“Google Test Analytics”即可找到。
ACC指导原则如下:
①避免散漫的文字,使用简明的列表;
②不必推销(测试计划的受众是工程师);
③尽量简洁(测试计划的大小和测试问题的规模有关,和作者的写作欲望无关);
④渐进式的描述(make it flow):测试计划的每个部分应该是前面部分的延伸;
⑤指导者的思路(一个好的计划过程可以帮助计划者思考产品功能及其测试需求,有条不紊的从概念过度到直接实现的低层细节);
⑥最终结果应该是测试用例(测试计划最直接的体现就是可以清楚的指导测试用例的编写);
A:代表特质(Attribute)
在设计测试计划或者做ACC分析时,必须先确定该产品对用户、对业务的意义;比如:为什么开发它?能带来什么价值?怎样吸引客户?核心竞争力是什么?等等。。。
特质代表了产品的品质和特色,是区别于竞争对手的关键。
C:代表组件(Component)
组件是构成待建系统的模块,在特质被识别后确定,组件是使一个软件之所以如此的关键代码块;实际上,它们是测试人员所要测试的对象。
C:代表能力(capability)
能力(功能点)代表系统在用户指令下完成的动作。它们是对输入的响应、对查询的应答、以及代表用户完成的活动。
能力一般是面向用户的,表达用户眼里系统的行为,它最重要的一个特点是它的可测试性。
关于能力点分析的一种方法:
上图是一个以特质为X轴、以组件为Y轴的表格,通过这种方法将功能点映射到特质和组件上。其中有很多空格,它表示:只有部分组件对该特质有影响(不是每个组件都对特质有影响);
能力表的每一行或列表示按某种方式相关联一个功能点切片,这样可以将应用功能分解为多个可测试点的办法。单元格中数字表示该组件满足此特质能力的数量,数字越大,该交叉点需要!
测试的测试点越多,这些能力点可以方便指定组件/特质对的需要的测试;可以以这些功能点直接涉及测试用例,或将它们组合成更大的用例或测试场景。
注意以下几点:
①每个功能点至少对应一个用例
②重要的功能点对应多个用例
③并非所有的功能点都是同等重要的,区分优先级很重要
三、象限分析法
这个方法是我个人阅读《高效能人士的七个习惯》这本书后总结出来的,可能不是首创,但也包含了个人的一些思考和总结。方法如下图:
说明:
这个方法的原则就是将测试需求根据不同维度和等级划分为四个象限,然后进行对应的填充,在具体的测试执行过程中,根据具体情况(比如资源、时间等)进行优先级执行。
上图是我去年这个时候画的,按照需求的功能、非功能、重要、不重要四个维度划分。此刻写这篇博客的时候,想到了其他的不同维度,比如:优先级、实现难易程度等。
有一定测试经验的童鞋应该都了解,在国内目前的大环境下,测试的时间和资源往往都是不够的,这种情况下如何做取舍,降低上线的风险程度是必须衡量的。
根据需求分析的结果,进行不同维度划分,可以更好地安排接下来的测试工作,做到合理取舍,降低上线风险。
PS:无论是MFQ还是ACC或者象限分析法,其实都需要根据具体情况(比如团队成员构成,技术水平,职业素养,资源),进行合理的划分和分析,由简入繁。
以上内容仅供参考,如有更好的意见,可以提出来,一起交流讨论。。。
从MFQ方法到需求分析相关推荐
- 如何采用简化方法进行需求分析
如何采用简化方法进行需求分析 前言 需求分析阶段是管理信息系统(MIS)开发最重要的阶段.MIS开发的需求阶段首先是了解和澄清用户的需求,然后严格地定义被开发的软件系统的需求规格说明书[1].常用的软 ...
- 软件测试—从MFQ到需求分析
本文转自:https://www.cnblogs.com/imyalost/p/9393789.html 从MFQ方法到需求分析 前几天看了一篇性能测试相关的文章:性能测试模型初探及应用方法分析,其中 ...
- 软件工程 chap-5 需求分析方法
需求分析方法 1 需求分析的原则 对需求描述的要求 2 需求收集方法 3 传统需求分析建模方法 功能建模(DFD) 行为建模(STD) Petri网 数据字典 判定表和判定树 4 面向对象的需求分析建 ...
- LIMS实验室系统需求分析的方法
今天来探讨一下LIMS实验室系统需求分析的方法. LIMS系统是一个以检测业务为核心,以设备仪器.标准物质管理等管理模块为支撑的试验室信息管理系统,该类系统具有一定的行业通用性.然而,国内企业因其自身 ...
- 需求分析挑战之旅——疯狂的订餐系统
摘要: 说教性质的需求分析理论,各位看了也白看,所以咱们就来一个真实个案--"订餐系统"体验一下."订餐系统"貌似简单,但陷阱重重,各种需求分析的经典场景将会一 ...
- 决胜B端第2版(4):需求分析的十三要素五步法
本文由作者 杨堃 发布于社区 需求挖掘和分析是产品设计中挑战最大的工作之一,如何洞察需求的本质,识别出真实的意图,并通过优雅的产品设计,解决需求背后的痛点,是所有产品经理都应该持续提升的核心能力. 需 ...
- 需求获取的三阶段:需求背景、需求调研、需求分析 (3)
收集到了客户的需求后,下一步就到了对需求进行分析的阶段,在这个阶段就要理解需求.分析需求.最后确定系统需要实现的功能需求.这一阶段非常重要,因为前期收集到的需求表达形式各种各样,不一定都是用" ...
- 浅析软件开发项目中的需求分析
[摘要]在软件开发项目中,需求分析是关乎软件项目开发成败的重要因素.现在的软件项目中返工开销占了总开销很大比例,而导致返工的主要原因是需求分析不明确.针对这一情况,文章阐述了软件开发中需求分析任务.需 ...
- Oracle数据库设计方法
数据库设计师建立数据库及应用系统的技术,是信息系统开发和建设中的核心技术,具体来说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及应用系统,使之能够有效存储数据,满足各种用户 ...
最新文章
- mysql case 表达式
- 分支语句、循环语句、函数初步
- 精度 召回率 F score
- 第07章:MongoDB-CRUD操作--文档--创建
- 贯穿产品运营过程的三个用户思维
- vue These dependencies were not found: * core-js/modules/es.array.iterator in ./node_modules/@babe
- 八大排序:Java实现八大排序及算法复杂度分析
- 机器数.原码 反码 补码比较理解
- 魔域私服怎么老服务器中断,魔域私服技术文章-服务器端比较正确的数据库解释文件...
- linux ipv6 前缀 定义,家庭拨号动态前缀IPv6环境下的内部设备IPv6地址的端口放通...
- 【踩坑系列】SpringBoot 项目更换浏览器选项卡的图标
- 计算机c盘怎样重命名,怎么对C盘一子文件夹重命名
- cartographer_pose_extrapolator
- 东芝2510ac请求维修cd40_东芝复印机2505AC错误CD40维修请求
- 什么会导致HTTP出现429请求过多错误?
- keil编译后显示的Program size含义
- signature=da5bc91649d670f1b27f07ad681e7c71,Signature of HDM clustering at Planck angular scales
- OpenLayers结合Turf实现空间运算
- 2022-8-24 华为秋招笔试
- 基于GD32VF103 的vga显示器 和ps2键盘 驱动
热门文章
- SpringCloud 中使用HikariPool 报错Possibly consider using a shorter maxLifetime value
- D. TediousLee (找规律、推导)
- TI MSP432P401R GY-906非接触式温度传感驱动程序
- 使用BeanCopier复制对象
- Symbol MC3000系列.NET CF 自动安装
- 为什么会显示未找到服务器,为什么我点开始游戏他显示未找到服务器列表呢 – 手机爱问...
- 华为mate40上市时间-华为mate40系列发布时间
- leetcode第860题柠檬水找零
- 用python画熊猫_当熊猫不够用熊猫
- hallway corridor gallery三个表示走廊的词的区别