什么是软件测试需求
回顾软件测试的流程:需求分析->测试计划->软件测试设计->软件测试执行->测试评估。
今天我们就讲第一个阶段:对应的需求分析怎么做?
什么是测试需求分析?
测试需求分析就是熟悉被测项目的业务,知道项目他具体是测什么?
测试需求主要解决的是测什么的问题,一般来自需求规格说明书中的原始需求【就是在当前这段,我要知道我们到底要测什么,测什么功能】。
我们进行需求分析的时候要关注以下两点:
1.测试目标或测试对象:解决测试什么问题。【解决测什么】
2.具体到被测对象中有什么需求,测试,每个测试目标要测试的内容。【解决有哪些功能需要去测(测试点)】
主要分析什么?覆盖范围有哪些?
我们做测试需求分析的时候,对应要去分析哪些东西呢?
测试需求分析要涵盖功能性需求,非功能性需求。
- 功能性需求:测试需求应该全部覆盖已定义的业务流程以及功能,这就是功能需求。
- 非功能性需求:除功能需求以外,其他就是非功能需求,指的是性能、安全性、兼容性、易用性的需求。
需求
明确需求:需求文档中涵盖的需求,或者用户明确提及的需求。
隐形需求:需求文档或用户没有提及的需求,但需要实现的需求,站在用户的角度去思考。
注意:测试需求不涉及具体的测试数据,测试数据设计是测试设计环节应解决的内容。
软件测试需求的必要性
为什么需要做测试需求分析?
- 软件测试需求是设计测试用例的依据。【我们后面的步骤要依靠他】
- 有助于保障测试的质量进度。【保障质量的理解:比如如果没有测试需求,对功能a进行需求分析,标准来说提取到的测试点有20个,但实际我的测试点只有10个,此时我的测试覆盖率只有50%,漏测了10个被测的内容...此时就没法保证产品的质量了;保障测试进度理解:分析的时候你没有去了解到被测对象有哪些业务,那么你自己都对需求不清楚,此时你又回头去进行需求分析,势必会影响我们整个项目的进度】
- 测试需求是衡量测试覆盖率的重要指标。
【怎么理解:
测试覆盖率由以下这三者来决定:
1、需求分析的覆盖率 :比如对功能a进行需求分析,它有20个测试点,那你实际提取到的测试点有没有20个?
2、测试用例的覆盖率 :测试用例是根据需求来进行设计的,也就是说做测试用例的时候,有没有全部覆盖需求分析
3、测试执行的覆盖率 :根据测试用例有没有全部执行到我们的测试能例?】
疑问:测试用例覆盖率是100%,测试执行率是100%,需求覆盖率是80%那最终测试的覆盖率是多少?
答案:80% 你需求有20个测试点,但是你实际只提取了16个,那你后面测试用例的覆盖率和执行的覆盖率都是由他决定的。
所以我们说测试需求极其重要,他是这是覆盖率的重要指标,核心影响因素
总而言之,只有明确了测试需求,才能知道怎么去测试?什么时候开始测试?要多少人测试?在什么环境上测试?
如何对软件测试需求进行分析【重点】
1、先要进行需求收集
需求收集的需求来源是什么呢?我没说是需求规格说明书,但是并不是所有的项目都有需求规格书,此时我们以什么为依据进行需求的收集呢?
需求收集的需求来源是什么?
1、项目需求规格说明书(SRS)
2、开发需求
3、继承需求【比如二次开发的项目,其中的部分需求从第1期中得到】
4、同行竞争产品【如果上述三者都没有,我们就可以参考一下别人的】
5、经验库
问题:项目没有任何需求文档如何进行需求分析?
此时可以参考同行的竞争产品,以及站在用户的角度及自身的经验进行需求分析。
2、测试需求分析
你收集到我们的需求之后,我们就要对需求文档进行细化和分解【提取需求的要点,也就是我们所谓的测试点】。
怎么去提取我们的测试点呢?
1、以需求文档作为参考依据
2、细化分解需求,提取我们对应的测试点
比如注册表单:需要注意到输入输出和限制条件,同时还要考虑交互功能。
这里还有一个例子:验证充值话费100元,点击充值,那么提示充值成功,那么就一定能够验证充值成功了蛮?其实并不是,我们还得去查询一下你当前的话费的余额是否多了100.
所以总结下来就是说:
如何对开发需求的细化和分解【提取测试点包括那些考虑点】
- 通过分析每条开发需求描述中的输入、输出、处理、限制、约束等,给出对应的验证内容;
- 通过分析各个模块之间的业务顺序,和各个功能模块之间传递的信息和数据(功能交互分析),对存在功能交互的功能项,给出对应的验证内容。(功能的交互)
注意交互很重要,不要忘记,比如:我要验证注册成功,它提示注册成功不是就完了,而是得看到你注册的用户名和密码能登录成功。
我们提取测试点的常用工具是什么?
- xmind
- excel
我们提取的测试点的特征是什么?
1、测试点他必须是可核实 的,也就是说他们必须是有一个可观察、可评测的结果。
2、测试点应该指明满足需求的正常的前置条件 ,同时也要指明不满足需求时的出错条件。
比如登录,在什么情况下登录成功,什么情况下登录失败
3、测试点不涉及 具体的测试数据,测试数据设计是测试设计环节应解决的内容。
这三个有其中一个符合即就是合格的测试点。
一个页面如何进行需求分析的一般步骤
1、界面检查,参考需求原型图【字体大小,字体颜色,页面布局】
2、从上到下,从左到右,对各个控件【比如输入框,文本框,单选按钮等等】的输入输出去提取测试点(考虑输入输出限制以及约束)。
3、按钮的分析,按照逻辑的先后顺序进行分析它的交互功能(关联功能)。【 我们的控件是按照从上到下,从左到右去分析,而我们的按钮一般并不是按照从上到下,从左到右去分析,按钮是按照逻辑的先后顺序进行分析,怎么理解,我们的按钮如果没有逻辑先后顺序就按照从上到下,从左到右去分析,如果按钮存在逻辑先后顺序,那么就按照逻辑的先后顺序去分析;同时还需要去分析我们的关联功能】
什么是关联功能(交互功能):它是验证当前结果的功能【当前这个功能的结果,通过什么功能去进行验证,这个就是他的关联功能】,比如验证注册成功功能,我们如何验证呢?此时反过来问就是什么样的功能可以验证注册成功?那它对应的关联功能是登录,我们提示注册成功并不代表就已经成功了,而是用你注册的用户名加密码去验证是否都能成功。
注意事项:一般不能通过提示去验证功能的结果,而是通过关联功能去验证
那么接下来我们开始实操了,使用xmind写测试点
比如:当前有一个登录功能和注册功能的需求文档,我们该怎么做?
登录功能需求文档:
text
登录页面
若用户名与密码正确点击登录按钮,进入系统首页;
若用户名不正确点击登录按钮提示"用户不存在!";
若密码不正确点击登录按钮提示"密码不正确,请检查后重新输入!";
点击重置按钮,清空用户名与密码框。
点击注册按钮,进入新用户注册页面。

注册功能需求文档:
text
注册页面
点击注册按钮,校验是否满足以下条件:-
1.用户名、密码、确认密码必须填写
2.用户名必须同时包含中文、英文与数字,长度大于等于6且小于等于12-
3.密码必须同时包含英文和数字,长度等于6
4.密码与确认密码必须一致
5.必须使用未被注册过的用户名
如果校验通过则弹出提示"注册成功",否则提示"注册失败"
点击取消按钮,退出注册页面

一行一行的读取需求,根据需求写出测试点

常见测试控件的测试要点
可以点击这个链接查看:
常见控件的测试要点总结
3、进行需求分析评审
我们通过需求评审会议进行需求分析评审,参与人员有产品测试开发。
需求分析评审目的:
1、需求的完整性【看你有没有遗漏的测试点、以及是否有遗漏的隐性需求】
2、保证需求的准确性【看你的测试点对不对,测试点是否有需求一致】
那本期我们梳理了如何进行软件测试的需求分析之后,下期我们将介绍需求分析中其他方面的考虑-软件质量的九大特征。
最后如果这些梳理对老铁们有用,希望老铁们点赞👍、关注、加收藏哦👋~