软件测试的原则和测试需求分析_测试需求主要考虑软件系统不应该做什么对吗-程序员宅基地

技术标签: 软件测试  测试工具  

软件测试的原则

 1. 所有的测试都是以需求规格说明书为准的。
 2. 软件测试必须基于“质量第一”的思想开展工作,如果时间与质量冲突,时间服从质量。
 3. 事先定义好产品的质量标准,只要有了质量标准,才能根据测试结果,对产品质量进行分析和评估。
 4. 软件测试应该尽早的介入软件开发过程。
 5. 不能去穷举测试(测试时有条件限定的范围)
 6. 专业的测试人员会更客观、更有效
 7. 软件测试计划是做好软件测试工作的基础
 8. 软件测试用例是设计出来的,不是写出来的。所根据测试的目的,采用相应的测试用例方法设计测试用例,从而提高测试效率,发现更多的缺陷。
 9. 对于开发错误较多的程序段,应该进行更深入的测试,错误越多隐藏的缺陷就越多。

软件测试需求分析

1. 测试需求概述

  1. 软件需求的定义:

    1. 用户解决问题或者达到目标所需的条件或权能(Capability)
    2. 系统或系统部件是否满足合同、标准、规范或其他正式规定文档所需具有的条件或权限
    3. 将(1)和(2)中条件的描述,转换成文档,就构成了测试需求。它包括功能性需求和非功能性需求两种。
  2. 软件需求分类:

    1. 业务需求:从业务层面分析的内容,包括业务场景、业务流程,以及要实现业务的目标
    2. 系统需求:
      1. 功能性需求:定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足业务需求
      2. 非功能需求:包括产品必须曾遵循的标准、规范和合约;外部界面的具体细节;性能要求;设计和实现的约束条件及质量属性。
        【有了软件需求,就可以根据软件需求中的业务需求和系统需求,提取出软件测试需求】
  3. 软件测试需求:
    指的是测试人员在需求阶段,根据多方渠道(需求规格说明书、项目合同书、会议记录、和客户交谈的记录等)收集具备可测性的需求,被称为测试需求

    需求规格说明书、项目合同书、会议记录、和客户交谈的记录等 —> 提取原始需求 —> 经过分析之后具备可测性 —> 测试需求。

  4. 软件需求分析的意义:

    1. 明确测试范围:明确要测试的功能点,阐述不需要测试功能点的原因
    2. 明确测试类型、测试阶段:了解和掌握测试工作中的功能、非功能测试有哪些;不同测试类型涉及哪些测试阶段,如单元测试、集成测试等。
    3. 识别需求的优先级:明确哪些测试目标优先级高、哪些目标优先级低。明确客户最关注的是什么,明确测试的工作重点。

2.测试需求分析阶段

  1. 测试需求分析阶段输入/输出
    收集测试需求 —> 需求规格说明书,项目合同书,会议记录 -----> 原始软件需求
    分析测试需求 —> 原始软件需求 -----> 可测性分析(测试需求跟踪矩阵)
    参加需求评审 ----> 测试需求跟踪矩阵 ----> 会议评审意见(评审结论)
  2. 分析测试需求
    原始需求列表 ----> 可测性分析 ----> 明确测试内容和测试阶段 -----> 测试需求跟踪矩阵
    测试需求跟踪矩阵,需要告诉测试人员测什么

    通过规则的约束提取出需求
    1. 正向需求:按照规则约束来进行操作
    2. 反向需求;违反规则的要求描述

  3. 测试需求评审的意义:
    1. 通过需求评审可以将不一致、遗漏的、错误的需求审查出来
    2. 缺陷在需求阶段产生的比较多
    3. 缺陷在需求评审阶段修复的成本较低
  4. 软件缺陷的8020原则:在需求阶段发现80%的缺陷,在测试阶段发现16%的缺陷,在后续持续运行的过程中发现4%的缺陷。因此:
    1. 尽早的介入测试,尤其是在需求分析阶段必须介入
    2. 需求阶段应该作为测试的核心进行重点关注。
  5. 需求阶段产生缺陷较多的原因在于:
    1. 用户是非专业人员,产品与用户沟通存在比较大的困难,对开发的产品理解不一致;
    2. 由于残产品没有被设计和实现,完全靠想象去描述西戎的实现结果,所有有些特性就不会很明确;
    3. 需求的不断变化,没有做到及时处理;
    4. 没有得到开发团队和管理层的足够重视;
    5. 没有及时沟通,不同的岗位对于需求的理解是不一致的。
  6. 需求评审的形式:相互评审 —> 轮查 -----> 走查 ----> 小组评审 —> 审查
  7. 需求评审的主要内容:
    1. 文档中的所有描述是否完整、清晰、准确地反应用户要求;
    2. 与所有其他系统成分的重要接口是否都已经描述;
    3. 所有的图标是否清楚,再不补充说明时能否理解;
    4. 软件所做的事情,是否与对应的功能保持一致;
    5. 要考虑需求的变更;
    6. 有没有遗漏、不一致的、重复的地方。
      评审结束后,由产品奖励发送评审报告,有参与人员【整个项目所有相关人员】确认签字。
      测试人员子啊评审会议后,确定可测试需求,编写测试计划,为后续的测试工作进行准备。
  8. 测试需求跟踪矩阵表头信息:需求编号 功能名称 需求描述 需求拆分 测试类型 测试要点 测试负责人 优先级
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_46157720/article/details/123628516

智能推荐

C语言:验证下列矩阵是否为魔方阵。魔方阵是每一行、每一列、主副对角线上的元素之和都是相等的矩阵。-程序员宅基地

文章浏览阅读2.6k次。#include <stdio.h>#include <string.h>#include <string.h>int main(void){ int a[5][5] = {17,24,1,8,15, 23,5,7,14,16, 4,6,13,20,22, 10,12,19,21,3, 11,18,25._验证下列矩阵是否为魔方阵。魔方阵是每一行、每一列、主副对角线上的元素之和都是

Django疫情返乡人员管理系统-11411,计算机毕业设计开题选题+程序定制+论文书写+答辩ppt书写-原创(题目+编号)的定制程序-程序员宅基地

文章浏览阅读51次。免费领取项目源码,请关注赞收藏并私信博主,谢谢-本课题研究的疫情返乡人员管理系统,主要功能模块包括:防疫须知、疫情用品、返乡报备、用户反馈管理等,主要是主要采取Mysql作为后台数据的主要存储单元,运用软件工程原理和开发方法,采用Python的Django技术构建的,实现了系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。

oracle序列中cache和nocache-程序员宅基地

文章浏览阅读1.1k次。首先我这篇博客的内容是我不知道oracle里的 cache 是什么,结果越查越多。。。“序列的cache通常为 20,但在需要依据序列值判断创建的先后顺序时必须是 NOCACHE”,关于这句话,是公司的数据库规范里提到的一句话,但是我感觉nocache会导致的问题好像还不少,所以我很纠结,但是除了根据序列值判断创建的先后顺序外,还有其他的靠谱的方式来判断先后顺序吗?难道入库时间不可以吗..._数据库中的nocache是什么意思

C语言那些事之字符串操作_c语言编辑多行源代码中的字符串-程序员宅基地

文章浏览阅读193次。一、字符串多行书写有时为了书写阅读方便,需要将一大串的字符串写成多行举例源码 MyUart_Printf("moduleConfigParams=>\r\n"\ "\tuartBaudrate:%s\r\n"\ "\tuartStopbit:%s\r\n"\ "\tparityType:%s\r\n"\ "\trfC..._c语言编辑多行源代码中的字符串

Python 与 JavaScript 语法差异点_js python 语法 区别-程序员宅基地

文章浏览阅读1.2k次。随着人工智能技术的普及,越来越多的前端程序员开始关注相关技术。Python 作为人工智能领域最常用的语言,与前端程序员日常使用的语言 JavaScript 同属脚本语言,且在两者发展过程中,社区也多有相互借鉴之处,因此有很多相似。一个熟悉 JavaScript 语言的前端程序员,通过掌握了他们之间的不同之处,可以快速上手 Python 。以下是我学习过程中记录的 Python 不同于 JavaSc..._js python 语法 区别

深谈德国车和日本车的区别--觉得分析的还算冷静客观-程序员宅基地

文章浏览阅读744次。《德系VS日系》比较客观的文章作者:颜宇鹏,新车评网创办人之一、总编辑、首席车评人、视频版主持人。从业超过十年,曾任专业汽车杂志试车总监、主编。阅车无数,对全球车型发展、中国汽车市场、试车驾驶技术有深厚积累,其见解独到的车评备受读者喜爱和业界推崇。在讨论“德系VS日系”这个话题时,我想先确立以下几点基础原则。..._2019新君威的前后防碰梁

随便推点

openGauss 向量化引擎-程序员宅基地

文章浏览阅读249次,点赞4次,收藏4次。openGauss提供向量化引擎,通常用在OLAP数据仓库类系统。主要是因为分析型系统通常是数据处理密集型,基本上都是采用顺序方式来访问表中大部分的数据,然后再进行计算,最后将计算结果输出给用户。

云锁linux宝塔安装,【最新版】宝塔面板下为Nginx自编译云锁Web防护模块教程-程序员宅基地

文章浏览阅读639次。相信很多站长在使用宝塔面板的同时也会安装云锁用于加固服务器安全性,不过有时因为Nginx版本过高等问题导致安装云锁时无法自动安装Web防护模块,所以还需要我们在Linux系统下额外将云锁Web防护模块编译进Nginx才可以。之前也转载过一篇一、上传云锁Web防护模块压缩包并解压Ps:其实宝塔添加模块功能里可以通过配置shell脚本实现这些前置准备,但我还是喜欢用手动的方式上传,这样使步骤看起来更直..._宝塔 云锁自编译 测试

Android 笔记:Error:A problem occurred configuring project ':app'.-程序员宅基地

文章浏览阅读8.4k次。原文作者:雪飘碧鸳 在github上导入项目,或其他地方导入Android Studio,出现Error:A problem occurred configuring project ‘:app’.的错误。其实这种错误有很多种原因,需要对每种情况进行不同的处理才行,这里说的一种情况是JNI的情况,即该项目使用到C/C++库,此时需要引入NDK才行,先看下错误提示Gradle ‘trunk’ ..._error:a problem occurred configuring project ':app'.

dataframe的groupby,agg,unstack应用_group by unstack-程序员宅基地

文章浏览阅读603次。groupby一个索引的比较简单,这里主要讲两个索引的:这里先设dataframe为下图然后根据第0列和第1列来进行分组,再对第二列进行数量统计,这里用了nunique函数来进行数量统计上图中最上面的2表示是根据原表的第3列即序号2的那一列使用的agg函数得到的结果。unstack是把一维表转换成二维表,即把(0,1)这对分组条件分别写成表的行列索引,一一对应agg函数得到的结果,如下图:stack是把二维表转换成一维表,类似花括号形式(就像是思维导图一层一层括出去),第一列写上原本的行索引_group by unstack

树莓派宝塔搭建NAS私有云盘nextcloud_宝塔做nas-程序员宅基地

文章浏览阅读2.2k次。宝塔新建网站:假设文件夹根目录为/home/nextcloud创建FTP,数据集。并且选择php版本。删除文件夹根目录/home/nextcloud下的两个html文件。下载nextcloud文件:官网链接可以使用wget:wget https://download.nextcloud.com/server/releases/nextcloud-20.0.0.zip,或者本地端下载后拖过去。多线程下载:sudo apt install axel axel -n 20 ht.._宝塔做nas

快学Scala 第一课 (变量,类型,操作符)-程序员宅基地

文章浏览阅读41次。Scala 用val定义常量,用var定义变量。常量重新赋值就会报错。变量没有问题。注意:我们不需要给出值或者变量的类型,scala初始化表达式会自己推断出来。当然我们也可以指定类型。多个值和变量可以一起声明:Scala 类型:Byte, Char, Short, Int, Long, Float, Double, BooleanScala不区分基...