article-spots
article-carousel-spots
programs
Технологии

Что? Зачем? Когда? Ответы на главные вопросы автоматизации тестирования

17 сент. 2021

Автоматизированное тестирование — одно из самых многочисленных IT-направлений в тренинг-центре EPAM. Давайте разберёмся почему? Сегодня мы рассмотрим цели автоматизированного тестирования и в каких случаях мы его применяем.  

Зачем? 

Цель любого тестирования — получить максимум информации о качестве приложения. А цель автоматизированного тестирования состоит в том, чтобы оптимизировать ресурсы проекта: время, бюджет, человеческие и технические возможности. 

Экономия времени 

Если описывать процесс двумя словами, то автоматизированное тестирование передаёт часть задач инженера — программам. То есть освобождает ресурсы команды, в частности время. Ведь программа работает 24х7х365 и не тратит время на перекуры и кофе.   

Освобождение от рутины 

Программы чётко следуют алгоритму. А значит, в рутинных операциях они отрабатывают гораздо лучше человека. Например, с лёгкостью выполнят «прогон» сценария с тысячами различных наборов данных.

Благодаря перекладыванию работы «на роботов» у инженеров освобождается время для решения дополнительных задач. Например, внедрение новых видов, техник или инструментов тестирования, которые дадут дополнительную информацию о продукте и снизят вероятность появления новых багов.

Надёжность 

Ещё одним преимуществом автоматизации является повышение надёжности. Единожды запрограммированный алгоритм будет выполняться всегда одинаково, с одним и тем же результатом. Программа не перепутает и не забудет ввести входные данные, не пропустит из-за усталости проверку нужного параметра. Любой сбой будет зарегистрирован.  

Когда? 

С технической точки зрения, большинство задач тестирования могут быть автоматизированы. Вопрос в том, каких затрат это потребует. Некоторые виды тестирования проще, дешевле и быстрее выполнить вручную. Например, оценить удобство пользовательского интерфейса: человек может оценить расположение элементов управления, их компоновку, цветовую гамму, логичность. 

Экономическая целесообразность 

Бóльшую часть таких проверок можно реализовать программно, но времени и финансов потребуется больше, нежели при ручном тестировании. Чтобы избежать лишних затрат (ведь наша цель — сэкономить ресурсы), в подготовительный этап автоматизации тестирования входит расчёт экономической целесообразности (Return On Investments, ROI).

Регрессионное и смок-тестирование 

Однако для многих видов тестирования автоматизация экономически обоснована. В первую очередь, для таких трудоёмких и относительно длительных видов тестирования, как регрессионное и смок-тестирование. Их особенность — в многократном повторении большого количества тестов в одинаковых условиях. Поэтому их легко отладить и затем выполнять раз за разом без потерь качества. 

Unit-тестирование 

Существуют типы тестирования, которые в принципе нельзя выполнить в ручном режиме. Например, модульное (unit) тестирование: проверить миллионы операторов, переходов и их цепочки, комбинации на всех возможных наборах данных вручную невозможно. Или тестирование производительности: как можно вручную имитировать одновременный заход на сайт тысяч или даже десятков тысяч пользователей? Очевидно, без специального ПО здесь не обойтись. 

Accessibility-тестирование 

Также существуют виды тестирования, которые дают дополнительную информацию о качестве приложения. Например, тестирование доступности (accessibility). Оно проверяет приложение с точки зрения его использования пользователями с особыми потребностями.  

Требование доступности публичных коммерческих и государственных сервисов для таких групп пользователей регулируется законодательством большинства развитых стран. И заказчики требуют проверять разрабатываемые продукты на доступность в обязательном порядке. С технической точки зрения, если проводить это тестирование вручную, потребуется много времени. А процесс автоматизации несложен, и выполнение основной части проверок занимает не более нескольких минут.

Интеграция автоматизации в разработку 

И конечно, автоматизация тестирования интегрирована в процессы разработки ПО (Software Development Life Cycle, SDLC). Стандартом на сегодня является применение концепции Continuous Integration and Deployment (CI/CD). Современные инструменты автоматизации тестирования рассчитаны на быструю и «бесшовную» интеграцию с инструментами CI/CD: Jenkins, Bamboo, GitHub, облачные сервисы вроде AWS или Azure. Они имеют необходимые API и поддерживают соответствующие протоколы. Поэтому процедуры автоматического тестирования и развёртывания новой сборки могут быть запущены нажатием одной кнопки.

Хотите узнать больше, что такое автоматизированное тестирование, его месте в процессе разработки ПО и познакомиться с задачами инженера по автоматизированному тестированию? Регистрируйтесь на бесплатное обучение в тренинг-центре EPAM.