| Как я сделала отчет о дифференциальном тестировании через Cursor |
| 30.07.2026 00:00 | |||||||||||||||||||||
|
Автор: Ольга Назина (Киселёва), автор курса Школа для начинающих тестировщиков Я хочу рассказать, как я сделала отчет о дифференциальном тестировании (сравнение двух функций на одних данных) через ИИ. Знаю, что многие уже применяют ИИ и в хвост и в гриву, но также много тех, кто пока не умеет этого делать.
Поэтому я хочу показать на конкретном примере из жизни, где еще несколько лет назад пришлось бы делать красивый отчет в ручную, а теперь его делает робот за пару минут. Возможно, это вдохновит вас тоже попробовать сделать нечто похожее =)) Содержание Мой пример1. Проведение тестированияТестировала задачу исследования — изменение коэффициента похожести для поиска дублей. То есть функция определения коэффициента уже есть, работает. Но решили «тут поменять, там поменять», и посмотреть, станет ли лучше. Поэтому это и называется задачей исследования — мы не сразу заменяем старую функцию новой, а проводим эксперимент:
Вторую функцию сделали, моя задача была — провести шаги 2-3. И частично 4, нужно красиво-понятно отобразить отчет о тестировании, чтобы аналитик его изучил и потом уже принимал решение. Тестовые данные я подготовила сама. Посмотрела на ТЗ и так, и эдак, и поняла, что я дольше буду расписывать ИИ, что именно тут надо сделать, чем сделаю это сама. Хотя ИИ я все равно погоняла и в хвост, и в гриву для сбора тестовых данных, но об этом я расскажу в следующий раз. Данные собрала, потом написала автотесты. Выглядят они примерно так (для простоты понимания будем сравнивать ФИО): Что тут есть:
Обычно в автотестах делают разные файл — что подается на вход, что получаем на выходе. Но у меня выходной параметр всего один (коэффициент), поэтому он записывается сразу внутри теста. Если автотест упадет, выглядеть это будет так (допустим, вместо коэффициента 99 вернулся 0): Expected: [2/Similarity]:99 Actual: [2/Similarity]:0 Input data: 1. Опечатка в отчестве;99;Назина;Ольга;Евгеньевна;Назина;Ольга;Еквгеньевна Etalon data: 1. Опечатка в отчестве;99;Назина;Ольга;Евгеньевна;Назина;Ольга;Еквгеньевна Result data: 1. Опечатка в отчестве;0;Назина;Ольга;Евгеньевна;Назина;Ольга;Еквгеньевна Это стандартный вывод автотестов:
Да, в моем случае Input и Etalon совпадают, но зато такое решение работает как для разных входных-выходных файлов, так и для одного. Итак, автотесты я сделала. Получилось их довольно много, больше 300, так как много разных сценариев нужно было покрыть + на каждый сценарий надо было сделать 2-6 тестов (тест-дизайн и все такое). Прогнала на новой функции — 100 падений (цифры эти для примера, но чтобы показать масштаб проблемы формирования результата). Сохранила результаты прогона в файл new.txt. Прогнала на старой функции — 200 падений (то есть новая работает лучше). Сохранила результаты прогона в файл old.txt. Огонь, осталось оформить! 2. Оформление результатаЯ подумала — как я хочу видеть результат? Хорошо бы в виде таблички, чтобы сразу видно “эта функция справилась, эта нет”. Взяла из результатов прогона новой функции первое падение (см пример выше) и на его основе накидала в конфлюенсе такую табличку:
По сути я просто вытащила все колонки из теста и добавила в конец 3 новые для анализа результата:
Что писать в колонки прогонов:
Ну и, конечно, результаты надо бы сгруппировать:
И внутри еще сгруппировать (помните ведь, что падений было 200+, да?). Я посмотрела глазками отчеты и выделила некоторые повторяющиеся падения. Допустим, есть проблема в двойном имени. Тогда все сценарии, в которых оно участвует, упадут. И вот эти падения хотелось бы сгруппировать, чтобы:
Так, работа понятна! Но делать ее вручную — это ж капец сколько времени! Вытащить из результатов падений что-то одно (например, строку Result data), чтобы открыть в экселе, а не блокноте, чтобы это все скопировать и вставить в таблицу в конфлюенсе. Но ведь все группировки придется делать вручную! Да, можно через поиск их находить и копировать пачками, а потом удалять в прогоне и смотреть, что осталось, но все равно это очень унылая работа. А вот робот с рутиной справляется на ура! Главное, четко сформулировать ему, что именно ты хочешь. И показать, в каком виде тебе это нужно сделать. А у меня и это есть, вон табличка с примером. Я выгрузила эту табличку из конфлюенс в ворд-файл test_results_demo.docx, чтобы скормить ИИ. Правда, пришлось внести коррективы уже на этом этапе. Исходно то я и правда вставила в конфлюенс тест «как есть», где фамилия, имя и отчество находятся в разных ячейках. В конфлюенсе это выглядело очень красиво, а вот в выгрузке в ворд — нет. Слишком много колонок, табличку просто разносит. Да, можно сделать альбомную ориентацию, но я так прикинула… И собрала ФИО в одну колонку, просто выписав каждый компонент на новую строку. Тоже удобно вышло, и в ворд выгрузилось нормально. Ну и все, теперь у меня есть все нужные данные и примеры для ИИ, для удобства я положила их все в папку C:\tmp. Работать я решила в Cursor — это инструмент, внутри которого есть разные ИИ-модели. Фишка работы в нем — ты пишешь свои пожелания на простом русском языке, а он сам все делает. То есть пишет все необходимые скрипты, запускает, прогоняет… Очень удобно! У меня Cursor Pro, но для этой задачи подошла бы и бесплатная версия. Я не меняла ИИ-модель, какую он предложил (Composer 2.5), с той и общалась. На компьютере установлен питон, потому что для похожих задач ИИ часто использует его. 3. Промпт для Cursor-аОсталось написать промпт! У меня получилось вот так:
Вот и все. Важно просто прописать роботу все подробности — что в какой колонке смотреть, что в каком случае писать. И он все сделает! Курсор немного пошуршал, анализируя мои файлы, составляя питон-скрипт для работы, выполняя его… И выдал результат!
Дальше копируем из ворда в конфлюенс, пишем свои выводы, добавляем комментарии, где это надо, и передаем аналитику красивый отчет! ИтогоЯ даже представить боюсь, сколько времени у меня бы ушло на красивый отчет без помощи ИИ. Это ладно, когда надо десять падений выписать, но 200+... Как хорошо, что теперь есть, кому делегировать эту работу! Что для этого нужно сделать? Только составить промпт. А для этого сесть и подумать:
И всё. Отдаем промпт курсору и идем пить чай, пока робот работает =)) Статья написана в помощь студентам курса Применение ChatGPT в тестировании.
|
|||||||||||||||||||||