软件测试相关概念

news2024/12/25 10:25:18

✏️作者:银河罐头
📋系列专栏:JavaEE

🌲“种一棵树最好的时间是十年前,其次是现在”

目录

  • 需求
    • 需求的定义
    • 测试人员眼中的需求
    • 为什么需求对测试人员如此重要
    • 如何深入理解需求
  • 测试用例
    • 定义
    • 为什么要有测试用例
  • 软件错误(BUG)的概念
  • 软件的生命周期
  • 开发模型
    • 瀑布模型
    • 螺旋模型
    • 增量、迭代
    • 敏捷
      • scrum
  • 测试模型
    • v 模型
    • W 模型

需求

需求的定义

满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软件需求。

用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成 的任务。该需求一般比较简略。

软件需求:或者叫功能需求,该需求会详细描述开发人员必须实现的软件功能。

大多数公司在进行软件开发的时候会把用户需求转化为软件需求,开发人员和测试人员工作的直接依据 就是软件需求。

软件需求是测试人员进行测试工作的基本依据。

测试人员眼中的需求

需求是测试人员开展软件测试工作的依据。

在具体设计测试用例的时候,首先需要搞清楚每一个业务需求对应的多个软件功能需求点,然后分析出 每个软件功能需求点对应的多个测试需求点,然后针对每个测试需求点设计测试用例。 过程如下,业务需求—>软件功能需求点—>测试需求点—>测试用例

image-20230507135424271

为什么需求对测试人员如此重要

从软件功能需求出发,无遗漏的识别出测试需求是至关重要的,这将直接关系到用例的测试覆盖率

对于识别出的每个测试需求点,需要采用具体的设计测试用例的方法来进行测试用例的设计

如何深入理解需求

测试人员在需求分析和设计阶段就开始介入,因为这个阶段是理解和掌握软件的原始业务需求的最好 时机。 只有真正理解了原始业务需求之后,才有可能从业务需求的角度去设计针对性明确,从终端用户的使用 场景到端到端的覆盖率较高的测试用例集。

测试用例

定义

测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。

测试用例解决了两大问题:测什么,怎么测。

举例:登录 QQ

测试环境:windows 系统

操作步骤:输入账号,密码,点击登录按钮

测试数据:账号,密码

预期结果:登陆成功

为什么要有测试用例

测试用例提高测试人员的工作效率/降低测试人员工作的重复性问题

测试用例是建立自动化的基础

软件错误(BUG)的概念

bug 定义:当且仅当规格说明是存在的并且正确,程序与规格说明之间的 不匹配才是错误。

当需求规格说明书没有提到的功能,判断标准以最终用户为准:当程序没有实现其最终用户合理预期的 功能要求时,就是 bug。

软件的生命周期

软件生命周期是指从软件产品的设想开始到软件不再使用而结束的时间。

6 个阶段:需求分析、计划、设计、编码、测试、运行维护。

需求分析: 分析需求是否合理,需求是否完整。

计划:谁开发,谁测试,开发多久,测试多久。

编码:写代码。

测试:测试报告。

image-20230507141053293

运行维护:如果线上有问题,此时测试人员需要协助开发定位问题 + 解决问题。

开发模型

瀑布模型

image-20230507141825984

特点:线性的

优点:每个阶段做什么,产出什么非常清晰

缺点:风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会。

适用的项目:小型的项目适合这种模型。

螺旋模型

img

优点:每个阶段都会进行风险分析,避免一些线上问题的发生。

缺点:风险分析可能分析错,人力财力的投入。

适用项目:适用比较大的项目,风险比较多。

增量、迭代

增量是逐块建造的概念,例如画一幅人物画,我 们可以先画人的头部,再画身体,再画手脚……

而迭代是反复求精的概念,同样是画人物画,我们可以 采用先画整体轮廓,再勾勒出基本雏形,再细化、着色。

敏捷

个体与交互重于过程和工具

可用的软件重于完备的文档

客户协作重于合同谈判

响应变化重于遵循计划

在每对比对中,后者并非全无价值,但我们更看重前者。

敏捷开发有很多种方式,其中scrum是比较流行的一种。

scrum

scrum里面的角色

scrum由**product owner(产品经理)、scrum master(项目经理)和team(研发团队)**组成。

product owner:负责整理user story(用户故事),定义其商业价值,对其进行排序,制定发布 计划,对产品负责。

scrum master :负责召开各种会议,协调项目,为研发团队服务。

研发团队:则由不同技能的成员组成,通过紧密协同,完成每一次迭代的目标,交付产品。

(team 由许多人构成,后端开发,前端开发,UI 设计师,测试)

迭代开发

与瀑布不同,scrum将产品的开发分解为若干个小sprint(迭代),其周期从1周到4周不等,但不会超过4 周。参与的团队成员一般是5到9人。每期迭代要完成的user story是固定的。每次迭代会产生一定的交付。

scrum的基本流程

image-20230507145339292

测试模型

v 模型

image-20230507150100496

特点:左边是开发,右边是测试,类似于"瀑布模型"

优点:测试被划分成很多个类型。

缺点:测试人员介入太晚,发现问题时机太晚。

W 模型

image-20230507150432346

特点:开发一个 v ,测试一个 v.

优点:测试人员尽早介入了需求

缺点:开发人员和测试人员一定程度上还是串行的。不能拥抱变化,不能适用于敏捷。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/499952.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IT服务规划设计笔记

规划设计处于整个IT服务生命周期中的前端,其主要目的在于: (1)设计满足业务需求的IT服务 (2)设计SLA、测量方法和指标 (3)设计服务过程及其控制方法 (4)规…

learn_C_deep_9 (汇编角度理解return的含义、const 的各种应用场景)

return 关键字 不知道我们大家是否有一个疑惑:我们下载一个大型游戏软件(王者荣耀),都要花几个小时去下载,但是一旦我们游戏连输,想要删除这个软件的时候,它仅仅只需要十几秒,这是为…

主题建模和文本聚类:理论与实践

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

真题详解(3FN)-软件设计(六十九)

真题详解(构造二叉树)-软件设计(六十八)https://blog.csdn.net/ke1ying/article/details/130536155 学生信息学生id姓名性别1{家长ID}*班主任班级。 解析:当存在1对多的情况,要写个1{}*,中间用{}。 ()表…

一篇学会Gitlab搭建及使用

目录 一、Gitlab介绍 1、什么是Gitlab 二、搭建gitlab并实现ssl 1、配置yum源或下载gitlab包 2、安装依赖软件及获取GPG密钥 3、安装gitlab-ce 4、创建私有密钥 5、创建私有证书 6、创建CRT签名证书 7、利用openssl签署pem 证书 8、配置证书到gitlab 9、初始化gitla…

读书笔记:《图解CIO工作指南》

《图解CIO工作指南》第 4 版,日 . 野村综合研究所系统咨询事业本部 著,周自恒 译 大数据、云计算时代下的IT战略和IT实务 CIO工作:IT管理、IT架构、IT实践 以着眼企业未来的观点进行构思:可视化(业务与系统&am…

初始化vue中data中的数据

当组件的根元素使用了v-if的时候, 并不会初始化data中的数据 如果想完全销毁该组件并且初始化数据,需要在使用该组件的本身添加v-if 或者是手动初始化该组件中的数据 初始化化数据的一些方法 Object.assign(this.$data, this.$options.data()) this.$data:当前的da…

TortoiseGit(大乌龟)安装教程(Git 图形化工具,告别手敲命令)

TortoiseGit安装教程 1. 下载TortoiseGit 官方下载地址:https://tortoisegit.org/download/ 自行选择下载对应版本(大部分位64位),进行下载 2. 安装TortoiseGit 打开安装包,如下图所示: 点击 Next&…

IDM绿色最新2023中文版磁力下载工具

Internet Download Manager(idm)是一款优秀的多线程下载工具。它支持自动捕获剪贴板及浏览器及流媒体网站的音视频下载链接,还有批量队列下载、静默下载、站点抓取等众多功能选项,可以说是 Windows 平台上功能最为强大的多线程下载…

通过栈/队列/优先级队列/了解容器适配器,仿函数和反向迭代器

文章目录 一.stack二.queue三.deque(双端队列)四.优先级队列优先级队列中的仿函数手搓优先级队列 五.反向迭代器手搓反向迭代器 vector和list我们称为容器,而stack和queue却被称为容器适配器。 这和它们第二个模板参数有关系,可以…

录屏界鼻祖Camtasia 2023中文版功能介绍/下载安装激活教程

随着网络科技的迅速发展,所以对于电脑的使用率也就越来越高了!然而,也可能跟这有关系,目前各种类型的软件层出不穷,当然也就包括了电脑录屏软件。这给我们造成了一些困难,究竟哪一款适合自己呢?…

DMA的补充笔记

DMA有两个总线: 1、DMA存储器总线:DMA通过该总线来执行存储器数据的传入和传出。 2、DMA外设总线:DMA通过该总线访问AHB外设(AHB主要是针对高效率、高频宽以及快速系统模块所设计的,主要有Flash 存储器、复位和时钟控…

栈和队列OJ题思路分享之栈和队列互换(C语言实现)

💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:刷题分享⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你刷更多C语言和数据结构的题!   🔝🔝 栈和队列刷题分享二 1. 前言⚡…

基于人类反馈的强化学习(RLHF) 理论

gpt 进程 GPT-1 用的是无监督预训练 有监督微调,只有简单的单向语言模型任务;GPT-2用的是纯无监督预训练,使用更多的数据,更大的模型,又新增了几个辅助的训练任务;GPT-3 沿用了 GPT-2 的纯无监督预训练&a…

postgresql standby启动流程分析

专栏内容:postgresql内核源码分析个人主页:我的主页座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 目录 前言 概述 原理机制 关键流程 备节点启动 walreceiver启动的时机 结尾 前…

网络协议与攻击模拟-07-TCP连接-三次握手

传输层协议 1.TCP 2.UDP TCP 协议 回顾内容 1.传输层功能:定义应用层协议数据报文的端口号,流量控制 2.对原始数据进行分段处理 传输层所提供服务 1.传输连接服务 2.数据传输服务:流量控制…

基于条纹投影的物体三维形貌测量理论与仿真实验-含Matlab代码

▒▒本文目录▒▒ ✳️ 一、引言✳️ 二、条纹投影原理✳️ 2.1 相移轮廓术✳️ 2.2 傅里叶变换轮廓术 ✳️ 三、仿真分析✳️ 3.1 傅里叶变换轮廓术仿真实验✳️ 3.1.1 Matlab代码获取 ✳️ 3.2 相移轮廓术仿真实验✳️ 3.2.1 Matlab代码获取 ✳️ 参考文献 ✳️ 一、引言 基…

玩转axios, 我行你行吗

一.axios是什么? Axios是一个基于Promise网络请求库,作用于node.js和浏览器中, 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。 在服务端它使用原生node.js http模块,而在客户端(浏览端)则使用XMLHttpRequests。 二.特性 1.从浏览器创…

SpringCloud:微服务保护之流量控制

雪崩问题虽然有四种方案,但是限流是避免服务因突发的流量而发生故障,是对微服务雪崩问题的预防。我们先介绍这种模式。 1.簇点链路 当请求进入微服务时,首先会访问DispatcherServlet,然后进入Controller、Service、Mapper&#…

c++ static修饰类的成员

静态成员就是成员变量和成员函数前面加上static,称为静态成员 1.static修饰成员变量 (1)所有对象共享static成员变量,一旦一个对象数据对其进行改动,所有对象调用其数据也会改变,一改全改。 (2)编译阶段分配内存,static成员变量…