什么是测试?测试测什么?

笔者是软件测试方向的硕士研究生。作为应届生拿下了20余个软件测试、测试开发的offer。

《校招生如何准备测试》系列会将我的测试理论体系与大家分享、探讨和学习。本期主要串联一下什么是测试、软件测试测什么(测试类型)

Q:什么是软件测试?

下面是大模型、搜索引擎各自定义的软件测试概念:

Chat-gpt(3.5):软件测试是指通过运行软件系统或应用程序,以验证其是否符合设计要求、功能规格和用户需求的过程。软件测试旨在发现软件中的错误和缺陷,并确保软件的质量、可靠性和稳定性。这包括对软件的各个方面进行检查,如功能测试、性能测试、安全性测试、兼容性测试等。软件测试是软件开发生命周期中至关重要的一部分,可以帮助提高软件质量,并最大程度地减少软件上线后出现的问题和风险。

百度百科:软件测试(英语:Software Testing),是使用人工操作(手动测试)或者软件自动运行的方式(自动化测试)来检验软件是否满足用户需求的过程。

总结一下,测试是发现bug的行为、是对需求的验证,也是保障质量的活动,这些定义比较宽泛,但也概括了大家对于测试的理解。接下来,我们换个视角,看看相关研究关于测试的定义,下面选取了具有代表性的几个定义加以分析:

在软件测试的经典著作《软件测试艺术》一书中认为:“测试是为发现错误而运行一个程序或者系统的过程。

在《软件测试完全指南》一书中指出:“测试是以评价一个程序或者系统的属性为目标的任何一种活动。测试是对软件质量的度量。”

显然,以上定义从认为软件测试发生在软件开发周期的末期,其主要目的是发现错误变化为软件测试是对软件质量的度量。这是认知上的一种变化,也为软件测试的发展提供了新的方向。测试不只影响软件的编程和运行,同时能够影响软件技术任务书和软件设计,而且在项目开始时需要进行相应的测试工作。在这一时期,各种软件测试技术以及软件质量保证体系应运而生;软件测试流程被细化分为各个阶段,并且相应的测试技术为各个阶段的软件测试提供保障。

既然测试的目的是为了保证软件质量。那我们就有必要好好了解一下软件质量的相关知识。因为测试是为了保障质量,那软件质量的不同特性就需要被测试都覆盖到。

Q:什么是质量模型?都有哪些质量模型?

这个问题再次简述一下,目前主流的软件质量模型主要分为两类,层次模型和关系模型,在这里我们主要介绍层次模型(图1),比较著名的层次模型包括 McCall模型、Boehm模型和ISO9126质量模型。我国GB25000对以上模型做了定制化,

根据GB/T 25000.10—2016对质量模型的定义:“定义的特征集以及它们之间的关系集,为规约质量需求以及评价质量提供了一个框架。”其中GB25000规定了8个质量特性(感兴趣的可以看一下GB25000)。

图1质量层次模型

Q:软件测试测什么?

从GB25000质量模型的角度看:

软件质量特性包括:功能、性能、兼容性、易用性、可靠性、信息安全性、维护性、可移植性等8大质量特性,同时也对应着测试的考虑方面,也就是我们常说的功能测试、性能测试、可靠性测试、信息安全测试等。

如图:

图2 GB25000质量模型

将以上质量特性展开,具体可以包括以下几个方面

功能性:测试功能实现和预期结果是否一致

性能效率:考虑系统的时间、容量、资源利用率等方面

兼容性:共存性(与哪些软件不能共存?)、互操作性(比如文件的上传与回收)

易用性:可辨识性、易学性、易操作性、用户界面舒适性等

可靠性:容错性(考虑有故障的情况、也就是异常输入的情况)

信息安全性:保密性(确保授权后才能访问相关内容)

可维护性:模块化(高内聚、低耦合等)、易分析、易修改

可移植性:适应性、易安装、易替换

当然会有人质疑,接口测试呢?在笔者看来接口测试也是功能测试的一种,只是接口可以直接去测试后端代码,能更早、更充分地发现后端代码存在的质量问题

下面是本系列的文章目录:

本期小tip

欢迎大家加入我们的社区一块学习、交流,此外我们也提供短期的面试辅导,让您在短期内具备应付大多数面试的测试理论水平。

好了,以上就是本文的全部内容,如有问题可留言讨论。

我们正在组建测试开发方向的求职交流社区,如果您对软件质量管理方面感兴趣,可以在QALog公众号-聊天页-菜单-交流群,加入了解。

欢迎点赞、评论、收藏,it's important for us.

Searching for QALog

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(十三)【Jmeter】线程(Threads(Users))之tearDown 线程组

简述 操作路径如下: 作用:在正式测试结束后执行清理操作,如关闭连接、释放资源等。配置:设置清理操作的采样器、执行顺序等参数。使用场景:确保在测试结束后应用程序恢复到正常状态,避免资源泄漏或对其他测试的影响。优点:提供清理操作,确保测试环境的整洁和可重复性…

铭瑄科技——为星闪技术发展与应用带来新推力

随着智能化生活逐渐普及,无线通信不仅是不仅是信息时代的重要基础设施,而且是推动社会向智能化发展的核心力量之一,其中短距无线通信更是推动未来智能化发展的关键。 为积极推动未来硬件智能化、产业智能化发展,铭瑄正式宣布成为星…

Codeforces Round 928 (Div. 4)

目录 A. Vlad and the Best of Five B. Vlad and Shapes C. Vlad and a Sum of Sum of Digits D. Vlad and Division E. Vlad and an Odd Ordering F. Vlad and Avoiding X G. Vlad and Trouble at MIT A. Vlad and the Best of Five 我们可以使用string中的count函数来…

《VitePress 简易速速上手小册》第8章 安全性与部署(2024 最新版)

文章目录 8.1 安全最佳实践8.1.1 基础知识点解析8.1.2 重点案例:个人博客8.1.3 拓展案例 1:在线商店8.1.4 拓展案例 2:企业网站 8.2 部署到 GitHub Pages 和其他平台8.2.1 基础知识点解析8.2.2 重点案例:个人博客部署到 GitHub Pa…

时序预测demo 代码快速实现 MLP效果比LSTM 好,简单模拟数据

【PyTorch修炼】用pytorch写一个经常用来测试时序模型的简单常规套路(LSTM多步迭代预测) 层数的理解: LSTM(长短期记忆)的层数指的是在神经网络中堆叠的LSTM单元的数量。层数决定了网络能够学习的复杂性和深度。每一层…

SQL- left join 与group by联合使用实例

表:Visits ---------------------- | Column Name | Type | ---------------------- | visit_id | int | | customer_id | int | ---------------------- visit_id 是该表中具有唯一值的列。 该表包含有关光临过购物中心的顾客的信息。表&#xff1a…

Docker容器与虚拟化技术:kylin 部署 docker容器应用

目录 一、实验 1.环境 2. kylin 部署 docker及版本升级 3.kylin 部署docker镜像加速 4.kylin 部署 nginx容器应用 5.kylin使用docker容器部署mysql实现数据持久化 6.kylin使用docker容器部署nginx实现配置文件持久化到本地 7.kylin 使⽤ docker 部署容器可视化平台porta…

【青龙】快速搭建青龙面板,部署属于你自己的应用!

青龙面板是一个支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台。 废话不多说,直接开始。 这里使用一台 雨云 的云服务器作为演示。雨云注册地址:https://www.rainyun.com/ 优惠码:lz932 使用优惠码注册后绑定微信可获得8折…

Spring框架@Autowired注解进行字段时,使用父类类型接收子类变量,可以注入成功吗?(@Autowired源码跟踪)

一、 前言 平常我们在使用spring框架开发项目过程中,会使用Autowired注解进行属性依赖注入,一般我们都是声明接口类型来接收接口实现变量,那么使用父类类型接收子类变量,可以注入成功吗?答案是肯定可以的!…

从零学习Linux操作系统第二十七部分 shell脚本中的变量

一、什么是变量 变量的定义 定义本身 变量就是内存一片区域的地址 变量存在的意义 命令无法操作一直变化的目标 用一串固定的字符来表示不固定的目标可以解决此问题 二、变量的类型及命名规范 环境级别 export A1 在环境关闭后变量失效 退出后 关闭 用户级别&#xff…

Java项目:24 基于SpringBoot+freemarker实现的人事管理系统

作者主页:源码空间codegym 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 基于SpringBootfreemarker实现的人事管理系统分为七大模块:绩效考核,招聘管理,档案管理,工资管…

Marin说PCB之如何使用mentor--xpedition-Valor软件做gerber_compare

首先打开mentro_xpedition,自带的Valor软件。 2,在File栏中选择import---odb。 3,导入生成的DOB文件。 4,在这个界面下再重新导入一份之前的参考板的ODB文件进来。 5,接着点击STEPS---board,这样单板的数据就被调进来了。 6&#…

《剑指Offer》笔记题解思路技巧优化_Part_6

《剑指Offer》笔记&题解&思路&技巧&优化_Part_6 😍😍😍 相知🙌🙌🙌 相识😢😢😢 开始刷题🟡1.LCR 168. 丑数—— 丑数🟢2. LCR 16…

2022蓝帽杯取证初赛

检材:https://pan.baidu.com/s/1ibOdxyCWeC5x0DQKjwcz7w?pwdvg6g 目录 手机取证1、627604C2-C586-48C1-AA16-FF33C3022159.PNG图片的分辨率是?(答案参考格式:19201080)2、姜总的快递单号是多少?&#xff0…

C++学习Day09之异常变量的生命周期

目录 一、程序及输出1.1 throw MyException()------catch (MyException e)1.2 throw MyException()------catch (MyException &e)1.3 throw &MyException()------catch (MyException *e)1.4 throw new MyException()------catch (MyException *e) 二、分析与总结 一、程…

QT3作业

1 2. 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数,将登录按钮使用t5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin"&#…

【C++初阶】系统实现日期类

目录 一.运算符重载实现各个接口 1.小于 (d1)<> 2.等于 (d1d2) 3.小于等于&#xff08;d1<d2&#xff09; 4.大于&#xff08;d1>d2&#xff09; 5.大于等于&#xff08;d1>d2&#xff09; 6.不等于&#xff08;d1!d2&#xff09; 7.日期天数 (1) 算…

顺序表详解(如何实现顺序表)

文章目录 前言 在进入顺序表前&#xff0c;我们先要明白&#xff0c;数据结构的基本概念。 一、数据结构的基本概念 1.1什么是数据结构 数据结构是由“数据”和“结构”两词组合而来。所谓数据就是&#xff1f;常见的数值1、2、3、4.....、姓名、性别、年龄&#xff0c;等。…

学习总结22

解题思路 简单模拟。 代码 #include <bits/stdc.h> using namespace std; long long g[2000000]; long long n; int main() {long long x,y,z,sum0,k0;scanf("%lld",&n);for(x1;x<n;x)scanf("%lld",&g[x]);for(x1;x<n;x){scanf(&qu…

尚未创建默认 SSL 站点。若要支持不带 SNI 功能的浏览器,建议创建一个默认 SSL 站点。

在 Windows Server 2012 IIS 站点中设置 SSL 证书后&#xff0c;IIS 右上角提示&#xff1a; 尚未创建默认 SSL 站点。若要支持不带 SNI 功能的浏览器&#xff0c;建议创建一个默认 SSL 站点。 该提示客户忽略不管&#xff0c;但是若要支持不带 SNI(Server Name Indication)…