一、什么是测试需求分析

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类