Искусственный интеллект в тестировании ПО: сценарии применения, лайфхаки и подводные камни

Искусственный интеллект в тестировании ПО: сценарии применения, лайфхаки и подводные камни
15.01.2024
#новости Искусственный интеллект в тестировании ПО: сценарии применения, лайфхаки и подводные камни
Искусственный интеллект в тестировании ПО: сценарии применения, лайфхаки и подводные камни

ИИ – ответ на актуальные вызовы


Специалисты IT_One начали исследовать возможности технологий искусственного интеллекта несколько лет назад, еще до появления хайпа вокруг Chat GPT. Они экспериментировали с построением нейронных сетей и методами машинного обучения в различных процессах и в том числе – при тестировании ПО.


Известно, что проведение тестирования сопровождается рядом объективных сложностей, связанных как с человеческим фактором, так и со спецификой этого процесса. Назовем основные из них.


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

Благодаря каким свойствам технологии искусственного интеллекта помогут справиться с этими сложностями?


1. Быстрый поиск ответа на узкоспециализированный вопрос. Вероятно, любой разработчик скажет, что Google – это один из важнейших инструментов в его работе, а с помощью Stack Overflow можно устранить большинство ошибок и найти причины проблем. Но при этом специалист тратит определенное время на поиск ответа, а если он получает несколько вариантов, ему необходимо еще и отработать их (то есть выполнить скоупинг результатов). Искусственный интеллект позволяет делать делать это быстрее: как искать варианты ответов, так и объективно оценивать большое количество мнений по тем или иным процессам тестирования.


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


3. Искусственный интеллект умеет определять систему, для которой пишется код, адаптировать к ней данные, находить взаимосвязи и т. д.


4. Запоминание предыдущих ответов. Если специалисту необходимо много раз задавать одни и те же вопросы чат-боту, в каждом следующем случае ему не придется заново проходить весь путь с начала.


5. Благодаря популярности искусственного интеллекта мы можем изучать разные мнения, максимально широко изучать возможности подходов к созданию и применению ML-моделей.


ИИ как эффективный инструмент. Практика использования


На рынке сегодня существует множество чат-ботов на основе нейросетей, которые с той или иной степенью успешности могут применяться тестировщиками. Среди них есть как глобальные решения (Chat GPT, Bing AI от Microsoft и т. д.), так и российские разработки (YandexGPT, GigaChat от Сбера и т. д.). На примере нескольких сценариев посмотрим, на что они способны.


Первый сценарий – разработка тест-кейсов. У тестировщика есть возможность загрузить чат-боту информацию о проекте – например, это могут быть бизнес-требования, инструкция пользователя, результаты аналитики – и попросить его на основе этих данных сформировать тест-кейсы. Также можно "познакомить" чат-бот с уже существующими тест-кейсами, чтобы он использовал их как пример при формировании новых.


В реальном примере мы попросили Chat GPT 3,5 отработать запрос для тестирования банковского приложения по такому описанию:


"Имеется следующее описание страницы


Контрагент: набор атрибутов определяется в зависимости от вида Контрагента – "Группа компаний", "Банки", "Физические лица".


Атрибут "Код клиента" существует для всех видов КА. Атрибуты "Код организации", "Страна" есть только у КА вида "Группа компаний" и "Банки".


Атрибуты "Дата рождения", "Номер паспорта", "Поручитель" есть только у КА вида "Физические лица".


Атрибут "Ставка" есть только у КА вида "Банки".


Составь тест-кейсы на основе этой инструкции".


Чат-бот моментально создал несколько тест-кейсов. Если их стиль показался некорректным, тестировщик может загрузить в систему примеры прошлых тест-кейсов с попросить чат-бот дополнить ответ в соответствии с заданным форматом.


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


"Имеется следующая таблица: (название таблицы и столбец).


Создай регулярное выражение для проверки правильности заполнения ИНН для физического лица, рожденного 12.04.1999 в Республике Башкортостан".


С этим заданием адекватно справились не все протестированные чат-боты. Но Chat GPT понял, что первые две цифры ИНН – это код субъекта (и сам узнал, какой код у Республики Башкортостан), следующие шесть цифр – дата рождения и т. д. Получившимся регулярным выражением вполне можно пользоваться.


Третий сценарий – автотесты. В работе тестировщика существует монотонная процедура, связанная с использованием паттерна Page Factory для упрощения и улучшения читаемости автотестов. Чтобы снизить процент рутины, предложим чат-боту создать на примере готовых объектов Page Factory похожие объекты для определенных Xpath. Чат-бот понимает, к какой системе мы хотим получить эти объекты, какие объекты есть, видит взаимосвязи. 


Подробнее по ссылке.