Непрерывное тестирование – современная концепция ускоренного тестирования, когда тесты проводятся непрерывно, качество оценивается на каждом шагу, а системы разработки, QA, DevOps и операционная система работают сообща.
Что такое непрерывное тестирование?
Непрерывное тестирование – тип тестирования программного обеспечения, который включает в себя процесс раннего тестирования, частого тестирования, повсеместного тестирования и автоматизации.
Это стратегия оценки качества на каждом шагу. Цель непрерывного тестирования – тестировать рано и тестировать часто. В процессе участвуют системы разработки, DevOps, QA и операционная система.
Чем отличается непрерывное тестирование?
Старый способ тестирования был децентрализованным. Программное обеспечение передавалось от одной команды к другой. Проект имел определенные фазы разработки и тестирования. Команда QA всегда требовала больше времени для проверки ПО. Цель состояла в том, чтобы качество преобладало над дедлайном проекта.
Однако бизнес хочет, чтобы софт быстрее попадал к конечным пользователям. Чем новее ПО, тем лучше его можно рекламировать и генерировать выручку. Таким образом появился новый способ тестирования.
При непрерывном тестировании в приложении постоянно выполняются тесты. При непрерывном DevOps-процессе все изменения в приложении постоянно переходят из разработки в тестирование и затем к доставке.
Например, когда разработчик сохраняет изменения в системе, CI-сервер наподобие jenkins выполняются автоматизированные юнит-тесты. Если тесты не были пройдены, сборка забраковывается, и разработчик получает уведомление. Если же сборка проходит тесты, она разворачивается на окружении Performance, где подвергается всесторонним функциональным и нагрузочным тестам. Тесты выполняются параллельно. Если все тесты пройдены, релиз отправляется в продакшен.
Как непрерывное тестирование отличается от автоматизированного?
Автоматизированное тестирование vs непрерывное тестирование:
Параметр | Автоматизированное тестирование | Непрерывное тестирование |
Определение | Процесс, где инструмент или ПО используется для автоматизации задач. | Методология тестирования, фокусирующаяся на достижении непрерывного качества и улучшения. |
Цель | Набор простых или повторяемых задач, которые машина может выполнять быстрее и при меньшем количестве ошибок. | Помогает найти риск, решить его и улучшить качество продукта. |
Необходимое условие | Автоматизация в тестировании без интеграции непрерывного тестирования. | Непрерывное тестирование нельзя провести без автоматизированного. |
Время | На выпуск софта могут уйти месяцы и годы. | Софт может выйти через неделю или несколько часов. |
Фидбек | Регулярный фидбек после тестирования каждого релиза. | Фидбек на каждом этапе должен быть мгновенным |
История | Автоматизированному тестированию десятки лет. | Концепция непрерывного тестирования относительно нова |
Этапы непрерывного тестирования
- Использовать инструменты генерации автотестов из требований и юзер-стори
- Создать тестовое окружение
- Скопировать и анонимизировать данные из продакшена для создания тестового датасета
- Применить виртуальные сервисы (заглушки) для тестирования API
- Параллельное нагрузочное тестирование
Инструменты
1) Experitest
Experitest – платформа непрерывного тестирования для мобильных и веб-приложений, позволяющая вам проводить тесты на 2000 реальных мобильных устройствах и браузерах. Она полностью интегрируются с экосистемой вашей разработки, тестирования и непрерывной интеграции и совместима с Appium, Selenium, Jenkins, Travis CI и так далее.
2) QuerySurge
QuerySurge – умное решение для тестирования данных; это первое DevOps-решение для непрерывного тестирования данных. К числу основных функций относятся надежный API, аналитика данных, интеграция в DevOps-процесс для непрерывного тестирования и быстрая проверка больших объемов данных.
3) Jenkins
Jenkins – инструмент непрерывного тестирования, написанный на Java. Его можно настроить через графический интерфейс или консольные команды.
4) Travis
Travis – инструмент непрерывного тестирования, размещенный на GitHub. Он предлагает множество разных языков и хорошую документацию.
5) Selenium
Selenium – инструмент тестирования с открытым исходным кодом. Он поддерживает все ведущие браузеры: Firefox, Chrome, IE и Safari. Selenium WebDriver используется для автоматизации веб-приложений.
Преимущества непрерывного тестирования
- Ускорение выпуска софта
- Улучшение качества кода
- Оценка покрытия бизнес-рисков
- Интеграция с процессом DevOps
- Создание гибких и надежных процессов за несколько часов
- Непрерывный механизм фидбека
- Объединение традиционно разрозненных команд для удовлетворения современных корпоративных потребностей
- Устранение пробела между разработкой, тестированием и операциями
- Автоматизированное тестирование помогает достичь согласованности, поддерживая одинаковую конфигурацию для всех соответствующих тестов
- Подчеркивание бизнес-ожиданий для снижения бизнес-рисков
- Предоставление повсеместного доступа к тестовой среде с помощью Service Virtualization
Проблемы непрерывного тестирования
- Традиционный процесс ограничивает культурный сдвиг среди разработчиков и QA
- Нехватка навыков DevOps и правильных инструментов для тестирования в Agile и DevOps средах
- Гетерогенные тестовые среды, которые никогда не будут отражать продакшн-среду
- Обычный процесс тестирования и слабо определенное управление тестовыми данными
- Более длительные циклы интеграции кода создают проблемы с интеграцией и запоздавшее исправление ошибок
- Неэффективные ресурсы и тест-среды
- Сложная архитектура приложения и бизнес-логика, ограничивающая DevOps-принятие
Материалы по теме:
Как выбрать язык программирования для изучения в 2019 году
Как работает Google Duplex и сможет ли он заменить человека
Интернет-тренды 2019 года: главное из отчета Мэри Микер
Модный интеллект: какие профессии из мира fashion заменит AI-разум
Нашли опечатку? Выделите текст и нажмите Ctrl + Enter