提取测试需求

提取测试需求

测试工作的依据首先是业务需求规格说明书,所以应该首先提取测试需求,把需求从业务需求中提取出来,再把业务需求分解为测试需求,每个业务需求对应一个或多个测试需求。

在分析测试需求和设计测试用例时,以需求规格说明书为依据,以业务功能为中心,以质量模型中的各子特性为出发点,同时深刻理解业务规则和隐式需求,通过与客户深入沟通,明确测试范围和质量目标,达到测试分析和设计全面、无遗漏。

什么是隐式需求呢?

从质量保证的定义:产品或服务满足显示或隐含需求能力的功能和特性总和。所以在提取测试需求时,除了关注显式提出的业务需求外,我们也应该关注隐式的需求。这些隐式需求包括:

1、用户隐式的需求。例如:行业规则、业务规则、原来系统已经实现约定俗成的操作或功能等。这些需求设计人员往往认为研发团队会知道这些规则,所以没有在需求中显示描述。这些地方由于没有明确约定,又缺少沟通,往往成为最容易出现缺陷的地方,不容忽视。

2、计算机领域的规范或习惯。这些方面是很难写到业务需求中的,业务需求往往是文字描述,很难准确描述系统展示界面,例如,如果某个输入我有限个元素,则应该用列表框或选择框控件实现,而用编辑框实现则要在输入中做很多判断,不断增加编程工作量,也增加测试工作量,同时给用户带来不便。

3、客户认为我们应该理解或在需求中遗漏的需求。例如,认为我们理解金融行业的会计规则,但是如果不在测试需求明确说明,则由于测试工程师没有金融行业会计方面的测试经验而忘记测试。

4、业务需求编写人员受计算机技术的能力。不知道性能指标如何描述或描述不准确。需要测试团队协助科技人员和业务人员把描述不准确、正确或隐含的性能指标需求显示描述清晰。

[软件质量特性]

正确性在预定环境下,软件满足设计规格说明及用户预期目标的程度。它要求软件没有错误。

可靠性软件按照设计要求,在规定时间和条件下不出故障,持续运行的程度。

效率为了完成预定功能,软件系统所需的计算机资源的多少。

完整性为了某一目的而保护数据,避免它受到偶然的,或有意的破坏、改动或遗失的能力。

可使用性对于一个软件系统,用户学习、使用软件及为程序准备输入和解释输出所需工作量的大小。

可维护性为满足用户新的要求,或当环境发生了变化,或运行中发现了新的错误时,对一个已投入运行的软件进行相应诊断和修改所需工作量的大小。

可测试性测试软件以确保其能够执行预定功能所需工作量的大小。

灵活性修改或改进一个已投入运行的软件所需工作量的大小。

可移植性将一个软件系统从一个计算机系统或环境移植到另一个计算机系统或环境中运行时所需工作量的大小。

复用性一个软件(或软件的部件)能再次用于其他应用(该应用的功能与此软件或软件部件的所完成的功能有联系)的程度。

互连性连接一个软件和其他系统所需工作量的大小。如果这个软件要联网,或与其他系统通信,或要把其他系统纳入到自己的控制之下,必须有系统间的接口,使之可以联结。互连性很重要。它又称相互操作性。

[软件质量的度量]

可跟踪性在特定的开发和运行环境下,跟踪设计表示或实际程序部件到原始需求的(可追溯)能力。

完备性软件需求充分实现的程度。

一致性在整个软件设计与实现的过程中技术与记号的统一程度。

安全性防止软件受到意外的或蓄意的存取、使用、修改、毁坏,或防止泄密的程度。

容错性系统出错(机器临时发生故障或数据输入不合理)时,能以某种预定方式,做出适当处理,得以继续执行和恢复系统的能力。它又称健壮性。

准确性能达到的计算或控制精度。它又称精确性。

简单性在不复杂、可理解的方式下,定义和实现软件功能的程度。

执行效率为了实现某个功能,提供使用最少处理时间的程度。

存储效率为了实现某个功能,提供使用最少存储空间的程度。

存取控制软件对用户存取权限的控制方式达到的程度。

存取审查软件对用户存取权限的俭查程度。

操作性操作软件的难易程度。它通常取决于与软件操作有关的操作规程,以及是否提供有用的输入/输出方法。

易训练性软件辅助新的用户使用系统的能力。这取决于是否提供帮助用户熟练掌握软件系统的方法。它又称可培训性或培训性。

简明性软件易读的程度。这个特性可以帮助人们方便地阅读自己或他人编制的程序和文档。它又称可理解性。

模块独立性软件系统内部接口达到的高内聚、低耦合的程度。

自描述性对软件功能进行自身说明的程度。亦称自含文档性。

结构性软件能达到的结构良好的程度。

义档完备性软件文档齐全、描述清楚、满足规范或标准的程度。

通用性软件功能覆盖面宽广的程度。

可扩充性软件的体系结构、数据设计和过程设计的可扩充的程度。

可修改性软件容易修改,而不致于产生副作用的程度。

自检性软件监测自身操作效果和发现自身错误的能力。它又称工具性。

机器独立性不依赖于某个特定设备及计算机而能工作的程度。它又称硬件独立性。

软件系统性软件不依赖于非标准程序设计语言特征、操作系统特征,或其他环境约束,仅靠自身能实现其功能的程度。它又称软件独立性或自包含性。

通信共享性使用标准的通信协议、接口和带宽的标准化的程度。

数据共享性使用标准数据结构和数据类型的程度。

通信性提供有效的I/O方式的程度。