前几天看了一篇性能测试相关的文章:性能测试模型初探及应用方法分析,其中提到了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方法到需求分析的更多相关文章

  1. 软件project(六)——需求分析

           需求分析是软件开发期的第一个阶段,是关系到软件开发成败的关键步骤.需求分析的任务就是明白系统必须完毕那些工作,以下是对需求分析这一章做的简要总结. 导图: 解释说明:        我将 ...

  2. [转载]ERP实施40问 60分钟外行变专家

    http://www.chinaodoo.net/thread-389-1-1.html 在多年的实践中,结合自身经验和多年的理论积累,总结出有关ERP实施的最关键的40个问题,以问答的形式,让您在最 ...

  3. Student elective system (VF)

    博客插N+文件有些麻烦,索性PDF上传到百度文库 点击获取<数据库系统原理与应用>也有相应的word版本 word版加密密码:(博客链接加密后) 六.附录 数据库设计的基本步骤,按照规范设 ...

  4. 20145213《Java程序设计》实验三敏捷开发与XP实践

    20145213<Java程序设计>实验三敏捷开发与XP实践 实验要求 1.XP基础 2.XP核心实践 3.相关工具 实验内容 1.敏捷开发与XP 软件工程是把系统的.有序的.可量化的方法 ...

  5. python搭建简易服务器实例参考

    有关python搭建简易服务器的方法. 需求分析: 省油宝用户数 已经破了6000,原有的静态报表 已经变得臃肿不堪, 每次打开都要缓上半天,甚至浏览器直接挂掉 采用python搭建一个最最简易的 w ...

  6. Oracle学习笔记(十一)

    例外: 例外是程序设计语言提供的一种功能,用来增强程序的健壮性和容错性. 例外分为:系统例外自定义例外 系统例外分为:No_data_found(没有找到数据).Too_many_rows(selec ...

  7. 软工视频总结Part Three

    软件需求分析 任务 解决目标系统"做什么"问题 深入描写叙述软件的功能和性能 确定软件涉及到的约束和软件接口 定义软件的其它有效需求 特点 一致性.完整性.限时性.有效性.可验证性 ...

  8. 企业架构如何实施的简介(TOGAF深度好文)

    本文来自企业架构学院: BangEA:如何实施企业架构? IT不仅是开展业务的手段,而且正在迅速演变为业务,IT绩效会直接影响企业的盈利能力,但很多企业并没有适时或充分的让IT组织参与业务的规划和决策 ...

  9. 201671030123叶虹 实验十四 团队项目评审&课程学习总结

    项目 内容 这个作业属于哪个课程 软件工程 这个作业的要求在哪里 实验十四 团队项目评审&课程学习总结 课程学习目标 掌握软件项目评审会流程:反思总结课程学习内容 一.实验一问题回答 1.实验 ...

随机推荐

  1. 【代码笔记】Web-JavaScript-JavaScript 类型转换

    一,效果图. 二,代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> ...

  2. Navicat Premium for Mac 破解版地址

    找了好几个都不能使用    试了一下这个  可以使用 放地址:http://www.orsoon.com/Mac/85386.html

  3. loadrunner 脚本录制-录制选项设置HTML-based URL-based Script

    脚本录制-录制选项设置, HTML-based Script与URL-based Script by:授客 QQ:1033553122 Access:Vugen->Tool->Record ...

  4. ReactNative编写规范

    <一>  React 代码规范 文件与组件命名 扩展名: 使用.js作为js文件的扩展名.如果同一个文件夹下有同名而不同作用的js文件,则通过中缀(小写)进一步区分,例如:HomePage ...

  5. js导出Excel表格

    js导出Excel表格 直接上代码: 红色部分:如果表格数据中有“1/1”这样的值,会在导出的Excel中转化为日期“1月1日”,所以才加上了红色那两句.如果返回值中没有这样的格式,红色部分可以不写. ...

  6. wap2app(二)-- 设置APP系统状态栏

    准备 工具:HBuilder 一.全屏设置,不显示系统状态栏 这里所说的系统状态栏就是包括了:信号.运营商.电量等信息手机屏幕最顶部信息. 全屏并非状态栏透明或变色,而是没有状态栏,也就是看不见电量. ...

  7. css和HTML布局小技巧

    一:水平居中 1. 如下所示,让child在parent中水平居中 <!DOCTYPE html> <html> <head lang="en"> ...

  8. java 获取当前系统可用字体名称

    //获取系统的字体 public static void getLocalFontFamily(){ GraphicsEnvironment ge=GraphicsEnvironment.getLoc ...

  9. c# 采用datatable 快速导入数据至MSSQL的方法分享

    转自:http://www.maomao365.com/?p=5613 摘要:下文讲述使用c#代码快速将dataTable导入至mssql数据库的方法 实现思路:需要将datatable调整为同目标表 ...

  10. Uvision4创建工程

    创建工程 创建好工程会出现如下的界面 创建文件( .asm 或 .c ) 选择菜单栏中的File->New- 按 Ctrl+S 保存文件并填写文件名 添加到之前创建的工程中 选择Target1- ...