优秀的测试工程师养成记,庸碌四年的点工,“我“要进阶了...

news2024/10/7 7:23:08

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

怎么才能成为优秀的测试工程师?

1、由单纯的测试变成项目质量保证工作

测试人员一般会在开发阶段就进行测试计划和测试用例的编写和准备工作。在测试阶段,我们一般先会做功能测试,等项目功能基本稳定,Bug较少了,就开始做兼容性测试、性能测试、安全性测试。

兼容性测试保证了产品在多浏览器、APP在产品在不同机型下的兼容性;
性能测试保证了产品在海量用户大流量下的服务能力;
安全测试能发现产品可能会被攻击的各个隐患。
做完了这些测试以后,人员发布质量报告,产品上线。

不过,优秀的测试人员需要向上游和下游拓展测试的领域,把自己放在“质量保障”的角色上,推动整个项目组一起保证质量。

上游的工作包括:在产品刚立项、进行需求确认的时候,测试人员就会参与进去,仔细地Review需求,看需求是不是完整、有没有漏洞,这个时候还没有进入正式开发,修改需求对于项目组来说代价是最少的。

在这个环节,测试人员凭借缜密的推演、发散性的思维,往往能发现很多需求的漏洞,提高了项目的整体效率。

另外,测试人员在完成测试计划、测试用例以后,会邀请开发、策划一起来评审测试用例,在这个环节,由于测试人员把每个需求如何细化测试都体现在了用例里面,就相当于再次把需求分析了个透,往往还能发现很多需求的漏洞,这也是提早发现需求漏洞的有效环节。

我们知道,代码的质量归根结底是由开发保证的,测试做的工作,只是发现Bug让开发修复。如果一个花瓶,一开始就是很完美的,另一花瓶经过了各种修补,看起来比较完美,大家觉得哪个花瓶比较好?当然是第一个花瓶。

所以,测试人员应该站在质量保障的立场,想办法跟项目组沟通、给开发提供工具,让开发自己把质量保障工作做好。

比较可行的一些方式是:
提供一些手工用例让开发自测;
给一些自动化的接口和UI测试代码让开发自测;
部署静态代码检查工具,并推动开发分析和修改发现的问题;
有一些做得好的项目已经实现了持续集成,也可以尝试。
下游的工作包括:在产品完成了测试以后,就是发布的环节了,测试人员在发布的环节也能发挥作用。

如果有些版本修改比较多,上线的质量风险大,测试人员会跟产品一起制定灰度发布的方案并在技术上进行实现,让版本先面向一小部分用户开放,如果发现Bug了,影响的用户也比较小,Bug改掉以后,再逐渐扩大用户范围。

另外,优秀的测试人员还会发动项目组的其他人一起来保证项目质量。
比如:
推动开发进行代码Review;
引入冒烟自测流程,让开发先自测以后再提交给测试做冒烟测试;
通过在项目组分析Bug,让开发提高自测,降低Bug数量等;
引入策划、交互、视觉在测试阶段进行走查,等等各种措施。

2、持续集成探索和自动化测试技术研究

持续集成原本的意思是让开发每提交一次代码就自动化测试一次。如果自动化测试发现问题了,测试用例就会失败,开发就会马上发现这个失败,并修改代码。

要做到持续集成可有很多工作要做:首先就是编译环节,要把所有编译的环节都自动化起来,开发每次提交代码都能进行自动编译。

编译完成后,就是静态代码检查的环节,通过静态代码检查的工具检查代码的问题,比如,数据库连接池没有释放,参数不匹配等。

静态代码检查完成后,就是单元测试了,单元测试用例一般是开发人员或者测试人员编写,或者开发和测试合作编写,保证的是开发内部函数的正确性。一个健康的自动化测试方案中,单元测试用例的占比是最高的。

然后就是接口测试,一般保证的是后端开发提供给前端开发的HTTP接口,接口一般也比较稳定,用例比较容易维护,所以,接口测试的自动化占比也可以做到很高。

在接口测试的上层就是针对用户界面的UI测试了,就像测试人员手工执行一样,UI自动化测试能操作页面的元素,完成自动化。不过,由于用户界面常常要重构,所以我们常常会控制UI自动化测试的规模,只覆盖主干的用例。

优秀的测试人员可以把自己的工作尽量自动化,并用持续集成框架串起来,提高工作效率和质量。

3、测试相关工具的开发

优秀的测试人员会开发其他好用、趁手的工具来提高工作效率,比如数据自动生成、报表自动生成、报Bug工具等。

其实归根结底就是一句话:测试人员最核心的工作就是保障项目的质量,各类测试流程、技术、工具和平台的发展让我们可以更好地保证项目的质量。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有拼尽全力,才能看到努力的成果;只有坚持不懈,才能迎来成功的曙光;奋斗是人生最美丽的舞台,让我们挥洒汗水,点亮梦想的火花,勇往直前,绽放出辉煌!

只有拼尽全力,才能看见追梦的曙光;只有坚持不懈,才能绘就成功的画卷;只有勇于挑战,才能超越自我;奋斗吧,让每一天都成为迈向辉煌的跳板!

只要有梦想,就别停下脚步;只要奋斗,就能超越极限;只要坚持,就能创造奇迹;相信自己,勇往直前;每一天都是新的起点,努力拼搏,终将收获成功的喜悦!

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

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

相关文章

运动耳机哪种戴着舒服、值得推荐的五款运动耳机

在运动中享受最佳声音和舒适感受。这些耳机不仅具备防汗、抗水、稳定舒适的特点,而且还拥有出色的音质和智能功能,帮助你充分释放潜能,突破自我。无论你是专业运动员还是热爱户外活动的人,这些运动耳机将成为你的最佳伙伴&#xf…

Spring AOP 源码探索 之 链式调用中的 ExposeInvocationInterceptor拦截器作用

文章目录 ExposeInvocationInterceptor 示例代码源码分析 extendAdvisorsmakeAdvisorChainAspectJCapableIfNecessary添加扩展拦截器的调用链作用示例总结相关学习路线 JAVA资深架构师成长路线->开源框架解读->Spring框架源码解读 ExposeInvocationInterceptor 从英文名字…

【Linux系列P5】gccg++与【动静态库】的美妙邂逅

前言 大家好吖,欢迎来到 YY 滴 Linux系列 ,热烈欢迎!本章主要内容面向接触过Linux的老铁,主要内容含 欢迎订阅 YY 滴Linux专栏!更多干货持续更新!以下是传送门! 订阅专栏阅读:YY的《…

exe的python文件打包

【步骤01】 【在命令行中用pip工具安装Pyinstaller模块】 pip install Pyinstaller 步骤02】 【切换命令行的路径到你要打包的Python源文件的文件夹路径下】 【下面是我要打包的Python源文件(散点坐标图.py)及其文件夹路径】 【步骤03】 【执行Pyi…

js使用replace保留两位小数,正则保留小数位,输入负数和小数正则自动校验

下面是方法,支持保留自定义小数位,这里使用的是截取,没有四舍五入,我的功能需求是只有两位小数的地方可以输入负数,所以只加在了num2的代码块里,如果你们需要所有数字都进行负号校验,可以吧if (isF)判断放在…

百度智驾,与车路协同说「再见」

作者 | 魏启扬 来源 | 洞见新研社 在经历了裁员,全员停发年终奖之后,百度对智能交通事业部(ACE)的治理还在继续。 不久前,有媒体爆料称,百度已经将智能交通事业部(ACE)从原来的智能…

smart Java——Netty实战(下):开发一个仿WeChat聊天工具SmartChat

文章目录 〇、代码逻辑一、搭建Server1.引入依赖2.搭建一个简单的Server 二、搭建WebSocket建立连接1.修改Server,增加一些支持2.自定义一个WebSocketHandler 三、功能实现——用户注册上线1.先定义一个工具类Result,用于封装服务端返回消息2.封装客户端…

easyX库图像处理相关函数(注释版)

0.图像处理相关函数与类型概览 您好,这里是limou3434,本次我将给您带来的是easyX的图像处理相关接口。 如果您感兴趣也可以看看我的其他内容。 函数或数据类型描述IMAGE保存图像的对象。loadimage读取图片文件。putimage在当前绘图设备上绘制指定图像…

高压线路距离保护程序逻辑原理(三)

阻抗元件的主要程序功能是阻抗计算,即第二章的解微分方程算法。配合低通数字滤波器计算出故障点至保护安装处的感受电抗X和电阻R值,再同整定值比较以确定是否在区内。阻抗元件也可以采用其他算法计算阻抗,但应指出上述哪种计算感受电抗和电阻…

如何去伪存真高效挖掘用户真实需求?2大模型

用户需求描述模糊,不清晰,往往对项目造成不可估量的风险:需求理解错误、新增需求、变更需求等问题,从而影响项目按时交付。 那么如何更准确地描述用户需求,就显得尤为重要。而可行性较强的模型主要有两种:5…

Django纪录操作之增删改查

一、单表 1、 添加记录 准备表 from django.db import modelsclass Book(models.Model):title models.CharField(max_length20)price models.DecimalField(max_digits65,decimal_places5)publish models.CharField(max_length30)pub_date models.DateTimeField(auto_now…

阿里云盘如何实现 大文件 秒上传?

文章目录 Intro极速上传的原因隐私保护 Intro 今天把几个软件上传到阿里云盘进行分享,文件大小将近1GB,按理说上传需要个2~3分钟吧。 之前上传一个压缩包看到上传速度大概是4~5MB/s。 但是我刚到别的软件看了一圈,回来发现文件居然已经上传…

网络攻防基础(复习)

文章目录 第 1 章 软件与系统安全概述第 2 章 扫描与防御技术2.1 扫描技术概述2.2 常见的扫描技术2.3 扫描工具2.4 扫描的防御 第 3 章 网络监听及防御技术3.1 网络监听概述3.2 监听技术3.3 监听的防御 第 4 章 口令破解与防御技术4.1 口令的历史与现状4.2 口令破解方式4.3 典型…

基于遗传算法(GA)的多旅行商问题(MTSP)

matlab2016b可运行,输入城市位置,可以动态显示规划过程 % MTSPF_GA Fixed Multiple Traveling Salesmen Problem (M-TSP) Genetic Algorithm (GA) % Finds a (near) optimal solution to a variation of the M-TSP by setting % up a GA to search …

前后端分离,通用分页js处理模板

截图&#xff1a; 步骤&#xff1a; 第一步&#xff1a;创建一个index.html引入 <script src"./jquery-3.7.0.js"></script><link rel"stylesheet" href"https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.4.1/css/bootstra…

想要wav转换mp3软件?看我给你分享将wav转换成mp3的软件

你是否曾经遇到过这样的情况&#xff1a;下载了一首你喜爱的音乐&#xff0c;却发现它的格式是wma&#xff0c;无法在你的设备或播放器上正常播放&#xff1f;别担心&#xff0c;今天我将向你介绍几款wma转换器&#xff0c;让你能够轻松转换音频格式&#xff0c;不再困惑于wma转…

Samba协议实现视频上传、远程播放

一、效果演示 扫码打开上传页面&#xff0c;上传进度可以全局筛选订单查看&#xff0c;上传过程中查看视频是本地视频&#xff08;速度快&#xff09;&#xff0c;上传完成后再次打开是smb服务器视频&#xff08;打开慢&#xff09; 本文涉及demo参考下载 二、集成smbj 1、集…

写毕业论文之前一定要看的经验总结!!!

本文为笔者关于毕业论文的经验总结 如果本文有错误的地方 或者关于论文有什么更好的经验分享欢迎私信或者评论指出 打开word的格式标记 打开标尺 摘要 标题 目录 分页 页码 图片 表格 参考文献 打开word的格式标记 word格式标记并不是真的存在&#xff0c;只是帮你你修改word时…

嵌入式工作的前景:为什么嵌入式系统需求仍在增长

嵌入式系统的需求在过去几十年中一直稳步增长&#xff0c;并且预计在未来仍然会继续增加。嵌入式系统是指嵌入到其他设备或系统中的计算机系统&#xff0c;它们具有特定的功能和任务。这些系统广泛应用于汽车、消费电子产品、医疗设备、智能家居、工业自动化等领域。 随着科技…

Quiz 10: Tuples | Python for Everybody 配套练习_解题记录

文章目录 课程简介Quiz 10: Tuples 单选题&#xff08;1-11&#xff09;编程题Exercise 10.2 课程简介 Python for Everybody 零基础程序设计&#xff08;Python 入门&#xff09; This course aims to teach everyone the basics of programming computers using Python. 本课…