Автоматизированное тестирование является неотъемлемой частью жизненного цикла разработки программного обеспечения. Начинающим тестировщикам в области автоматизации достаточно трудно продемонстрировать свои навыки, поэтому при поиске новой работы они, как и фронтенд-разработчики, UX-специалисты и другие специалисты в области технологий, создают портфолио. В этой статье мы расскажем, почему инженеру по автоматизации тестирования так важно иметь хорошее портфолио, а также предложим 10 идей для проектов, которые вы сможете в портфолио добавить.
Зачем нужно портфолио для автоматизации тестирования
Представьте, что вы находитесь на собеседовании и вас спрашивают, как автоматизировать страницу входа в систему, или просят рассказать о вашем опыте автоматизации. Отличным ответом будет продемонстрировать ваш собственный код. Это станет более убедительным аргументом для потенциальных работодаталей, чем устный ответ, ведь хорошо известно, что лучший способ обучения – это применение теории на практике.
Несколько советов, как подготовиться к созданию портфолио:
- Поставьте перед собой цель и будьте решительны. Сделайте всё возможное, чтобы достичь желаемого.
- Воспользуйтесь бесплатными и платными ресурсами по автоматизации, доступными в Интернете, такими как ZEN-Automation Testing Program, Test Automation University и др.
- Всегда используйте Github для размещения кода, используя частный репозиторий или выкладывая код в открытый доступ.
- Общайтесь на форумах и в сообществах по автоматизации тестирования, где всегда готовы ответить на ваши вопросы.
- При желании создавайте обучающие видеоролики или проводите онлайн-трансляции с демо на YouTube.
- Выберите проект, в котором сможете погрузится в детали одного инструмента, языка или слоя стека, или такой, где сможете попробовать себя в разных областях и показать, что вы – специалист широкого профиля.
- И последнее по порядку, но не по важности – получайте удовольствие! Если ваша деятельность стала казаться монотонной и превратилась в рутину, попробуйте переключиться на другой проект, уделять ей меньше времени или вовсе отложить на некоторое время. Процесс автоматизации состоит из череды проб и ошибок, что может разочаровывать и приводить к фрустрации. При необходимости обратитесь за помощью к другим тестировщикам. Помните, что всё в ваших руках.

10 лучших проектов по автоматизации для портфолио
Итак, пришло время заняться творчеством и создать портфолио.
1. Написание тестовых сценариев для любимых сайтов
Возьмите своё любимое приложение или сайт, которым вы часто пользуетесь, и подумайте, как бы вы могли их протестировать. Постарайтесь не ограничиваться простыми сценариями, продемонстрируйте свои навыки написания кода, взаимодействуя с несколькими страницами.
Проект должен показать ваше умение находить локаторы элементов и взаимодействовать с наиболее заметными элементами, такими как выпадающие меню, текстовые поля, чекбоксы, кнопки, оповещения, всплывающие меню, ссылки, виджеты оповещения и фреймы. Кроме того, убедитесь, что вы пишете чистый тестовый код и используете различные шаблоны проектирования, такие как Screenplay паттерн и Page Object паттерн (POM-паттерн).
Существует множество сайтов, которые помогут вам в ваших экспериментах в автоматизации. Вот некоторые из них:
В приложении вы сможете ознакомиться с основами веб-автоматизации и базовыми понятиями Selenium и Cypress либо совершенно бесплатно изучить различные продвинутые концепции Selenium. Кроме того, вы можете воспользоваться уже готовыми автоматизированными скриптами для Selenium при решении всех типов задач.
2. Тестирование приложений
Поскольку большинство людей перешло на мобильные приложения, спрос на специалистов по автоматизации тестирования приложений резко возрос. Наличие опыта тестирования приложений, безусловно, повышает шансы быть принятым на работу в ведущие компании по автоматизации.
В портфолио инженера по автоматизации следует добавить автотесты для проверки как iOS-, так и Android-приложений. Для этого можно использовать такие инструменты, как XCUI TEST от Apple или Espresso от Google. Если вы пойдете по этому пути, рекомендуем вам сделать как минимум два проекта (по одному на каждую операционную систему).
Тем не менее, какой бы инструмент вы ни использовали, вам следует, как и в проекте по веб-тестированию, продемонстрировать взаимодействие самых заметных элементов. Кроме того, в этом проекте необходимо использовать и специфические для мобильных устройств жесты, такие как пинч (pinch) и свайп (swipe). Загрузить приложения и соответствующие файлы как для iOS, так и для Android можно у сторонних поставщиков приложений.
3. Визуальное тестирование
Как только вы завершите создание своих мобильных и веб-проектов, обогатите их возможностями визуального тестирования. Вы увидите, как много скриптов для проверки внешнего вида ваших приложений было упущено. Визуальный тестировщик – одна из самых востребованных и популярных специальностей в индустрии разработки программного обеспечения.
4. Автоматизация API
С развитием микросервисов, общедоступных API и IoT-приложений тестирование API стало неотъемлемой частью цикла разработки ПО. Многие компании нуждаются в талантливых специалистах по автоматизации, поэтому целесообразно добавить в свое портфолио проект по тестированию API.
Убедитесь, что в рамках этого проекта вы демонстрируете различные API-методы, добавляя минимум сценариев для POST и GRE, которые являются ключевыми для REST API. Лучше покажите, что вы можете использовать сложные API, которые принимают параметры и тела запросов и возвращают ответы с массивами и несколькими объектами.
Существует множество готовых API, на которых можно проводить тестирование. Вот некоторые из них:
5. Тестирование данных
Возможно, в вашем проекте используется лишь небольшой и заранее определенный объем данных, поэтому их легко хранить в исходном коде. Однако при работе в крупной компании вы можете столкнуться с сотнями или тысячами автотестов. Чтобы справиться с огромным объемом данных, многие команды используют подход, основанный на тестировании данных.
Мы рекомендуем добавить в портфолио по автоматизации хотя бы один проект, который показал бы вашу способность извлекать и тестировать данные из внешнего источника, например, из таблицы Excel.
6. Использование базы данных
После того как вы разобрались с тем, как получать данные из внешнего источника, было бы неплохо добавить в портфолио проект, который взаимодействует с базой данных. Мы рекомендуем использовать в автотестах запросы на чтение и на запись данных.
Например, можно читать из базы данных, чтобы получить ожидаемые результаты от поискового запроса. Или можно писать в базу данных, чтобы перевести приложение в необходимое состояние перед началом тестирования.
7. Создание типового плагина CI/CD
Если вы хотите устроиться в компанию, работающую с продуктами, которые основаны на непрерывной доставке/непрерывной интеграции, будет хорошим решением добавить проект по работе с CI/CD-конвейером. Один из таких примеров – запрос в Jira задач спринта, которые необходимо протестировать, затем передача этой информации другому плагину, который сопоставляет эти задачи с приемочными тестами и запускает их.
Такой проект будет доказательством того, что у вас есть определенный пороговый опыт работы с тестами Selenium и GIT.
8. Тестирование производительности
Обязательно добавьте в свое портфолио проект по тестированию производительности. Нефункциональное тестирование, такое как тестирование производительности, является узкоспециализированным навыком, которым многие тестировщики не владеют. Добавление подобного проекта в портфолио, несомненно, поможет вам выделиться среди других кандидатов на вакансию.
Ниже приведено несколько сайтов, на которых можно провести тестирование производительности:
- Simple Travel Agency – демонстрационный сайт BlazeMeter.
- Pet Store Web – зоомагазин.
- Computer Database – простой сайт с небольшим количеством вводимых данных.
9. Тестирование на разных языках программирования
После того как вы создали проекты на своем основном языке программирования, попробуйте для нескольких проектов использовать другие языки. Например, научитесь внедрять веб-драйвер Selenium для Java и JUnit или создайте проект с Cypress на JavaScript и Mocha.
Поэкспериментируйте ещё с несколькими библиотеками автоматизации и библиотеками утверждений. Временами это может казаться утомительным, но у этого упражнения есть практическая польза. Со временем вы заметите, что некоторые концепции и методы автоматизации тестирования являются универсальными.
10. Автоматизация для BDD
Разработка через поведение (BDD) – последнее слово в технологиях. Многие компании стараются внедрить BDD, и, как следствие, растет потребность в тестировщиках, способных автоматизировать заранее подготовленные тесты.
Для проекта по автоматизации для BDD необходимо не только показать соответствие между файлами сценариев и определениями шагов, но и продемонстрировать обмен состоянием между шагами с помощью инъекции зависимостей.
В заключение
В завершение, мы хотим дать вам несколько важных, но вполне очевидных советов. Обязательно добавляйте ссылку на портфолио в резюме. Не стесняйтесь помещать ее в раздел “Опыт работы”. Это позволит показать рекрутерам, что вы достаточно целеустремленный, увлеченный и компетентный для того, чтобы пробиться в сферу автоматизации тестирования.
Обширный перечень сайтов для тестирования можно найти в этом GIT-репозитории.
Перевод статьи «Top 10 Automation Testing Projects for beginners ( 2022 Updated )».