一、什么是测试需求分析
1.测试需求分析不足的后果
需求模糊-测试点不明确-风险未知-计划不准确-缺陷遗漏
2.测试需求分析不足的代价
官方调查数据统计图

修复缺陷的成本会升高:可以看出需求阶段消除缺陷的代价最小,越往后,代价就和几何倍增加。
3.测试需求分析与需求分析的区别
需求分析 测试需求分析
执行者:需求分析师 测试工程师
来源:客户以及客户描述 需求规格说明书
动作:确认需求,保证需求完整,无遗漏 分析分解需求,指定测试策略
结果:需求规格说明书 功能点,验证需求实现
注:功能点:能够单独完成某个具体业务流程,例如登录、注册就是两个功能点
测试点:对功能点的一个分解,源于项目需求吗,例如对登录的输入框进行各种测试、
例子:
客户说我想买电脑
需求:买电脑
需求分析:1.款式:买笔记本还是台式
2.品牌:dell、苹果、联想
3.预算:2000-3000、3000-4000、4000-5000、5000-6000以此类推
4.主要用途:打游戏,商用,家用休闲
测试需求分析:将所有的列出来,进行一个结合分析,例如2000的笔记本电脑用于打游戏的有多少种,哪种结合用户的需求时比较适合的。
4.为什么要做测试需求分析
(1)不直观-直观
测试范围明确
功能点细化
业务场景明确
(2)不明确-明确
明确输入输出以及中间处理
(3)不可度量-可度量
测试范围
任务量
工作工时
5.测试需求分析产物
明确需求-分解需求-发现疑问-测试点-识别风险
二、如何进行测试需求分析
1.学会阅读需求
(1)输入件:将手中的需求输入文档进行整合
(2)画思维导图:使用xmind进行逻辑梳理,画出大致的功能流程图,要注意异常流程和功能交叉的情况
分解需求,包含哪些大点,逐步细分
(3)记录:记录疑问点、问题点、测试难点、风险点
2.在阅读需求时,测试需求的分析思路-MFQ
M:单功能:基于模型的单功能测试分析与测试设计-可以独立测试的单功能模块
F:功能交互:功能交互测试分析与测试设计-单功能与单功能之间,可能存在交互点,功能交互,比如功能继承,一致性等
Q:质量属性:质量属性测试分析与测试设计-非功能的质量属性,比如性能,兼容性等
3.测试分析方法PPDCS

流程P:
应用条件:适用于业务流程(有明显的业务流程,如淘宝购买商品,需考虑各种分支/异常流程(异常:比如余额不足情况))
特征:1.有多个步骤,各步骤间有一定的前后约束关系,所有步骤共同完成一件事
2.整个过程可能涉多于一个的执行者/触发者
需求关注分析点:①分解需求,整理各个状态节点,梳理主业务流程
②仔细推敲,考虑流程中任何一个异常流程,各个节点的流转
③分解需求,找准流程特性需求点,把握功能流程的颗粒度
④主流程减少异常流程,流程简单
⑤适用于M、F相关功能点分析
参数P:
特点:①“参数值的个数有限,可以通过遍历的方式来测试覆盖到”
②系统会对不同的“参数值”做出不同的处理或响应
需求分析关注点:①识别参数,整理参数取值范围
②增加参数对已有业务影响
③使用判定表/判定树等方式分析
④适用于M、F类
数据D:
应用条件:①当需求紧急围绕着一些数据,每个数据有明确的取值范围时,一般使用等价类和边界值
特征:①数据之间没有明显的“各种组合关系从而构成某种规则”,各数据之间的逻辑关系时相互比较独立的
②各数据的取值之间有可能存在一些约束关系
需求分析关注点:①明确显性数据范围,比如编辑框长度、可输入字符
②发掘隐藏数据,比如性能、智能通道数及达到或超出的反应
③等价类、边界值分析,M类比较多
组合C:
应用条件:需求围绕一些因子,各因子有几种不同的状态,但是因子之间组合数目庞大,人工难以穷举,所以用组合类的方法正交实验法来设计
特征:①因子个数多
②每个因子有多种可能存在的状态
③因子之间可能存在一些逻辑约束关系
需求分析点:主要是为了减少测试用例数,已较少的用例数覆盖较多的测试点,在有选择情况下,不如其他四种建模方式
状态S:
应用条件:当需求中设计多种状态时,一般采用状态图
应用条件:①涉及多种状态,最好是同一对象的多种状态,否则把多个对象的多种状态都放在一个模型表达,容易混淆。
②各个状态之间可以发生相互转换,状态可逆
需求分析关注点:①梳理状态,勿遗漏
②状态之间可以转换操作,有哪些操作可以模拟实现,勿遗漏
③记录状态是否存在不同的前提条件,是否需要开发代码特殊模拟实现
④适用于M、F类
