MFQ
一什么是MFQ&PPDCS?MFQ&PPDCS是由外部教练邰晓梅提出的一套测试分析和测试设计方法。
MFQ将被测对象分层,针对不同层次进行测试分析和设计进行,使测试设计人员不会那么容易忘记一些测试的相关点(功能交互、质量属性)。 PPDCS 五个字母每个代表的是一种建模方法,主要用来细化测试场景。
注:PPPCS五种建模方法不只是适用于M单功能,对于F功能交互,Q质量属性一样可以使用。在我们日常测试中,对于M建模做的比较多,所以在简介中将五种建模方法列入到M下面,方便大家理解。
二MFQ&PPDCS特点综述♥  一种结构化测试分析和测试设计方法 ♥  通过KYM进行信息采集和功能理解 ♥  通过TCO来概化功能全貌提炼风险 ♥  通过MFQ划分测试单功能/功能交互/质量属性 ♥  通过PPDCS建模细化测试场景和测试用例♥  通过思维导图来进行信息的传递和维护
三
什么是KYM?KYM(Know YourMission):通过对结构化方式对从项目上下文的八个方面进行分析,全面了解被测对象相关的所有信息。
KYM的获取方式:TS,BA DEV当面讨论(大家可以根据各自项目或部门的情况输出适合自己的KYM模板)。注:KYM所有的条目只为扩展思想,不需要在每个需求中面面俱到,只需要关注本需求需要考虑的内容即可。KYM目的是整合手头所有的信息和资源,并从中挖掘一切对本需求测试有启发性的、可能有意义的所有线索,因此这并非是在浪费时间,而是在培养一种测试思维或者习惯:当我们开始做测试分析时,到底要怎样开始?
四
什么是TCO?TCO(Testing Coverage Outline )测试覆盖要点:是把从KYM中获取到的测试信息进行整合,对被测对象进行分层提炼,找出单功能M、功能交互F、质量属性Q,同时识别出风险Risk,列出疑问Issue,在分析过程中也可以提前把一些变量参数单独列入Data。♥  单功能的划分也是MFQ中一个重要部分,需要重点考虑的是每个单功能的边界是清晰的。可参考用户故事的划分原则INVEST (独立、便于沟通、有价值、可估算、短小、可测试)。
♥   F主要考虑的是多个单功能间的交互关系,以及与系统原有功能的交互关系的测试。
♥  Q 质量属性相对具有通用性(大家也可以根据各自项目及部门情况,制定适合自己的质量属性模板,这里附一个模板供参考)
五
PPDCS的适用场景PPDCS五种方法针对不同类型的被测对象,都是非常典型的测试设计方法。注:建模是整个MFQ&PPDCS测试分析和测试设计方法中最重要也是难度最高的环节,如何选择合适的建模方法,抽象出简洁的模型,需要多实践多练习。初学者可以先从自己最熟悉的方法来建模,发现不合适可以换一种方法,多练习,多感受每种方法的适用场合和技巧。
六
测试分析和设计四步法TAD (Test Analysis and Design) 测试分析与设计是TCO的进一步细化,针对每一个M,F,Q都可以用下面的四步法,先建模,然后输出测试场景,输出测试用例,基于经验补充测试用例。注:这四步不是固化不变的,对于不需要建模的单功能M,功能交互F,质量属性Q可以根据具体情况选择省略某些步骤。
后记MFQ&PPDCS是测试分析和测试设计的一种方法,方法本身并不复杂,但是要运用好这种方法需要具备一定的测试技能。
文中提到的KYM、TCO、Model、TCon、TC没有绝对正确的答案,只有相对合理的划分;这些都不是一次性完成的,而是不断反馈改进,互相影响,逐步完善的。随着对被测对象信息掌握的深度和广度的扩展,测试设计也会相应的全面而深入。
MFQ的更多相关文章
- 外贸中MFQ
		MFQ = Mask Fee Quantity 退掩膜费量Masking charge USD 2000. MFQ 100k in the first year 
- 从MFQ方法到需求分析
		前几天看了一篇性能测试相关的文章:性能测试模型初探及应用方法分析,其中提到了MFQ分析方法.专门去查阅了MFQ相关的一些资料,学习了一番. 之后想起了以前看<Google的软件测试之道>这 ... 
- 【海盗派测试分析MFQ&PPDCS】读书笔记
		使用脑图花了一张读书笔记,可能有点长 
- java web学习总结(三十一) -------------------EL表达式
		一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ... 
- shell脚本批量收集linux服务器的硬件信息快速实现
		安装ansible批量管理系统.(没有的话,ssh远程命令循环也可以) 在常用的数据库里面新建一张表,用你要收集的信息作为列名,提供可以用shell插入. 
- 关于如何使用sourcetree将本地项目提交到远端github总结?
		使用sourcetree将本地项目提交到github里,目前来说还是很流行的,我也是听说好玩,所以来琢磨了一下,从环境搭建到配置好,差不多用了一下午加一晚上的时间,有点虐心,好吧,废话不多说,介绍一下 ... 
- js实现多张图片每隔一秒换一张图片
		aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlkAAAHWCAIAAADLlAuAAAAgAElEQVR4nOzd5XNc157w+/l7bt2n6t 
- java web学习总结(七) -------------------HttpServletResponse对象(一)
		Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ... 
- VirtualBox Ubuntu Server 16.04 手动设置 网络(IP, DNS, 路由)
		1. VirtualBox 设置全局网络 在virtualBox点击菜单管理->全局管理 配置NAT网络 参考下图配置, 依次点击相应的按钮并设置网络(其中DHCP任意, 将来我们都会使用固定I ... 
随机推荐
- K3 LEDE固件更改FRP客户端版本
			1.下载文件 /usr/bin/wget --no-check-certificate https://github.com/fatedier/frp/releases/download/v0.23. ... 
- go语言之进阶篇WriteString的使用
			1.WriteString的使用 示例: package main import ( "fmt" "os" ) func WriteFile(path stri ... 
- [leetcode]Unique Binary Search Trees II @ Python
			原题地址:https://oj.leetcode.com/problems/unique-binary-search-trees-ii/ 题意:接上一题,这题要求返回的是所有符合条件的二叉查找树,而上 ... 
- JS获取当前项目名
			代码如下: //获取当前网址,如: var curWwwPath=window.document.location.href; //获取主机地址之后的目录如:/Tmall/index.jsp var ... 
- AngulerJS学习(五)按需动态载入文件
			在此之前我么年首先要先了解几个东西: $q 简单介绍: $q:主要解决的是异步编程的问题,是指描写叙述通过一个承诺行为与对象代表的异步运行的行动结果的交互.可能会也可能不会再不论什么时候完毕. 我们通 ... 
- 操作系统重点双语阅读 - 上下文切换 Context Switch
			The context is represented in the PCB of the process. It includes the value of the CPU registers, th ... 
- MySql查询时间段的方法(转)
			http://www.jb51.net/article/58668.htm 本文实例讲述了MySql查询时间段的方法.分享给大家供大家参考.具体方法如下: MySql查询时间段的方法未必人人都会,下面 ... 
- 数据科学家Docker历险记(1):windows下环境搭建
			原文:http://www.xueqing.tv/cms/article/247 Docker是最近炒得很火热的一门技术,在网上可以找到关于它的介绍文章,比如<Docker到底是什么?为什么它这 ... 
- Effective JavaScript Item 63 注意异步调用中可能会被忽略的异常
			异常处理是异步编程的一个难点. 在同步的代码中,异常可以非常easy地通过try catch语句来完毕: try { f(); g(); h(); } catch (e) { // handle an ... 
- CSOM中如何取到managed metadata类型字段的类型信息
			Field.fieldTypeKind返回的是Invalid [解决方法] There is no "Metadata" type of field in the SP.Field ... 
