做好测试需求分析,首先需要深度了解需求,一般需求分为业务需求、用户需求、功能需求。功能需求有时也被称作行为需求功能需求是去解决业务需求、用户需求的具体的解决方案,也就是我们通常说的需求说明书。测试需求与功能需求的关系功能需求:系统应该做什么

如何做好软件测试的需求分析?

做好测试需求分析,首先需要深度了解需求,一般需求分为业务需求、用户需求、功能需求。业务需求:业务需求描述了组织为什么要开发一个系统, 即组织希望达到的目标。业务需求通常来自项目投资人,购买产品的客户实际用户的管理者、市场营销部门或产品集划部门。使用前置和范围文档来记录业务需求,这份文档有时也被称作项目轮廓图或市场需求文档。

用户需求:用户需求描述的是用户的目标或用户要求系统必须能完成的任务。比如软件的界面是否好看、功能使用是否便捷等都属于用户需求。用户需求可以认为是对业务需求的一个具体目标。比如业务需求提出了这个系统具有语音功能,那么用户需求可能就包含了语音具备的功能,比如. 比如可以喊刘德德华的电影影去搜家 电影等。

功能需求:功能需求规定开发人员必须在产品中实现的软件功能,用户利用这个功能来完成任务,满足业务需求。功能需求有时也被称作行为需求功能需求是去解决业务需求、用户需求的具体的解决方案,也就是我们通常说的需求说明书。对用户需求做具体的分析、提出实施方法(需求说明书通常是由软件开发方编写比如产品经理。使得用户和软件开发方都对软件的初始规定有个共同的理解,是整个开发的基础)。

同时,开发方需要对需求说明书进行评估,比如这个需求能不能做,耗赛的成本是不是小于带来的收益,还有风险评估等。什么是测试需求概述:测试需求通常是以功能需求为基础,通过对功能需求的细化和分解,形成可测试的内容。范围:测试需求应尽可能全部覆盖已定义的业务需求,以及功能和非功能方面的需求。目的:明确需求的范围、明确每个功能的业务处理过程、明确不同功能点业务组合, 挖掘显式需求背后的隐式需求。

测试需求用于解决测什么的问题,即指明被测对象中什么需要测试。测试需求的特征测试需求必须是可核实的,即必须有一个可观察、 可评测的结果,无法核实的需求不是测试需求。测试需求应指明满足需求的正常前置条件,同时也要指明不满足需求时的出错条件。测试需求不涉及具体的测试数据,测试数据设计是测试用例设计环节解决的问题。

测试需求与功能需求的关系功能需求:系统应该做什么。例如,某ATM机取款业务需求:每次取款额度在100~2000之间;取款的金额是100的倍数,每日取款总额不得超过20000,这是功能需求。测试需求:系统应该做什么、不应该做什么,发现系统设计中存在的问题。例如,取款金额可选:在100~2000之间且为100的倍数可取,小于100或大于2000不可取,在100~2000之间但不是100的倍数不可取,取款总额必须不超过账户余额,这是测试需求。

如何做一个软件需求分析师?优秀的需求分析师有什么样的品质?

这个问题很大,这篇不想再去重复一个软件需求分析员的知识体系结构,而是挑重点来谈下成为一个合格的软件需求分析人员的关键点。我原来对 软件需求的定义或描述更多是偏于对现实世界的定义,而对软件架构的描述为现实到实现之间的第一层抽象。在这里纠正一下即:用户需求是对现实世界的定义,而 软件系统需求是现实到实现的第一层抽象,即业务建模和软件系统用例建模。

在原来的软件工程里面我们更多谈到的一个词是系统分析员,我现在将其拆分为了软件 需求BA和系统架构SA两个角色。而实际上一个真正优秀的软件需求人员必须具备两方面的能力。从软件需求在整个软件生命周期中的定位来看,其上接业务,下接设计和技术。从这个概念上来讲软件需求人员必须具备业务和技术两个方面的能力。对 于业务,首先要解决的是对业务的理解,然后才是在理解后业务的形式化表达和业务建模能力。

而对业务如何理解,最核心的仍然是顶层的流程建模和分析能力,底 层的业务活动和规则清晰的描述能力。在这里里面涉及到流程梳理和定义能力,业务单据和对象的抽取和定义能力,业务规则的清晰阐述能力,和流程配套的相关的 岗位角色,交互等描述能力。要知道在这块往往并不需要太多的IT背景和软件工程的知识,更多的是对业务的熟悉,对流程管理和分析方法的了解。

上 面一步的业务更多的是属于顶层方面的内容,而第二个层面往往会过渡到系统软件需求层面的内容,在这里我们更加强调的是类似面向对象的用例分析和建模的方 法,这包含了业务用例和系统用例分析和建模,是一种很好的形式化的方式来定义和描述业务的方法。包括从流程分析转入到用例,单个具体的用例分析和建模,每 个用例详细的基本流,扩展流,业务规则,参与角色,界面原型,业务对象和对象属性等各个方面内容的描述,要知道我们做用例建模的目的是能够按用例驱动的核 心,平滑的转入到架构设计中去,因此用例分析建模已经不是简单的描述现实世界的问题,已经涉及到业务或用户需求到系统需求的第一层抽象转换。

要 做好需求的第二步的事情,那么单纯的只有业务背景就不足够的,必须还具备相应的IT和软件工程的技术背景。这个背景往往并不是说要做过多久的软件设计开 发,但是只是是做过,通过软件开发你能够很清楚的知道一个软件从需求调研和分析开始,最终是如何形成一个软件系统的。这个背景知识可以更加方便我们去考虑 用例建模,去认识到为何要采用这种方式去用例建模,真正理解用例中每个描述点如何影响到最终业务系统的实现。

没有技术背景很难真正成为一个优秀的软件需求分析师,最多也就是一个业务需求分析师。要 知道,当你进行用户需求调研后,往往收集到的都是一个个的用户需求点,而一个软件需求分析员要做的是最终将这些需求实现为一个完整的业务系统。这里面就涉 及到业务模块的划分,模块间的分析,需求层面的复用能力分析,各种性能,可靠性,安全等非功能性需求。

这些更加已经是一个完全的系统分析方面的内容,或者 说软件需求已经会兼顾部分软件架构设计的内容,因此作为一个软件需求人员更加需要去了解业务组件化,服务化,软件模块集成,复用等方面的技术内容。也需要 去了解涉及到UCD,交互设计方面的内容,这些都是形成一个高质量的软件业务系统的重要输入。一个优秀的软件需求人员既不应该因为具备技 术和开发背景而导致在需求分析和建模中的各种程序员思维,也不应该完全抛弃技术单纯的去描述业务不管实现的难易度。

软件需求人员衔接了最终用户和内部的设 计开发,是两者之间重要的沟通和协同桥梁。各种沟通和人际关系处理技巧,各种软技能的要求更是必不可少的,在此不再展开去描述。一个优秀的软件需求人员不存在是否能做新领域的软件需求的问题,因为最终真正有用的需求分析的方法论和模式,去理解和熟悉业务和快速形式化描述和建模的方法,有不断的实践总结出来的快速理解业务的能力。


文章TAG:2022.03.19软件需求汇总  如何做好软件需求  2022  03  软件  
没有了