> 文章列表 > 自动化测试工程师需要具备什么技能?

自动化测试工程师需要具备什么技能?

自动化测试工程师需要具备什么技能?

如果是初入门的学习者,不建议拿一本书从头学,很可能会被里边一些专业术语和不常用的技术带偏,不论在公司还是在其他岗位上自学测试,都可以用自己搭建好的项目来练手(如果在公司有现成的项目更好),从一开始就学习搭建环境,测试框架,选择小型项目,然后在探索的过程中遇到问题后再逐一攻破,需要用到什么就去学什么,实用够用就好。这种学习方法的成长速度是最快的。

以下简单从测试流程的角度来说明UI自动化测试工程师需要掌握的一些技能

硬技能方面:

理解测试需求:分析测试需求是所有测试中需要具备的最基本的技能,自动化测试工程师需要通过与BA和产品经理的沟通,理解产品的具体需求,确定测试范围和测试方案,必须确保UI自动化测试的有效性。

编写测试计划:UI自动化测试的测试计划需要考虑测试的时间、质量、范围、资源等因素,并且需要根据产品的具体情况和测试需求制定相应的计划。如果是初次应用自动化测试的项目,需要与项目经理及研发负责人共同评定测试框架的选型及编程语言,特别是前端使用框架,对UI自动化测试的元素定位会有很大影响。

编写测试用例:为了测试UI界面的各种功能和交互,需要编写相应的测试用例,并应该采用易于理解、可重复性高、易于维护的测试用例。对于公司里有多个项目的,可以尝试设计好通用的测试用例库,以便复用于不同平台的项目中。

自动化测试框架:UI自动化测试需要使用相应的自动化测试框架和工具。例如,Tomcat+SVN+Ant+Selenium+Java+TestNg+Jenkins,同时Applitools也是一个优秀的UI自动化测试平台,Testng和JUnit是常用的测试框架。可以根据项目的不同需要来选择最适合的测试框架。

(以下图为我们团队正在使用的测试框架,仅供参考)

使用的工具:UI自动化测试涉及到很多工具,如代码编辑器、IDE、UI自动化测试工具、持续集成工具、代码版本控制工具等。如:Eclipse,IntelliJ IDEA, Visual Studio Code等是常用的代码编辑器,Jenkins是常用的CI/CD工具,Git是代码版本控制工具,也推荐SVN作为版本控制工具,IDE的话看个人喜好。

编程语言:自动化测试需要用到编程语言。Selenium支持多种编程语言,如Java、Python、Ruby、C#等,而Appium也支持多种语言,包括Java、Python、Ruby、C#、JavaScript等。如果是测试负责人带领整个测试团队作为转型的实战项目的话,建议前期调查下组内成员的现有编程知识体系,选择一种最适合且高效的语言更好 。这里非常推荐一本书叫自动化测试转型之路 是京东测试团队出的,里边有很多测试实践值得测试管理者来运用。

数据库相关知识:自动化测试涉及到测试数据的生成、处理和验证,因此需要掌握相关的数据库知识,如SQL和NoSQL的操作,了解数据存储和检索的方式,这样可以检索测试数据以验证测试结果。

操作系统相关知识:了解常见的操作系统,如Windows、MacOS和Linux,以及操作系统的命令和操作方法,有利于测试在不同操作系统环境下的运行。这些尤其重要,对于需要部署多平台、多浏览器的项目,UI自动化测试用例更适合兼容性测试复用。所以了解操作平台的一些基本知识非常必要。

执行测试用例:自动化测试需要在测试环境中执行测试用例,发现缺陷并生成测试报告。测试用例需要实时执行,生成日志,并且可以帮助测试工程师及时识别问题。检查点的设置需要测试人员具备丰富的业务经验知识。

如何生成自动化测试报告:自动化测试工具可以生成各种类型的测试报告,包括HTML、XML等,并将测试结果与预期比较,从而确保测试结果可靠性。当我们的自动化测试进行到这一步时,意味着马上就要胜利了,但有些测试结果是会同步到公司内部工作群邮箱的,这就需要出一份人人都可以看得懂的测试报告了。关于自动生成测试报告部分可以利用一些插件来实现就可以。

此外,自动化测试工程师还需要关注系统设计如软件结构、接口设计 、数据结构等,以及API文档、系统基础配置等。

软技能方面:

系统思维能力无论是出软件测试方案,还是用例设计,测试建模,场景化分析等都需要具备一定的系统思维,环环相扣,把遗漏风险降到最低。也是个人提升的必备

项目管理能力测试人员最终的目标是评估质量风险与风险控制,但质量并非是靠测试测出来的,而是在产品未孵化前的规划就开始了,所以了解整个项目管理流程才可以实现对各个阶段的质量把控。

沟通表达能力以上案例中已提到过,无论是日常工作与其他跨部门团队的沟通还是晋升的竞聘环节,以及面试过程中对自我的展示,都需要良好的沟通表达,再优秀的技术也需要靠表达去实现继承和运用。

领导管理技能测试人员的发展方向除了专家路线就是管理方向,当然技术管理还是要以技术为本的,所以领导力会显得尤其重要,但无论专家还是管理路线,拥有一定经验后需要做出决策以及测试策略如何让别人信服就需要一定的领导力了,而领导力是可以有意培养的,如尊重法则,导航法则,影响力法则等,如何提出意见让其他团队乐意接受也是一门学问。

观察能力一般,做过技术人员面试官的都会有些微表情,或面试心理学的知识储备,如何快速识别需要靠长期的细节观察能力来判断候选人。知己知彼百战百胜,不仅仅是面试官还有一些测试人员转为业务专家或顾问后会更有学习的必要。

导师能力有一定经验的测试人员即使没做到管理层,也会被委任做某个方向的导师或培训人员,这时如何从自己学习到传播给他人知识会有个转变,也是工作的一部分,为测试组知识库与技术储备贡献力量。工作一定时间后,就需要有意识的培养这方面的能力了。

总结:

UI自动化测试工程师需要具备多种硬技能和软技能,包括理解测试需求、编写测试计划和测试用例、使用自动化测试框架和工具、掌握编程语言和数据库相关知识、理解操作系统、执行测试用例,以及如何生成自动化测试报告等方面。同时,在团队合作、沟通技能、分析和解决问题的能力、自我驱动力、适应变化和注重细节等软技能方面也需要不断提升,来确保UI自动化测试工程师的高效性及自我驱动。

软件测试入门推荐:软件测试学习路线图2023版-黑马程序员软件测试进阶路线