Автоматизированное тестирование — одно из самых многочисленных 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.