Шесть лет назад Роман Печерский из Ижевска прошёл курсы для функциональных тестировщиков и начал работать QA-инженером. Спустя несколько месяцев он впервые столкнулся с автоматизацией тестирования и понял, что хочет развиваться в эту сторону.
Сейчас Роман руководит командой автоматизаторов, а также учебным центром по автоматизированному тестированию в ижевском EPAM. Он рассказал, с чего начинал изучать автоматизацию, как развивался, с какими проблемами имел дело и какими лайфхаками пользовался.
Я впервые столкнулся с автоматизацией, когда техлид нашего проекта предложил мне покрыть автотестами проверки, чтобы их можно было запускать после любого изменения и быстро получать обратную связь. К тому времени я не проработал в тестировании и года, поэтому чувствовал себя не особо комфортно. Несмотря на это, задача показалась мне интересной, и я решил попробовать её выполнить – правда, даже не представлял, с чего начать.
Кто-то из коллег по проекту рассказал мне про Selenium IDE – инструмент для автоматизации действий Firefox-браузера. Помню, как написал свой первый автотест с помощью метода Record and Play: включил запись, начал нажимать кнопки, вводить текст в поисковую строку и кликать по ссылкам. Получился набор сохранённых действий, который можно было запускать и сразу видеть результат.
Тогда же я посмотрел три лекции от тренера по автоматизации Михаила Поляруша:
Что такое автоматизация тестирования
Как написать первый тест на Selenium
Как писать локаторы в Selenium WebDriver
Знакомства с Selenium IDE и этих лекций мне вполне хватило, чтобы решить ту проектную задачу и начать делать первые шаги в сторону в автоматизации.
Вскоре я начал самостоятельно изучать Java – один из самых популярных языков для автоматизации тестирования – и пробовать писать несложные автотесты в Eclipse, например, для тестирования login-формы приложений.
Однажды мы с моим менеджером обсуждали моё дальнейшее развитие. Я сказал, что планирую двигаться в сторону автоматизации, и попросился на курсы по автоматизированному тестированию для сотрудников.
Следующие шесть месяцев я работал и учился – по вечерам, выходным, праздникам. Всё усложнялось тем, что первые три месяца я находился в командировке на новом проекте. После работы я возвращался в гостиницу с мыслями о том, что если вовремя не сдам домашнее задание, то накоплю долги, за которые меня могут отчислить. Для меня это был ужасный стресс, и я даже похудел на несколько килограммов.
Вот что помогало мне преодолевать трудности:
• Понимание, зачем это нужно
Несмотря на то что учёба была сложной и временами даже скучной, я чётко осознавал, какие возможности она мне откроет. Именно поэтому всё свободное время я посвящал автоматизации. Вместо прогулок по городу – автоматизация, вместо посиделок в баре с коллегами – автоматизация, вместо вечернего сериала – автоматизация.
• Поддержка коллег
Всегда приятно, когда тебя кто-то подбадривает – особенно люди, которые уже прошли тот же путь.
• Чувство соперничества
Ощущение, что я могу стать самым отстающим студентом в группе, также подстёгивало меня двигаться вперёд.
Когда курсы закончились, я начал работать на проекте, чередуя обязанности функционального тестировщика и автоматизатора. Через несколько месяцев присоединился к новому проекту – уже в роли тимлида. QA-команда состояла всего из двух человек – меня и функционального тестировщика, которому я объяснял основы автоматизации.
Мой коллега по проекту – первый человек, которого я начал обучать автоматизации. Сначала моих знаний не всегда хватало, чтобы отвечать на его вопросы и помогать решать проектные задачи. Но когда я не мог ему что-то объяснить, то понимал, что сам недостаточно развиваюсь в теме и подтягивал знания. Обычно я искал ответы на Stack Overflow или обращался за помощью к разработчикам.
Постепенно моя команда выросла до 10 автоматизаторов. К тому времени я полностью отошёл от ручного тестирования и занимался комплексным системным автотестированием веб-приложений. Затем начал помогать команде с созданием архитектурных решений для тестов и стал проектным координатором.
Полгода назад мы с коллегами организовали в офисе собственный учебный центр по автотестированию. Стали брать на обучение студентов последних курсов и людей, которые решили сменить сферу деятельности.
Недавно я сам прошёл небольшой курс – по 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;
• Умение писать локаторы для элементов;
• Знание одного-двух юнит-фреймворков.
• Как можно больше интересуйтесь
Новичков в автоматизации чаще всего отпугивают ошибки в коде. Они запускают код, видят, как что-то идёт не так, и впадают в ступор. Что делать в такой ситуации? Попробовать найти решение в интернете, например, на том же Stack Overflow. Ещё один вариант – попросить помощи у более опытных коллег. Они тоже когда-то были на вашем месте и делали такие же ошибки. Обсуждая какую-либо задачу с опытными автоматизаторами, вы расширяете свой профессиональный кругозор.
• Не стойте на месте
Чтобы поддерживать себя в форме, нужно постоянно находиться на технологическом острие. Вводите в работу новые фреймворки и библиотеки, разберитесь с Continuous Integration, углубите знания языка программирования или освойте новый, читайте тематические статьи и блоги:
Статья о том, кто такой хороший автоматизатор
Заметки автоматизатора (лучшие практики автоматизации тестирования)
Сообщество автоматизаторов
Портал о тестировании и качестве ПО
QA-коммьюнити Comaqa.by
За пять с половиной лет, что я работаю с автоматизацией, я ни разу не пожалел, что выбрал это направление. Мне нравилось выполнять и задачи ручного тестирования, но я понимал, что рано или поздно упрусь в потолок. Потолок для мануальщика наступает, когда он тестирует разные виды приложений – веб, десктопные, мобильные – настолько профессионально, что работа перестает подбрасывать новые вызовы и превращается в рутину. Чтобы не стоять на месте и развиваться дальше, необходимо получить какой-то новый навык. Можно заняться автоматизацией функционального или нагрузочного тестирования, можно переключиться на тестирование безопасности или, например, разобраться в базах данных. Ещё можно посмотреть в сторону DevOps, бизнес-анализа или проектного менеджмента.
Я своего потолка как мануальный тестировщик достичь не успел – автоматизация увлекла меня раньше. При этом бэкграунд мануальщика сильно помогает мне в работе все эти годы. Я не только реализовываю тест-кейсы, но и обычно сам пишу для них сценарии. Так я понимаю, что именно тестирую, какой функционал покрываю и какого жду результата.
Сейчас Роман руководит командой автоматизаторов, а также учебным центром по автоматизированному тестированию в ижевском EPAM. Он рассказал, с чего начинал изучать автоматизацию, как развивался, с какими проблемами имел дело и какими лайфхаками пользовался.
Как я познакомился с автоматизацией
Я впервые столкнулся с автоматизацией, когда техлид нашего проекта предложил мне покрыть автотестами проверки, чтобы их можно было запускать после любого изменения и быстро получать обратную связь. К тому времени я не проработал в тестировании и года, поэтому чувствовал себя не особо комфортно. Несмотря на это, задача показалась мне интересной, и я решил попробовать её выполнить – правда, даже не представлял, с чего начать.
Кто-то из коллег по проекту рассказал мне про Selenium IDE – инструмент для автоматизации действий Firefox-браузера. Помню, как написал свой первый автотест с помощью метода Record and Play: включил запись, начал нажимать кнопки, вводить текст в поисковую строку и кликать по ссылкам. Получился набор сохранённых действий, который можно было запускать и сразу видеть результат.
Тогда же я посмотрел три лекции от тренера по автоматизации Михаила Поляруша:
Что такое автоматизация тестирования
Как написать первый тест на Selenium
Как писать локаторы в Selenium WebDriver
Знакомства с Selenium IDE и этих лекций мне вполне хватило, чтобы решить ту проектную задачу и начать делать первые шаги в сторону в автоматизации.
Как я учился автоматизации
Вскоре я начал самостоятельно изучать Java – один из самых популярных языков для автоматизации тестирования – и пробовать писать несложные автотесты в Eclipse, например, для тестирования login-формы приложений.
Однажды мы с моим менеджером обсуждали моё дальнейшее развитие. Я сказал, что планирую двигаться в сторону автоматизации, и попросился на курсы по автоматизированному тестированию для сотрудников.
Следующие шесть месяцев я работал и учился – по вечерам, выходным, праздникам. Всё усложнялось тем, что первые три месяца я находился в командировке на новом проекте. После работы я возвращался в гостиницу с мыслями о том, что если вовремя не сдам домашнее задание, то накоплю долги, за которые меня могут отчислить. Для меня это был ужасный стресс, и я даже похудел на несколько килограммов.
Вот что помогало мне преодолевать трудности:
• Понимание, зачем это нужно
Несмотря на то что учёба была сложной и временами даже скучной, я чётко осознавал, какие возможности она мне откроет. Именно поэтому всё свободное время я посвящал автоматизации. Вместо прогулок по городу – автоматизация, вместо посиделок в баре с коллегами – автоматизация, вместо вечернего сериала – автоматизация.
• Поддержка коллег
Всегда приятно, когда тебя кто-то подбадривает – особенно люди, которые уже прошли тот же путь.
• Чувство соперничества
Ощущение, что я могу стать самым отстающим студентом в группе, также подстёгивало меня двигаться вперёд.
Когда курсы закончились, я начал работать на проекте, чередуя обязанности функционального тестировщика и автоматизатора. Через несколько месяцев присоединился к новому проекту – уже в роли тимлида. QA-команда состояла всего из двух человек – меня и функционального тестировщика, которому я объяснял основы автоматизации.
Как я начал обучать автоматизации
Мой коллега по проекту – первый человек, которого я начал обучать автоматизации. Сначала моих знаний не всегда хватало, чтобы отвечать на его вопросы и помогать решать проектные задачи. Но когда я не мог ему что-то объяснить, то понимал, что сам недостаточно развиваюсь в теме и подтягивал знания. Обычно я искал ответы на Stack Overflow или обращался за помощью к разработчикам.
Постепенно моя команда выросла до 10 автоматизаторов. К тому времени я полностью отошёл от ручного тестирования и занимался комплексным системным автотестированием веб-приложений. Затем начал помогать команде с созданием архитектурных решений для тестов и стал проектным координатором.
Полгода назад мы с коллегами организовали в офисе собственный учебный центр по автотестированию. Стали брать на обучение студентов последних курсов и людей, которые решили сменить сферу деятельности.
Недавно я сам прошёл небольшой курс – по 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;
• Умение писать локаторы для элементов;
• Знание одного-двух юнит-фреймворков.
• Как можно больше интересуйтесь
Новичков в автоматизации чаще всего отпугивают ошибки в коде. Они запускают код, видят, как что-то идёт не так, и впадают в ступор. Что делать в такой ситуации? Попробовать найти решение в интернете, например, на том же Stack Overflow. Ещё один вариант – попросить помощи у более опытных коллег. Они тоже когда-то были на вашем месте и делали такие же ошибки. Обсуждая какую-либо задачу с опытными автоматизаторами, вы расширяете свой профессиональный кругозор.
• Не стойте на месте
Чтобы поддерживать себя в форме, нужно постоянно находиться на технологическом острие. Вводите в работу новые фреймворки и библиотеки, разберитесь с Continuous Integration, углубите знания языка программирования или освойте новый, читайте тематические статьи и блоги:
Статья о том, кто такой хороший автоматизатор
Заметки автоматизатора (лучшие практики автоматизации тестирования)
Сообщество автоматизаторов
Портал о тестировании и качестве ПО
QA-коммьюнити Comaqa.by
За пять с половиной лет, что я работаю с автоматизацией, я ни разу не пожалел, что выбрал это направление. Мне нравилось выполнять и задачи ручного тестирования, но я понимал, что рано или поздно упрусь в потолок. Потолок для мануальщика наступает, когда он тестирует разные виды приложений – веб, десктопные, мобильные – настолько профессионально, что работа перестает подбрасывать новые вызовы и превращается в рутину. Чтобы не стоять на месте и развиваться дальше, необходимо получить какой-то новый навык. Можно заняться автоматизацией функционального или нагрузочного тестирования, можно переключиться на тестирование безопасности или, например, разобраться в базах данных. Ещё можно посмотреть в сторону DevOps, бизнес-анализа или проектного менеджмента.
Я своего потолка как мануальный тестировщик достичь не успел – автоматизация увлекла меня раньше. При этом бэкграунд мануальщика сильно помогает мне в работе все эти годы. Я не только реализовываю тест-кейсы, но и обычно сам пишу для них сценарии. Так я понимаю, что именно тестирую, какой функционал покрываю и какого жду результата.