软件测试工程师生存指南建议收藏
Posted 程序员小濠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件测试工程师生存指南建议收藏相关的知识,希望对你有一定的参考价值。
如何在测试行业脱颖而出,这些东西你一定要掌握!
良好的工业级代码
良好的工业级代码具备以下特性:
可读性。代码只需写一次,却需要阅读和维护远不止一次。在写完代码之后若干年,对于其他开发者而言,代码意图依旧必须清晰明了。
防御性,也就是防御性编程最佳实践。防御性编程是个独立话题,但是其要义在于,你要确保未正确使用的类和方法不会导致软件崩溃。
最优化。这是清单中排在最后的,所以不用过于担心这个。这并不是说,存在线性解的情况下,还可以写出复杂度是 O(n³) 的破烂代码。但是,工程师通常急于试验并且在根本不必要的情况下过度优化,结果往往损害了代码的可读性和防御性。你需要随时可以证明,损害这二者而做的那些优化真的是值得的。
既然你已经知道了什么是良好的工业级代码:
你没有多少时间写代码!
这可能会令你大吃一惊,不过大部分时间你都不是在写新的代码,而是在
-
debug
-
阅读已有代码
-
开会或者写邮件
-
看看做些什么才能够不写代码
所以写代码以外的技能对于你的职业生涯相当重要。
测试代码、研读代码
-
用 print 语句 debug 是最省时间的方式。所有广泛使用的编程语言和技术栈都包含大量的有力工具,学会使用他们,debug 将变得小菜一碟并为你节省大量时间。
-
理解代码库。大多数技术栈都有代码图表序列工具,可以帮助你理解代码库结构。企业级 IDE 一般都有内置功能。你可以借用外部工具,诸如 ReSharper , grep 或者 Sourcegraph 。
-
理解产品。如果你知道在“修复”系统前,多少开发者并不清楚软件如何运行,你绝对会大吃一惊的。多读文档就是了。
理清自身思路
因为你要在在交流、研究和多任务处理上花费很多时间,所以你需要一些工具,帮你让一切保持井井有条。
-
TODO 清单 / 任务:你所在的公司应该已经有某种任务管理软件了,这却不妨碍你拥有自己的个性化配置。可以使用便利贴或者 Trello 或 Todolist 这样的软件。
-
笔记:会议一定记笔记,坚持改善已有文档并提升自我知识基线。就像过去一样,使用 Evernote、OneNote 或者笔记本。这看起来有些落伍,不过当你在一年后花了三天时间才找到当时的潦草记录的时候,你会感谢当年记笔记的你。我认识的优秀的软件工程师,没有一个不是做了详实笔记的。
-
图表 / 可视化工具:人类是视觉化的动物,创建流程和结构图表有助于帮助你和他人理解复杂的话题。在与非技术背景的同事交流时,表格是极其有用的。推荐使用 Lucidchar、Visio 或者白板。
知道何时使用其他库
一言以蔽之:一直用。
详细说明:99% 的时间,你都不应该重复造轮子。在大多数软件工程岗位中,重新撰写某一种排序算法都是彻头彻尾的浪费时间。这并不是说,你不必知道所用的算法和数据结构如何运行。知晓这些内容,将有助于你决定何时采用什么。
作为一位高效的软件工程师,你需要理解你手头当下可以用的库。大多数流行编程语言的标准库都是特别有用并且远超你想象的。此外,代码库还可以使用其他专门的库。你需要熟读其文档,并知道何时使用。
如果使用额外的库可以节省时间,你也不必为此战战兢兢。但是,您需要确保选择工业级别的优秀的库。一个优秀的库应当具备以下特点:
-
开源,这样你才能检查代码质量并修复对你的应用致命的潜在 bug 。
-
使用相对宽松的许可证,如 MIT 和 BSD,这样你的公司不会因此担上任何官司。要小心 GPL 许可,除非你想不小心开源你的全部代码。
-
成熟,也就是已经面世一段时间并具备丰富的功能。
-
持续维护,常有新功能问世。
-
其他公司或项目在用,这可以作为例证,并确保其具备工业应用的持续更新。
持续改善
你需要学习那些是你的日常工作更加出色的技能,此外,你也需要持续提升你的技能并学习新的技能,这样才能为你自己不断创造新的职业机会。
学习机会多如牛毛,其中很多都是触手可及的:
-
在线课程:你不应该错过向你所在领域的最顶尖教授学习的机会, 而且形式很灵活。在 Coursera 、 Udacity 和 edXps://www.edx.org/ 等网站上,你可以找到很多补充你现有技能的课程。
-
在线硕士学位:在世界顶尖大学中,在线硕士学位是继续接受正规教育的一种灵活方式。和在校课程相比,在线硕士学位通常也不太贵,大部分课程的学费都在 1 万美元左右。Georgia Tech 、 UT 以及 UC San Diego 都提供此类学位。我个人推荐佐治亚理工学院在线硕士( Georgia Tech’s Online Master’s),我今年刚刚从这里毕业。
-
博客:博客是开发者社区一个重要组成部分(这个不足为奇,因为你现在正在阅读的就是我的博客)。诸如 Coding Horror 、 Joel on Software 甚至更加幽默的网站比如 The Daily WTF 都可以提供作为一位软件工程师哪些该做和哪些不该做的建议。浏览 Medium、r/programming、HackerNews 和其他 feed 流网站,你都会找到很多有益的文章和博客。
-
会议:最后但并非最不重要,会议是一个及其有用的学习机会,你应该充分利用公司的培训预算去参加会议。以下是高价值会议(含会议主题)推荐的不完整名单:GOTO; (General)、 Strange Loop (General)、 PyCon (Python)、 CPPCon (C++)、 DEF CON (Security)、 Fluent (Web dev)。YouTube 上有以上所有会议的(大部分)演讲的视频,所以就算你不能亲临现场,也能够学到东西的。我希望这篇文章为你提供了软件工程师职业生涯伊始需要的知识,并提供了激动人心的旅程中表现卓越所需要的工具。
软件工程测试师的薪资水平
对于刚入行的软件测试工程师来说,基本上可以拿到一个7K左右的一个薪资。这个是对于一线城市来说。
然后你在软件测试这个行业中间做了一到两年的话基本上可以达到8-10K,一个中级软件测试工程师的层级。
再往上面走,就是我们的自动化/性能测试工程师。3-5年左右的工作经验可以达到15-25K这样子的一个范围。
如果有5-8年软件测试相关技术经验,那就是25K往上走了,如果能达到测试总监,就是30K以上。
其实在我们软件测试行业中间,更关注的是你的技能(技术)你的技术越高,你对应的一个薪资报酬也会越多。技术这条路,说实话很枯燥,很辛苦,但是待遇也会高于其他一些基础岗位。比如说,你拿其他职业比较,对于很多职位你刚进公司,一般在3K左右,做了1-2年,就能拿到一个5K。作为软件测试初级工程师就能拿到一个中级甚至高级的一个薪资水平了。
如果说,我们要拿到前面说的高薪。我们对应的要掌握哪一些技术呢?这个才是关键!
对于初级软件测试工程师来说:
1.测试理论
2.接口测试
3.App测试
4.Linux
5.mysql数据库
上面五个知识技能点,玩转了就可以达到初级软件测试工程师,或者叫做功能测试工程师的层级。
细分一下:
软件测试岗位技能要求:
初级我们必须要具备的一些点:
基础能力:
1.计算机技术
2.操作系统
3.网络基础
4.测试理论基础
基本上你能掌握上面的这些内容,我们就能达到一个7K左右的薪资(初级软件测试工程师)其他的一些技术能力的加成,也会有对应薪资的一个加高。
比如有Linux操作系统运用、包括数据库的一些理论知识,就会在你的基础薪资上加1-2K左右。
这是因为我们在软件测试工作中间,有一些环境是搭建在Linux操作系统下的。我们也经常会要用到数据库,来进行软件测试工作的一个辅助。
如果你对数据库比较熟悉,或者说我的数据库用的比较好,可以自己独立的去解决软件测试中的一些问题,都是加分项!
技术能力:
1.Linux系统
2.数据库
3.接口测试
4.自动化测试
5.性能测试
6.常用工具
想要达到中级软件测试工程师,8-10K左右的薪资。我们就要拥有接口相关的一个测试,以及自动化测试。接口测试第一个我们要知道怎么样去做接口测试,也还要知道怎么去使用一些接口测试的工具,自动化从某种角度来说也是工具。
如果在自动化测试方面你会使用工具, 你会写脚本,你还会自己去使用框架或者说自己写框架,那你就可以达到10-15K左右。
因为这个框架的话,我们可以分为使用已经写好的开源框架,第二种的话是去定制属于你公司特有的一些定制框架,就是我自己去写框架来辅助我们整个软件测试团队开展测试工作。
那么在这里我们至少就可以达到15-20K左右。
那么性能测试的话,我们也可以去为我们的技能去进行加分。那么性能的话我们想要去掌握的有工具,场景,包括我们对性能测试结果的分析、问题的寻找。
至于说最后的这个调优,你能够达到调优级别的话,你的薪资绝对在25K以上,这是毋庸置疑的。
最后,为方便大家自学软件测试,特意给大家准备了一份13G的超实用干货学习资源,涉及的内容非常全面。
包括软件学习路线图,50多天的上课视频、16个突击实战项目,80余个软件测试用软件,37份测试文档,70个软件测试相关问题,40篇测试经验级文章,上千份测试真题分享,还有2021软件测试面试宝典,还有软件测试求职的各类精选简历,希望对大家有所帮助…..
关注我的微信公众号:【程序员小濠】就可以免费获取了~
我的软件测试交流群:175317069欢迎大家一起讨论交流,里面也有各种软件测试资料和技术交流
如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。
以上是关于软件测试工程师生存指南建议收藏的主要内容,如果未能解决你的问题,请参考以下文章