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 ...
随机推荐
- 正向代理与反向代理区别图解 (nginx)
1. 背景 经常听到代理,比如通常我们要上国外的网站时,需要买vpn作为跳板机器进行访问. 但是在公司里面也听到了nginx支持反向代理. 那什么是正向代理,什么是反向代理?在网上看了写内容,说一下自 ...
- [leetcode]Candy @ Python
原题地址:https://oj.leetcode.com/problems/candy/ 题意: There are N children standing in a line. Each child ...
- Generate Parentheses leetcode java
题目: Given n pairs of parentheses, write a function to generate all combinations of well-formed paren ...
- Context Application 使用总结 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 高德地图JS-API (超简单Get新技能√)
上几章我们研究了百度地图SDK的用法,虽然不难但是配置起来也是相当的繁琐,现在高德LBS开放平台推出了基于HTML5的地图组件,我们可以通过WebView直接用URL 以GET方式进行请求就可以实现位 ...
- 转:Deep learning系列(十五)有监督和无监督训练
http://m.blog.csdn.net/article/details?id=49591213 1. 前言 在学习深度学习的过程中,主要参考了四份资料: 台湾大学的机器学习技法公开课: Andr ...
- Java-JUC(八):使用wait,notify|notifyAll完成生产者消费者通信,虚假唤醒(Spurious Wakeups)问题出现场景,及问题解决方案。
模拟通过线程实现消费者和订阅者模式: 首先,定义一个店员:店员包含进货.卖货方法:其次,定义一个生产者,生产者负责给店员生产产品:再者,定义一个消费者,消费者负责从店员那里消费产品. 店员: /** ...
- Docker: 如何将node.js的项目部署到docker的swarm上面去
前提条件: Docker创建虚机和swarm 如何用Docker建立一个Node.js的开发环境 正文: 将如何用Docker建立一个Node.js的开发环境文中创建的nodehello image发 ...
- 删除数据库mysql
drop命令用于删除数据库. drop命令格式:drop database <数据库名>; 例如,删除名为 xhkdb的数据库:mysql> drop database xhkdb; ...
- RibbonControl中的主题设计
Ribbon+扁平化 据调查,其实人们可能最多只用到全部 Office 功能的 5%,为此,微软交互式团队推出了Ribbon风格,一时间,很多软件升级后都换成了Ribbon界面:扁平化其实不是新东西, ...