测试常见概念

news2024/11/15 22:37:29

在这里插入图片描述

文章目录

  • 需求
  • 测试用例
  • BUG
  • 软件生命周期
  • 开发模型
    • scrum
    • 测试模型

需求

需求的概念:满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求和软件需求
用户需求:可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成的任务。该需要一般比较简略
软件需求(功能需求):该需求会详细描述开发人员必须实现的软件功能
大多数公司在进行软件开发时会将用户需求转化为软件需求,开发人员和测试人员的直接依据就是软件需求,用户需求就是一句话,软件需求是一个文档(详细描述用户需求如何实现),日常工作我们通常是软件需求进行开发测试

软件测试人员角度的需求
需求是测试人员展开软件测试工作的依据
在具体设计测试用例时,首先要搞清楚每一个业务需求对应的多个软件功能测试点,然后分析每个软件功能需求点对应的多个测试需求点,然后针对每个测试需求点设计测试用例:
业务需求 -> 软件功能需求点 -> 测试需求点 -> 测试用例
用户登录测试过程:
在这里插入图片描述
为什么需求对软件测试人员如此重要?
1.从软件功能需求出发,无遗漏的识别出测试需求是至关重要的,这将直接关系到用例的测试覆盖率
2.对于识别出的每个测试需求点,需要采用具体的设计测试用例的方法来设计测试用例

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

测试用例

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

比如我们我们再刷leetcode
测试环境:Java、C++
测试操作:写代码,提交
测试数据:后台一系列的样例
预期结果: AC,100%

在这里插入图片描述
我们就可以对我们之前写的一个博客系统登录页进行测试
测试环境:windows系统 + chrome浏览器
测试步骤:输入账号,密码,点击提交
测试数据:对账号密码进行比对
预期结果:登录成功

为什么有测试用例?
1.提高测试人员的工作效率/降低测试人员工作的重复性问题
2.测试用例是自动化测试的基础

BUG

软件错误的一般定义:程序与规格说明不匹配

以上的说法是片面的,准确的来说:当且仅当规格说明(软件需求,规格说明书)是存在的并且正确,程序与规格说明之间不匹配才是错误,当规格说明书没有提到的功能,判断标准以最终的用户为准:当程序没有实现其最终用户合理预期的功能要求时,就是软件错误。

软件生命周期

在这里插入图片描述
软件的生命周期只从软件产品的设想开始到软件不再使用而结束的事件。软件的生命周期可以分为6个阶段:需求分析、计划、设计、编码、测试、运行维护
需求分析:分析需求是否合理,需求是否完整
计划:谁开发,谁测试,开发多久,测试多久
编码:写代码
测试:进行测试,写测试报告
运行维护:如果项目有问题,测试人员需要协助开发定位问题 + 解决问题

开发模型

1.瀑布模型
在这里插入图片描述

特点:线性进行的
优点:每个阶段做什么得到什么十分清晰
缺点:风险往往会推迟到后期的测试阶段才显现出来,因此会失去尽早纠正的机会
适用的项目:小型的项目适用于这种模型

2.螺旋模型
在这里插入图片描述
优点:每个阶段都会进行风险分析,尽早的发现问题
缺点:风险分析可能会分析错,需要人力财力的投入
适用项目:适用于比较大的项目,风险较多的

3.增量、迭代
增量开发能显著降低项目风险,结合软件持续构建机制,构成了当今流行的软件工程最佳实践之一。
比如我们之前开发的博客系统,有以下几个板块:登录页,博客列表页,博客编辑页。
增量模型就是:登录功能开发完成 -> 博客列表页开发完成 -> 博客编辑页开发完成
迭代模型:登录开发一部分 -> 列表页开发一部份 ->编辑页开发一部分

区别:
1.核心思想不同:增量模型是将软件系统划分为多个增量模块,逐步实现软件系统,每个增量模块可以在原有软件系统基础上添加新的功能或优化已有功能。而迭代模型则是将整个软件项目分解成多个迭代周期,每个周期包含需求、设计、实现和测试等工作流程。
2.交付物不同:增量模型每个增量模块在完成后即可交付和部署,每个增量模块都是可执行的子系统,可以独立运行。迭代模型则是每个迭代周期都会有一个可交付的软件产品,每个产品版本是最终产品的一个子集。
3.开发方式不同:增量模型采用垂直式的开发方式,即将软件系统按功能分解为若干子系统,每个子系统由一个小团队专门负责。迭代模型采用水平式的开发方式,即所有开发工作都在同一时间进行,每个迭代周期涉及到整个软件系统各个方面的开发工作。
4.需求变更处理方式不同:增量模型能够快速响应用户需求变更,每个增量模块可独立地进行需求变更处理。而迭代模型需要在每个迭代周期的开始前和结束后确定和评估所有的需求变更。

总的来说,增量模型适用于长期、大规模软件系统开发,特别是对于需求变化频繁的软件项目;迭代模型适用于较小规模且需求相对稳定的软件项目。并且在实践中,各种过程模型可以根据自身的情况做出一些自定义调整,以适应具体的软件开发项目。
4.敏捷
敏捷开发是一种以人为本、迭代、循序渐进的软件开发方法,强调在整个软件开发过程中与客户进行频繁的沟通和协作。敏捷开发的核心在于不断地快速迭代、交付、反馈和改进,以适应需求变化和市场竞争的挑战。敏捷模型的流程通常有以下价值观:
个体与交互重于过程和工具
可用的软件重于完备的文档
客户协作重于合同谈判
响应变化重于遵循计划
在每对比对中,后者并非全无价值,但我们更看重前者

敏捷模型的灵活性和可适应性较强,在敏捷开发过程中可以根据项目的实际情况进行相应的调整和优化,以更好地满足需求变化和市场挑战。

scrum

scrum:product owner(产品经理)、scrum master(项目经理)、team(研发团队,后端开发、前端开发、UI设计师、测试等)组成
product owner:负责整理用户需求,定义商业价值,对其排序,制定发布计划,对产品负责
scrum master:负责召开各种会议,协调项目,为研发团队服务
team:不同技能的成员组成,通过紧密协调,完成每一次迭代的目标,交付产品
在这里插入图片描述

测试模型

1.V模型
目的是未来改进软件开发的效率和结果是瀑布模型的变种
在这里插入图片描述
特点:左边是开发,右边是测试,类似于瀑布模型
优点:测试划分为了许多类型
缺点:测试人员介入太晚,发现问题的时机太晚
2.W模型
在这里插入图片描述
特点:开发一个V测试一个V
优点:测试人员尽早的介入了需求
缺点:测试人员和开发人员一定程度还是串行的,不能拥抱变化,不适用于敏捷

V模型与W模型的区别:
1.V模型和W模型都是软件测试最具代表性的测试模型之一。

2.V模型在传统的开发模型中,如瀑布模型的基础上改进,反映了软件测试活动与软件开发过程(从分析到设计)的关系,从左到右,描述了基本的开发过程和测试行为,明确地标明了测试工程中存在的不同级别以及测试阶段和开发过程各阶段的对应关系。

3W模型相对于V模型,增加了软件开发各阶段中同步进行的验证和确认活动。由两个V字型模型组成,分别代表测试与开发过程,明确表示出了测试与开发的并行关系。测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等开发输出的文档同样要测试,也就是说,测试与开发是同步进行的。

因此,W模型在测试活动与软件开发同步进行的同时,强调了验证和确认活动,使得测试活动更加全面深入。

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

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

相关文章

java错题总结(19-21页)

链接:关于Java中的ClassLoader下面的哪些描述是错误的_用友笔试题_牛客网 来源:牛客网 B:先讲一下双亲委派机制,简单来说,就是加载一个类的时候,会往上找他的父类加载器,父类加载器找它的父类加…

Netty(1)

Netty 文章目录 Netty1 Netty 基本介绍2 why Netty2.1 原生 NIO 问题2.2 Netty 优点 3 I/O 线程模型3.1 传统阻塞 I/O 模型3.2 Reactor 模式3.2.1 Reactor 模式解决传统 I/O 方案3.2.2 Reactor 模式原理图3.2.3 Reactor 的核心组件3.2.4 单 Readcot 单线程(NIO模型)3.2.5 单 Re…

非科班转码,春招总结!

作者:阿秀 校招八股文学习网站:https://interviewguide.cn 这是阿秀的第「263」篇原创 小伙伴们大家好,我是阿秀。 欢迎今年参加秋招的小伙伴加入阿秀的学习圈,目前已经超过 2300 小伙伴加入!去年认真准备和走下来的基…

Twitter 推荐算法底有多牛? 已斩获11.7K star

点击上方“Github中文社区”,关注 看Github,每天提升第070期分享 ,作者:Huber | Github中文社区 大家好,我是Huber。 在美国当地时间 3 月 31 日,马斯克履行当初的诺言,他宣布了 Twitter 算法的…

《编程思维与实践》1048.解密字符串

《编程思维与实践》1048.解密字符串 题目 思路 主要到密码是升序的,所以先将每个数字对应的个数求出,之后升序排列输出即可得到结果. 求每个数字(0-9)对应的个数可以考虑每个英文单词中特有的字符(出现单次), zero,one,two,three,four,five,six,seven,eight,nine; 下面提供其中…

系统性能压力测试

系统性能压力测试 一、压力测试 压力测试是给软件不断加压,强制其在极限的情况下运行,观察它可以运行到何种程度,从而发现性能缺陷,是通过搭建与实际环境相似的测试环境,通过测试程序在同一时间内或某一段时间内&…

深度学习—卷积神经网络

卷积神经网络 传统意义上的多层神经网络只有输入层、隐藏层和输出层。其中隐藏层的层数根据需要而定,没有明确的理论推导来说明到底多少层合适。 卷积神经网络CNN,在原来多层神经网络的基础上,加入了更加有效的特征学习部分,具…

人生四维度

人生四维度 不是有钱了就成功,你知道;人生的成功不止一种,你也知道。但成功还有哪种?你知道吗? 如果把人生的体验展开,我们可以得到四个维度,高度、深度、宽度和温度。 财富、权力、影响力 构…

2023年3月股份行GX评测盘点:招商银行稳居榜首,各项指标均居前列

易观:2023 年3月GX评测数据显示,招商银行、平安口袋银行、中信银行位居行业Top 10,浦发银行、兴业银行、光大银行紧跟其后。 股份行APP 用户体验:招商银行以绝对优势稳居第一 2023年3月股份行GX评测结果数据显示,在操作…

VScode代码编辑器官网下载慢问题解决方法-亲测有效

VScode官网下载慢的问题如何解决? 问题描述: VisualStudioCode(简称VSCode)是Microsoft开发的一款功能强大的代码编辑器,它支持Windows,Linux和macOS等操作系统以及开源代码,因此被很多开发人…

maven从入门到精通 第四章 Maven中依赖的传递、排除、继承、聚合

这里写自定义目录标题 一 maven中依赖的传递1 依赖的传递性2 使用complie范围依赖spring-core3 测试依赖是否被传递4 依赖传递性的意义 二 maven中依赖的排除1 依赖排除概述2 具体操作依赖排除 三 maven中依赖的继承四 maven中依赖的聚合 一 maven中依赖的传递 1 依赖的传递性…

thinkphp+vue+html超市零食品美食推荐系统零食购物商城网站7v281

本系统的开发使获取食品推荐系统信息能够更加方便快捷,同时也使食品推荐系统管理信息变的更加系统化、有序化。系统界面较友好,易于操作 运行环境:phpstudy/wamp/xammp等 开发语言:php 后端框架:Thinkphp5 前端框架:vu…

Linux入门2(常用命令)

Linux入门2 Linux常用命令快捷键基础命令文件查看命令文件编辑命令进程管理命令用户管理命令 Linux常用命令 快捷键 Ctrl Alt T打开终端 Ctrl shift 加号 终端字体放大 ctrl 减号 终端字体缩小 基础命令 sudo su 进入管理员目录 exit 返回到用户目录 ls 当前目录下的文…

数据导向下制造业的生产效率、交易效率提升办法

在智能制造和工业4.0成为趋势的今天,大部分制造业企业,均已在企业内部通过实施PLM系统(Product Lifecycle Management,产品生命周期管理系统),实现了对组织内产品研发过程和产品研发数据的管理,…

联发科MT8768核心板 安卓4G核心板智能模块MTK方案主板开发板

MT8768核心板是一款性能优异的芯片板,具有以下特点: 处理器方面,MT8768核心板采用联发科MTK8768平台,搭载八核A53处理器,最高主频可达2.3GHz,为您提供出色的运行速度和高效率。 内存和存储方面,…

OAK相机如何将 YOLO NAS 模型转换成blob格式?

编辑:OAK中国 首发:oakchina.cn 喜欢的话,请多多👍⭐️✍ 内容可能会不定期更新,官网内容都是最新的,请查看首发地址链接。 ▌前言 Hello,大家好,这里是OAK中国,我是助手…

数据库迁移同步 | 两地三中心到异地双活演变及关键技术探讨

两地三中心和异地多活都是分布式系统的关键技术,用于保证系统的高可用性和容错性。其中最关键的技术无疑是数据同步、同步防环和数据冲突解决。 异地容灾 & 两地三中心 两地三中心架构是一种分布式系统的架构模式,用于保证系统的高可用性和容错性。…

pom文件的project标签报错java.lang.OutOfMemoryError: GC overhead limit exceeded

1、pom文件的project标签报错java.lang.OutOfMemoryError: GC overhead limit exceeded,如何解决? 只需修改idea配置 调大内存,即可解决

git之gitk命令介绍

Gitk 是 Git 提供的一个 GUI 工具,可作为git图形化客户端使用。安装 Git 的时候会自动安装 Gitk 工具。打开git bash,输入 gitk 命令即可打开gitk工具。 Gitk 的主界面主要包含五个部分: 主菜单栏显示区提交信息显示区,显示提交…

【Nginx基础篇】Linux虚拟机安装nginx

目录 一、版本区别 二、编译安装 三、启动nginx 关于防火墙 四、安装成系统服务 一、版本区别 常用版本分为四大阵营 Nginx开源版 http://nginx.org/ Nginx plus 商业版 https://www.nginx.com openresty http://openresty.org/cn/ Tengine http://tengine.taobao.org/ …