- Что надо знать об автоматизации
- Язык программирования — необходимость
- Что с фреймворками
- Инструменты
- Инфраструктура
- Пайплайны
Этот материал написан нашим читателем. Тоже хотите опубликовать свою статью на testengineer.ru? Отправить ее нам можно по ссылке.
Что надо знать об автоматизации
Для обеспечения качества ПО часто нужно иметь возможность регулярно повторять тесты в течение цикла разработки. При каждом изменении кода нужно по новой прогонять тесты. Каждый билд должен быть протестирован на всех поддерживаемых операционных системах и аппаратных конфигурациях. Повторять эти тесты вручную дорого и долго. После создания автоматизированные тесты можно запускать снова и снова без дополнительных затрат, и выполняются они намного быстрее, чем ручные. Автоматизированное тестирование может сократить время проведения тестов с нескольких дней до нескольких часов, а экономия времени приводит к экономии затрат.
В конечном счете, все это ведет к улучшению качества выпускаемого ПО и уменьшению бюджетов. Особенно на больших проектах.
Сначала несколько важных моментов:
- Ручное тестирование никогда не исчезнет.
- Вы не сможете автоматизировать все.
- Всегда будет существовать потребность в ручных тестировщиках, обладающих интуицией, быстротой реакции и пониманием продукта. Они будут выполнять тесты, которые невозможно автоматизировать или подстроить под алгоритм.
- Автоматизированное тестирование не заменит ручное тестирование. Скорее, оно будет дополнять и улучшать его. Можно почитать большой материал на эту тему.
- ВСЕГДА будут существовать некоторые виды тестирования, такие как исследовательское тестирование, с которыми может справиться только человек.
Тем не менее, автоматизированное тестирование сегодня очень распространено, и его популярность растет. Она никуда не денется. Чем дольше организация откладывает переход, тем сложнее ей конкурировать с другими. Автоматизированное тестирование — это важный шаг к более быстрому выпуску продукта с меньшим количеством ошибок. Это особенно актуально в эпоху огромного разнообразия устройств, браузеров и операционных систем, которыми пользуются клиенты.
Независимо от того, являетесь ли вы небольшой командой разработчиков в стартапе или крупной компанией с выделенными командами тестирования и бюджетом, путь к автоматизации тестирования не лишен препятствий. Как, будучи ручным тестировщиком, переучиться в автоматизацию? Вот мои 5 шагов.
Выучить язык программирования
Знание языков программирования — ценный навык для тестировщиков. Учиться никогда не поздно, это будет самым главным шагом при внедрении автоматизации. Для проведения ручного тестирования знание языков программирования не требуется.
Языки, с которых вы можете начать — #Python / #JavaScript / #Java
[прим.ред.] Статья с актуальными языками программирования для тестировщиков по ссылке.Для тех, кто хочет начать с Python есть хороший сайт по его изучению — pythonist.ru
Разобраться в фреймворках для тестирования
Фреймворки позволяют превратить код, который мы написали, в тесты. Кроме того, с помощью этих фреймворков мы можем использовать функциональные возможности тестирования, задавать различные механизмы выполнения, генерировать отчеты и т.д.
Популярные фреймворки для изучения в соответствии с языками программирования:
- 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 и т.д.
***
Это широкий обзор того, что нужно сделать и изучить, чтобы перейти от ручного к автоматизированному тестировщику. На самом деле, изучение автоматизации гораздо шире, чем эти пять шагов. Но этот материал может стать небольшой дорожной картой для вашего пути от ручного к автоматизированному тестированию.