Как ИИ генерит тест-кейсы. Сравнение с Junior QA (спойлер: джун хуже)

Весной 2023 года ChatGPT остается самой продвинутой и удобной системой генерации полезной информации (это если учитывать системы ИИ, публично доступные и полностью функциональные). ChatGPT доступен на территории России (об этом подробнее). 

Способна ли эта система генерировать приличные тест-кейсы? Коротко: да. Компания OurSky провела детальное исследование, сравнив результаты ChatGPT с тест-кейсами, написанными людьми.

Описание эксперимента

В эксперименте задавался один вопрос в ChatGPT, и тот же вопрос человеку; очень кратко, без подробных разъяснений, задание выглядело примерно так:

«Есть мобильное приложение с аутентификацией пользователей по имейлу и паролю. В приложении есть функции: создания учетной записи, входа, верификации по почте, восстановления пароля, и выход из системы. Напиши тестовые сценарии для каждой из этих функций.»

Чтобы упростить эксперимент, в OurSky принимали «дефолтные» ответы от обеих сторон, то есть самый первый сгенерированный (написанный) ответ, по возможности короткий. На практике, чтобы получать хорошие результаты от ChatGPT, нужно будет задавать более конкретные вопросы, с уточнениями.

Примечание: из-за большого объема текста здесь не будет примеров тест-кейсов. Чтобы получить общее представление об уровне компании OurSky — например ее opensource-проекты.

Раунд 1. Создание экаунта

Тест-кейсы, которые должен сгенерировать ChatGPT:

  • Верифицировать, что пользователь может ввести валидный имейл и пароль
  • Верифицировать, что пользователь может отправить заполненную форму и после этого будет перенаправлен на соответствующую страницу (success page)
  • Верицифировать, что пользователь не сможет отправить форму, если нужные поля не заполнены или не валидные
  • Верифицировать, что пользователь не сможет создать учетку, привязанную к уже зарегистрированному имейлу
  • Верифицировать, что пользователь увидит предупреждение об ошибке, если в процессе создания учетки он допустит ошибки

Тест-кейсы, которые должен написать тестировщик-джун:

  • Создать учетную запись с имейлом и паролем, которые соответствуют требованиям
  • Создать учетку с незаполненными обязательными полями
  • С некорректным форматом, например имейл без  @ 
  • С паролем, не отвечающим требованиям по сложности пароля (спецсимволы и т.п.)
  • С мейлом, который уже зарегистрирован

Результат — Человек победил, но с очень небольшим отрывом

Искусственный интеллект вполне справился с задачей. Создал нужные сценарии, как позитивные, так и негативные. Было замечено, что ChatGPT отдает больше приоритета тестовым сценариям с UI; в то время как человек оказался эффективнее в тест-кейсах со сложными вариантами пользовательского ввода.

Эти вещи одинаково важны в тестировании приложений, но в реальных условиях «человеческие» тест-кейсы обеспечат более высокое тестовое покрытие; с другой стороны, ориентированность ChatGPT на тестирование интерфейса может рассматриваться как его преимущество.

Раунд 2. Тест-кейсы входа в систему

Тест-кейсы для ChatGPT:

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

Тест-кейсы для человека:

  • Войти с корректным имейлом и паролем верифицированной учетки
  • Войти с корректным имейлом и паролем не верифицированной учетки
  • Войти с незаполненными обязательными полями
  • — с незарегистрированным имейлом
  • — с неправильным паролем

Результаты: ничья

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

Человек чуть лучше написал тест-кейсы с функциями типа верификации по почте; ChatGPT для этого требуются небольшие дополнения/уточнения вопросов, например детальнее прописать многоэтапные сценарии user flow — и тогда ИИ справится как минимум не хуже junior QA.

Раунд 3. Верификация учетки

Тест-кейсы ChatGPT:

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

Тест-кейсы для человека

Предположим, что пользователь не может войти без верификации, и что ссылка для верификации представляет собой диплинк, который открывает приложение и верификация завершается в приложении. Тест-кейсы:

  • Кликнуть ссылку, чтобы завершить верификацию
  • Кликнуть ссылку, если она уже просрочена
  • — если она с невалидным URL
  • Сделать запрос повторной отправки ссылки в приложении
  • Кликнуть просроченную ссылку после запроса новой ссылки
  • Кликнуть ссылку после входа в другой экаунт в этом приложении
  • Кликнуть ссылку верификации, если приложение в фоновом режиме
  • — если приложение принудительно закрыто
  • — если приложение было удалено

Результаты: Человек победил, но!

Ответы ChatGPT представляли собой список этапов проверки, что функции верификации работают нормально в позитивных сценариях (happy flow). ИИ сгенерировал много шагов и все они поначалу выглядели более-менее корректными; но некоторые сценарии пришлось вручную сгруппировать (тест-кейсы 1-6) в отдельный test flow; потом оказалось, что кейсы 7-8 частично совпали с некоторыми предыдущими (то есть по факту их можно считать ошибочными); или почти полностью совпали с 1-6 (тест-кейсы 9 и 11), то есть в итоге получилось несколько ошибочных тест-кейсов, или по крайней мере требующих серьезной доработки/уточнения.

Человек продемонстрировал намного лучше результаты, покрыв много тестовых условий и ситуаций.

Предварительный вывод: сложные сценарии, без уточняющих данных, (пока) проблемные для ChatGPT; идеальные тест-кейсы ИИ генерировать сейчас не умеет.

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

(В реале, чтобы получить хорошие тест-кейсы в ChatGPT, понадобятся примерно такие уточнения по статусам верификации):

  • Может ли пользователь залогиниться в приложение, если имейл еще не верифицирован?
  • Если он верифицируется по ссылке, сколько ошибочных состояний может возникать? Просроченная ссылка, некорректная ссылка, и так далее.
  • Если он верифицируется по коду, а не по ссылке, сколько ошибочных состояний может возникать? Просроченный код, некорректный код, превышение количества попыток, и т.п.
  • Есть ли другие пользовательские статусы, которые приведут к неудачной верификации? Пользователь с ограниченными правами временно/постоянно, удаленный экаунт, и пр.

Уточнения по user flow:

  • Сколько «точек входа» в верификацию по почте?
  • В каких точках возможно изменение состояний после успешной верификации, и сколько их (на веб-портале, в приложении)?
  • После верификации пользователю отправляется письмо и/или push-уведомление?
  • Как ссылка обрабатывается, если приложение в фоновом режиме, закрыто, удалено, и т.п.

Раунд 4. Сценарии сброса пароля

Тест-кейсы для ChatGPT

  • Верифицировать, что пользователь может ввести свой имейл, заполнить и отправить форму сброса пароля
  • — что пользователь получит письмо со ссылкой на сброс пароля
  • — что пользователь может кликнуть по ссылке на сброс пароля и будет перенаправлен на нужную страницу
  • — что пользователь увидит сообщение об ошибке, если возникнут любые ошибки в процессе сброса
  • — что пользователь может сбросить пароль и войти с новым паролем

Тест-кейсы для человека

  • Заполнить и отправить форму сброса пароля с валидным и зарегистрированным имейлом
  • Отправить форму с пустым полем имейла
  • — с незарегистрированным имейлом
  • Получить письмо со ссылкой на сброс, выполнить инструкции и создать новый пароль
  • Попытка создать тот же пароль (который уже был)
  • Пароль не отвечающий требованиям по длине и спецсимволам
  • Вход с новым паролем после сброса старого
  • Вход со старым паролем после его сброса

Результаты: неуверенная победа джуна

ChatGPT сгенерировал более-менее приличный тестовый сценарий, который покрывает позитивный user flow, и в нем много шагов; был включен только один негативный сценарий с ошибкой, который пытался покрыть «любые гипотетические ошибки», чего в принципе недостаточно для хорошего тест-кейса.

Человек очень хорошо прописал все условия ошибок, и разделил их по разным test flow. Это удобно, особенно в эджайл-проектах. Но примерно такого же качества можно добиться и от ChatGPT, имея больше времени и уточняя запросы.

Раунд 5. Сценарии выхода из системы

Тест-кейсы для ChatGPT:

  • Верифицировать, что пользователь может нажать кнопку выхода из системы и будет перенаправлен на страницу входа
  • — что пользователь не может получить доступ к любой защищенной странице после вылогинивания
  • — что пользователь будет перенаправлен на страницу входа, если попытается зайти на защищенную страницу без аутентификации
  • — что пользователь может снова зайти со своим имейлом и паролем после того как вылогинился
  • — что сессия пользователя полностью стирается после его выхода

Тест-кейсы для человека:

  • Показать диалог подтверждения и подтвердить выход
  • Отмена выхода в диалоге
  • После выхода пользователь не должен иметь доступ к запароленным страницам
  • После выхода пользователь перестает получать push-уведомления, отправляемые залогиненному пользователю
  • Войти под тем же логином после выхода, и проверить корректность пользовательских данных
  • Войти под другим логином после выхода, и проверить корректность пользовательских данных

Результат: 50/50.

Как и в раунде сценариев входа, ChatGPT и джун оказались одинаково способны создать неплохие тест-кейсы, особенно позитивные, а также прописать ограничения доступа после выхода, и повторный вход.

Объяснение задачи преднамеренно было неполным, без уточнений, и оба претендента создали некоторые «общие UX-сценарии»:

  • Перенаправление на страницу входа после выхода и после попытки зайти на защищенную страницу
  • Отображение диалога подтверждения перед тем как пользователь нажал «Выйти»

При этом ChatGPT был более аккуратным и подробным, что касается навигации по приложению; а джун более детально прописал проверку удаления сессии.

Почему джун по факту проиграл?

После прочтения может возникнуть впечатление, что джун победил, а название статьи ради хайпа:

соврал

Как бы да, но есть нюанс. Дело в том, что, по крайней мере в данном случае, до победы ChatGPT оставалось «всего ничего»: поуточнять некоторые запросы.

И понятно, что так и будет делать любой тестировщик, использующий ChatGPT в реальной работе.

Аналогия с боксерским поединком: конкретно этот бой ChatGPT может и проиграл по очкам, но разница небольшая, и это будущий чемпион.

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

По крайней мере этот помощник очень быстро работает, на порядок быстрее любого человека. Он справляется с объемным тест-кейсом (да даже десятком их) за несколько секунд; самый толковый джун не способен так быстро работать, при всем желании.

Даже без уточнений, подсказок, и примеров (которые резко повышают качество тест-кейсов) ChatGPT может выдавать неожиданно хороший результат; как минимум не хуже, а в среднем чуть лучше, чем человек-джун или стажер, если речь идет о простых, распространенных use-кейсах, особенно позитивных; также у него хорошо получается валидация пользовательского ввода, CRUD-операции и подобное не очень сложное.

Еще раз напомним, что если задавать ChatGPT наводящие/уточняющие запросы (и знать как это делать эффективно), то превосходство ИИ становится уж совсем явным. Фигурально говоря, «он все сделает, если ему объяснить».

Быстрое решение большого количества простых задач в QA — в данное время такая функция в QA вполне по плечу искусственному интеллекту, и этот быстрый понятливый помощник вполне затребован в QA.

Заменить собой стажера — скорее всего да. Джуна, во многих случаях — да. Заменить миддла QA или тем более сеньйора — нет, ChatGPT, безусловно, не способен.

Перспективы

Чего ждать тестировщику-джуну или стажеру на испытательном? Будущее выглядит примерно так: 

  • Тестировщики будут экономить массу рабочего времени, на написании стандартных тест-кейсов, на которые ChatGPT, кажется, уже неплохо «натаскали».
  • Похоже на то, что уже в ближайшие месяцы/годы QA-инженеры уровня Trainee/Junior, по крайней мере в передовых компаниях, должны/будут вынуждены осваивать ИИ-инструментарий.
  • Который отберет у них существенную часть рабочих функций.
  • При этом сделает остальные задачи более творческими.
  • Придется прокачать/переориентировать свои хард-скиллы на техники тестирования, связанные с ИИ.

Говорим не только о ChatGPT. В сфере ИИ уже присутствуют российские проекты, по крайней мере претендующие на тот же уровень, или способные достичь того же уровня, через несколько месяцев или может быть лет; это лишь вопрос времени, а не инструмента. Похоже на то, что многие рутинные операции, сейчас поручаемые Junior QA, будут рано или поздно автоматизованы в ИИ.

В то, что ИИ-инструменты известных компаний (в первую очередь Microsoft и Google) смогут обеспечить качество тест-кейсов как в ChatGPT — вполне верится. Как и в то, что весьма скоро могут быть созданы ИИ-инструменты для QA, ориентированные на автоматическую генерацию стандартных тест-кейсов; или они будут даже изначально интегрированы в распространенные QA-инструменты. 

В общем, те джуны, которые сумеют освоить работу с ИИ (а это достаточно просто) — удержатся в должности, и даже, скорее всего, будут работать лучше, более эффективно, и более креативно, возложив на ИИ утомительные задачи. Оставив себе только проверку/исправление/поддержку QA-продуктов, сгенерированных ИИ (и это, разумеется, не только тест-кейсы — здесь тоже большой плюс ИИ).

***

Стоит отметить, что весьма скептических взглядов придерживается ряд признанных авторитетов, в частности QA-гуру австралиец Жимин Чжан (автор 12 книг о тестировании), и его поддержали другие известные лекторы и коучи. Более-менее подробно причины их скептицизма изложены здесь. Мы даём и такие точки зрения — для полноты картины.

***

UPD 3.07.2023: по мере того как уходит волна хайпа, ChatGPT постепенно превращается в обычный рабочий инструмент, включая и QA. Все уже к нему привыкли и больше не воспринимают как нечто необычное, сверхумное, угрожающее.

***

Какой была ваша первая зарплата в QA и как вы искали первую работу?

Мега обсуждение в нашем телеграм-канале о поиске первой работы. Обмен опытом и мнения.

1 КОММЕНТАРИЙ

Подписаться
Уведомить о
guest

1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Игорь
Игорь
1 год назад

А спойлер для чего был? Ведь Джун как минимум не проиграл.

Мы в Telegram

Наш официальный канал
Полезные материалы и тесты
Готовимся к собеседованию
Project- и Product-менеджмент

? Популярное

? Telegram-обсуждения

Наши подписчики обсуждают, как искали первую работу в QA. Некоторые ищут ее прямо сейчас.
Наши подписчики рассказывают о том, как не бояться задавать тупые вопросы и чувствовать себя уверенно в новой команде.
Обсуждаем, куда лучше податься - в менеджмент или по технической ветке?
Говорим о конфликтных ситуациях в команде и о том, как их избежать
$1100*
медианная зарплата в QA в июне 2023

*по результатам опроса QA-инженеров в нашем телеграм-канале

Собеседование

19%*
IT-специалистов переехало или приняло решение о переезде из России по состоянию на конец марта 2022

*по результатам опроса в нашем телеграм-канале

live

Обсуждают сейчас

casibomcasibomjojobet girişHOLİGANBETjojobetCasibomCasibom Girişcasibomholiganbet girişCasibomholiganbet girişcasibom girişCasibomjojobetcasibomcasibomcasibom girişCASİBOMholiganbet girişizmir escort bayanjojobet girişCasibom Giriş