什么是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的更多相关文章

  1. 外贸中MFQ

    MFQ = Mask Fee Quantity 退掩膜费量Masking charge USD 2000. MFQ 100k in the first year

  2. 从MFQ方法到需求分析

    前几天看了一篇性能测试相关的文章:性能测试模型初探及应用方法分析,其中提到了MFQ分析方法.专门去查阅了MFQ相关的一些资料,学习了一番. 之后想起了以前看<Google的软件测试之道>这 ...

  3. 【海盗派测试分析MFQ&PPDCS】读书笔记

    使用脑图花了一张读书笔记,可能有点长

  4. java web学习总结(三十一) -------------------EL表达式

    一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...

  5. shell脚本批量收集linux服务器的硬件信息快速实现

    安装ansible批量管理系统.(没有的话,ssh远程命令循环也可以) 在常用的数据库里面新建一张表,用你要收集的信息作为列名,提供可以用shell插入.

  6. 关于如何使用sourcetree将本地项目提交到远端github总结?

    使用sourcetree将本地项目提交到github里,目前来说还是很流行的,我也是听说好玩,所以来琢磨了一下,从环境搭建到配置好,差不多用了一下午加一晚上的时间,有点虐心,好吧,废话不多说,介绍一下 ...

  7. js实现多张图片每隔一秒换一张图片

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlkAAAHWCAIAAADLlAuAAAAgAElEQVR4nOzd5XNc157w+/l7bt2n6t

  8. java web学习总结(七) -------------------HttpServletResponse对象(一)

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...

  9. VirtualBox Ubuntu Server 16.04 手动设置 网络(IP, DNS, 路由)

    1. VirtualBox 设置全局网络 在virtualBox点击菜单管理->全局管理 配置NAT网络 参考下图配置, 依次点击相应的按钮并设置网络(其中DHCP任意, 将来我们都会使用固定I ...

随机推荐

  1. HTML JS 数据校验

    用到了html字符串校验,这里记录一下. <html> <head> <script type="text/javascript"> funct ...

  2. JS Replace() 高级用法(转)

    在很多项目中,我们经常需要使用JS,在页面前面对前台的某些元素做做修改,js 的replace()方法就必不可少. 经常使用"ABCABCabc".replace("A& ...

  3. Java归去来第1集:手动给Eclipse配置Maven环境

    一.Eclipse配置Maven 1.1.下载Maven http://maven.apache.org/download.cgi,选择对应的版本,window下载apache-maven-3.5.3 ...

  4. php ci框架中载入css和js文件失败的原因及解决方法

    在将html页面整合到ci框架里面的时候,载入css和js失败. 原因是ci框架是入口的框架 对框架中文件的全部请求都须要经过index.php处理完毕,当载入外部的css和js文件的时候要使 用ba ...

  5. 4、Cocos2dx 3.0游戏开发找小三之Hello World 分析

    尊重开发人员的劳动成果.转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27186557 Hello World 分析 打开新 ...

  6. C语言代码复习笔记:第二章

    输出星星 #include <stdio.h> void printStart( int num ) { ) { printf("*"); }; } int main( ...

  7. android中RecyclerView控件实现长按弹出PopupMenu菜单功能

    之前写过一篇文章:android中实现简单的聊天功能 现在是在之前功能的基础上,添加一个长按聊天记录,删除对应聊天记录的功能 RecyclerView控件,没有对应的长按事件,我们需要自己手工添加,修 ...

  8. Android开发点滴 - 实现层级式导航(API 16+)

    在Jelly Bean(API 16)以前,为了实现顶部的导航菜单,程序员们不得不手工写代码, 神马在OnCreate啊,神马onOptionsItemSelected啊,但是,现在一切都是浮云了. ...

  9. 微信小程序 - (下拉)加载更多数据

    注意和后端配合就行了,前端也只能把数据拼接起来! 无论是下拉加载还是加载更多,一样的道理! 注意首次加载传递参数 注意每次加载数据数 wxml <view class='table-rank'& ...

  10. 使用gradle的application插件进行Spring-boot项目打包

    1:在build.gradle中增加以下配置 fat jar并不总是一个合适的选择,比如需要依赖跟jar分离,使用gradle的application插件就可以做到. 在GradleTest项目中,b ...