当前位置: 首页 > news >正文

2年测试我迷茫了,软件测试大佬都会哪些技能?我的测试进阶之路...

目录:导读

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


前言

Python自动化测试:https://www.bilibili.com/video/BV16G411x76E/

测试基础能力

其实所有的测试大佬都是从底层基础开始的,随着时间,经验的积累慢慢变成大佬。要想稳扎稳打在测试行业深耕,成为测试大牛,首当其冲的肯定就是拥有过硬的基础,所有的基础都是根基,后期所有的发展和提升都是基于测试基础铺垫的。

所以核心的测试理论、测试用例设计方法、测试的方向、测试的分类,从简单的功能测试到高效的自动化测试、再从接口的工具使用,到性能测试。

不管是做web端的项目还是app端的移动测试,都是基于基础,基于理论,基于核心的使用方法,只有拥有过硬的基础能力才能有序的持续发展。

所以所有涉及到测试相关的基础都必须有广度的掌握,然后再进利用经验的积累,进行深度挖掘,非常熟练的使用。

独立负责项目

首先要配得上大佬的称号,必须要相其匹配拥有独立负责一个项目的能力,这里说的独立负责并不是说一个人把整个项目全部测试完,而且全局把控,全局思维,能够把整个项目的业务领域的用户分布,功能特性,使用的具体场景,要有全面的用户意识。

然后进行尽可能全面的测试覆盖。那么独立扶着一个项目上线具体要做那些事情呢?这边把大概项目的进展以及测试的阶段进行一个有序的说明:

1、参与需求评审,进行产品的确认和研发的计划,提出有意义有效益的建议,然后编写测试计划,以及测试方案,和测试策略等。

2、拿到产品原型图以及产品的需求规格说明书(也就说我们常说的需求文档)对需求进行全面的分析,比如有哪些是隐性需求,哪些是显性需求,尽可能的覆盖全面的细节的进行拆分测试点。

然后再拆分过程中,有些不明确以及不清晰的需求可能是技术相关,也可能是没有理解的需求点,要跟产品经理或者项目经理,以及开发人员去进行确认,沟通,明确,然后最终明确核心需求点,再进行有效的拆分。

3、需求拆分之后,进行测试用例的编写,然后执行,可以进行合理的分工,把控全局测试进度,测试范围,测试覆盖率等等,然后再这个阶段可以使用一些持续集成的工具,进行发布任务,管理,操控等来确保工作效率。

然后缺陷报告也就是bug要及时提交到管理平推,对提交的bug进行跟踪,回归等。

4、对整个项目要有风险的把控,延期等等,对质量和进度也要进行合理的平衡,及时反馈,根据具体实际情况进行合理的调整安排。

5、所有测试内容完毕,提交缺陷报告,分析缺陷布局,整体,合理分析项目的软肋优化提升整体的质量。

6、开始发布、上线,发布流程。把上线的步骤,完整的记录详情,确保没有操作失误。

7、公司内部进行测试,也就是常见的阿尔法测试和贝塔测试阶段,核心还是重点进行生产环境的测试,然后就行上线,线上后核心的是日志信息和数据监控,预防问题发生和避免问题出现。

最后进行线上问题的反馈流程等等,然后进行项目复盘,也就是最终的总结大会,主要对项目总体进行一个系统的评估和最终结果进行对比,来帮助后期迭代更新做优化做积淀。

框架代码能力

配套自动化框架:
接口自动化测试方向:Python+requests+pytest+yaml+alluer+Jenkins;
web自动化测试方向:Python+selenium4+pytest+POM+allure+Jenkins;
app自动化测试方向:Python+appium+POM+pytest+allure+Jenkins;

测试框架有很多种类,但是大体上都是大同小异,不管是测试的工具和框架不在于会的多,而是精通几种才是核心目的,因为主要还是以用得最多最高效为基准。

适当的也可以自己取设计测试框架进行扩展和改写加功能都行,很多测试框架都提供了相对于的扩展方式和工具。那么接下来就介绍几种比较常见而且好用的测试框架如下:

Selenium(Web自动化、爬虫)
是一个最为广泛用于Web应用程序自动化(ui自动化)测试的框架,几乎可以模拟用户所有对浏览器进行的操作。

特点:
开源软件:源代码开放可以根据需要来增加工具的某些功能;
跨平台:linux 、windows 、mac;
核心功能:就是可以在多个浏览器上进行自动化测试;
多语言:Java、Python、C#、JavaScript、Ruby等;
成熟稳定:目前已经被google , 百度, 腾讯等公司广泛使用;
功能强大:能够实现类似商业工具的大部分功能,因为开源性,可实现定制化功能;

Pytest(白盒测试,接口自动化,web自动化)

pytest是python的一种单元测试框架,同自带的unittest测试框架类似,相比于unittest框架使用起来更简洁,效率更高

特点:
非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考;
支持简单的单元测试和复杂的功能测试;
支持参数化;
执行测试过程中可以将某些测试跳过,或者对某些预期失败的Case标记成失败;
支持重复执行失败的Case;
支持运行由Nose,Unittest编写的测试CaseG.具有很多第三方插件,并且可以自定义扩展;
方便的和持续集成工具集成;

Appium(移动端的UI自动化测试)

Appium是一个自动化测试开源工具主要用于做app移动端自动化测试的工具,支持iOS和android平台上的移动原生应用、移动Web应用和混合应用。

特点:
移动测试的首选,基本在app自动化测试的工具上使用率占到市场上的90%以上
支持多平台,ios,Android,等等;
支持多种编程语言,比如python,java,c#,js,ruby等等都可以使用;
跨平台工具,它允许测试人员使用同样的接口、基于不同的平台写自动化测试代码,大大增加了测试套件间代码的复用性。

编程代码能力

最少掌握精通一门语言的熟练使用,但是做自动化脚本编写的代码语言首选肯定是python,其次是java,然后附带的除了编程能力之外还有对操作系统的熟练操作除了Windows还有Linux操作系统,以及测试环境的搭建等等也必须掌握得信手捏来。

还有就是数据相关的比如常见的mysql、oracle、sqlserver、sqlite等都必须熟练使用。

性能测试能力

1、对性能测试的基础理论肯定是必须一定熟练掌握的,比如性能测试常见的方法有服务器的性能测试,前端的性能测试,app性能测试等等,以及具体的测试流程也需要熟练掌握使用。

然后要明确常见的性能指标,比如响应时间、TPS、错误率、并发用户数,以及系统资源指标:CPU、内存、IO、网络吞吐量(网络带宽)等等。

2、性能测试压测工具,首选Jmeter,或者LoadRunner,主要的作用是性能测试工具一般用来监测和收集压测中的数据,根据对数据的敏感度发现性能问题。

然后配合开发或者项目经理进行性能调优需要对系统有全面的熟悉以及常见调优的经验要比较丰富,需要不断的思考和摸索定位到性能瓶颈。

其次linux的相关常用命令也要会使用,比如一些监控命令,还有就是服务与容器相关的知识也需要掌握使用,比如常用的Docker命令和部署的原理,Tomcat云服务等等。

其次中间件的话有RabbitMQ、KafKa也要会使用。最后的话就是关于问题定位的分析,还有就是分析调优并且进行各种参数的配置修改等等内容。

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

不要因为困难而放弃,每一步都在向目标迈进;勇往直前,才能创造奇迹;坚持自己的信仰,成就辉煌人生;只有不断努力,才能实现梦想;成功需要付出代价,但收获也是无限的。

每一次的努力都是一份投资,不要因为追求完美而放弃前进的步伐,勇往直前,才能见证自己的成长。只有坚定不移地坚持下去,你才能超越自我,实现人生的价值。

每一次的奋斗都是值得的,无论成功与否。因为它们让你变得更加坚强、更加有智慧,成为一个更好的自己。不要停下来,继续前行,在你追求的道路上坚定不移。

相关文章:

2年测试我迷茫了,软件测试大佬都会哪些技能?我的测试进阶之路...

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

21天学会C++:Day7----auto关键字

CSDN的uu们,大家好。这里是C入门的第七讲。 座右铭:前路坎坷,披荆斩棘,扶摇直上。 博客主页: 姬如祎 收录专栏:C专题 目录 1. 知识引入 2. auto的使用 2.1 auto与指针和引用结合起来使用 2.2 在同一…...

Vue3 + ElementPlus实战学习——模拟简单的联系人列表管理后台

文章目录 📋前言🎯demo 介绍🎯功能分析🧩数据的展示与分页功能🧩编辑功能🧩删除功能 🎯部分代码分析🎯完整代码📝最后 📋前言 这篇文章介绍一下基于 Vue3 和…...

【Go语言从入门到实战】并发篇

Go语言从入门到实战 — 并发篇 协程 Thread vs Groutine 相比之下,协程的栈大小就小很多了,创建起来也会更快,也更节省系统资源。 一个 goroutine 的栈,和操作系统线程一样,会保存其活跃或挂起的函数调用的本地变量…...

img标签请求 添加自定义header(二)

之前写过一篇关于img添加自定义请求头的处理方式&#xff08;点击这里&#xff09;&#xff0c;那么本篇我们来看另外几种实现方法。 自定义指令 以Vue为例&#xff0c;我们可以定义一个全局指令&#xff0c;对img标签进行一些处理。 <template><img :src"src…...

Set和weakSet Map和WeakMap

Set和weakSet的用法和区别 1.Set 和weakSet 它是类似于数组&#xff0c;且成员值都是唯一的&#xff0c; 2.Set有 add has delete clear size keys values forEach entries 3.weakSet 有add has delete 4.WeakSet中只能存放对象类型&#xff0c;不能存放基本类型 5.WeakSet它是…...

Qt基础之三十六:异常处理

本文将介绍如何在Qt中使用try...catch和调试dump文件来处理异常。 Qt版本5.12.6 一.使用try...catch 一段简单的捕获异常的代码,新建一个控制台工程,pro文件不用修改 #include <QCoreApplication> #include <QDebug>int main(int argc, char *argv[]) {QCoreA…...

【HMS Core】【ML Kit】活体检测FAQ合集

【问题描述1】 使用示例代码集成活体检测SDK时&#xff0c;报错state code -7001 【解决方案】 使用示例代码前请详细阅读示例工程中的“README”文件。您需要完成以下操作后才可以运行示例代码。 在AppGallery Connect网站下载自己应用的“agconnect-services.json”文件&a…...

ChatGPT:使用OpenAI创建自己的AI网站,使用 flask web框架快速搭建网站主体

使用OpenAI创建自己的AI网站 如果你还是一个OpenAI的小白&#xff0c;有OpenAI的账号&#xff0c;但想调用OpenAI的API搞一些有意思的事&#xff0c;那么这一系列的教程将仔细的为你讲解如何使用OpenAI的API制作属于自己的AI网站。 使用 flask web框架快速搭建网站主体 之前…...

后端(一):Tomcat

我们之前的前端是被我们一笔带过的&#xff0c;那不是我们要讲的重点&#xff0c;而这里的后端则是重点。本章先来认识认识后端的基础。 Tomcat 是什么 我们先来聊聊什么叫做tomcat&#xff0c;我们熟悉的那个是汤姆猫&#xff1a; 这和我们Java世界中的Tomcat 不是同一只猫&…...

华为OD机试之最小调整顺序次数、特异性双端队列(Java源码)

最小调整顺序次数、特异性双端队列 题目描述 有一个特异性的双端队列&#xff0c;该队列可以从头部或尾部添加数据&#xff0c;但是只能从头部移出数据。 小A依次执行2n个指令往队列中添加数据和移出数据。其中n个指令是添加数据&#xff08;可能从头部添加、也可能从尾部添加…...

2023年武汉住建厅七大员怎么报名?报名流程?精准题库一次过??

2023年武汉住建厅七大员怎么报名?报名流程&#xff1f;精准题库一次过&#xff1f;&#xff1f; 2023年武汉住建厅七大员是指施工员、质量员、资料员、材料员、机械员、标准员、劳务员&#xff0c;报的最多的可能就是施工员&#xff0c;质量员和资料员 报名流程&#xff1a; 1…...

Rust每日一练(Leetday0014) 组合总和II、缺失正数、接雨水

目录 40. 组合总和 II Combination Sum II &#x1f31f;&#x1f31f; 41. 缺失的第一个正数 First Missing Positive &#x1f31f;&#x1f31f;&#x1f31f; 42. 接雨水 Trapping Rain Water &#x1f31f;&#x1f31f;&#x1f31f; &#x1f31f; 每日一练刷题…...

EnjoyVIID部署

1、下载 git clone https://gitee.com/tsingeye/EnjoyVIID.git 2、导入数据库 创建表enjoyviid 导入数据库(修改数据库文件里的编码) EnjoyVIID/sql/tsingeye-viid.sql 3、修改配置 vim EnjoyVIID/tsingeye-admin/src/main/resources/application-dev.yml 修改数据库连接、re…...

用Python解决爱因斯坦的数学问题

1 问题 有一条阶梯&#xff0c;若每步跨2阶&#xff0c;则剩最后一阶&#xff0c;若每步跨3阶&#xff0c;则最后剩2阶&#xff0c;若每步跨5阶&#xff0c;则最后剩4阶&#xff0c;若每步跨6阶&#xff0c;则最后剩5阶&#xff0c;只有每次跨7阶&#xff0c;最后才刚好不剩&am…...

ChatGPT提示词攻略之基本原则

下面是调用openai的completion接口的函数。但在本文中并不是重点。了解一下就好。 import openai import osfrom dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv())openai.api_key os.getenv(OPENAI_API_KEY)def get_completion(prompt, model"gp…...

抖音seo源码如何开发部署?

前言&#xff1a;抖音seo源码&#xff0c;抖音矩阵系统源码搭建&#xff0c;抖音矩阵同步分发。抖音seo源码部署是需要对接到这些正规接口再来做开发的&#xff0c;目前账号矩阵程序开发的功能&#xff0c;围绕一键管理多个账号&#xff0c;做到定时投放&#xff0c;关键词自动…...

Java中常见锁的分类及概念分析

基于线程对同一把锁的获取情况分类 可重入锁 同一个线程可以多次获取锁 每次获取锁&#xff0c;锁的计数器加1&#xff0c;每次释放锁锁的计数器减1 锁的计数器归零&#xff0c;锁完全释放 Java中提供的synchronized&#xff0c;ReentrantLock&#xff0c;ReentrantReadWriteL…...

ConcurrentLinkedQueue的源码解析(基于JDK1.8)

ConcurrentLinkedQueue的源码解析&#xff08;基于JDK1.8&#xff09; ConcurrentLinkedQueue是Java集合框架中的一种线程安全的队列&#xff0c;它是通过CAS&#xff08;Compare and Swap&#xff09;算法实现的并发队列。在并发场景下&#xff0c;ConcurrentLinkedQueue能够…...

低资源方面级情感分析研究综述

文章目录 前言1. 引言2. 问题定义、数据集和评价指标2.1 问题定义2.2 任务定义2.3 常用数据集 3. 方面级情感分析的方法3.1 **方面词抽取**3.1.1 基于无监督学习的方法3.1.1.1 基于规则的方面词抽取3.1.1.2 基于统计的方面词抽取 3.1.2 基于有监督浅层模型的方法3.1.3 基于有监…...

线程与协程

1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指&#xff1a;像函数调用/返回一样轻量地完成任务切换。 举例说明&#xff1a; 当你在程序中写一个函数调用&#xff1a; funcA() 然后 funcA 执行完后返回&…...

django filter 统计数量 按属性去重

在Django中&#xff0c;如果你想要根据某个属性对查询集进行去重并统计数量&#xff0c;你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求&#xff1a; 方法1&#xff1a;使用annotate()和Count 假设你有一个模型Item&#xff0c;并且你想…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

vue3 定时器-定义全局方法 vue+ts

1.创建ts文件 路径&#xff1a;src/utils/timer.ts 完整代码&#xff1a; import { onUnmounted } from vuetype TimerCallback (...args: any[]) > voidexport function useGlobalTimer() {const timers: Map<number, NodeJS.Timeout> new Map()// 创建定时器con…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

NFT模式:数字资产确权与链游经济系统构建

NFT模式&#xff1a;数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新&#xff1a;构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议&#xff1a;基于LayerZero协议实现以太坊、Solana等公链资产互通&#xff0c;通过零知…...

处理vxe-table 表尾数据是单独一个接口,表格tableData数据更新后,需要点击两下,表尾才是正确的

修改bug思路&#xff1a; 分别把 tabledata 和 表尾相关数据 console.log() 发现 更新数据先后顺序不对 settimeout延迟查询表格接口 ——测试可行 升级↑&#xff1a;async await 等接口返回后再开始下一个接口查询 ________________________________________________________…...

手机平板能效生态设计指令EU 2023/1670标准解读

手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读&#xff0c;综合法规核心要求、最新修正及企业合规要点&#xff1a; 一、法规背景与目标 生效与强制时间 发布于2023年8月31日&#xff08;OJ公报&…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...