真实的软件测试日常工作是咋样的?

最近很多粉丝问我,小姐姐,现在大环境不景气,传统行业不好做了,想转行软件测试,想知道软件测试日常工作是咋样的?平常的工作内容是什么?

别急,今天跟大家细细说一下一个合格的软件测试工程师每天都要做什么工作。只有真正熟悉了才能做到有的放矢,不用盲目加班,摸鱼摸的也会更有底气啦

日常猫猫镇楼!

主要分为两个阶段测试的设计阶段跟测试执行阶段

测试设计阶段

我们的主要工作是要制定测试计划和测试大纲,编写测试用例

  1. 制定测试计划

制定测试计划分为以下这三步:
(1)对需求规格说明书的仔细研究,将要测试的产品分解成可独立测试的单元。
(2)为每一个测试单元确定采用的测试技术
(3)为测试的下一个阶段及其活动制定计划
制定计划包括两个部分:概要测试计划和详细测试计划。
2.制定测试大纲

测试大纲是软件测试的依据,包括测试项目、测试步骤和测试完成的标准,也就是说我们要从测试的角度对被测对象的功能和各种特性的细化和展开。
这样可以保证我们在测试执行阶段测试功能不被遗漏,也不被重复测试,从项目管理角度来说可以合理安排测试人员,使得软件测试不依赖个人。
3.编写测试用例

测试用例大家可以理解为你用于测试的数据,比如你要测试登陆这个功能,就可以把正确、不正确的密码,正确、不正确的用户名,交叉组合得到四组用例。
稍微学习过一些简单的软件测试的朋友可能会用等价类和边界值分析结合得到以下的用例:

仔细看看图里的用例,是不是感觉并不难想呢?所以其实软件测试这行的入门门槛真的不高,是转型互联网行业比较简单的一条路。
不过这些样例现在在我看来也只能打个及格分,一个真正优秀的软件测试人员,应该会从不同的角度来给出用例。
比如,安全测试角度:

性能测试角度:

兼容性角度:

要注意哦,测试的用例并不是越高越好,因为软件测试的用例是不可穷尽的,我们的测试都是有时间成本和经济成本的,所以如何兼顾缺陷风险和研发成本之间的平衡也是一门修炼术。

作者建议可以参考《阿里巴巴测试用例编写规范》进行用例设计,这样可以不漏测不多测。需要这份用例规范的可以私信我关键词“用例”免费获取哟

测试执行阶段

我们可以大致把测试执行过程分为三个时期:

2.初测期

通过单元测试,测试主要的功能和关键的执行路径,排除主要的障碍。
3.细测期

依据测试计划和测试大纲、测试用例,开展集成测试,逐一测试功能、特性、性能、用户界面、兼容性、可用性等。发现大量不同的性质、不同严重程度的错误和问题。
4.回归测试期

这时候经过细测期,系统已达到稳定,在一轮测试中发现的错误已十分有限,主要是通过确定测试、系统测试、验收测试来复查已知错误的纠正情况,确认未引发任何新的错误时,终结回归测试。
5.软件测试的模型

软件测试根据不同的测试对象以及测试项目的背景可采用不同的测试模型实施测试活动,常见的软件测试模型有:V模型、W模型、H模型、X模型、敏捷测试等。
1.V模型

如图所示,V模型中的过程从左到右,描述了基本的开发过程和测试行为。
V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。
局限性主要是两点:

  1. 把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现。
  2. 容易使人理解主要是针对程序进行测试寻找错误


2.W模型

如图所示,W模型针对V模型无法体现“尽早地和不断地进行软件测试” 的原则的缺陷,增加软件各开发阶段应同步进行的测试。
相对于V模型,W模型更科学。W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。
它的局限性在于,依然和V模型一样都把软件的开发视为需求、设计、编码等一系列串行的活动,无法支持迭代、自发性以及变更调整
3.H模型

如图所示,在H模型中, 软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段。
真正满足了软件测试的尽早进行原则,并且可以根据被测物的不同而分层次进行测试。
4.X模型

如图所示,左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终合成为可执行的程序,然后再对这些可执行程序进行测试。
己通过集成测试的成品可以进行封装并提交给用户,也可以作为更大规模和范围内集成的一部分。多根并行的曲线表示变更可以在各个部分发生。

结尾

在实际应用中我们也很少会严格套用模型,而是会在一个框架上做一些填充,根据项目特点和实用性在每个测试模型的优缺点中尽量达到各方面平衡,大家一定要好好理解这些模型,面试时谈到你的项目经验时,对模型选择和结合的考虑,如果阐述得好是一个非常出彩的亮点

千万不要纸上谈兵,生搬硬套。注意跟自己的业务实际结合起来才能棒棒哒,2024加油呀!

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

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

相关文章

WordPress:解决xmlrpc.php被扫描爆破的风险

使用WordPress的朋友都知道,一些【垃圾渣渣】会利用xmlrpc.php文件来进行攻击,绕过WP后台错误登录次数限制进行爆破。虽然密码复杂的极难爆破,但及其占用服务器资源。 方法一、利用宝塔防火墙(收费版) 一般可以直接使…

MySQL锁篇

目录 一、MySQL中的锁 1.1、全局锁 1.2、表级锁 1.2.1、表锁 1.2.2、元数据锁(MDL) 1.2.3、意向锁 1.2.4、AUTO-INC 锁 1.3、行级锁 1.3.2、Gap Lock 1.3.3、Next-Key Lock 1.3.4、插入意向锁 二、MySQL 是怎么加锁的? 2.1、为什…

使用ttyd为你的Anroid设备提供web版控制台

嵌入式Android设备,众所周知要调试要开adb,涉及到安全问题通常要走一系列流程,非常复杂,对于维护人员要求比较高。因此考虑有没有一个方便的调试手段。 此外,我们还需要考虑x86的嵌入式设备的方案,最好有类…

四、C语言数据类型和变量

目录 1. 数据类型介绍 1.1 字符型 1.2 整型 1.3 浮点型 1.4 布尔类型 1.5 各种数据类型的长度 1.5.1 sizeof 操作符 1.5.2 数据类型长度 2. signed 和 unsigned 3. 数据类型的取值范围 4. 变量 4.1 变量的创建 4.2 变量的分类 5. 算术操作符:、-、*、…

SpringBoot——Quartz 定时任务

优质博文&#xff1a;IT-BLOG-CN 一、Scheduled 定时任务 【1】添加Scheduled相关依赖&#xff0c;它是Spring自带的一个jar包因此引入Spring的依赖&#xff1a; <dependency><groupId>org.springframework</groupId><artifactId>spring-context-su…

MySQL图书管理系统(49-94)源码

-- 九、 子查询 -- 无关子查询 -- 比较子查询&#xff1a;能确切知道子查询返回的是单值时&#xff0c;可以用>&#xff0c;<&#xff0c;&#xff0c;>&#xff0c;<&#xff0c;!或<>等比较运算符。 -- 49、 查询与“俞心怡”在同一个部门的读者的借…

诊所小程序开发,需要包含哪些功能,有什么注意事项?

开发一个诊所预约小程序&#xff0c;可以提高口腔诊所的服务效率和客户体验。那么&#xff0c;一般小程序的流程和功能包含哪些内容&#xff1f; 注册登录&#xff1a;用户可以快速授权并登录(可定制多种登录方式) 预约挂号&#xff1a;用户可以选择科室、医生、日期和时段进行…

Unity中Shader指令优化(编译后指令解析)

文章目录 前言一、我们先创建一个简单的Shader二、编译这个Shader&#xff0c;并且打开1、编译后注意事项2、编译平台 和 编译指令数3、顶点着色器用到的信息4、顶点着色器计算的核心部分5、片元着色器用到的信息6、片元着色器核心部分 前言 我们先读懂Shader编译后代码&#…

Linux命令与shell脚本编程大全【读书笔记 + 思考总结】

Linux命令与shell脚本编程大全 第 1 章 初识Linux shellLinux的组成及关系结构图是什么&#xff1f;Linux系统内核的作用是什么&#xff1f;内核的主要功能是什么&#xff1f;&#xff08;4点&#xff09;物理内存和虚拟内存是什么关系&#xff1f;内核如何实现虚拟内存&#x…

Ubuntu中MySQL安装与使用

一、安装教程&#xff1a;移步 二、通过sql文件创建表格&#xff1a; 首先进入mysql&#xff1a; mysql -u 用户 -p 回车 然后输入密码source sql文件&#xff08;路径&#xff09;;上面是sql语句哈&#xff0c;所以记得加分号。 sql文件部分截图&#xff1a; 创建成功后的部…

【android开发-04】android中activity的生命周期介绍

1&#xff0c;返回栈 android中使用任务task来管理activity&#xff0c;一个任务就是一组存放在栈里的活动的集合&#xff0c;这个栈被称为返回栈。栈是一种先进先出的数据结构。当我们启动一个新的活动&#xff0c;他会在返回栈中人栈&#xff0c;并处以栈顶的位置&#xff0…

浮点运算误差

输出所有形如aabb的4位完全平方数&#xff08;即前两位数字相等&#xff0c;后两位数字也相等&#xff09; 解决这个问题首先需要表示aabb这个变量&#xff0c;只需要定义一个变量n存储即可&#xff0c;另一个问题就是如何判断n是否为完全平方数&#xff1f; 第一种思路是先求出…

【Python表白系列】无限弹窗,满屏表白代码来啦(完整代码)

文章目录 满屏表白代码环境需求完整代码详细分析系列文章 满屏表白代码 环境需求 python3.11.4PyCharm Community Edition 2023.2.5pyinstaller6.2.0&#xff08;可选&#xff0c;这个库用于打包&#xff0c;使程序没有python环境也可以运行&#xff0c;如果想发给好朋友的话需…

rust中动态数组Vec的简单使用

在Rust中&#xff0c;Vector&#xff08;简称Vec&#xff09;是一个动态数组数据结构&#xff0c;它可以动态地增加或减少其容量。Vec是Rust标准库中的一个常见类型&#xff0c;非常适合用于存储和操作一系列相同类型的值。 Vec其实是一个智能指针&#xff0c;用于在堆上分配内…

2022年1月14日 Go生态洞察:Go 1.18 新教程探索

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

绩效考核管理项目|记录2

给界面添加筛选条件并且把搜索功能实现 这段代码写入搜索方法里面就能实现功能。 private void bingdgv(){//筛选项&#xff1a;用户名、职位代码、是否辞职string userName txtUserName.Text.Trim();int baseTypeId (int)base_cbx.SelectedValue;bool isStop isdel_ckb.Che…

【VMware相关】VMware vSphere存储方案

一、iSCSI存储 参考文档 VMware官方文档&#xff1a;配置iSCSI适配器和存储 华为配置指南&#xff1a;VMware ESXi下的主机连通性指南 1、配置说明 如下图所示&#xff0c;VMware配置iSCSI存储&#xff0c;需要将物理网卡绑定到VMKernel适配器上&#xff0c;之后再将VMKernel适…

Golang数据类型(数字型)

Go数据类型&#xff08;数字型&#xff09; Go中数字型数据类型大致分为整数&#xff08;integer&#xff09;、浮点数&#xff08;floating point &#xff09;和复数&#xff08;Complex&#xff09;三种 整数重要概念 整数在Go和Python中有较大区别&#xff0c;主要体现在…

opencv 图像边框

cv.copyMakeBorder() 图像设置边框或者填充

PyQt基础_012_对话框类控件QInputDialog

基本操作 import sys from PyQt5.QtCore import * from PyQt5.QtGui import * from PyQt5.QtWidgets import *class InputdialogDemo(QWidget):def __init__(self, parentNone):super(InputdialogDemo, self).__init__(parent)layout QFormLayout()self.btn1 QPushButton(&qu…