Автоматизация тестирования
Процесс тестирования ПО, где инициализация, выполнение, анализ и выдача результата производятся автоматически.
Цели
- Минимизация time-to-market за счет сокращения времени на регрессионное функциональное тестирование.
- Повышение качества ПО за счет расширения тестового покрытия и снижения риска пропуска дефектов, связанного с человеческим фактором.
- Улучшение качества процесса тестирования за счет возможности запуска автоматизированных тестов на любом этапе релизного цикла ПО.
- Высвобождение ресурсов функционального тестирования.
Результаты
- Сокращение сроков принятия решения о возможности внедрения передаваемого релиза или обновления системы.
- Выстроенный процесс, при котором производится автоматизированный запуск тестов с возможностью выбора времени запуска (по расписанию, по требованию, в результате неких событий), тестовой среды (dev, uat, predprod, prod), набора тестовых сценариев (smoke, regress, custom).
- Артефакты тестирования – стандартизованная отчетность, содержащая данные о каждом шаге выполняемых тестов и скриншоты с дефектами.
- Информация о статистике выполнения автотестов, количестве дефектов и частоте их воспроизведения.
- Документация на инструменты и инфраструктуру автоматизированного тестирования, позволяющие заказчику самостоятельно поддерживать, дорабатывать и запускать автоматизированные тесты.
Автоматизация UI-тестирования
Автоматизированное функциональное тестирование ПО на наличие дефектов при выполнении различных пользовательских сценариев. Для автоматизации тестирования UI обычно используются фреймворки типа Selenium, Atlas, Banjo и т.п. в связке с Cucumber, в случае использования BDD-подхода, или без него.
Цели
- Сокращение длительности итераций тестирования и time-to-market в целом.
- Улучшение качества продукта за счет снижения риска пропуска дефектов, связанного с человеческим фактором.
- Минимизация издержек на проведение регресса на разных тестовых средах.
- Сокращение времени и ресурсов на кроссбраузерное тестирование.
- Возможность автоматизированного регрессионного тестирования по расписанию, событийно и по требованию.
- Запуск автоматизированных скриптов в несколько параллельных потоков.
Результаты
- Возможность улучшения качества и увеличения частоты релизов за счет преимуществ автоматизации процессов.
- Снижение издержек, связанных с необходимостью постоянных однотипных проверок работоспособности базового функционала ПО.
- Минимизация издержек на расширение тестовой модели за счет вариативности входных данных.
Автоматизация API-тестирования
В отличие от тестирования UI, где взаимодействие производится с пользовательским интерфейсом, тестирование API предназначено для выявления дефектов на уровне взаимодействия с программным интерфейсом серверов.
Тестирование API обычно включает тестирование REST API или веб-сервисов SOAP с полезной нагрузкой сообщения в формате JSON или XML, отправляемой через HTTP, HTTPS, JMS и пр.
Для тестирования API используются свои фреймворки. Наиболее известными фреймворками, использующимися компанией являются REST Assured и Citrus Framework.
Цели
- Выявление проблем интеграционного взаимодействия, которые невозможно локализовать и диагностировать за счет тестирования UI.
- Выявление и локализация проблем самой тестовой среды на максимально ранней стадии.
- Сокращение издержек на локализацию дефектов за счет выявления их на нижнем слое взаимодействия.
- Низкая стоимость разработки и поддержки API-тестов по сравнению с UI минимизирует затраты на расширение тестовой модели за счет проверки граничных значений и вариативности тестовых данных на уровне бэкенда.
- Автоматизированная генерация тестовых данных через API.
- Экономия времени за счет стабильности и скорости тестовых прогонов.
Результаты
- Ранняя диагностика проблем интеграционного взаимодействия и тестовой среды
- Локализация дефектов, которые сложно или даже невозможно локализовать на уровне UI тестирования
- Значительное расширение тестовой модели с незначительными издержками на реализацию и поддержку автотестов, а также на время их выполнения.
- Снижение трудозатрат на разработку интеграционных тестов.
Автоматизация тестирования мобильных приложений
Проверка работоспособности приложения на различных мобильных устройствах и операционных системах. Различают нативное тестирование и тестирование с использованием Appium. Нативное тестирование осуществляется с помощью платформо-зависимых фреймворков — XCUITest для IOS и Espresso/Kaspresso для android-приложений.
Цели
- Сокращение трудозатрат на регрессионное тестирование.
- Значительное расширение тестовой модели за счет минимизации издержек на тестирование приложений на различных устройствах и версиях ОС.
- Возможность автоматизированного запуска регрессионного тестирования на любое, даже самое незначительное изменение приложения.
Результаты
- Возможность улучшения качества и увеличения частоты релизов за счет преимуществ автоматизации процессов.
- Автоматизация тестирования ПО на различных устройствах и версиях ОС.
Разработка и развертывание тестовой инфраструктуры (CI)
Развертывание и настройка системы CI для полностью автоматизированного тестирования, сбора и анализа отчетов. Осуществляется при помощи ПО с открытым исходным кодом Jenkins. Последнее время намечается тренд по переходу от Jenkins к Gitlab CI, встроенной в платформу Gitlab и обладающей глубокой интеграцией в систему управления версиями.
Цели
- Экономия технических и человеческих ресурсов.
- Возможность выполнения тестов на любом этапе жизненного цикла ПО любое количество раз, проверка эффекта от самого мелкого изменения.
Результаты
- Простая в поддержке и обслуживании гибкая инфраструктура для запуска автотестов, сбора и анализа отчетности.
- Возможность запускать регрессионное тестирование по требованию, расписанию и событию.