从MFQ方法到需求分析
前几天看了一篇性能测试相关的文章:性能测试模型初探及应用方法分析,其中提到了MFQ分析方法。专门去查阅了MFQ相关的一些资料,学习了一番。
之后想起了以前看《Google的软件测试之道》这本书时,书中提到的一种测试分析方法:ACC分析方法。
还有我个人在工作学习中总结的一个分析方法:象限分析法。
这篇博客,对这三种方法进行一个简单介绍,仅供参考。。。
参考资料:
一、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方法到需求分析的更多相关文章
- 软件project(六)——需求分析
需求分析是软件开发期的第一个阶段,是关系到软件开发成败的关键步骤.需求分析的任务就是明白系统必须完毕那些工作,以下是对需求分析这一章做的简要总结. 导图: 解释说明: 我将 ...
- [转载]ERP实施40问 60分钟外行变专家
http://www.chinaodoo.net/thread-389-1-1.html 在多年的实践中,结合自身经验和多年的理论积累,总结出有关ERP实施的最关键的40个问题,以问答的形式,让您在最 ...
- Student elective system (VF)
博客插N+文件有些麻烦,索性PDF上传到百度文库 点击获取<数据库系统原理与应用>也有相应的word版本 word版加密密码:(博客链接加密后) 六.附录 数据库设计的基本步骤,按照规范设 ...
- 20145213《Java程序设计》实验三敏捷开发与XP实践
20145213<Java程序设计>实验三敏捷开发与XP实践 实验要求 1.XP基础 2.XP核心实践 3.相关工具 实验内容 1.敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法 ...
- python搭建简易服务器实例参考
有关python搭建简易服务器的方法. 需求分析: 省油宝用户数 已经破了6000,原有的静态报表 已经变得臃肿不堪, 每次打开都要缓上半天,甚至浏览器直接挂掉 采用python搭建一个最最简易的 w ...
- Oracle学习笔记(十一)
例外: 例外是程序设计语言提供的一种功能,用来增强程序的健壮性和容错性. 例外分为:系统例外自定义例外 系统例外分为:No_data_found(没有找到数据).Too_many_rows(selec ...
- 软工视频总结Part Three
软件需求分析 任务 解决目标系统"做什么"问题 深入描写叙述软件的功能和性能 确定软件涉及到的约束和软件接口 定义软件的其它有效需求 特点 一致性.完整性.限时性.有效性.可验证性 ...
- 企业架构如何实施的简介(TOGAF深度好文)
本文来自企业架构学院: BangEA:如何实施企业架构? IT不仅是开展业务的手段,而且正在迅速演变为业务,IT绩效会直接影响企业的盈利能力,但很多企业并没有适时或充分的让IT组织参与业务的规划和决策 ...
- 201671030123叶虹 实验十四 团队项目评审&课程学习总结
项目 内容 这个作业属于哪个课程 软件工程 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 课程学习目标 掌握软件项目评审会流程:反思总结课程学习内容 一.实验一问题回答 1.实验 ...
随机推荐
- 如何用ABP框架快速完成项目(11) - ABP只要加人即可马上加快项目进展- 全栈篇(2) - 不推荐模块组件化, 推荐微服务
一个人写代码不需要担心会和别人的代码冲突, 不需要做代码合并, 不需要担心自己的代码被覆盖. 但是多个人一起写代码就需要担心这些问题. 解决这些问题的方法很多, 比如用AzureDevOps(TF ...
- 在centos7上编译安装nginx
题前,先放一个有图有真相的博客链接:https://www.cnblogs.com/zhang-shijie/p/5294162.html 虽然别人说的很详细,但还是记录一下 1.VMWare Wor ...
- Html5 和 CSS的简单应用
本文是利用几个简单的小例子,来实现html+css的简单应用. 菱形链接菜单 本例是采用html5+css3.0设置的菜单链接.其中主要用到了以下几个方面: CSS3.0中的2D变换,如:旋转tran ...
- Android为TV端助力 计算每个目录剩余空间丶总空间以及SD卡剩余空间
ublic class MemorySpaceCheck { /** * 计算剩余空间 * @param path * @return */ public static String getAvail ...
- Web前端:博客美化:四、网易云音乐单曲播放器
1.页面定制CSS代码 /*3.音乐播放器*/ .content-wrap { overflow-y: scroll; -webkit-overflow-scrolling: touch; } /* ...
- 搭建的flask项目,若修改项目中的文件,项目没有reload,除非重启主机,解决方法如下
1.博主本人前面有发过一篇博文如何搭建flask项目,可以去查看. 解决办法:加入一句 touch-reload=项目目录在uwsgi.ini 2.测试没问题
- SparkSQL【1.x版本】字段敏感不敏感问题
一.特征 1.SqlContext默认大小写不敏感,如果DataFrame中有字段相同,大小写不同,在使用字段的时候不会引起歧义. 2.HiveContext提供更多的Hive预置函数,可以更高效的进 ...
- MongoDB Sharding分片配置
Ps:mongod是mongodb实例,mongos被默认为为mongodb sharding的路由实例. 本文使用的mongodb版本为3.2.9,因此参考网址为:https://docs.mong ...
- f.lux 自动调节显示器色温
我的环境 f.lux 我的使用感受是让屏幕看起来舒服一些,因为我有近视,所以需要保护眼睛. f.lux官网:https://justgetflux.com/ f.lux v4.47 windows 1 ...
- css点滴2—六种方式实现元素水平居中
本文参考文章<六种方式实现元素水平居中> 元素水平居中的方法,最常见的莫过于给元素一个显式的宽度,然后加上margin的左右值为auto.这种方式给固定宽度的元素设置居中是最方便不过的.但 ...