软件需求分析和需求文档解读
什么是测试需求?
确切地讲,所谓的测试需求就是在项目中要测试什么。我们在测试活动中,首先需要明确测试需求(What),才能决定怎么测(How),测试时间(When),需要多少人(Who),测试的环境是什么(Where),测试中需要的技能、工具以及相应的背景知识,测试中可能遇到的风险等等,以上所有的内容结合起来就构成了测试计划的基本要素。而测试需求是测试计划的基础与重点。
就像软件的需求一样,测试需求根据不同的公司环境,不同的专业水平,不同的要求,详细程度也是不同的。但是,对于一个全新的项目或者产品,测试需求力求详细明确,以避免测试遗漏与误解。
为什么要做测试需求?
如果要成功的做一个测试项目,首先必须了解测试规模、复杂程度与可能存在的风险,这些都需要通过详细的测试需求来了解。所谓知己知彼,百战不殆。测试需求不明确,只会造成获取的信息不正确,无法对所测软件有一个清晰全面的认识,测试计划就毫无根据可言。活在自己世界里的人是可悲的,只凭感觉不做详细了解就下定论的项目是失败的。
测试需求越详细精准,表明对所测软件的了解越深,对所要进行的任务内容就越清晰,就更有把握保证测试的质量与进度。
如果把测试活动比作软件生命周期,测试需求就相当于软件的需求规格,测试策略相当于软件的架构设计,测试用例相当于软件的详细设计,测试执行相当于软件的编码过程。只是在测试过程中,我们把“软件”两个字全部替换成了“测试”。这样,我们就明白了整个测试活动的依据来源于测试需求。
测试需求分析依据
通常是以被测产品的需求为原型进行分析转变而来,测试需求主要通过以下途径来进行收集:
与待测软件相关的各种文档资料。如软件需求规格、Use case、界面设计、项目会议或与客户沟通时有关于需求信息的会议记录、其他技术文档等。
与客户或系统分析员的沟通。
业务背景资料。如待测软件业务领域的知识等。
正式与非正式的培训。
其他。如果以旧系统为原型,以全新的架构方式来设计或完善软件,那么旧系统的原有功能跟特性就成为了最有效的测试需求收集途径。
测试需求架构划分
测试需求分析应首先进行测试需求架构划分并先进行评审,通过后才进行后续的测试需求展开分析,从产品整体上考虑有哪些功能、测试类型需要进行分析,列出测试特性列表,也方便下一步展开具体分析。
首先,这里需要对功能进行一下定义以达成共识,功能是指能独立实现一个基本业务处理要求,为了降低测试需求设计的复杂性及依赖性,测试需求架构罗列的功能是指最小功能点,即不可再继续分解。
(1)应用程序:
A.一般是最底层的菜单项为最小功能点,若最底层的菜单项不能体现一个独立的业务流程时,可采用上一层
的菜单项为最小功能点。
B. 还有某些比较特殊没有体现在菜单项的功能也需要作为最小功能点考虑,如POS应用程序中交易的冲正功能
等。
(2)驱动:一般是以一个API为最小功能点。
然后,再考虑产品实际用户使用的场合及用户特点考虑哪些测试类型,如故障及恢复、功能集成、性能要求、安装测试、软硬件兼容性等,此处需要从产品层面考虑,而不是从功能点层面考虑。
测试需求收集
测试需求的收集主要通过对测试依据进行分析整理,最后生成一个以测试的观点出发的checklist(检查表),用来作为测试该软件的主要工作内容。检查表的检查要点包括需求的正确性、必要性、优先级、明确性、可测性、完整性、一致性、可修改性:
在整个信息收集过程中,务必确保软件的功能与特性被正确理解。因此,测试需求分析人员必须具备优秀的沟通能力与表达能力。
测试类型划分
根据测试需求收集获得的checklist(检查表),对每一条测试需求,从GB/T16260.1定义的软件质量子特性角度出发,确定所对应的质量子特性。即,从适用性、准确性、互操作性、保密安全性、成熟性、容错性、易恢复性、易理解性、易学性、以操作性、吸引性、时间特性、资源利用性、易分析性、易改变性、稳定性、易测试性、适应性、易安装性、共存性、易替换性和依从性方面的定义出发,确定每一条测试需求所对应的质量子特性。从而对这些质量子特性进行测试类型划分,如:功能测试、易用性测试(安装测试、功能易用性测试、用户界面测试、辅助系统测试)、兼容性测试、可靠性测试、文档测试、性能测试,强度测试等。
测试类型细化
对划分的每个测试类型进行细化。软件测试需求是开发测试用例的依据,测试需求分解得越详细精准,表明对软件的了解越深,对所有要进行的任务就越清晰,对测试用例的设计质量的帮助也越大,详细的测试需求还是衡量测试覆盖度的重要指标,测试需求是计算测试覆盖的分母,没有详细的测试需求就无法有效的进行软件测试覆盖计算。最好达到细化的结果是分支的最末端(测试项)针对的测试目的是单一的最小的功能点的测试,即每个测试项为一个测试功能点。
生成测试需求树
已细化的测试需求中,由于在提取时,可能存在着重复或冗余,需要进行删除和合并需求。删除测试需求中存在的重复的、冗余的含有关系的测试项。如果有类似的测试项,则需要对其进行合并。最终生成测试需求树。
测试风险分析
由于软件的输入、输出、处理存在一定的限制和约束,另一方面由于测试树中进行了必要的删除和合并,这导致测试需求不可能是全面的覆盖,从而形成了一定的测试风险。测试需求中必须对不分析或不测试部分给出相应的风险分析说明。
以上主要描述了测试需求相关理论和获得测试需求树的一般过程。为具体项目实施测试中提供了一套获取测试需求树的参考方案。实际的测试类型划分和测试需求树生成的形式或粒度,因项目而不同,需灵活应用。
软件需求分析和需求文档解读相关推荐
- 需求分析 及需求文档的编写
通常,软件开发工程师和软件测试工程师的工作都开始于软件需求说明书成型的基础上.那么软件需求说明书到底是怎么来的,软件的需求分析到底怎么做?今天我就针对这个话题结合我自己的一些理解和经历来梳理一下. 需 ...
- 《软件需求分析(第二版)》第 10 章——编写需求文档 重点部分总结
文章目录 前言 一.单选题 二.简答题 三.名词解释 总结 前言 软件需求分析就是把软件计划期间建立的软件可行性分析求精和细化,分析各种可能的解法,并且分配给各个软件元素.需求分析是软件定义阶段中的最 ...
- 测试驱动需求分析--需求文档评审实例
相关文章链接如下: 微软过桥问题与测试人员素养 等价类分法 新解 测试用例设计中的NP难题 C/C++代码检视实例 90%程序员写不出无BUG的二分查找程序? 需求文 ...
- 客户需求文档 MRD 和项目需求分析文档
2008/07/23, 12:00 上午 客户需求文档 MRD Marketing Requirement Doc 和项目需求分析文档是项目开始时最重要的文档.是项目实施的依据,MRD 是来自客户和市 ...
- 软件工程复习 第二章 需求分析 需求文档的撰写 需求分析三类建模
2.1需求分析的概念 进行需求分析的原因: 1.需求分析的错误和变更导致软件开发失败占比高(eg:a.缺少用户的输入 b.不完整的需求和规格说明书 c.需求和规格说明书的变更) 2.希望对开发进行引导 ...
- prd移动端通用产品需求文档+Axure高保真app社交订餐通用prd文档+产品业务说明+PRD功能性需求+移动端公工通用模板说明+需求分析+竞品分析+产品结构图+产品业务流程图+产品信息图+餐饮系统
作品介绍:prd移动端通用产品需求文档+Axure高保真app社交餐饮通用prd文档+产品业务说明+通用prd文档+移动端公工通用模板++全局说明+需求分析+竞品分析+产品结构图+产品业务流程图+产品 ...
- 分享个“软件开发需求文档”
...... 由于内容太多,就不一一截图分享了,喜欢的小伙伴可直接在公众号后台回复:"软件开发需求文档"即可获取. 最后,我建立了各大城市的产品交流群,想进群小伙伴加微信:yw52 ...
- java五子棋需求分析文档_五子棋需求文档.docx
五子棋需求文档 <五子棋goBang>项目需求分析报告作者:陈平.雷小梅.唐莉.邓悦.程强日期:2016-3-12审批:日期:状态修订人修改日期版本备注五子棋2016-3-121.0概述1 ...
- 需求分析——需求文档(需求分析结果)的作用
需求分析学习指导目录:https://blog.csdn.net/weixin_42562514/article/details/90572761 (1)在需求方面达成一致:需求是一种反复进行的过程, ...
最新文章
- C++深拷贝与浅拷贝
- Google总裁:未来互联网要消失!物联网将无处不在。
- 使用Spring Session做分布式会话管理
- usb接口供电不足_1个USB接口变成4个?什么东西那么“牛”?请你花2分钟了解一下...
- 程序员,互联网创业者,忠言逆耳,希望创业者们慎重,三思而后行。
- centos7.4 mysql启动,centos7下mysql服务启动失败_网站服务器运行维护,centos7,mysql
- Netty工作笔记0030---NIO与零拷贝原理剖析
- adb命令启动activity、service,发送broadcast
- 通过 Azure 媒体管理门户开始使用直播流媒体
- matlab输数据出结果,matlab对数据的输入输出
- Linux Spark安装教程
- 安全管家安卓_网速管家安卓5.4版本全面上线
- 电话面试的技巧和注意事项
- try(){}的简单理解
- 颜色空间内容讲解与图像分割应用
- 【CICE-A7a】人身保险会计与财务(上)
- Fiddler显示IP的设置方法
- Sentinel LDK配置记录
- 获取淘宝客推广位id(adzone_id)
- github和gitee的个人空间地址验证正则