一个女软件测试工程师3年的坎坷之路

news2024/11/28 7:40:02

绝大多数测试工程师都是从功能测试做起的,工作忙忙碌碌,每天在各种业务需求学习和点点中度过,过了好多年发现自己还只是一个功能测试工程师。

随着移动互联网的发展,从业人员能力的整体进步,软件测试需要具备的能力要求越来越高,打开招聘网站,90%的招聘都会有如下这一条。 至少熟悉一门编程语音,自动化测试XX年经验。所以越来越多的测试工程师,开始迷茫,不管是被动的还是主动的,这个时代需要我们不断学习去保持自己的竞争力,因为互联网红利越来越少,你的水平高低,决定了你在公司的价值,也决定了你未来职业选择的优势,学习自动化是你不得不选择的一条路。

在这,我也为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接点击文末小卡片免费领取资料文档

软件测试视频教程观看处:

2023最新【软件测试实战教程】全600集(含面试/接口/自动化/性能/测试开发),B站唯一,看完涨薪,允许白嫖...

什么是自动化测试?

James Bach 曾经在一篇博文提到,自动化测试这个名字是非常有误导性的。它让一般的人误以为就是测试完全被自动化了,就像一个自动的咖啡机一样,我只需要把杯子放在那里,按一个button就够了。James说更加准确的叫法应该是“工具辅助的测试”。当然他还有另一层意思,就是好的测试用例是没有办法100%被自动化的,测试人员的经验,逻辑判断和探索性的测试方法都不能被有效自动化。我非常同意这个观点。作为这个论断的补充和扩展,自动化应该是审视软件研发活动的每一个环节,去发现那些可以被工具化自动化的重复性活动,然后去实现。广义的自动化应该包括但不限于以下环节:

  • 测试环境的搭建和管理
  • 测试环境的检查,监控和报警
  • 测试代码的编译和测试构建
  • 测试代码的静态检查和报警
  • 测试用例的分发和执行
  • 测试结果的保存与管理
  • 测试报告的生成
  • 测试优先级的建议

一、软件自动化测试的学习步骤

大概步骤如下: 

做好手工测试(了解各种测试的知识)> 学习编程语言> 学习Web基础(HTML,HTTP,CSS,DOM,Javascript)或者 学习Winform>学习自动化测试工具 >学习自动化测试框架 > 实现自动化测试用例 >开发自动化测试工具 >开发自动化测试框架

自动化测试的最高境界是:  开发测试工具,设计自动化测试框架, 让别人用。

二、自动化测试的本质

自动化测试的本质是:用程序测试程序。 也就是说学习“编程语言”是学习自动化测试的基础。

很多人问我学自动化测试,应该去学什么自动化工具。 我的回答是,第一步:应该先学习编程语言,以后再去学自动化测试工具

自动化测试是一定要写代码的, 编程语言水平的高低决定了自动化测试水平的高低, 有了扎实的编程技术,干什么都可以。

学习编程语言时, 要把自己当做开发人员, 系统地学习各种编程知识。

三、自动化测试学习的误区

很多新手一开始,就学习复杂的自动化测试工具, 我觉得这样是本末倒置了。

如果不先理解HTTP协议, 就不会理解Jemeter, LoadRunner, Fiddler, SoapUI这些工具的。

如果不先理解HTML,DOM, 就不会理解Firebug 这种工具的

如果不先理解Win32 API,  就不会理解Windows 窗体自动化测试的原理的。

如果自己没有开发过网站, 就不会理解网站的各个方面,测试起来难免有遗漏。

总之学习自动化测试,需要循序渐进, 把基础打好。

四、自动化测试的职位

自动化测试工程师的职位叫做:(SDET) Software Development Engineer in Test  专注于自动化测试

手动测试工程师叫:(STE)Software test enginer   专注于手动测试

在微软有很多SDET的职位,但是没有STE的职位, STE职位一般都是外包给外包公司的,  目前自动化测试还是非常吃香的。

五、自动化测试分类

自动化测试也有非常多的种类

对Web UI 的自动化测试程序
对Windows 窗体UI的自动化测试程序
API测试, 比如(测试WCF service, Web API 等)
数据库测试, 比如测试存储过程
接口测试 (这种只能用自动化测) 
单元测试
性能测试, 性能测试都需要用到自动化

六、Web自动化测试分类

目前大部分项目都是Web的, 所以我们说的自动化测试,大部分都是针对Web程序的自动化测试, Web自动化测试分两类: 

第一类是:模拟用户真实操作,比如,模拟点击鼠标,键盘输入,等,去操作浏览器上的控件。 (代表框架有selenium-webdriver,   VS Coded UI)

这类的自动化测试的是通过高级语言(C#, JAVA, Python 等)来调用selenium的一些工具来操作浏览器,帮助我们实行Web UI自动化

第二类是:模拟HTTP请求。

七、自动化测试的知识点 

应该像开发人员一样的心态去学习技术, 自动化测试需要掌握以下的知识:

  • 了解Javascript, CSS的知识。 
  • 熟练掌握DOM和HTML知识, (用来解析Web界面)
  • 熟练掌握XML技术,(需要用XML保存测试数据,用XML展现测试报告)
  • 熟练使用C# P/inoke技术调用Windows API (可以用来操作Winform 窗口)
  • 熟练掌握窗体"句柄"的概念
  • 熟练使用C# 操作Windows 注册表 
  • 熟练使用C# 中的Process 类
  • 熟练掌握数据库的基本操作语句 (测试数据库肯定要用到)
  • 熟练掌握HTTP协议的知识 (请参考我的 HTTP系列博客 [HTTP协议详解])
  • 熟练掌握C# 中的HttpWebRequest 类的用法 (用于模拟HTTP请求)
  • 熟练掌握正则表达式

八、自动化测试工具

测试套件工具: JUnit,  Nunit,  MSTest,  这几个工具功能都一样学起来比较简单。   

性能测试工具: JMeter, VSTS 负载测试, LoadRunner(收费), QTP(收费)

Web UI 测试框架:WebDriver/Selenium,  VSTS Coded UI, Watri

Windows UI 测试框架:VSTS Coded UI 

其他工具:firebug,  Fiddler 

九、写在最后

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G【点击文末小卡片免费领取】

☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

送给大家一句话,共勉:当我们能力不足的时候,首先要做的是内修!当我们能力足够强大的时候,就可以外寻了! 

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

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

相关文章

ATFX汇市:日本央行放松长债收益率控制,USDJPY距离历史最高价仅一步之遥

ATFX汇市:10月31日,日本央行货币政策会议结果显示:维持短期利率-0.1%不变;把10年期日本国债收益率的目标水平维持在0%左右,同时进行收益率曲线控制,上限为1%,这一收益率将作为参考,主…

【Python爬虫】selenium4新版本使用指南

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera&am…

基于springboot实现疫情防控期间外出务工人员信息管理系统项目【项目源码+论文说明】

基于springboot疫情防控期间外出务工人员信息管理系统 摘要 网络的广泛应用给生活带来了十分的便利。所以把疫情防控期间某村外出务工人员信息管理与现在网络相结合,利用java技术建设疫情防控期间某村外出务工人员信息管理系统,实现疫情防控期间某村外出…

【小白专用】PHP array_push() 函数

PHP array_push() 函数 首先创建一个数组,然后使用array_push()函数依次添加了2个元素,并使用print_r()打印出了结果。可以看到,新添加的元素都已经被成功插入到了数组的末尾。 向数组尾部插入 "blue" 和 "yellow"&…

云安全—kubelet攻击面

0x00 前言 虽然说总结的是kubelet的攻击面,但是在总结攻击面之前还是需要去了解kubelet的基本原理,虽然说我们浅尝即止,但是还是要以能给别人讲出来为基本原则。 其他文章: 云安全—K8s APi Server 6443 攻击面云安全—K8S API Server 未授…

使用doxygen分析MCAL源码的层次架构-基于YTM32

使用doxygen分析MCAL源码的层次架构-基于YTM32 文章目录 使用doxygen分析MCAL源码的层次架构-基于YTM32引言准备和安装软件生成Call Graph配置Wizard > Project页面配置Wizard > Mode页面配置Expert > Project页面配置Expert > Build页面配置Expert > Dot页面分…

vue3视频大小适配浏览器窗口大小

目标:按浏览器窗口的大小,平铺视频,来适配屏幕的大小。 考虑使用 DPlayer.js、video.js、vue-video-player等视频插件,但报了各种各样的错;试过使用 js 对视频进行同比例放大,再判断其与窗口的大小取最小值…

纯CSS实现跑马灯效果,CSS动画知识是该补一补了

前言 最近看一个网站的时候,发现一个效果类似于广告灯的感觉,挺不错的,于是就想用纯CSS来实现这个效果,顺便提升一下自己的CSS动画技能。 分析 我们先分析怎么做的,这个效果分成两个部分: 上层&#xff…

matplotlib画刻度为对数的图

1. 代码 import matplotlib.pyplot as plta [1000,2000,3000,4000,5000] a_x [1, 2, 3, 4, 5] b [0.00001,0.00025,0.001,0.005,0.000001]plt.figure(figsize(10, 6)) plt.plot(a_x, b, cred, labellabel) plt.scatter(a_x, b, cblue) plt.xlabel(step$(\\times 10^3)$) pl…

【MySQL索引与优化篇】数据库设计实操(含ER模型)

数据库设计实操(含ER模型) 文章目录 数据库设计实操(含ER模型)1. ER模型1.1 概述1.2 建模分析1.3 ER 模型的细化1.4 ER 模型图转换成数据表1. 一个实体转换成一个数据库表2. 一个多对多的关系转换成一个数据表3. 通过外键来表达1对…

栅栏密码fence cypher

f{_wi3_hlyk_lnceaonr_cirgu04fep} flag{you_kn0w_r4il_f3nce_cipher}

世界坐标系投影到像素坐标系【python实验】

对于三维视觉而言,需要清晰了解世界坐标系和像素坐标系的对应关系。本文用python做实验。 相机内外参数的数学推导可以看我之前的博客《【AI数学】相机成像之内参数 》,《【AI数学】相机成像之外参数》。 实验开始 首先明确相机的内外参数: …

AI智能识别如何助力PDF,轻松实现文档处理?

AI智能识别如何助力PDF,轻松实现文档处理? 随着科技的不断发展,人工智能(AI)在各个领域都发挥着重要的作用。其中,文档智能( Document AI )在金融、医疗、教育、保险、能源、物流等…

yolov7改进之使用QFocalLoss

深度学习三大件:数据、模型、Loss。一个好的Loss有利于让模型更容易学到需要的特征,不过深度学习已经白热化了,Loss这块对一个成熟任务的提升是越来越小了。虽然如此,也不妨碍我们在难以从数据和模型层面入手时,从这个…

Object转List<>,转List<Map<>>

这样就不会局限在转换到List<Map<String,Object>>这一种类型上了.可以转换成List<Map<String,V>>上等,进行泛型转换虽然多了一个参数,但是可以重载啊注: 感觉field.get(key) 这里处理的不是很好,如果有更好的办法可以留言 public static <K, V> …

大数据Doris(十四):Doris表中的数据基本概念

文章目录 Doris表中的数据基本概念 一、​​​​​​​Row & Column

前端项目 index.html 中发请求 fetch

想要在前端项目 index.html文件中向后端发起请求&#xff0c;但是引入axios报错&#xff08;我这边会报错&#xff09;&#xff0c;可以使用fetch。 //window.location.origin----获取域名&#xff0c;包括协议、主机号、端口号fetch(window.location.origin "/api/pla…

el-tabs 默认选中第一个

1. 实际开发中el-tabs 都会设置第一个为默认值 ,这样会好看一点, 而渲染的数据经常是通过后端返回的数据 , v-model 无法写死默认值 解决办法 , 通过计算机属性 ,在data 定义一个 selectedTab watch: {defaultTab(newVal) {this.selectedTab newVal; // 设置第一个标签页…

腾讯云双11云服务器活动:3年366元,超多超值云服务器!

腾讯云在双11活动中推出了一款3年366元的云服务器&#xff0c;配置为2核2G 40GB SSD盘&#xff0c;300GB月流量&#xff0c;4M带宽。这一配置相较于其他厂商同等规格的云服务器&#xff0c;具有较高的性价比。在市场上很少有厂商提供3年期的优惠服务器&#xff0c;因此此次双11…

函数式接口详解(Java)

函数式接口详解&#xff08;Java&#xff09;_函数式接口作为参数_凯凯凯凯.的博客-CSDN博客 函数式接口&#xff1a;有且仅有一个抽象方法的接口 Java中函数式编程体现就是Lambda表达式&#xff0c;所以函数式接口就是可以适用于Lambda使用的接口 只有确保接口中仅有一个抽…