测试需求分析的思考

一.测试需求分析是什么

测试需求分析是测试工作的第一步,经过需求分析,对原始需求列表中列出的每一个需求点,找到我们需要测试的测试要点;针对所确定的测试要点,分析测试执行时对应的测试方案/方法。

 简单来讲就是把不直观的需求文档简化为直观的需求(测试点)

1.使得测试范围可以度量(有多少功能,有多少功能项)度量测试范围(规定测试范围)

2.使得该系统所有测试业务场景度量(各种各样流程图)

3.使得独立的功能点对应的所有分支也可以独立(细化大的功能点的功能范围)

4.方便需求验证(明确输入-输出结果)

二.为什么要做需求分析---活在自己世界里的人是可悲的,只凭感觉不做详细了解就下定论的项目是失败的。

如果把测试活动比作软件生命周期,需求分析就是软件需求规格,测试策略==软件架构设计,测试用例就是软件详细设计,测试执行就是编码过程。

 

三.不做需求分析的后果

不做需求分析或需求分析不到位,可能会产生很严重的问题,比如:

(1)        浪费时间和资源实现了用户不需要的需求;

(2)        遗漏了需求文档中没提到,但很重要的需求,导致客户满意度降低。

(3)        需求分析不到位,错误的估计了测试的工作量,导致延误发布周期,可能会降低发布质量。

(4)        编写测试用例时候容易漏项

四.如何做需求分析?

1.通过需求文档了解需求的实现背景---静态测试的过程

拿到一个需求后,我们首先应该通读需求文档,先通过需求文档,对要做的需求的背景有个整体的了解,其实这个过程也是对需求文档测试的过程,对需求整体的了解后,我们可以先记录自己的一些疑惑,为后面需求的分析做一个准备工作,这个环节我们应该更多的了解一些需求的目的和一些用户的使用场景。

2.分析需求的合理性

通过业务分析需求的合理性----测试人员必备技能之一

而不是通过系统怎么实现来判断需求是否合理

不盲目的给什么需求就测什么需求

需要有深厚的业务功底+系统现有的实现分析

3.确定测试范围(关键)

结合需求文档内和文档没包含的内容

开发实现及改造对功能的影响

罗列全部测试点并分析优先级

4.分析并细化测试点,以及对应的测试方法(关键)

需求分析和测试需求分析的区别?  先需求分析(产品经理)-------测试需求分析(测试人员)
需求分析:初步设想(客户需求)-需求分析-需求规格:输入,处理和输出(先得到原始需求,由产品经理进行需求分析,然后输出需求规格说明书)
测试需求分析:单个功能点输入处理输出-------业务流程分析-------全局--(整个系统)------隐式需求挖掘(UI,性能,安全,应用性等)
测试需求分析:
---通过分析需求描述中的输入,输出,处理,限制,约束等给出对应的验证内容:(功能测试)
---通过分析各个功能模块之间的业务顺序,和接口之间信息和数据的传递,对存在功能交互的功能项,给出对应的验证内容(功能交互性测试,握手)
---考虑到需求的完整性,要充分考虑隐性需求的验证,比如界面的验证,注册账号的唯一性(界面,易用性,兼容性,安全性,性能)
---根据场景法和错误分析法补充测试案例

特性和关键模块可以单独拿出来分析

5.回头再重新梳理,查漏补缺

比如后续的需求变更

变更影响的关联关系

变动带来的风险和策略

一些问题

1.测试需求分析的常用的工程方法有哪些?
答:如果是增量开发,原始测试需求提取的分析方法为继承性需求分析;
原始测试需求分析常用的工程方法为质量模型分析、功能交互分析和用户场景分析;
测试特性分析的工程方法为测试特性建模和测试项分解分配。

2.如何使用质量模型法开展测试需求分析?

 软件质量由ISO9126的6大项的27个质量特性子项来衡量,质量模型分析就是从软件质量因子角度来分析的。从不同的测试目的出发、以不同的角度来分析和测试产品,不同类型的测试会发现不同类型的Bug。在测试分析设计活动中考虑质量模型分析,能够使测试分析设计人员尽可能从多个方面和角度进行测试分析,能非常有效的提升测试完备性。质量特性表参见如下:

3.如何使用功能交互法开展测试需求分析?

 答:软件功能不是独立的,功能之间存在交互、顺序执行等影响因素,这就是功能交互分析的角度。将被测功能和软件其他相关功能进行交互分析,根据影响点可以得出初始测试项。被测功能,也可以代指原始测试项或一组有逻辑关系的原始测试项求集合,软件其他相关功能包括所有需要进行交互分析的新增和继承功能特性。通过分析功能间的相互影响,能非常有效的提升测试完备性。

 

 

posted on 2018-12-18 17:11  夏至啊  阅读(3426)  评论(0编辑  收藏  举报

导航