Этот материал написан нашим читателем. Тоже хотите опубликовать свою статью на testengineer.ru? Отправить ее нам можно по ссылке.
Для обеспечения качества ПО часто нужно иметь возможность регулярно повторять тесты в течение цикла разработки. При каждом изменении кода нужно по новой прогонять тесты. Каждый билд должен быть протестирован на всех поддерживаемых операционных системах и аппаратных конфигурациях. Повторять эти тесты вручную дорого и долго. После создания автоматизированные тесты можно запускать снова и снова без дополнительных затрат, и выполняются они намного быстрее, чем ручные. Автоматизированное тестирование может сократить время проведения тестов с нескольких дней до нескольких часов, а экономия времени приводит к экономии затрат.
В конечном счете, все это ведет к улучшению качества выпускаемого ПО и уменьшению бюджетов. Особенно на больших проектах.
Сначала несколько важных моментов:
- Ручное тестирование никогда не исчезнет.
- Вы не сможете автоматизировать все.
- Всегда будет существовать потребность в ручных тестировщиках, обладающих интуицией, быстротой реакции и пониманием продукта. Они будут выполнять тесты, которые невозможно автоматизировать или подстроить под алгоритм.
- Автоматизированное тестирование не заменит ручное тестирование. Скорее, оно будет дополнять и улучшать его. Можно почитать большой материал на эту тему.
- ВСЕГДА будут существовать некоторые виды тестирования, такие как исследовательское тестирование, с которыми может справиться только человек.
Тем не менее, автоматизированное тестирование сегодня очень распространено, и его популярность растет. Она никуда не денется. Чем дольше организация откладывает переход, тем сложнее ей конкурировать с другими. Автоматизированное тестирование — это важный шаг к более быстрому выпуску продукта с меньшим количеством ошибок. Это особенно актуально в эпоху огромного разнообразия устройств, браузеров и операционных систем, которыми пользуются клиенты.
Независимо от того, являетесь ли вы небольшой командой разработчиков в стартапе или крупной компанией с выделенными командами тестирования и бюджетом, путь к автоматизации тестирования не лишен препятствий. Как, будучи ручным тестировщиком, переучиться в автоматизацию? Вот мои 5 шагов.
Выучить язык программирования
Знание языков программирования — ценный навык для тестировщиков. Учиться никогда не поздно, это будет самым главным шагом при внедрении автоматизации. Для проведения ручного тестирования знание языков программирования не требуется.
Языки, с которых вы можете начать — #Python / #JavaScript / #Java
[прим.ред.] Статья с актуальными языками программирования для тестировщиков по ссылке.Разобраться в фреймворках для тестирования
Фреймворки позволяют превратить код, который мы написали, в тесты. Кроме того, с помощью этих фреймворков мы можем использовать функциональные возможности тестирования, задавать различные механизмы выполнения, генерировать отчеты и т.д.
Популярные фреймворки для изучения в соответствии с языками программирования:
- JUnit и TestNG для Java
- MSTest, NUnit и xUnit для C#
- Unittest и pytest для Python
- Mocha, Jasmin или Chai для JavaScript
Использовать правильные инструменты
Вы значительно облегчите себе процесс, если будете использовать комбинацию фреймворков, инструментов с открытым исходным кодом и сторонних инструментов для автоматизации. Selenium WebDriver, вероятно, станет вашим основным инструментом для автоматизированному тестированию, поскольку он является самым популярным. Если вы хотите автоматизировать тестирование backend, начните с автоматизации тестирования API.
Наиболее востребованные инструменты для автоматизации:
Web UI — Selenium, Cypress, PlayWright и Puppeteer
Мобильные приложения — Appium, Detox
Тестирование API — Postman, Soap UI. Вот большой гайд по тестированию с Postman для начинающих
Тестирование API также может быть выполнено с помощью таких библиотек, как Rest Assured для Java и Requests для Python.
Организовать инфраструктуру
Это, вероятно, самая важная часть любой роли разработчика автоматизации. После того, как вы научились писать скрипты для автоматизации, вам нужно научиться писать их хорошо, с использованием инфраструктуры, которая будет сильной, интеллектуальной, модульной и поможет поддерживать проект как можно дольше и с минимальными усилиями.
Вещи, которые вы должны изучить для этого :
Механизм отказов, восстановление, система отчетов, работа со скриншотами, файлы конфигурации, параллельное выполнение, ведение логов, работа с базами данных, Keyword Driven Testing (тестирование на основе ключевых слов), BDD (Behavior Driven Development), отложенное выполнение.
Настроить CI/CD пайплайны
При Agile-разработке (гибкая и быстрая разработка ПО) необходимо иметь автоматические CI/CD конвейеры. «Автоматизация тестирования не завершена, пока она не может работать автоматически».
Это делает изучение CI/CD-конвейера одной из самых важных частей всего процесса.
Наиболее часто используемые инструменты для CI/CD-конвейеров:
Jenkins, Bitbucket Pipelines, Github Actions, Gitlab CI, Bamboo, CircleCI и т.д.
***
Это широкий обзор того, что нужно сделать и изучить, чтобы перейти от ручного к автоматизированному тестировщику. На самом деле, изучение автоматизации гораздо шире, чем эти пять шагов. Но этот материал может стать небольшой дорожной картой для вашего пути от ручного к автоматизированному тестированию.