不知不觉已经毕业两年半,工作三年半了。这三年在同一家公司并未跳槽,今年在合适的契机选择了换一家公司,在这里想总结一下三年的工作经验。
三年的思想转变
? 总体转变
三年多获得最多的应该还是思想的转变吧。
其实想来觉得自己也算悟的慢的了,三年才领悟到这个软件测试岗位的真正职能,当然每个人领悟到的肯定不一样,我领悟到的内容大概只是对自己的职业定位吧。在贴吧还经常看到有人说软件测试热门又简单,就是点点点,不辛苦很轻松。
以前这些也曾是我对测试的认识,我身边也不乏这样认知测试岗位的人,我现在的想法变了,像k同事说的,软件测试可深可浅:
??做的浅的,但凡脑袋比较灵光,很容易上手,但是这部分人很容易被替代;
??做的深的,看个人兴趣和认知悟性吧,能知道自己需要一些什么技能能帮助自己做好测试工作,各种编程思想,脚本语言,几种系统的基础命令,这些都是必不可少的。
? 思想转变
然后工具是另一方面,还要了解开发的框架逻辑思想。可以说并不简单,我个人认为好的测试人员是比开发人员的难度大的,不求全部精通,但要知识广。
所以我们需要看很多技术类书籍,应该学习很多技术,这应该是一个好的技术人员的必备条件。做到后者是能做出一些成绩的,越往上走,越有一些做的浅的被淘汰。
我是靠自己领悟的,工作不如学习有老师教,出了社会,工作岗位上带你的人能给你讲业务都是仁慈了,怎么也不可能把所有肚子里消化过的东西全部吐出来给你。
?? :当然,这样的同事也存在着,还是要靠自己在日常工作中去发现,去与人交流。
最后我想对测试员说…
总结一下,这三年中我发现以下这些特质都将成为一名测试员在求职和工作中的“潜在力量”,比如:快速学习、系统性学习、学以致用、系统性思考、强大的推动力、技术思维、突出的沟通能力、条理性、抗压性、乐观精神、抗挫折能力、迅速调整的能力、迭代改进的意识、ownership、团队合作、愿景和规划……你一定也要一点点地拥有它!
当然真正的能力,还是来源于工作中的积累,关于技能提升,不管是自学也好,还是参加培训机构,都是需要一个正确的方向去引导你学习,这样学习起来也会比较轻松,不会走多余的弯路,思路很重要。
学习的动力其实是一个很简单的东西,说成目标可能会更好理解一点,你想学成之后能达到什么程度,这样你也能在学习的过程中不被困难所难倒,也会有源源不断的动力促使你前进。
做为一名测试人,我想分享一下这些年来,我对于技术一些归纳和总结,和自己对作为一名高级自动化测试需要掌握那些技能的笔记分享,希望能帮助到有心在技术这条道路上一路走到底的朋友!
1、软件测试基础理论知识:
软件测试理论知识是开展测试工作的理论依据和支撑,是测试很重要的阶段必须掌握的技能。
软件的质量模型:软件测试过程保障软件的质量,从哪些方面保障可以从质量模型出发思考
测试分类:软件测试过程可以按照不同角度进行分类,基础测试到高级测试递进过程
开发流程:告诉测试人员一个软件完整的生命周期,软件从无到有到消亡的过程
测试流程:掌握并指导测试人员在实际项目中如何开展测试工作。这要求测试人员对常见的主流测试流程有较为透彻的理解。遇到不同的软件项目,知道从何处着实能最有效率的测试软件缺陷
测试计划与方案:如何规划在项目中开展测试活动,确保测试活动有序进行
设计用例方法:黑盒测试阶段必须掌握的一些测试用例的设计方法。比如黑盒测试用例的设计方法、测试用例元素等等
软件缺陷:在测试执行过程中应该确定缺陷并提交缺陷报告
缺陷管理:提交缺陷后在实际工作中如何和开发协助处理验证提交的问题。例如:bug的等级优先级分类、bug的描述、bug的生命周期、缺陷管理工具使用,如禅道等。
测试报告:测试过程的回顾和结果确认,生成系统性的专业软件测试评估报告。
2、软件测试功底技术——Linux系统
linux系统是主要的服务端操作系统,也是从事IT岗位的大部分人员必须具备的基本技术之一。
linux系统基本知识:多用户,多任务,发行版本等 常见 linux操作命令:日志查看,文件压缩、解压,用户管理,文件权限等 会部署和配置基本的应用jdk、 mysql、 tomcat docker安装使用 编写基本的 shell RAD本 远程终端工具使用: shell, xftps等
3、软件测试功底技术——Sql数据库
数据库作为软件系统必备的应用系统,在诸如接口测试、性能测试等等过程中往往需要操作数据库,验证数据正确性完整性,都离不开数据库的增删改查操作,在项目部署阶段数据库还需要配合项目部署。在性能测试、接口自动化测试中都需要数据库的支撑。
数据库基本概念 关系型数据库 MYSQL基本的增改查语句,存储过程 MYSQL复杂查询、多表查询 MYSQL索引及事务相关概念 数据库客户端工具使用:如 Navicat
4、软件测试功底技术——编程语言
推荐没有编程基础的朋友可以学习Python语言
Python语言的学习内容包含以下知识点:
Python基础:Python语言特点、运行环境、基本语法、代码风格、示例程序
数据结构:
基本数据结构:数字、字符串、类型判断、类型转换、切片、字符串格式化、数值运算、位置参数和关键字参数;
组合数据结构:列表、元组、范围、字典、集合、不可hash对象、解包、内存地数据结构址、不可变数据
程序控制:顺序结构、循环结构、判断结构、异常处理、逻辑运算符
函数:定义函数、函数的参数、返回值、变量作用域、匿名函数、常用内置函数
模块和库:模块和包、import关键字、常用标准库、常用第三方库、包管理工具pip
面向对象:面向对象起源和优势、面向对象的特性类和对象的联系、对象的特殊方法
日志记录:baseConfig、文件日志、邮件日志、定制格式、内置占位符、等级过滤、分级传播、配置文件
测试框架:unitest、pytest等
并发编程:多进程、多线程、协程、线程池、同步控制、线程通信、分布式、猴子补丁、 async语法、生成器
网络编程:socket编程基础、TCP服务端和客户端、并行请求处理、HTTP服务端和客户端
5、软件测试自动化进阶——接口测试
接口测试本质也是功能测试的一种,通过脚本或者工具,模拟客户端对服务端接口进行调用。因为是从接口层测试,所以能更早的发现问题,从而提高测试效率,降低修复成本。
http/httpst协议学习 常见请求方法学习:GET、POST cookie和 session学习 接口的基本概念 接口文档认识 接口测试用例编写 接口测试工具使用:postman、Jmeter、SoapUl
6、软件测试自动化进阶——性能测试
性能测试的技术要求很高,不仅仅要对性能测试的指标、测试分类、测试设计有很深刻的理解。还要学习系统业务和架构相关知识,这样才能更好的设计性能场景。
性能基本概念:性能测试意义、常见性能指标理解、性能测试的分类 性能测试流程:性能需求分析、性能场景设计、测试脚本编写、测试执行资源监控、性能调优、回归测试 Jmeter及 roadrunner使用 性能测试报告输出
7、软件测试自动化进阶——app自动化
越来越多的项目和系统通过移动端来提供服务,移动端的软件质量越来越重要,App自动化测试已经成为自动化测试的重要内容。借助Appium,使得App自动化测试和Web自动化测试有很多相通之处,不过作为测试工程师,依然需要掌握移动端应用的工具和特性。
Appium移动测试环境搭建:Appium ServerAppium和 Desktop、 Android运行环境搭建、模拟器安装和连接、真机设备调试模式、adb、 weditor、 - - UiAutomator22、 Monkey Appium元素定位:原生应用元素定位、纯web应用元素定位、混合应用元素定位 Appium元素交互:等待元素加载,元素的基本属性和方法、滑动、拖动、缩放操作、下拉选择操作、 toast消息处理、常见控件分析、常见布局分析 封装测试框架:集成Appium、adb等工具、预定义异常处理、记录Appium日志、屏幕截图、打造多用途测试框架
8、软件测试自动化进阶——持续集成和持续测试
持续集成和持续测试是一个在迭代中构建、测试产品并修复Bug的过程。它有助于团队在开发阶段的初期发现缺陷,这时的缺陷通常相对不那么复杂,并且更容易被解决。通过持续集成和持续测试,可以尽早地将错误风险降至最低,并加快交付更好质量的软件。
版本控制Git:背景介绍、环境部署、工作区、暂存区和提交区、分支创建与合并、解决冲突、标签、 config与别名、本地仓与远程仓、 GitHub与码云 持续集成 Jenkins:背景介绍、环境部署、文件结构、远程仓库与私服、ja包依赖、插件管理 容器Docker:了解 Dockers的镜像、仓库、容器、 Docker Engine和架构图、网络设置、数据持久化。
从测试概念到最后的测试开发,希望大家能照着这个体系,在3-4年内完成这样一个体系的构建,可以说,这个过程会让你痛不欲生,但只要你熬过去了,以后的生活就会轻松很多,正所谓完事开头难,只要迈出了第一步,你就已经成功了一半,古人说的好:不积跬步无以至千里,等到完成之后在回顾这段路程的时候,你肯定会感慨良多,掌握了以上技术,在任何一线互联网大厂测试岗位都能独挡一面
房子要一层一层盖,知识要一点一点学。大家在学习过程中要好基础,多上手实操,话不多说,这里狠狠上一次干货!这是我熬夜整理好的各阶段(功能、接口、自动化、性能、测开)技能学习资料+实操讲解,非常适合私下里学习,比找资料自学高效多了,分享给你们。
领取关 w/x/g/z/h:软件测试小dao
敲字不易,如果此文章对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。
|