现如今软件测试行业,是谁都能成功的吗?当然不是,任何一个行业都不可能随随便便成功,我们软件测试也一样,他也需要我们掌握各种特异功能,我们一般谈论的有软实力和硬实力两部分,下面我们就展开来说。
一、软件测试工程师软实力
至于软实力,除了老生常谈的,需要有良好的沟通力、表达力、主动性、耐心、细心、善于思考、善于总结能力外,我们还需要具备如下的特质。
1、足够大的脑洞
前两年在testin带众测项目的时候,就有这么一个小胖子,他提交的bug总是那么匪夷所思,让人看了之后有一种豁然开朗、咋还可以考虑这个场景的感觉,而且一个项目15个人,人均10个bug左右,但是他每次都能提到40+的bug,你不佩服不行,这种人天生适合做软件测试。
测试工程师面试的时候,经常会遇到这么一个问题:给你一个纸杯能拿到啥就是啥,然后问你该怎么测试? 如果你仅仅说功能怎么测试相关的测试点的话,相信你的测试效果不会太好,因为这个题目就是要考察你的脑洞的,脑洞越大,就越符合面试官的预期,针对这个题目给出下面的参考答案,大家可以补充:
- 功能度:用水杯装水看漏不漏;水能不能被喝到
- 安全性:杯子有没有毒或细菌
- 可靠性:杯子从不同高度落下的损坏程度
- 可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用
- 兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等
- 易用性:杯子是否烫手、是否有防滑措施、是否方便饮用
- 用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述
- 疲劳测试:将杯子盛上水(案例一)放 24 小时检查泄漏时间和情况;盛上汽油(案例二)放 24 小时检查泄漏时间和情况等
- 压力测试:用根针并在针上面不断加重量,看压强多大时会穿透
2、与开发的沟通上可以有女孩子的嗲、也可以牛皮糖的粘
平时我们有一个更通俗的说法,那就是越不要脸越好 。作为测试工程师,和研发在业务上是对立属性的。测试工程师提交的BUG越多,意味着研发工程师工作质量越差,需要返工的工作量也越大,甚至会影响绩效,所以测试工程师有时候很容易得罪研发的,因此,如何督促开发很乐意地去修改你提交的bug很重要。
- 女孩子在这一方面就很有优势啦,稍微嗲一下,那个开发小哥哥受得了,还不乐颠颠去改bug。
- 男孩子呢,就要发挥不要脸的属性啦,天天粘着开发呗,不给改,烦死你。
不管与开发的关系怎么样,作为一个团体的共同目标是产品保质保量、按时上线的基本原则是不变的。那我们作为测试工程师,在缺陷的跟踪上就要有自己的原则,比如3级BUG以上一定要改,即使拉下脸与研发工程师闹的不愉快的也要坚定自己的原则。
说到底,又能做事(发现BUG并督促修改),又会做人(该进的不让,该退的绝对给面子,能嗲能粘,最大化消除部门间矛盾)的测试工程师,是十分难得的。
3、要继承偷懒的优良传统
这里说的偷懒,可不是说大家上班可以玩手机啊,而是要继承工作怎么简单怎么做的优良传统。
比如自动化测试的演变史其实就是测试人员与繁琐测试工作的长期斗争史,是许多代测试人员智慧的结晶,说人话就是"偷懒",出于"偷懒"的想法,把一些重复性、简单、没有技术含量的手工测试工作交给代码完成。
Jason Huggins在2004年发起了Selenium项目,当时身处ThoughtWorks的他,为了不想让自己的时间浪费在无聊的重复性工作中而编写的JavaScript类库,这就是Selenium最早版本。
同时,我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看 ,或者直接关注VX公众号:互联网杂货铺,免费领取
软件测试视频教程观看处:
华测教育软件测试进阶全套视频教程(2023全网最新版,软件测试进阶自学必备)
二、测试工程师硬实力
至于硬实力,可以分两大块,一个是技术上的硬实力,另一个就是有一个大专以上的学历文凭,两个缺一不可 ,不然在这个现实的行业中,会处处碰壁**。**至于文凭,大家有意识地去提高就好,下面我们重点来说技术硬实力要求。
1、测试基础及环境搭建能力
基础能力这块,基本上计算机专业毕业就没有太大问题,是软件从业者的基本能力。
- 软件测试的定义、生命周期、工作流程、需求分析
- 测试用例的设计、编写、评审
- bug的基本知识以及禅道的使用
- 测试计划、测试报告的编写
- Linux系统常见指令,及LAMP环境搭建
- 前段技术基础如H5、js、css、vue.js等
- 数据库常见增删改查操作
- 行业知识如金融、电信、互联网等
- ...............
2、测试常见工具使用
涵盖了功能测试、接口测试、性能测试、web端及app端常见的工具,再补充几个常见的。
- 常见网络抓包工具:fiddler、charles
- 常见的自动化测试工具:selenium、RF
- 常见的接口测试工具:postman、Jmeter、SoapUI
- 常见的缺陷管理工具:禅道、Jira、bugfree等
- .......
3、自动化测试能力
从事自动化测试的话,首先要从语言开始,至少要熟练使用一到两门的脚本语言,不然Java、Python,VB、Javascript等,现在使用python语言随着大数据、人工智能的崛起,也越来越火。
选择一门脚本语言,建议先从Python入手,可以形成下面的Python技术栈。
- 基本的语言知识,语法、函数、模块、输入与输出、面向对象编程
- 脚本编写、标准库、第三方库,外部数据处理
- unittest、pytest测试框架、参数化、数据驱动
熟练掌握自动化测试流程
web端的自动化测试,建议Python+selenium+unittest
- selenium安装、元素定位、脚本开发
- unitest框架的使用
- PageObject设计模式使用
- ddt数据驱动测试
- kdt关键字驱动测试
移动端APP自动化测试,建议Python+Appium+unittest
- appium使用、元素定位、脚本开发
- APP控件定位、交互,参数化用例
- 测试框架封装改造
- ios自动化测试
接口自动化测试,建议Python+requests+unittest
- 接口自动化测试框架request
- 接口请求构造、断言(json/xml请求、响应断言)
- 接口报文抓包(浏览器、fiddler、charles等)
- 代理技术与mock挡板技术
- hesdcookie处理、认证体系
4、再拔高一点
通过几年的项目锻炼,熟练掌握前面的技术要求之后,作为测试工程师,基本上能够拿到30W年薪啦,再掌握后面的技术及行业知识,可以转测试开发或者行业专家、顾问,年薪60W也不是梦想。
性能测试
- Loadrunner、jmeter测试工具使用
- 性能测试脚本的开发、优化
- 性能测试场景设计
- 性能测试结果分析
- 性能测试调优
持续集成/持续开发/docker
- jenkins持续集成
- Jenkins持续交付
- docker容器、docker镜像
- docker下测试环境搭建
Java或者Python栈测试开发
- java+maven+SpringMVC 的技术栈
- Python+django
行业知识深耕,掌握行业特点
- 互联网行业系统软件特点
- 金融行业系统软件特点
- 电信行业系统软件特点
三、总结
关于软件测试应该具备的能力,此处仅仅是抛砖引玉、个人的一些见解,大家如果有补充,欢迎在评论区互动。
如果掌握前面提到的技术要求,包括软技能及硬技能,并在项目中充分融汇关统,在测试行业内就基本达到了中上层人群,30W年薪基本上是起点,年薪60W也绝对不是梦想,前路漫漫,拼搏吧,骚年们。
PS:这里分享一套软件测试的自学教程合集。 对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。 如需要软件测试学习资料,关注公众号(互联网杂货铺),后台回复1,整理不易,给个关注点个赞吧,谢谢各位大佬!
☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)
这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。