User Эллеонора Керри
Эллеонора Керри
41 уровень

Как начать заниматься автоматизированным тестированием, часть 1

Статья из группы QA Automation
Предлагаем вам ознакомиться с русской адаптацией статьи Тима Эби (Tim Ebie), основателя https://testdemy.teachable.com/, QA-платформы для онлайн-тестирования программного обеспечения, созданной для помощи тем, кто начинает свой путь в автоматическом тестировании
Как начать заниматься автоматизированным тестированием, часть 1 - 1
Мы наблюдаем за всплеском интереса и ростом числа веб-приложений на рынке. Вместе с ними возникает всё больше и больше рабочих мест, которые требуют программирования, технических умений и различных навыков автоматизации. Как следствие, ручные тестировщики, чтобы оставаться востребованными, видят необходимость переключится с чистого ручного тестирования в сфере контроля качества (QA) и присматриваются к автоматическому тестированию. Переход от ручного к автоматизированному тестированию — это разумный выбор, так как многие QA-позиции требуют массива технических навыков, связанных с написанием кода. Для тех, кто не любит изменений, такая перемена может причинять дискомфорт. Другие разработчики, напротив, рассматривают это «время перемен» как возможность перевести свою карьеру и навыки на новый уровень и повысить свою востребованность. Каждый раз, когда требования возрастают, возможности расширяются. Разработчики с правильным набором навыков могут "вскочить в поезд", и построить отличную, хорошо оплачиваемую карьеру. Если вы ищете возможности перехода от сферы ручного тестирования к автоматизации, или даже рассматриваете переход из другой сферы разработки ПО, имеет смысл предпринять несколько шагов, которые помогут вам достигнуть успеха.

Шаг 1: оценка рынка

«Привычка номер два» из книги доктора Стивена Кови «7 привычек высокоэффективных людей» (Dr. Stephen A. Covey, 7 Habits of Highly Effective People) гласит: «Начинайте с мысли об окончании» (“Begin with the end in mind”). Верю, что этот принцип справедлив, когда речь идет о старте в автоматизированном тестировании. Начните с рыночной оценки потребностей тех, кто нанимает инженеров по автоматизации. Как только вы получите понимание технических потребностей нанимателей, вы сможете приобрести соответствующие навыки. Неплохо для начала посмотреть описания вакансий на любом сайте (например Indeed.com, Dice, Monster, LinkedIn и т.п.).
Как начать заниматься автоматизированным тестированием, часть 1 - 2
Вот примеры поисковых слов, которые можно использовать для формирования рыночной оценки:
  • инженер по автоматизации тестирования (Test Automation Engineer);
  • разработчик автоматизации (Automation Developer);
  • автоматизированное тестирование /тестировщик (автоматизированное тестирование) (Automation Testing/Automation Tester);
  • QA инженер по автоматизации (QA Automation Engineer);
  • инженер по разработке ПО для тестирования (Software Development Engineer in Test (SDET).
Чтобы понять ход мысли работодателей и их реальные ожидания от кандидатов, в процессе поиска держите в голове следующие вопросы:
  • какие конкретно навыки и технологии они упоминают?
  • видите ли вы отдельный набор или "блок" умений или технологий для этих навыков?
  • сколько лет опыта требуется, если требуется вообще?
  • есть ли отдельные отрасли, склонные нанимать больше инженеров по автоматизации, чем другие?
  • на какую зарплату можно рассчитывать?
  • являются ли интересующие нас средства или технологии в основном продуктами открытого доступа или коммерческими продуктами?
А сейчас давайте присмотримся поближе к нескольким описаниям вакансий, чтобы ощутить, чего ищет рынок. Не забывайте, что рассматриваемые вакансии находятся в США. Если вы живете не в США, ознакомьтесь, пожалуйста, со средствами поиска работы в вашей стране. Разработчик автоматизации ПО / Software Automation Developer I:
  • имеет четкое понимание языков объектно-ориентированного программирования;
  • знаком с Jenkins, Test Complete, VersionOne, Git, Visual Studio, Oracle, MSSQL, Hyper-V, AQTime;
  • в работе тесно связан с разработчиками, бизнес-аналитиками и другими тестировщиками, чтобы определять компоненты автоматизации тестирования, которые будут использоваться для проверки требований к разработанному ПО.
Как начать заниматься автоматизированным тестированием, часть 1 - 3
QA-тестировщик (автоматизированное тестирование):
  • сохраняет автоматизированные тесты в соответствующих системах контроля версий — TFS, GitHub и т.п.;
  • следует предопределенным стандартам автоматизации и стандартам DevOps для автоматизации, а также процессам непрерывной интеграции и развертывания;
  • опыт работы со средствами ALM (TFS, Jira, HP QC) и средствами автоматизации тестирования (предпочтительно Selenium WebDriver).
Инженер по автоматизации обеспечения качества — QA (Quality Assurance Automation Engineer):
  • oпыт работы с Selenium WebDriver;
  • навыки программирования на Python, Java, или подобных языках;
  • опыт мобильного тестирования / Appium.
Разработчик ПО для тестирования:
  • oбновление и расширение тестовой среды и инструментов тестирования в C#, TypeScript, JavaScript… ;
  • сильные навыки программирования в C# или Java, и/или JavaScript вместе с четким понимание концепций объектно-ориентированного программирования;
  • опыт работы с Visual Studio, Subversion, GitHub, Unity, Teamcity, Jira Cloud, Confluence.
Как начать заниматься автоматизированным тестированием, часть 1 - 4
Вот несколько ключевых выводов, вытекающих из этих описаний вакансий. Гибридные/cмешанные роли: уделите пристальное внимание названиям вакансий и тому, как эти компании видят автоматизированное тестирование ПО. Это можно понять по названиям ролей, которые они указывают (Разработчик автоматизации ПО, Разработчик ПО для тестирования (Software Automation Developer, Software Developer in Test) и т.п. Заметили шаблон? Эти компании более или менее ссылаются на QA-инженеров как на разработчиков ПО. Для ручных тестировщиков это значит, что пришла пора учиться писать код, чтобы превратить ручные тест-кейсы в автоматизированные тестовые скрипты. Для разработчиков, ищущих перехода в автоматизированное тестирование, это значит, что вы должны больше изучить методологии тестирования ПО, жизненный цикл тестирования ПО, и выучить, как строить автоматизированные тест-кейсы, чтобы поддерживать эти жизненные циклы. Не упустите этот критический сдвиг, иначе отстанете. С развитием Agile-методологий и проектов, на базе Agile, все больше организаций смешивают QA и разработчиков в одном лице. Так что вам пора подготовиться к новым обязанностям. Лица, которые имеют базовую подготовку в мире тестирования ПО и одновременно хорошо разбираются в навыках разработчика ПО — на вес золота. Технологии с открытым кодом /Языки программирования: oбратите внимание на технологии и языки программирования, выделенные в описаниях жирным шрифтом. Эти технологии и языки — целевые, вам нужно их выучить, чтобы быть востребованным на рынке. Выберите одну высоко востребованную технологию и начните формировать свою набор навыков отрабатывая их и участвуя в реальных практических приложениях и проектах. Это ускорит ваше обучение. Если вы не уверенны, с какого языка программирования начинать, давайте немного сузим поле.

Шаг 2: Овладение объектно-ориентированным языком программирования (OOP)

Нужно признать: большинство ручных тестировщиков боятся программирования. Сама мысль о том, чтобы залезть "под капот" и посмотреть, как на самом деле работают системы и приложения, пугает многих «ручных» тестировщиков. Именно этот страх главным образом и является причиной того, почему они стали ручными тестировщиками.
Как начать заниматься автоматизированным тестированием, часть 1 - 5
Программирование — это основа автоматизированного тестирования. Если вы хотите войти в автоматическое тестирование, вам нужно уметь программировать, и чем лучше вы программируете, тем успешнее вы будете в автоматическом тестировании или разработке автоматизации. Поэтому, если вы хотите оставаться конкурентоспособным в этом постоянно меняющемся мире разработки и технологий, вы должны решиться победить этот страх и стать востребованным разработчиком автоматизированного тестирования. Хорошо то, что под минимальным руководством более опытного коллеги, применив упорство и настойчивость, постоянно практикуясь (как у нас на JavaRush), вы точно можете улучшить свои навыки программирования. Следующий логический вопрос: какой язык программирования учить? Исходя из нашей рыночной оценки, мы знаем, что работодатели хотят нанимать людей "с четким пониманием языков объектно-ориентированного программирования". И, соответственно нашему анализу, можно увидеть несколько языков объектно-ориентированного программирования, на которые они ссылаются. Например, Java, C#, JavaScript, и Python. Начинать можно с любого из них. Если вы начинаете изучать ООП-язык, вот несколько понятий, которые следует хорошо усвоить, чтобы лучше ориентироваться в автоматизированном тестировании:
  • oбъектно-ориентированное программирование (классы, объекты, экземпляры, наследование, атрибут и т.п.);
  • Mодули, Стандартные библиотеки (на любом языке, на котором вы остановились);
  • cтруктуры данных (cловари, списки, кортежи и т.п.);
  • типы данных (строки, символы, целые числа, с плавающей запятой, логические или же булевы типы, NoneType и т.п.);
  • переменные;
  • обработка ошибок/исключений;
  • арифметические операторы/ порядок приоритета;
  • сравнение, логические булевы операторы;
  • процедуры/функции/методы;
  • поток управления: If-утверджения, for-циклы, while-циклы и т.п.
  • чтение/Запись в файлы ;
Программирование — это основа автоматизированного тестирования. Учитесь программировать — и вы научитесь автоматизировать.

Шаг 3: Овладение средствами автоматизации

Я не устаю повторять: чем лучше вы можете программировать, тем лучше вы сможете автоматизировать. Если вы начали изучать язык программирования, следующий шаг — выучить, как использовать средства автоматизации. Поскольку большинство компаний склоняются к средствам автоматизации с открытым доступом (или к бесплатному программному обеспечению), а не к коммерческим лицензионным продуктам из соображений экономии.
Как начать заниматься автоматизированным тестированием, часть 1 - 6
Прекрасное средство, которое можно найти в открытом доступе — это Selenium WebDriver. Selenium имеет несколько языковых привязок (Python, Java, C#, Ruby, PHP, JavaScript и т.п.), так что изучение одного из этих языков программирования послужит прекрасной основой для построения солидной карьеры в автоматизации. Несколько ключевых понятий, которыми нужно овладеть, чтобы строить надежные, функциональные и эффективные автоматизированные тест-кейсы:
  • шаблоны проектирования: объектная модель страницы;
  • поиск элементов веб-страницы с помощью разных локаторов (CSS Selector, XPATH, ID, Name и т.п.);
  • переключение Windows/iFrames;
  • рефакторинг;
  • модульное тестирование;
  • тестирование в облаке/параллельное тестирование;
  • проверка данных;
  • тестирование на разных веб-браузерах (Firefox, Internet Explorer, Chrome, Safari, Opera и т.п.);
  • неявные и явные ожидания;
  • цепочки действий
Если вы выбрали объектно-ориентированный язык программирования и в оценке рынка сделали ставку на средства автоматизации, следующий логичный шаг… Что бы вы думали?...

Шаг 4: Практика, Практика и еще раз Практика

Что бы вы ни делали, никогда не бросайте. Изучать что-то новое — это всегда вызов. Но каждый вызов можно победить достаточным количеством практики и самоотверженности. Сколько времени займет изучение новых навыков и технологий, полностью зависит от вас и того, как много вы будете практиковаться, и сколько самоотверженных усилий приложите, чтобы овладеть этими навыками.
Как начать заниматься автоматизированным тестированием, часть 1 - 7
Любой профессиональный спортсмен скажет, что он или она достигли высот на своем пути благодаря работе, усилиям своих тренировок. Говорят, Майкл Джордан жёстко играл, но еще жёстче тренировался. Этот подход должен позаимствовать каждый, кто собирается заниматься автоматизацией — практикуйтесь, практикуйтесь, тренируйте ваши новые навыки, пока они не станут вашей второй натурой. Это единственный путь улучшить умения и быть востребованным тестером. Один из хороших способов тренировок — активно изучать язык программирования и средства автоматизации одновременно, "играясь" с ними. Другими словами, пишите маленькие программы или скрипты автоматизированного тестирования, ломайте их, меняйте — и смотрите, как теперь это работает. Учитесь из того, что вы сделали, и пробуйте снова. Практикуйтесь играя, делая и обучаясь. Делайте так, и ваша «кривая обучения» поползет вверх.

Время начинать

В новом деле самое главное — начать. Всё время, когда мы прокрастинируем или не можем начать, причина в том, что у нас нет "дорожной карты" или плана игры, помогающего наметить курс.
Как начать заниматься автоматизированным тестированием, часть 1 - 8
Хотя попытка радикально изменить направление вашей карьеры может показаться пугающей, цениться и быть рыночно привлекательным необходимо. Вам нужно развивать новые навыки, чтобы оставаться на вершине постоянно меняющегося мира разработки программного обеспечения и быть тем, кого на самом деле ищут работодатели. Начинайте с малого: оцените требования рынка, изучайте объектно-ориентированное программирование и средства автоматизации, и постоянно практикуйтесь. И вы подготовитесь к новым возможностям трудоустройства раньше, чем поймете это сами. Источник: https://simpleprogrammer.com/2017/07/28/start-automation-testing-part-1/

Что еще почитать:

Кто такой QA engineer и как им стать

Что такое TDD и модульное тестирование [перевод]

Как получать 5000$ в месяц после 2.5 лет работы

Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ