首先介绍一下我自己,从事软件测试行业到现在是10年时间,毕业之后一直从事的软件测试行业。很幸运在毕业时赶上互联网这波浪潮,然后就一直在互联网公司工作,虽然那时候的软件测试技术发展还相对比较混乱,但自己因为公司业务发展的原因,硬件测试、功能测试,性能测试、自动化测试什么的也都做过。
因为我接触软件测试的时间算是相对比较早,那时候也没有相对比较全面、深入的培训体系或者说学习途径,只有通过一些前辈的指导,以及自我的学习加总结来进行自我提升。这种提升的方式,无疑是很缓慢且痛苦的,所以到现在,我把这些内容进行了一定的总结,希望能够帮到所有想要提升的人。
测试能力包含硬实力和软实力
先聊聊硬实力,硬实力的话就是技术、思维、业务能力。先说第一点,技术。不管怎么说,软件测试都是一个技术岗位,想要在这个行业有长久的发展,或者说想要有更加丰厚的收入,一定需要有较好的符合行业或者市场的专业技能,像是Python自动化、性能测试、测试工具这些。
总结了一些比较关键的能力
第一个:在手工测试阶段下,要学会抓住重点,不要把宝贵的测试时间浪费在纠结细枝末节上,这功夫不如多回归几遍核心的主流程,第二点要学会处理系统框架和业务流程,BUG不仅仅出现在你所负责的测试的模块上,也有可能存在于依赖的模块。然后,越早介入测试越早发现问题,从而对系统质量的保障就能够越到位。
第二个:一定要掌握一些主要的测试工具,比如说接口自动化测试所常用的Jmeter、Postman,UI自动化常用的robotframework、airtest,app自动化常用的appium这些。对于你工作的开展会更加顺利一些。要记住,这些工具的应用一定要落到实际工作,而不是单纯简单的学习。只有落地到工作,你才能够越用越熟练,为你的工作产出更多的价值
第三个:一定要掌握Python编程语言。目前测试行业应用最为广泛的编程语言就是Python。而对于自动化技术,一定要掌握到编程自动化,这个能力对于测试人员未来的发展是非常关键的。现在行业内的高薪职位,基本90%以上都是需要有Python自动化测试技能相关的,所以说如果想要让自己尽快突破薪资瓶颈,这个技能太关键了,但需要额外说一句,这些能力也是一定要落地到工作的,只有不断地在工作中积累和优化,你才能够更好地往前发展。
测试硬实力
再说思维,就像开发一直在说开发思维一样,测试也需要有测试思维,想要把测试做好,这也是一个很关键的硬实力。首先来说,对于工作上的内容,我们需要多维度思考如何更好地把控软件的质量,像是用户体验、用户实际使用场景、业务的实际应用、用户使用习惯等等等等,因为系统不单纯只是功能缺陷,还有很多是非功能的缺陷,而这些需要我们多维度思考才能够更好去保障质量,再者,之前说过软件测试是技术行业,而我们所应用的技术一直在更新,所以需要具备有足够好的学习能力,能在最短的时间上手新的技术,从而能够体现出你的价值。至于说业务能力,没什么好说的,无非就是安心熟悉罢了。
测试软实力
接着再来说软实力,这就包含沟通能力、责任心、职业素养、情商等内容,如果说硬实力是你在这个行业的立足根本,那么软实力就是你升职加薪的必备条件。
首先是沟通能力,因为工作性质的原因,我们是需要不停与其他同事进行对接的,在这个过程中,沟通能力就尤为重要了。经常说开发与测试水火不容,是天敌,其实也只不过是沟通不到位罢了。我给大家说两个小技巧:
第一是带有目的性沟通,每次的交流是有目的性地,要围绕这个目的进行交流,在达成一致后,记得形成结论并记录下来。
第二是注意方式,我们的沟通是为了解决问题,而不是为了制造问题,所以注意自己沟通时的情绪、语气、措辞。再结合第一条带有目的性沟通。我们才能够更加效率地处理问题。
再者,是责任心,都说做测试一定要有责任心,但实际上只要是一个人就应该要有责任心,要能够承担起自己的职责,对于自己的工作应该要做到尽职尽责。让自己变成可靠的人,那么你在工作中,在职场中,自然也就能够遇到更多的机会。
然后就是职业素养,我们经常会见到企业招聘都是需要有工作经验的人,很多应届毕业生也经常在吐槽,才毕业怎么会有经验,没有经验找不到工作,陷入一个奇怪的死循环里了。其实企业之所以强调工作经验,其实就是看重职业素养。良好的职业素养能够更快融入公司环境,尽早开展工作,减少企业的前期培养成本。毕竟拥有良好职业素养的人,相比较愣头青更加便于管理。
最后再来说说情商,总结下来就是少说话,多做事。作为一个底层员工,应该是把你上级交付给你的任务踏踏实实地完成,而不是一味地抱怨,说得越多,越容易犯错。我们经常会见到职场老人之间交流着公司的问题,领导的问题,这是人之常情,但是如果你在这样的场景下学会装傻,学会闭嘴,安心做好你自己该做的事情,就足够了。毕竟公司是工作的地方,不是茶馆。心里有再多想法,先把事情做好,自然会有机会让你去适度表达。不要为了能够快速融入团队而侃侃而谈,这是没必要的。
以上就是我对于软件测试给到大家的一些建议,希望大家能够有所收获。同时,我也把自己整理的软件测试资料分享给各位,包含了基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等,希望能够对你们起到一些作用,帮助到个位!!!【点击文末小卡片免费领取】
一、软件测试基础
软件测试的步骤是什么?
如何录制测试脚本?
应该考虑进行如何测试的测试方法
怎样估计测试工作量?
当测试过程发生错误时,有哪几种解决办法?
如何提高测试?
C/S模式的优点和缺点
B/S模式的优点和缺点
…...
二、Linux
grep和find的区别? grep 都有哪些用法?
查看IP地址?
创建和删除一个多级目录?
在当前用户家目录中查找haha.txt文件?
如何查询出tomcat的进程并杀掉这个进程,写出linux命令?
动态查看日志文件?
查看系統硬盘空间的命令?
查看当前机器listen 的所有端口?
…...
三、Python
统计python源代码文件中代码行数,去除注释,空行,进行输出?
python调用cmd并返回结果?
1,2,3,4 这4个数字,能组成多少个互不相同的且无重复的三位数,都是多少?
请用 python 打印出 10000 以内的对称数(对称数特点:数字左右对称,如:1,2,11,121,1221 等)
给定一个整数 N,和一个 0-9 的数 K,要求返回 0-N 中数字 K 出现的次数
判断 101-200 之间有多少个素数,并输出所有的素数
一个输入三角形的函数,输入后输出是否能组成三角形,三角形类型,请用等价类- 划分法设计测试用例
…...
四、数据库
你用的Mysql是哪个引擎,各引擎之间有什么区别?
如何对查询命令进行优化?
数据库的优化?
Mysql数据库的操作?
优化数据库?提高数据库的性能?
什么是数据的完整性?
…...
五、抓包与网络协议
抓包工具怎么用?
如何抓取https的包?如何抓取手机的包?
请求方式有哪些?
get跟post请求的区别?http跟https的区别?
......
六、接口测试
什么是接口
如果模块请求http改为了https,测试方案应该如何制定,修改?
常用HTTP 协议调试代理I具有什么?详细说明抓取HTTPS协议的设置过程?
描述TCP/IP协议的层次结构,以及每一-层中重要协议
接口产生的垃圾数据如何清理?
依赖第三方的接口如何处理?
测试的数据你放在哪?
什么是数据驱动,如何参数化?
…...
七、接口自动化
为什么做接口自动化?
你写了多少接口自动化用例?
比如说你接口的请求参数需要加密处理的,你们用的是什么加密方式,你加密怎么处理的?
你查询出来返回结果是密文,密文你怎么测试?
......
八、UI自动化与app测试
ui 自动化怎么测试?
自动化测试环境的搭建是怎样的?
seleniun 库中用过哪些函数?
定位元素的8个方法是什么?
css 定位的方法?
adb 的作用是?
App 稳定怎么做的? Monkey怎么用p (App 稳定测试 )?
App 弱网测试怎么做的?
......
九、Pytest框架与Unittest框架
Unittest 框架有哪些组件?
Unittet st 框架如何使用?
pytest 框架如何去生成测试报告?
bytes 如何去运行多个文件或者整个目录?
pytest 框架如何去运行上次失败的测试用例?
pytest 运行用例,用例命名规则有哪些?
......
十、性能测试
你认为性能测试的目的是什么?做好性能测试的工作的关键是什么?
服务端性能分析都从哪些角度来进行?
如何理解压力测试,负裁测试以及性能测试?
如何判断是否有内存泄漏及关注的指标?
描述软件产“生内存泄露的原因以及检查方式。(可以结合- 种开发语言进行描述)
简述什么是值传递,什么是地址传递,两者区别是什么?
什么是系统瓶颈?
…...
十一、人力资源
你的测试职业发展是什么?你自认为做测试的优势在哪里?
为什么我们应该录取你?
请谈谈你个人的最大特色。
一个测试工程师应具备那些素质和技能?
为什么选择测试这行?
如果我雇用你,你能给部门带来什么贡献?
…...
整份文档一共有将近 200 页,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!