软件测试---概念篇

news2024/11/26 15:44:19
本文主要介绍软件测试相关的一些基础概念.

在这里插入图片描述

主要内容包括 :

什么是需求
什么是bug
什么是测试用例
开发模型和测试模型
配置管理和软件测试

一 : 什么是需求

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

在这里插入图片描述
用户需求为什么不可以直接作为测试/开发工作的依据呢 ? 因为用户需求未必是合理的 . 我看过一个段子 , 有用户提出这样一个需求 : 能不能根据周围环境的颜色变化 , 动态地改变手机屏幕的颜色 ? 这好吗 ? 这不好 ! 当然 , 如果用户需求是合理的 , 并且有开发的必要 , 那么产品经理就会将用户需求转变为软件需求文档 .

在这里插入图片描述

二 : 从软件测试人员角度看需求

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

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

以“用户登陆”为例,来阐述下整个过程:

在这里插入图片描述

Q : 如何才可以深入理解被测试软件的需求 ?

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

三 : 什么是测试用例

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

在进行软件测试,尤其是软件功能比较复杂时,仅仅通过想一个测一个的方法来进行测试肯定是不可取的.

测试用例的存在是为了提高测试覆盖率 , 如果不设计测试用例 , 很可能造成漏测的风险 , 虽然在测试中有句话叫做"不可能做到完全的测试" , 但测试人员还是要尽可能的去避免漏测 , 保证线上不会出现明显的问题 !

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

例如 , 我们要测试在百度的输入框中输入空格 , 会出现什么 ? 可以这样设计测试用例 :

在这里插入图片描述

假如针对某个功能,测试人员需要设计几十个甚至上百个用例 , 这样去编写测试用例是很麻烦的 ;

现在的互联网企业 , 测试人员在工作中不再需要借助这么繁琐的编写测试用例的方式 , 企业中主要使用思维导图(脑图)的方式来编写测试用例 !

顺便提一句 , 将来在笔试时 , 如果要求我们去编写测试用例 , 仍然要按照测试用例的要素来编写测试用例 !

四 : 什么是BUG

Bug是一个英文单词,本意是指昆虫、小虫子。

那为什么测试就是在找Bug呢?

这需要我们去追溯历史,当时人们还在使用第一代真空计算机(马克二型),这种计算机是依靠控制电流来改变开关,从而实现控制,但是它会发出大量的热和光。1949年9月9日,天气非常炎热,有一只娥死在了70号继电器里面,造成电路不通,机器死机,经过近一天的检查,Grace Hopper(格蕾斯哈珀)终于找到了真凶,原来正是被光吸引过来的娥造成了机器宕机,在这儿之后,在计算机科学中,Bug就从虫子变成了程序的缺陷,一只虫子就这样被载入了计算机史册。

第一份缺陷报告也由此诞生啦 !

在这里插入图片描述
在这里插入图片描述

准确来说:当且仅当规格说明是存在的并且正确,程序与规格说明之间的不匹配才是错误 .

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

五 : 开发模型

可以理解为开发流程/项目推进流程,即软件的生命周期.

软件生命周期是指从软件产品的设想开始到软件不再使用而结束的时间 . 如果把软件看成是有生命的事物,那么软件的生命周期可以分成6个阶段,即需求分析、计划、设计、编码、测试、运行维护 .

在这里插入图片描述

假如我们现在要建造一所房子 , 那么房子的生命周期是什么 ?

在这里插入图片描述

通过类比 , 理解软件的生命周期 :

在这里插入图片描述

六:八大模型

6.1 瀑布模型

在这里插入图片描述
瀑布模型在软件工程中占有重要地位,是所有其他模型的基础框架。瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模式。

优点: –强调开发的阶段性; –强调早期计划及需求调查; –强调产品测试。

缺点:线性结构意味着前一个阶段结束后一个阶段才能开,导致风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会。测试被后置,需要保留足够的时间给测试,否则导致测试不充分,缺陷直接暴露给用户。一个最大缺陷在于,可以运行的产品很迟才能被看到。总而言之,瀑布模型是不能够很好的迎接变化。

适用场景:需求固定的小型项目~~

6.2 螺旋模型

在这里插入图片描述

在瀑布模型的基础上增加了风险分析,生成新的原型。瀑布模型增加了风险分析阶段,所以团队一般需要耗费一定的资金和时间去招聘风险分析人才。

适用场景:需求不确定,变化的可能性很大的大型项目。

6.3 增量模型

在这里插入图片描述

增量模型:将项目进行模块化,使其每个模块都能进行独立的开发和上线。

优点:产品能够在较短时间内尽快地交付给用户使用。

6.4迭代模型

假如说有一个产品包含五个功能A B C D E,迭代模型会先完成这五个功能的基础版本,会再经历一次一次的迭代优化,直到这五个功能非常的优秀。

增量通常和迭代混为一谈,但是其实两者是有区别的。增量是逐块建造的概念,例如画一幅人物画,我们可以先画人的头部,再画身体,再画手脚……而迭代是反复求精的概念,同样是画人物画,我们可以采用先画整体轮廓,再勾勒出基本雏形,再细化、着色。

6.5 敏捷模型

2001年,以Kent Beck、Alistair Cockbum、Ward Cunningham、Martin Fowler等人为首的“轻量”过程派聚集在犹他州的Snowbird,决定把“敏捷作为新的过程家族的名称。
在会议上,他们提出了《敏捷宣言》: 我们通过身体力行和帮助他人来揭示更好的软件开发方式。经由这项工怍,我们形成了如下价值观:

在这里插入图片描述
敏捷宣言的解读:强调团队内部人员尽可能的进行高效的沟通敏捷模型最终的标准就是:可交付的软件。

敏捷宣言的特点:轻流程、轻文档、重目标、重产出。

敏捷开发有很多种方式,其中scrum是比较流行的一种。关于scrum,我们需要了解三个角色和五个会议。

在这里插入图片描述
在这里插入图片描述

scrum模型中每个迭代周期为1~4周,通常情况下为一周。

6.6 测试模型

6.6.1 测试模型V模型

在这里插入图片描述

在这里插入图片描述
优点:明确了测试有不同的类型,而且每个类型和前期的开发工作之间的对应关系。V模型指出,单元和集成测试应检测程序的执行是否满足软件设计的要求;系统测试应检测系统功能、性能的质量特性是否达到系统要求的指标;验收测试确定软件的实现是否满足用户需要或合同的要求。

缺点:仅仅把测试作为在编码之后的一个阶段,未在需求阶段就进入测试

6.6.2 测试模型W模型

在这里插入图片描述

优点:测试从一开始就介入,软件测试贯穿于软件的整个生命周期,有利于尽早地发现问题;

缺陷:开发和测试虽然是同步的,但是仍然存在着前后的线性关系,不支持敏捷模型。

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

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

相关文章

【Kubernetes 企业项目实战】02、基于 Prometheus 和 K8s 构建智能化监控告警系统(中)

目录 一、安装和配置 node-exporter 1.1 node-exporter介绍? 1.2 安装 node-exporter 二、Prometheus server 安装和配置 2.1 创建 sa 账号,对 sa 做 rbac 授权 2.2 创建 prometheus 数据存储目录 2.3 安装 Prometheus server 服务 (…

Python再入手-03

又过了半年,已经完全忘了当时8月份的python工作了。这半年,先是跑合同,然后张罗出海,完了又搞了两次验收,还做了两次汇报,开了无数的会,忙坏了。 现在,得重新张罗电磁这档子事儿了。下面记录下最近的操作。 1 打开编程环境。 都忘了怎么打开环境了,翻一下以前的博客…

Ant Design使用

目录官网在项目中使用下载引入方法1:全部引入方法2:按需引入-手动加载方法3:按需引入-自动加载组件Anchor作用:用于跳转到页面指定位置案例1-基础使用案例2-添加偏移量案例3-指定容器总结官网 Ant Design官网 在项目中使用 在react中使用Ant Design 下载 使用如…

【无人机学习之Mission Planner】RTK/GPS Inject 学习

█ 【无人机学习之Mission Planner】RTK/GPS Inject 学习 █ 系列文章目录 提示:这里是收集了无人机的相关文章 【无人机学习】无人机基础知识【无人机学习】Mission Planner(pc端)和QGroundControl(android端)【无人…

P1102 A-B 数对

题目背景 出题是一件痛苦的事情! 相同的题目看多了也会有审美疲劳,于是我舍弃了大家所熟悉的 AB Problem,改用 A-B 了哈哈! 题目描述 给出一串正整数数列以及一个正整数 CC,要求计算出所有满足 A - B CA−BC 的数对的…

vb.net多功能白板(集成:绘图,编辑,批注,橡皮,图片处理,拍摄,裁剪,旋转等功能

根据上一次的自定义白板,我已经更新了很多内容了 这一次打算再细一点 初始化程序:所有的整体变量(作者提醒,请不要直接照抄代码,可以和作者发的文件进行学习和参考 Public ListOfPen As New List(Of Bitmap)Public L…

ArcGIS如何进行自动矢量化操作

这里我们在网络上找一幅高中地理课本上看的等高线图给大家能进行操作演示。 等高线图 01 地理配准 1、定义投影 给数据框定义一个投影,右键Layers>Properties>Coordinate System>Projected Coordinate Systems>Gauss Kruger>Beijing1954> Be…

雅思经验总结(1)

听力技巧:听sections 3就是看你何时进入状态,还有审题,之后就是听but,其他的转折词什么yet because however什么都非常的少,最主要的还是but,注意bus之后的话,其余的什么细节题就是说还要听懂文…

Biome-BGC生态系统模型区域模拟

Biome-BGC是利用站点描述数据、气象数据和植被生理生态参数,模拟日尺度碳、水和氮通量的有效模型,其研究的空间尺度可以从点尺度扩展到陆地生态系统。在Biome-BGC模型中,对于碳的生物量积累,采用光合酶促反应机理模型计算出每天的…

Java面向对象进阶之static

目录static静态关键字static:修饰成员变量,内存机制static是什么、修饰成员变量的方法总结static修饰成员变量的内存原理static:修饰成员方法、内存机制static修饰成员方法的基本用法总结static修饰成员方法的内存原理static的注意事项static…

计算机组成原理习题二

计算机组成原理习题二 文章目录计算机组成原理习题二1、某指令系统的指令格式如下:答案:(1)152301Q1101 010011 000 001I10,I21,Z/C0,D/I0,故为变址寄存器2寻址,EA(I2)A063215301063516Q。 (4)…

大咖年终“讲” 维视教育李明睿——制造业转型升级下需要重新定义人才培养

数字化转型迫在眉睫建设应用型大学风潮正涌制造企业在推进智能制造和数字化转型进程中,衍生出大量人才需求。据人社部、工信部发布的《制造业人才发展规划指南》显示,中国制造业10大重点领域人才缺口2025年将接近3000万人,缺口率高达48&#…

流媒体基础-RTCP

1、RTCP的封装 RTP需要RTCP为其服务器质量提供保证,周期性发送 RTCP的主要功能是:服务质量的监视、反馈(QoS)、媒体间的同步(Sync),以及多播组中成员的标识。在RTP会话期间,各参与者…

Lichee_RV学习系列---认识Lichee_RV、环境搭建和编译第一个程序

系列文章目录 文章目录系列文章目录前言一、认识Lichee RV1、D1-H 芯片2、Lichee RV开发板3、系统镜像二、Lichee RV 固件烧录1、要求基本硬件2、基本资料下载3、固件烧录在这里插入图片描述三、连接上开发板1、ADB方式连接a:ADB下载b:ADB连接c&#xff…

孙溟㠭篆刻《无有中无尽藏》

《无有中无尽藏》孙溟㠭篆刻 无一物中无尽藏,是说当“我执”袪除,仅余“真如”时,便可以理解“无尽藏”。虽然身上没有东西,但是其实世人身上藏了所有的东西。“无心”亦是有心,心中富足。所以当人祛除心中的偏执&…

自动语音识别(ASR)研究综述

自动语音识别ASR研究综述 一、语言识别基础知识 从语音系统识别构成来讲,一套完整的语音识别系统包括:预处理、特征提取、声学模型、语言模型、以及搜索算法等模块,具体结构示意图如下所示: 特征提取(MFCC声学特征&#xff09…

Error handling response: TypeError: self.processResponse is not a function

问题背景 : 自己在搭建 Vue 初始模板架子的时候 , 解决完 router 路由的报错问题后 , 控制台还剩下一个显眼的 Error 红色 Bug , 不解决的话看着难受 , 盘它 ! 点击报错内容后进入 : Error h…

redis应用笔记

1.登录服务 在登陆服务中,如果将数据全部存储到tomcat中,当存在多个tomcat的时候,数据是无法同步的,这就导致了数据的共享问题: 1、每台服务器中都有完整的一份session数据,服务器压力过大。 2、session拷贝数据时,可能会出现延迟 解决办法就是采用redi…

SpringBoot整合Redis实现优惠券秒杀服务(笔记+优化思路版)

本文属于看黑马的redis的学习笔记,记录了思路和优化流程,精简版最终版请点击这里查看。 文章目录一、全局ID生成器1.1 理论1.1.1 全局唯一ID生成策略1.2 代码(Redis自增)二、实现优惠券秒杀下单2.1 SQL2.2 SQL对应实体类2.2.1 普通券实体类2.2.2 秒杀券实…

声纹识别之说话人验证speaker verification

目录 一、speaker verification简介 二、主流方案和模型 1、Ecapa_TDNN模型 2、WavLm 三、代码实践 1、Ecapa_TDNN方案 a、模型结构 b、loss c、数据处理 d、模型训练和评估 e、说话人验证推理 2、WavLm预训练方案 a、模型结构和loss b、数据处理 c、模型训练 …