Анализ результатов автоматизированного тестирования — это очень важная и в то же время непростая часть тестирования. В любой момент у нас должна быть возможность оценить состояние продукта по результатам автотестов, сказал Марош Кутши на конференции QA Challenge Accepted. Он рассказал, как искусственный интеллект помогает экономить время на анализе, снижать количество человеческих ошибок и сосредотачиваться на новых сбоях.
Кутши рассказал, что его QA-команда сталкивалась с трудностями при анализе результатов автотестов и искала способ избавиться от человеческих ошибок:
«Если у вас каждую ночь запускается около 4000 тестовых сценариев, и примерно 5% из них падает, то ежедневно приходится разбирать около 200 сбоев».
Для этого они внедрили инструмент ReportPortal, который использует искусственный интеллект для анализа результатов автотестов. Этот инструмент можно бесплатно установить локально, on-prem, пояснил Кутши:
«Я админ: сделал PoC, настроил интеграцию и разрулил все проблемы. Коллеги-тестировщики из продуктовых команд пользуются им ежедневно».
Тестировщики заходят в ReportPortal, находят результаты запуска, за который отвечают, и видят, сколько сбоев находятся в статусе «Исследовать», сказал Кутши. Сбои, которые уже проявлялись ранее (и были проанализированы), ReportPortal автоматически относит к нужной категории. Для сбоев в статусе «Исследовать» необходимо выполнить стандартный анализ — отладить тесты и разобраться с root cause падения:
ReportPortal показывает результаты анализа: видно, сколько сценариев упало из-за багов продукта, ошибок в автотестах, проблем окружения, а сколько всё ещё остаются в статусе «Исследовать».
При первом использовании инструмент ничего не знает о сбоях, отметил Кутши. Тестировщики должны сами решить, является ли сбой багом продукта, ошибкой автотеста или проблемой окружения. В следующий раз, когда в системе произойдет тот же сбой, ему уже автоматически присвоится корректный статус на основе предыдущих решений, с помощью искусственного интеллекта.
Кутши также подчеркнул, что дашборды дают целостную картину тестирования и состояния приложения. Всё это видно в реальном времени: кто и над каким сбоем работает. Это помогает принимать решение о том, можно ли выпускать релиз.
Благодаря этому инструменту они экономят время на анализе, так как смотрят только на новые сбои, а не на все, объяснил Кутши:
«Разница в том, что если у вас сегодня 100 падений и только 2 из них новые, то вам нужно изучить лишь эти 2. Если инструмента нет, приходится ковыряться во всех 100».
Кроме того, человеческих ошибок становится меньше, так как инструмент самостоятельно классифицирует старые сбои, опираясь на ранее принятые решения. Это позволяет сосредоточить внимание на новых сбоях.
Искусственный интеллект будет принимать неверные решения, если его обучить на некорректных данных. «Если вы плохой учитель, то и ваш ученик (ReportPortal) будет работать плохо».
Бывали ситуации, когда один из коллег связывал сбой с неправильным тикетом в Jira или ставил сбою не тот статус.
«Систему можно “разучить” — просто поправив решение вручную», — добавил Кутши.
Если использовать искусственный интеллект правильно, он может сэкономить много времени и снизить количество ошибок, допускаемых человеком. После того как вы убедитесь, что система работает корректно, можно полагаться на неё вместо того, чтобы не приходилось вам с коллегами вручную разбирать все сбои.
InfoQ побеседовал с Марошем Кутши об использовании искусственного интеллекта для анализа результатов автоматизированного тестирования.
InfoQ: С какими трудностями вы столкнулись и как вы их решали?
Марош: Мы начали с PoC (proof of concept), который подтвердил, что мы можем интегрировать инструмент в нашу систему автоматизации тестирования.
Задачей затем стало убедить коллег следовать новому процессу анализа результатов тестов с помощью ReportPortal. Первоначально им нужно было классифицировать все существующие сбои, то есть проставить нужный статус (ошибка автотеста, баг продукта, проблема окружения) и связанный тикет в Jira.
Мы провели пилотное использование в выбранных командах, а затем подключили все команды. Отзывы по итогам пилота были положительными: тестировщики отмечали, что инструмент помогает им в разборе.
InfoQ: Чему вы научились?
Марош: Нужно убедиться, что искусственному интеллекту можно доверять, прежде чем начать на него полагаться.
Мы хотели убедиться, что ReportPortal принимает правильные решения. Решение зависело от того, как мы обрабатывали stack trace в нашей системе автоматизации тестирования и от настроек ReportPortal. В случаях, когда результат не соответствовал ожиданиям, мы игрались с настройками ReportPortal.
Большинство обсуждений сегодня касаются применения искусственного интеллекта для написания кода автотестов, но мы убедились, что анализ результатов автоматизированного тестирования — это тоже отличная область применения. Мы можем использовать искусственный интеллект (включая генеративный) для множества сценариев в тестировании.
Сотни автотестов падают каждый день, и в какой-то момент дело упирается не только в анализ, но и в саму архитектуру процессов. Как раз здесь важна инженерия: умение выстроить пайплайны, писать поддерживаемый код и избавляться от бесконечного копипаста. Приходите на бесплатные уроки по QA, которые помогут системно подойти к автоматизации и перестать тратить силы на рутину:
28 августа в 20:00 — Jenkins и эффективные CI/CD-конвейеры для автоматизации тестирования
4 сентября в 20:00 — Java Generics в автоматизации тестирования: практическое применение в UI и API тестах
17 сентября в 20:00 — Архитектура и написание backend-тестов
Тем, кто хочет не просто точечно подтянуть навыки, а системно развить экспертизу в автоматизации на Java — пригодится курс Java QA Engineer. Professional. Программа охватывает CI/CD, UI и API-тестирование, работу с Selenium, RestAssured и Selenoid, а также архитектурные практики, которые позволяют строить поддерживаемые тестовые проекты.