六年前,伊热夫斯克(Izhevsk)的罗曼·佩切尔斯基(Roman Pechersky)参加了功能测试人员的课程,并开始担任质量检查工程师。 几个月后,他第一次遇到了测试自动化,并意识到他想朝这个方向发展。
现在,Roman领导着一支自动化专家团队,以及一个在伊热夫斯克EPAM中
进行自动化测试的
培训中心 。 他讲述了如何开始学习自动化,如何发展,解决了哪些问题以及使用了哪些生活工具。

我如何实现自动化
我首先遇到了自动化,当时我们项目的技术负责人建议我用检查覆盖自检,以便在进行任何更改后可以运行自检并迅速收到反馈。 到那时,我已经一年没有从事测试工作了,所以我感觉不太舒服。 尽管如此,这项任务对我来说似乎很有趣,因此我决定尝试完成它-尽管我什至不知道从哪里开始。
项目同事中有人告诉我有关Selenium IDE的信息,Selenium IDE是用于自动执行Firefox浏览器操作的工具。 我记得我是如何使用“记录并播放”方法编写的第一次自动测试的:我打开了录音,开始按下按钮,在搜索栏中输入文本,然后单击链接。 结果是一组可以运行并立即查看结果的已保存操作。
然后,我观看了
自动化培训师Mikhail Polyarush的三场演讲
:什么是测试自动化如何在硒上编写第一个测试如何在Selenium WebDriver中编写定位器熟悉Selenium IDE和这些讲座足以让我解决该项目任务,并开始迈出自动化的第一步。
我如何学习自动化
很快,我开始自己学习Java(一种用于测试自动化的最流行的语言),并尝试在Eclipse中编写简单的自测试,例如,测试应用程序的登录形式。

有一次,我的经理和我讨论了我的未来发展。 我说过我计划转向自动化,并要求为员工开设自动化测试课程。
接下来的六个月,我工作和学习-在晚上,周末,假期。 头三个月我出差去一个新项目,这使一切变得复杂。 下班后,我回到旅馆,以为如果不按时交作业,我将积accu债务,可以将其开除。 对我来说,这是巨大的压力,我什至减了几磅。
这是帮助我克服困难的原因:
•了解为什么这样做是必要的尽管这项研究很困难,有时甚至很无聊,但我清楚地意识到它将为我带来什么机会。 这就是为什么我将所有空闲时间都用于自动化的原因。 自动化,而不是在城市中走走-自动化,而不是与同事在酒吧里聚会-自动化,而不是晚间聚会-自动化。
•支持同事
有人为您加油时总是很高兴,尤其是那些已经以同样的方式来加油的人。
•竞争意识
我可能成为小组中最落后的学生的感觉也鼓励了我前进。
课程结束后,我开始从事该项目,轮换了功能测试员和自动化工程师的职责。 几个月后加入了新项目-已经担任团队负责人。 QA团队仅由两个人组成-我和一个功能测试员,我向他们介绍了自动化的基础知识。
我如何开始教授自动化
我的项目同事是我开始教授自动化的第一个人。 起初,我的知识并不总是足以回答他的问题并帮助解决设计问题。 但是当我无法向他解释某些事情时,我意识到我自己在该主题上的发展不够充分,并增强了我的知识。 我通常在
Stack Overflow上搜索答案,或者向开发人员寻求帮助。
逐渐地,我的团队发展到了10个自动化部门。 到那时,我完全摆脱了手动测试,开始从事复杂的Web应用程序的全系统自测试。 然后,他开始帮助团队创建用于测试的体系结构解决方案,并成为项目协调员。
六个月前,我和我的同事在办公室里组织了自己的培训中心进行自我测试。 他们开始接受最后课程的学生以及决定改变培训范围的人们。
最近,我本人参加了JavaScript短期课程,并连接到一个新项目。 我以前从未见过JS。 我花了大约一个月的时间才开始对使用这种新语言充满信心。

总结我的经验,我可以向正在迈出自动化第一步的初学者提供一些建议。
•从实践开始-创建自己的自动测试许多人认为,在编写自动测试之前,您首先需要了解测试的原理并学习Java或另一种编程语言。 通常,这种人的热情不会持续很长时间,因为这是一个漫长而复杂的过程。
我相信您需要从简单的事情开始。 自己创建一个简单的自动测试。 为了使其更有趣,请尝试解决一些生活任务。 例如,编写一个脚本来自动将水表读数传输到自来水公司的站点。 如今,可以用
Katalon Studio代替Selenium IDE来完成。 这些任务激发了自动化研究的兴趣。 然后将有可能继续研究自动化的理论和特性,并开始与
Selenium WebDriver一起掌握编程语言。
•优先假设您了解自己想发展为测试人员自动化工程师,并且准备好花时间学习。 如果您打算完全沉浸在培训中而又不想长时间坚持下去,则必须要么离开当前的工作,要么向老板请个长假。
您可以按照我的示例,尝试将学习与工作结合起来。 这样就节省了薪水,但是几个月来完全忘记了空闲时间的存在。
•自己开始或参加课程
对于完全不知道从哪里开始或想要组织知识的人,课程是一个不错的选择。 在线课程可以在
Otus ,
Stepik ,
GeekBrains ,
Lynda和
JavaRush中找到 。 如果我们谈论脱机培训,那么它可以由您所在城市的各种IT公司组织:例如,
EPAM培训中心在俄罗斯的六个城市运营。
通常,任何自动化课程的程序都分为三个模块:
1.自动化理论导论;
2.学习编程语言(例如Java)的基础知识;
3.编写自己的自动测试。
在我看来,这是研究测试自动化的通用算法。 如果您具有技术背景并且决定独立了解自动化的基础知识,则也可以以此为基础。
这是开始从事真实项目所必须掌握的最少知识:
•了解测试的基本概念:测试用例,缺陷等;
•了解什么可以自动化,什么不能自动化;
•了解编程语言(Java,JavaScript,Python,C#)的基础知识;
•能够使用
Selenium WebDriver ;
•能够
为元素编写
定位符 ;
•了解一个或两个单元框架。
•尽可能感兴趣自动化的初学者通常会被代码错误吓跑。 他们运行代码,看看有什么问题,然后陷入僵局。 在这种情况下该怎么办? 尝试在Internet上找到解决方案,例如在同一
Stack Overflow上 。 另一种选择是向经验丰富的同事寻求帮助。 他们也曾经在您的位置,并且犯了同样的错误。 与经验丰富的自动化工程师讨论任务时,您可以拓展专业视野。
•不要站着不动为了保持健康,您需要始终处于最前沿。 介绍新的框架和库,了解持续集成,加深您对编程语言的了解或掌握一种新的语言,阅读专题文章和博客:
关于谁是这么好的自动化工具的文章Automator注释(测试自动化的最佳实践)社区自动化员有关测试和软件质量的门户质量检查社区Comaqa.by在从事自动化工作的五年半中,我从未后悔自己选择了这个方向。 我喜欢执行手动测试任务,但是我意识到早晚要达到顶峰。 当经理测试不同类型的应用程序时(例如Web,台式机,移动应用程序),其上限是专业的,以至于工作不再带来新的挑战,而变成了例行工作。 为了不停滞不前并进一步发展,您需要掌握一些新技能。 您可以进行功能测试或负载测试的自动化,也可以切换到安全测试,或者例如对数据库进行分类。 您还可以朝DevOps,业务分析或
项目管理的方向看。
作为手动测试人员,我没有达到极限-自动化使我着迷了。 同时,这些年来的手册背景对我的工作有很大帮助。 我不仅实现测试用例,而且通常我自己为它们编写脚本。 因此,我了解正在测试的内容,涵盖的功能以及正在等待的结果。