软件测试需求分析

2023-09-12 16:46:05

1.1  需求的重要性

1.1.1 软件缺陷的8020原则

1)      在软件测试过程中,从需求分析开始到集成测试阶段引入测试手段,能发现所有缺陷的80%;系统测试阶段引入测试手段,能发现剩余缺陷中80%的缺陷;在运行维护阶段经过长时间、大量运行软件后,能够发现最后剩余的20%的缺陷。

1.2   软件需求

1.2.1  软件需求的定义

1) IEE软件工程标准词汇表( 1997年)中定义需求为:

(1)用户解决问题或达到目标所需的条件或权能( Capability )

(2) 系统或系统部件要满足合同、标准、规范或其它正式规定文档所需具有的条件或权能。

(3)一种反映上面( 1 )或( 2 )所描述的条件或权能的文档说明。

2)      需求是指明必须实现什么的规格说明。它描述了系统的行为、特性或属性,是在开发过程中对系统的约束软件需求的层次

1.2.2  软件需求的层次

1)      用户需求( user requirement )文档描述了用户使用产品必须要完成的任务,这在使用实例(use case )文档或方案脚本( scenario )说明中予以说明

2)       业务需求( business requirement )反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明

3)       功能需求( functional requirement )定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求

 

1.2.3  软件需求主要包括两个方面:需求开发和需求管理

1.2.4  需求开发可进一步分为四个阶段

  1. 需求获取阶段
  2. 需求分析阶段
  3. 编写需求规格阶段
  4. 需求验证阶段

 

1.2.5  不适当的需求过程可能引发风险

  1. 用户不多导致产品无法被接受
  2. 用户需求的增加带来过度的耗费和降低产品的质量
  3. 模棱两可的需求说明可能导致时间的浪费和返工
  4. 用户增加一些不必要的特性和开发人员画蛇添足( gold. plating)
  5. 过分简略的需求说明以致遗漏某些关键需求
  6. 忽略某类用户的需求将导致众多客户的不满
  7. 不完善的需求说明使得项目计划和跟踪无法准确进行

1.3   软件需求规格说明书

1.3.1  软件需求规格说明的特点

1)     完整性

不能遗漏任何必要的需求信息。遗漏需求将很难查出。注重用户的任务而不是系统的功能将有助于你避免不完整性。如果知道缺少某项信息,用TBD( "待确定” ) 作为标准标识来标明这项缺漏。在开始开发之前,必须解决需求中所有的TBD项。

2)     一致性

一致性是指与其它软件需求或高层(系统,业务)需求不相矛盾。在开发前必须解决所有需求间的不一 致部分。只有进行一番调查研究 ,才能知道某项需求是否确实正确。

3)     可修改性

  在必要时或为维护每一需求变更历史记录时,应该修订SRS.这就要求每项需求要独立标出,并与别的需求区别开来,从而无二义性。每项需求只应在SRS中出现- -次。 这样更改时易于保持一致性。 另外,使用目录表、索引和相互参照列表方法将使软件需求规格说明更容易修改。

4)    可跟踪性

应能在每项软件需求与它的根源和设计元素、源代码、测试用例之间建立起链接链,这种可跟踪性要求每项需求以-种结构化的,粒度好( fine -grained )的方式编写并单独标明,而不是大段大段的叙述。

 

1.4   软件测试需求跟踪矩阵

1.4.1  什么是测试需求跟踪矩阵

  1. 需求树的概念
  2. 需求树的好处
  3. 阅读理解各类需求
  4. 结合界面原型图理解软件各部分功能
  5. 从叶级别的功能点开始编写矩阵
  6. 保证每个功能点都有正反测试思路覆盖,正反测试配比达到1 : 4(部分功能点没有反向测试)
  7. 只写清测试思路和预期结果,不用具体展开
  8. 写好的测试需求跟踪矩阵必须通过评审才算最终完成

1.4.2  编写测试需求跟踪矩阵的步骤

1.5   软件测试需求

1.5.1  软件测试需求分析目标

对软件测试要解决的问题进行详细的分析,弄清楚参与软件测试活动的相关人员对软件测试活动和交付物的要求,包括需要输入什么数据,要得到什么结果,最后应输出什么等。

1.5.2  软件测试需求分析步骤

  1. 根据软件开发需求说明书逐条列出软件开发需求,并判断其可测试性
  2. 形成可测试的描述并界定出测试范围
  3. 根据质量标准,逐条制定质量需求,即测试通过标准
  4. 分析测试执行时需要实施的测试类型
  5. 建立测试需求跟踪矩阵,并输入测试需求管理系统,对测试需求实施严格有效的管理

更多推荐

什么是智能推荐?智能推荐的原理是什么?

一、智能推荐的魔力2020年的愚人节晚间,罗永浩在抖音带货,相信你也被刷屏了吧。3小时的直播过程中,22款产品轮番出场,最终首播支付交易总额突破1.1亿、整场直播观看总人数超过4800万、总销售件数逾91万,粉丝打赏音浪收入3600万,由此看来,罗老师看起来离“带货一哥”的目标又进了一步。不得不说,这场魔幻版的流量狂潮

如何学习java

带着问题去学?为什么我们debug的时候代码会停在哪一个位置什么是多态?(这个在类的生命周期里面寻找答案)我们学习java就是从代码到成为程序的过程所以这很明显就是我们的编译原理和os打交道这很明白就是操作系统和另一台机器打交道,那么就是计算机网络java指令8个从代码到程序就是从代码到字节码(javap命令可以看到)

七、运算符

运算符1.运算符1.1.赋值运算符1.2.算数运算符1.3.自增和自减运算符1.4.比较运算符1.5.逻辑运算符1.6.位运算符1.6.1.按位与运算1.6.2.按位或运算1.6.3.按位取反运算1.6.4.按位异或运算1.6.5.移位操作1.6.6.复合赋值运算符1.6.7.三元运算符1.6.8.运算符优先级1.7.

Linear Feedback Shift Register

线性反馈移位寄存器(LinearFeedbackShiftRegister,简称LFSR)是一种数字电路设计和密码学中常用的寄存器类型。它是一种简单而高效的方式,用于生成伪随机的二进制序列,并在数据混淆、错误检测和加密等领域中有应用。LFSR通常用于流密码的生成。以下是LFSR的关键特性和组成部分:移位寄存器:LFSR

应用程序接口(API)安全的入门指南

本文简单回顾了API的发展历史,其基本概念、功能、相关协议、以及使用场景,重点讨论了与之相关的不同安全要素、威胁、认证方法、以及十二项优秀实践。根据有记录的历史,随着Salesforce的销售自动化解决方案的推出,首个WebAPI在1990年底出现了。在那个时候,它是一种每个人都可以访问到的开放资源。Salesforc

MySQL常用操作

目录1.安装MySQL/MariaDB2.用户管理2.1用户信息2.2用户权限privileges3.增删改查3.1增删数据库/表3.2查询参考1.安装MySQL/MariaDB#1)确认是否已安装mysqlrpm-qa|grepmysql#2)(如无)执行以下命令进行安装##方法一yuminstallmysql-y#

docker介绍及入门举例

Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。Docker的主要优点有:1.提供了一种在任何地方创建、运行和分发应用程序的方法,而不仅仅是在虚拟机

Centos系统常见配置(详细)总结

目录一、简介二、具体内容1、设置静态ip2、重启网络3、ssh登录时自动运行命令4、新增用户并创建家目录5、终端显示bash-4.2#6、更换yum源7、centos系统串口终端自动登陆8、系统启动通过rc.local自动执行脚本9、关闭防火墙10、设置samba三、其他相关链接Ubuntu系统设置常见问题处理详细总结

iOS16新特性:实时活动-在锁屏界面实时更新APP消息 | 京东云技术团队

简介之前在《iOS16新特性:灵动岛适配开发与到家业务场景结合的探索实践》里介绍了iOS16新的特性:实时更新(LiveActivity)中灵动岛的适配流程,但其实除了灵动岛的展示样式,LiveActivity还有一种非常实用的应用场景,那就是锁屏界面实时状态更新:上图是部分已经做出适配的APP,锁屏实时活动的展示。可

RabbitMQ常见问题

一、RabbitMQ如何保证消息不丢失?这是面试时最喜欢问的问题,其实这是个所有MQ的一个共性的问题,大致的解决思路也是差不多的,但是针对不同的MQ产品会有不同的解决方案。而RabbitMQ设计之处就是针对企业内部系统之间进行调用设计的,所以他的消息可靠性是比较高的。1、哪些环节会有丢消息的可能?我们考虑一个通用的MQ

微服务 第二章 CountDownLatch和Semaphone的应用

系列文章目录第二章CountDownLatch和Semaphone的应用第一章Java线程池技术应用文章目录系列文章目录前言1、CountDownLatch1.1、应用场景2、Semaphone前言JavaJUI之并发编程,CountDownLatch和Semaphone的应用1、CountDownLatchCount

热文推荐