做测试这5年你处于什么阶段了?想给软件测试人员进行一次技术栈的梳理

发布时间:2024-05-17 02:29:37 来源:ub8登录1.0 作者:ub8登录1.0 ub8登录1.0

  测试人需要具备哪一些基本技能或者素质。这样的一个问题在几年前常见于软件测试工程师笔试题上。对这样的一个问题,我觉得应该有新的解读。今天聊一下软件测试工程师的职业道路和必要知识:

  我在测试的道路上走了不少弯路。刚开始接触这个岗位,没有方向。我是一个信息学院毕业的科班生,实习的时候是做python开发,但是总觉得找不到工作的乐趣,写业务代码是多么的无聊。这时候有一个叫测试工程师的岗位,这是刚好实习期也结束,该回学校准备论文答辩了,就在自学了些软件测试的基础知识,我刚出去是从功能测试开始做,工作2年后学习了自动化测试技术,如今已经在测试开发领域立足。

  不得不说会python在测试道路上用处很大,所以python也变成了高级测试的必要知识。并还有Java、linux的操作、服务器、测试框架的了解等。

  希望我的分享,能够在一定程度上帮助你在新的技术趋势时,站在更高的高度,更好地把握测试工作的内涵和外延。

  这里说的测试工程师,是主攻软件的“测试”领域。也就是专业对接和负责软件的BUG查找、测试业务的执行、测试用例设计、测试计划的编写、测试报告生成等等。

  ② 熟练掌握几种常见的去缺陷管理工具(禅道、SVN、Testhub、Jira等),熟悉缺陷的定义标准和系统化的测试计划编写等;

  ④ 掌握接口自动化测试的Postman、Jmeter工具的使用,同时深度了解HTTP/HTTPS协议的原理和作用。

  这个阶段的测试员,一般是刚学习软测到可以就业的程度。大部分都是掌握了软件测试理论概念、常见的测试流程和测试类型;熟练测试用例的设计和编写;对软件的生命周期、工作流程有大致的了解。知道怎么分析软件的客户的真实需求点;掌握一些常见的缺陷定义和缺陷报告的生成。有一些实战项目经验的可能对禅道、SVN、git等测试相关的工具有一定的了解和使用经验。

  再稍微优秀一些的自动化测试工程师,还掌握了Linux、Sql数据库、前端HTML等基本的计算机技能。并且了解接口测试的概念和WEB+selenium的测试环境搭建和初步测试,app移动端测试同样也要掌握一些。

  对于现在大多数的网络公司而言,中级自动化测试工程需要是他们非常渴求的人才。这类人才大多都掌握了一门或者多门编程开发语言(Python、Java、C++等)。中级测试工程师能支撑起整个企业测试部门的完整测试体系搭建,包括针对企业产品研发的自动化测试脚本,对于软件的性能、压测、UI、接口、前后端业务等等做全方位测试设计和管理。

  ① 至少掌握一门编程语言,Python、Java、C++都可以。没有编程基础的我们提议选择Python,因为Python入门难度和学习周期相对其他开发语言更容易一些,对新手比较友好,而且Python在测试领域的应用极为广泛;

  ③ 熟练掌握app移动自动化测试的完整流程和测试方法,尤其要熟练掌握Monkey的使用;

  ⑥ 深度掌握性能测试中Jmeter和Loadrunner的拓展用法,能独立完成app/WEB的性能测试。

  这个阶段的测试员,一般是刚学习软测到可以就业的程度。大部分都是掌握了软件测试理论概念、常见的测试流程和测试类型;熟练测试用例的设计和编写;对软件的生命周期、工作流程有大致的了解。知道怎么分析软件的客户的真实需求点;掌握一些常见的缺陷定义和缺陷报告的生成。有一些实战项目经验的可能对禅道、SVN、git等测试相关的工具有一定的了解和使用经验。

  再稍微优秀一些的自动化测试工程师,还掌握了Linux、Sql数据库、前端HTML等基本的计算机技能。并且了解接口测试的概念和WEB+selenium的测试环境搭建和初步测试,app移动端测试同样也要掌握一些。

  高级测试开发工程师基本上可以称得上整个企业产品+测试部门的一把手。这类岗位一般都是以管理者居多。本身负责团队的运作、软件整体的测试流程把控、白盒测试的体系搭建,企业大型自动化测试平台的开发和管理,以及整个测试体系的质量管理和监控。

  ① 对软件测试的整体流程和细节做到烂熟于心的地步,这类经验一定是经过无数的测试实战方能生成的;

  ② 熟练各类型的软件测试(app、小程序、前后端、WEB、sever等等)方法和扎实的经验,并且对各类型市面上的测试工具运用自如;

  ③ 对CD/CI有比较熟练的实战经验,能熟练的使用DevOps,具有完善的测试架构能力;

  ④ 有熟练的编程开发能力,深谙软件的底层代码逻辑和结构,能够独立开发、管理和完善自动化测试框架;

  测试工程师因其工作的特殊性,要掌握产品的客户的真实需求、设计需求和产品的底层结构等各方面,测试人员会从用户的方面出发,去看待软件产品各方面有几率存在的不利体验和准确诉求。

  所以经验比较足的测试人员,对产品的各个维度都能做整体化的把控。比如分析产品的客户的真实需求和体验,以用户的角度来把握产品的定位和功能的迭代等等。可以说从测试转为产品经理的人,一定是一名非常有全局性、前瞻性的优秀产品经理或者测试经理。

  第一阶段主要掌握软件测试的基础知识,比如:软件测试概念、软件测试分类、测试流程、测试评审、测试用例和测试计划等等。这一块儿的基础概念知识,是后期学习自动化测试的基石。掌握好了软测基础,后面的学习将会顺利很多;

  第二阶段主要掌握计算机基础一类的知识。比如:计算机概念、Linux系统的学习、MySql数据库的学习、HTTP/HTTPS(TCP/IP)协议、前端方面的知识(重点:web+selenium 自动化和 app+appium 一块儿要使用到)。这几个点虽然前期感觉和自动化没什么关系,但是到了后期运用到接口、性能、Web、app自动化的时候会涉及到这类计算机基础知识;

  第三阶段就是各类型测试的实战教学。软件测试工程师能否拿高薪,就取决于你掌握了多少测试类型的技术。目前主流的接口自动化、app自动化、WebUI自动化和性能测试,都是市面上较为抢手的高薪就业技术点。学习过程中,一定要注意融会贯通,以及多做实战项目,这样在就业上岗的时候,我们才可以从容的应对工作。

  编程语言对于软件测试的重要性我就不多说了。想必了解一点自动化软件测试,或者大致看过华测课堂的软件测试课程视频的同学都知道。我们在后期学习的接口自动化、app自动化、Web自动化等等都是围绕着自动化来的。而自动化又是基于编程开发出来的自动化运行脚本和框架。个人会使用自动化技术测试项目时,就必须要懂得如何写出可以调试界面的脚本。

  当然前期可能不要求我们自己去写脚本,市面上有很多现成的自动化测试脚本和框架。但我们也必须知道如何用,如果你不学编程语言,那么你的测试技术就定然有上线。当你掌握一门甚至多门编程语言,再来从事测试的话,你的优势将变得无限大。

  编程语言这块儿,华测教育的老师建议我们大家可以这样选择:Python Java。 没有编程基础的都能这样选择,优先学 Python,其次学 Java 。因为 Python入门相对简单一些,而且 Python在各大企业中的自动化测试中应用更广泛,可以说几乎百分之90的企业选择的自动化测试语言都是 Python。

  接口自动化:需要熟悉Python语言,然后在Python语言的基础上学习Python的联网库Requests,需要封装成测试脚本。这时候需要Pytest单元测试库或者使用Unittst+HtmltestRunner来控制脚本生成测试报告,如果有需要持续集成可以再学习Jenkins

  web自动化:同样要掌握Python语言,然后学习Python控制浏览器的库Selenium,和浏览器相对于的Webdriver

  app自动化:需要熟悉掌握Python语言,然后再Python语言的基础上,学习Python控制手机app的库appium,手机相关的知识比如Adb,Activity,需要封装成测试脚本

  上面几点都是主流的测试方案,也是初级测试工程师必须掌握的几个重要学习知识点。还有更多的内容能够准确的通过自身的工作规划方向和目标,进行纵深拓展。

  任何技能的学习都是建立在实践上面的,IT行业就特别强调项目经验。不练习,就像是花了半天时间去学习开枪的理论,结果就没有机会摸枪,你觉得你打得准吗?想要学好软件测试,对技术有更深的理解,就一定要多去实操,没有熟练度的加成,你学的再多也只是纸上谈兵,一旦面对了真正的问题,你就会无从下手。

  软件测试行业比较特殊,市面上有非常多很不错的测试工具。很多初进入软件测试行业的新手,往往会习惯于依赖于现成的测试工具,个人感觉有这些工具应付工作就足够了。但这其实是一种很危险的“惰性思维”。

  软件测试行业中其实还有非常多优秀的开源工具,而很多大型互联网公司都比较倾向基于这类开源工具进行二次开发的自动化测试平台。测试工程师也一定要多尝试着去使用这类开源工具,一来可以拓展自己的思维和眼界,二来可以尽早熟悉自动化测试框架的底层逻辑和开发实战。这一点可以在将来面试的时候,为自己的简历打上一道相当的好的色彩。

  以上就是软件测试人员必备的技术栈了,难点自然是测试平台开发,因为这个职位本质就是开发!有兴趣的同学可根据文章的知识点,自行充电,慢慢提升!

  技术行业,一定要提升技术功底,丰富自动化项目实战经验,这对于你未来几年职业规划,以及测试技术掌握的深度非常有帮助。

  为了帮大家迅速建立测试思维能力,早日斩获大厂Offer、掌握职场话语权,下面这份《软件测试全栈学习路线图》应该会对你很有帮助

  如果你想加入团队跟大家一起学习上面知识内容,或者想在学习过程中做一些小项目积累经验,在这里给大家伙儿一起来分享能够在一定程度上帮助大家处理问题的测试技术交流群,群里有很多在自动化,性能,接口,安全测试方面有一定建树的技术大牛,分享他们的经验,平时会有一些资深测试工程师的直播讲座:有测试基础、自动化,接口,Mysql,性能、Linux、Loadrunner、 Jmeter等这些成为测试工程师必备的知识体系,还整理了一些学习资料,免费分享给大家学习使用,在群里的每个人都收货颇丰,点击下方卡片欢迎你的加入,让社区环境更美好。

  如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能快速查找。

上一篇:怎样开发软件?不必找app开发公司免编程自己进行app 下一篇:app开发常用哪些工具?主流的软件制作平台介绍