Этот проект представляет собой эксперимент, ориентированный на использование LLMS (Chatgpt 4, Claude) для генерации кода HTML, CSS и JavaScript, который соответствует требованиям пользователей с помощью подсказки.
После ручного создания тестовых сценариев драматурга экспериментаторами затем предоставляются подсказки для LLMS для создания тестовых сценариев драматурга, которые могут полностью охватить все требования пользователей.
Скрипты вручную и сгенерированные драматургии сравниваются, и на основе результатов анализируется возможность использования LLM для генерации чисто передних веб-страниц и автоматического генерации тестовых сценариев E2E.
Всего будет проходить четыре независимых эксперимента (test1 ~ test4), причем каждый тест проводится другим разработчиком. Каждый эксперимент будет иметь различную задачу, то есть требования пользователей, состоящие из веб-задач, которые можно решить с использованием HTML, CSS и JavaScript. Задачи приведены в файле PDF, расположенном в каждой тестовой папке.
Эксперимент будет разделен на следующие три задачи :
Описание задачи:
Поскольку будут протестированы два LLM (CHATGPT-4, Claude), протестированные LLM будет обозначаться в соответствии с экспериментом. Подсказки будут переданы назначенному LLM, и эти подсказки должны включать все требования задачи, такие как дизайн пользовательского интерфейса, шаблоны взаимодействия и функциональность, как описано в задаче. Подсказки должны следовать повествовательной структуре, похожей на пользовательскую историю.
Каждое значительное улучшение в результатах и используемых подсказок должно быть задокументировано в файле prompts_record.md для последующего анализа. Тестирование будет продолжаться до тех пор, пока Кодекс, сгенерированный LLM, не будет соответствовать всем требованиям задачи (первоначально оценивается вручную).
Результаты:
prompts_record.md ), документирующий каждое значительное улучшение и используемые подсказки.Описание задачи:
Используя структуру драматурга, напишите тест E2E для данной задачи в TypeScript. Этот тестовый скрипт должен убедиться, что код, сгенерированный LLM, соответствует требованиям. Кроме того, необходимо инструктировать LLM добавлять атрибуты data-testid и aria-label к соответствующим тегам HTML, и эти атрибуты следует использовать в качестве селекторов в тесте, а не для селекторов CSS (основная цель-ознакомить участников с использованием драматурга для автоматизированного тестирования).
Результаты:
Описание задачи:
Подсказки будут предоставлены назначенному LLM для создания тестового сценария E2E в TypeScript с использованием Playwright. Этот тестовый скрипт должен быть в состоянии убедиться, что все требования задачи выполняются. Подобно первой задаче, каждое значительное улучшение и используемые подсказки должны быть задокументированы в prompts_record.md для анализа.
Результаты:
prompts_record.md ), документирующий каждое значительное улучшение и используемые подсказки. Yuankai619 для test1
OWEN0806 для test2
Zihan0221 для test3
Deeveer для test4
Снимки каждого сценария тестирования драматурга: https://yuankai619.github.io/llm Generated-web-and-playwright-e2e-testing/
| тест | Соответствует ли веб -странице требования | Полностью тестовый скрипт полностью покрывает тестирование |
|---|---|---|
| тест1 | ✅ | ✅ |
| тест2 | ✅ | ✅ |
| тест3 | ✅ | ✅ |
| тест4 | ✅ | ✅ |
| тест | Количество итераций быстрого обращения в LLM для создания Интернета | Количество итераций подсказок, приведенных LLM для создания тестового сценария |
|---|---|---|
| тест1 | 4 | 5 |
| тест2 | 3 | 2 |
| тест3 | 3 | 5 |
| тест4 | 2 | 1 |
Основываясь на результатах четырех тестов, мы можем сделать вывод, что нынешние LLMS способны итеративно генерировать веб -код, который соответствует требованиям под наблюдением человека. Кроме того, они могут генерировать соответствующие рамки тестирования Playwright E2E на основе заданных требований и указанных рамок. Тем не менее, последовательный человеческий надзор и итерация важны для достижения удовлетворительных результатов.
Test1 служит ярким примером. Задача требовала «случайности», которая представляла проблему для LLM при создании тестов, которые могли бы эффективно обрабатывать этот аспект. Кроме того, если в JavaScript были записаны преднамеренные задержки, сгенерированные тесты часто не смогли правильно учитывать их.
Следовательно, если цель состоит в том, чтобы LLMS автоматически генерировали тесты на основе исходного кода и требований, необходимо также рассмотреть проблему различения ошибок в тестах от ошибок в самом коде. Это область, которая требует дальнейшего изучения.