软件测试学习(二)需求分析阶段
1.什么是软件需求
软件需求包括三个不同的层次—业务需求、用户需求和功能需求—也包括非功能需求。
业务需求( business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。
用户需求(user requirement) 文档描述了用户使用产品必须要完成的任务,这在使用实例(use case)文档或方案脚本(scenario)说明中予以说明。
功能需求(functional requirement)定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。所谓特性(feature)是指逻辑上相关的功能需求的集合,给用户提供处理能力并满足业务需求。
作为补充,软件需求规格说明还应包括非功能需求,它描述了系统展现给用户的行为和执行的操作等。
它包括产品必须遵从的标准、规范和合约;外部界面的具体细节;性能要求;设计或实现的约束条件及质量属性。所谓约束是指对开发人员在软件产品设计和构造上的限制。质量属性是通过多种角度对产品的特点进行描述,从而反映产品功能。多角度描述产品对用户和开发人员都极为重要。 值得注意的一点是,需求并未包括设计细节、实现细节、项目计划信息或测试信息。需求与这些没有关系,它关注的是充分说明你究竟想开发什么。
2.测试在需求分析阶段要做什么
2.1为什么测试要参与需求分析?
- 吃透被测对象详细需求——是后期测试活动的依据。
- 指出需求歧义——避免需求流失。
- 对需求不合理提出改进建议——把可能的缺陷关闭在需求分析阶段。
实际工作中,当测试接入时,项目处于什么阶段是不确定的。不同阶段的项目,测试展开工作的重点不同。需要通过历史需求和当前需求分析,明确被测对象现状与风险,作为后期展开工作活动的重要依据。
2.2 针对不同阶段的测试重点
项目根据阶段分三类:新项目 , 中期项目 , 维护项目。
1. 新项目:项目立项刚结束,承接到规划的需求,开发和测试新接入此项目。
此类项目往往迭代一规划的开发任务已经初步给出,但产品最终成型还是停留在规划上,这个时候测试人员也要依据自己的经验,专业,结合原始需求与开发一起参与需求分析整个过程。并提出建议和意见。通常开发人员更多的会从代码实现可行性,难度,实现方式等方面考虑。测试则应从用户体验,界面交互,性能,甚至是维护和推广的角度来考虑。
2.中期项目:项目已完成几个迭代,处于开发中期。
此类项目迭代已稳定进行几个周期,开发处于中期。这时候接入测试,测试人员需要先熟悉已完成的需求,产品规划等,再结合新需求进行需求分析。一方面做新需求分析,一方面要考虑新需求对老版本的关联和影响。或采用新需求兼容老版本的方式,或者老版本做更改和扩展,适应新需求。根据项目实际情况决定。
3.维护项目:项目开发结束,上线,处于维护阶段。
此类项目基本已经开发完成,开发人员通常只留有部分人员。测试此时接入,需要较多时间来熟悉已有功能。根据项目资料文档尽快熟悉产品的情况。后期维护,承接新需求时重点考虑的是新需求对老版本的影响。通常也是采用新需求兼容老版本的方面。不会再对老版本做大的变动。
2.3 测试需求分析的输入是什么?
客户需求、开发需求、协议、标准、规范和测试案例库。
2.4 测试需求分析的输出是什么?
需求来源分析的输出为《测试需求来源表》;
原始测试需求提取的输出为《原始测试需求表》;
原始测试需求分析的输出为《初始测试项表》;
测试特性分析的输出为《测试特性表》和《特性测试项表》。
2.5 测试需求分析的常用的工程方法有哪些?
如果是增量开发,原始测试需求提取的分析方法为继承性需求分析;
原始测试需求分析常用的工程方法为质量模型分析、功能交互分析和用户场景分析;
测试特性分析的工程方法为测试特性建模和测试项分解分配。
2.6 使用质量模型法开展测试需求分析
软件质量由ISO9126的6大项的27个质量特性子项来衡量,质量模型分析就是从软件质量因子角度来分析的。从不同的测试目的出发、以不同的角度来分析和测试产品,不同类型的测试会发现不同类型的Bug。
在测试分析设计活动中考虑质量模型分析,能够使测试分析设计人员尽可能从多个方面和角度进行测试分析,能非常有效的提升测试完备性。质量特性表参见如下:
2.7 使用功能交互法开展测试需求分析
软件功能不是独立的,功能之间存在交互、顺序执行等影响因素,这就是功能交互分析的角度。将被测功能和软件其他相关功能进行交互分析,根据影响点可以得出初始测试项。被测功能,也可以代指原始测试项或一组有逻辑关系的原始测试项求集合,软件其他相关功能包括所有需要进行交互分析的新增和继承功能特性。通过分析功能间的相互影响,能非常有效的提升测试完备性。
2.8 使用用户场景法开展测试需求分析
用户场景法是从用户角度出发(注意这里的用户是泛指,而不仅仅指人)来关注每个用户是如何使用和影响被测功能特性的,更能从基于用户的角度来分析。流程为:确定用户类型->选取当前用户类型的需求范围->根据质量特性与子特性生成测试项
3. 需求阶段的整体流程
软件测试学习(二)需求分析阶段相关推荐
- 软件测试中需求分析谁去做的,软件项目在进入需求分析阶段,测试人员应该开始介入其中。 - 问答库...
问题: [判断题] 软件项目在进入需求分析阶段,测试人员应该开始介入其中. A . 正确 B . 错误 某男性患者,45岁.乡镇企业工人,因腹胀,尿少2周就诊.诉近年来体力下降较明显,易疲乏,时有右上 ...
- 软件测试学习(二)测试用例例子、黑盒测试(一)
测试用例excel例子 这个帖子很好,很详细 测试用例编写 编写时间可以是:需求分析阶段开始(推荐),一般不需要等到编码完成,尽量的早开始. 注:依赖用例可选 黑盒测试 1.等价类划分 有效等价类(遵 ...
- 软件测试 学习之路 基本介绍
一.软件测试定义 通过手工或者工具对 "被测对象"进行测试操作,从而验证实际结与预期结果之间是否存在差异 . 二.软件测试的作用 1.通过测试工作可以发现并修复软件当中存在的缺陷, ...
- 字节软件测试岗二面:APP测试问题被虐哭了,直到看到这些知识点
APP测试一直是大厂软件测试问到的一个重点细节,下面我来给大家展示一下大厂关于APP测试经常会问到的一些问题,以及解析.想象一下当你遇到面试官问到你这些问题时,你是否也能够对答如流哦! 注意,注意啦! ...
- 软件测试学习 之 进阶之路
白客工作室虽成立不久,却得到许多朋友的关注与支持,最近接到很多关于零基础软件测的咨询,其中一些同学问我如何自学,我抽空写了一个软件测试工程师的学习路线,供想要转行或者刚刚从事软件测试的同学参考. 1 ...
- 两小时带你进入软件测试行业风口(附全套软件测试学习路线)
随着信息技术的发展和普及,人们对软件的使用越来越普及.但是在软件的使用过程中,软件的效果却不尽如人意.为了确保软件的质量,整个软件业界已经逐渐意识到测试的重要性,软件测试已经成为IT 领域的黄金行业. ...
- 计算机基础及软件测试学习路线
目录 一.软件 1.1 软件的开发阶段: 二.软件缺陷 2.1 *定义方式一(5条): 2.2 定义方式二(了解): 三.软件测试 四.计算机的层次 六.软件的分类 一.软件 计算机 = 硬件+软件 ...
- 软件测试学习——第四天
软件测试学习--第四天 今日目标 项⽬实战 1.登录模块 2.发布⽂章模块 一.登录模块 测试点 重点提示: 正向:⼀次尽量覆盖多条 逆向:⼀次只能覆盖⼀条,其他选项必须正确 测试用例 用例编号 用例 ...
- 软件测试python基础_软件测试学习教程——python基础
原标题:软件测试学习教程--python基础 一,print()函数 print 作用:把" "内部的内容,输出到屏幕. print("hello world" ...
最新文章
- 整理一下自己手撸的博客
- 工作随笔之nginx 应用场景
- 树莓派应用实例3:环境光照强度测量
- Hyperledger Fabric权限进阶篇
- mysql迁移cassandra_使用datax迁移cassandra数据
- aqs clh java_Java并发包源码学习之AQS框架(二)CLH lock queue和自旋锁
- 运用Java对微信公众平台二次开发技术——开发者模式接入
- MySQL数据库最大连接数
- 十八款为设计师提供的免费工具
- Java50道经典习题-程序7 处理字符串
- ASP.NET Web API 安全验证之摘要(Digest)认证
- Java入门到精通(六)
- L298N电机驱动板的使用说明
- Windows 10打开蓝牙已关闭解决方法
- 这 10 条河,「贡献」了全球 95% 的海洋塑料污染
- ChatGPT提问指令大全
- 2018美团点评校招-K的倍数
- JavaScript实现React实现网页转换成图片截屏下载
- linux桌面入口文件(.desktop)规范
- 怎么用英语推销小型计算机,关于推销电脑英语对话