Перевод статьи «5 Powerful ChatGPT prompts for QA».
Пока рано говорить о том, что ИИ заменит тестировщиков в ближайшем будущем. Но необходимо понимать, что мы должны быть знакомы с написанием промптов – ввода в ЧатГПТ, чтобы быть продуктивными в своей работе.
Поэтому я начала изучать возможности ChatGPT, проверяя различные промпты, релевантные для QA-процессов, чтобы затем применять их при исполнении своих рабочих обязанностей.
Хотя я не слишком полагаюсь на ответы chatgpt, я нахожу его удобным для решения определенных задач. Система оказалась быстрой и помогла мне завершить несколько задач гораздо быстрее.
В этом блоге я поделюсь некоторыми из моих проверенных промптов ChatGPT для QA, которые я сохранила в своем блокноте для регулярного использования.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туториалов, задач по автоматизации и книг по QA.
Промпты ChatGPT для QA
Я считаю, что ChatGPT не может быть решающим для тестировщиков, поскольку тестирование ПО требует понимания контекста. ChatGPT может быть не в состоянии понять весь контекст и тонкости конкретного программного приложения, или его взаимодействия.
Если полагаться только на ChatGPT при создании тест-кейсов и сценариев, можно упустить критически важные аспекты, которые сможет учесть только QA-специалист, обладающий знаниями в данной области. ChatGPT может стать вспомогательным инструментом для QA, помогая в некоторых аспектах или предоставляя дополнение, но человеческий опыт по-прежнему важен.
Учитывая вышесказанное, я использую ChatGPT для некоторых задач, где не требуется детальное знание моего программного обеспечения. Например, когда разработчик вносит изменения в код – рефакторит длинный метод на мелкие, ChatGPT можно использовать для тестирования изменений. Кроме того, в ChatGPT можно писать юнит-тесты для проверки этих изменений.
Аналогично, при тестировании адресной формы ChatGPT можно использовать для генерации тестовых данных с минимальными усилиями.
Вот несколько задач, для которых я нахожу ChatGPT полезным, и я подготовил список промптов для тестирования QA:
- Генерация тест-кейсов для проверки изменений кода.
- Генерация тестовых данных.
- Обзор кода для выявления потенциальных проблем.
- Генерация кода для автоматизации тестирования.
- Помощь в документировании.
1 – Тест-кейсы изменений в коде приложения
Позиция опытного QA-специалиста с глубокими знаниями в области кодирования и лучших практик кодирования. Мне нужны примеры тест-кейсов проверки измененного кода, внесенное в наше приложение разработчиком. Для создания тест-кейсов следуй приведенным ниже рекомендациям, если что-то не ясно уточни перед созданием тест-кейсов.
1. Сгенерируй тест-кейсы, которые охватывают как положительные, так и отрицательные сценарии. При необходимости сгенерируй несколько тест-кейсов, различающихся по тестовым данным, чтобы охватить различные положительные и отрицательные сценарии.
2. Нужен тест-кейс, который проходит через обработку ошибок (блок catch) измененного кода. Если в коде нет блока catch, то предложи тест-кейсы, которые должны быть обработаны в блоке catch.
3. Нужны тест-кейсы охватывающие нефункциональные аспекты. Например, concurrency.
4. Тест-кейсы должны быть релевантны данному коду и не должны быть разработаны на основе предположений.
5. Тест-кейсы должны быть в табличном формате.
Как использовать этот промпт
Когда нужна помощь ChatGPT для создания подробных тест-кейсов для конкретного изменения кода. Это полезно во время проверки кода, чтобы убедиться, что разработчик добавил необходимые тесты, охватывающие как положительные, так и отрицательные сценарии. Используя этот пример, я могу обнаружить несколько потенциальных крайних случаев.
Например проверка изменения такого кода:
function calculateDiscount(bin) { // Visa range (5111 - 5222) const visaPattern = /^5[1-2]\d{2}/; // MasterCard range (4111 - 4444) const masterCardPattern = /^4[1-4]\d{2}/; if (visaPattern.test(bin)) { return 15.0; // Visa discount } else if (masterCardPattern.test(bin)) { return 10.0; // MasterCard discount } else { return 0.0; // No discount for other card types } }

2 – Пример ревью кода в ChatGPT
Роль : QA (тестировщика) , следуй приведенным ниже инструкциям по проверке корректности предоставленного мной кода.
Цель: Проверить корректность предоставленного кода. Определи потенциальные крайние случаи, обработай исключительные сценарии, и убедись, что код соответствует заданным требованиям. Дополнительно предложи мне список тест-кейсов к этому коду. Вот указания по проверке кода:
1. Понимание кода: Дай очень высокоуровневое объяснение кода и его назначения.
2. Проверка правильности ввода: Протестируй код с различными валидными, невалидными, недопустимыми символами юникода и т.д., чтобы убедиться в ожидаемом поведении. Выделите входные данные, которые могут не очень правильно обрабатываться кодом.
3. Граничные случаи: Проверить минимальное и максимальное возможное значение входного сигнала и соответствующие переменные.
4. Обработка исключений: Пропиши исключения и ошибки, чтобы проверить эффективность обработки исключений.
5. Проверить, есть ли в коде нефункциональные проблемы, например, утечки памяти, оцени, подходит ли код для многопоточности.
6. Соображения безопасности: Проверить основные аспекты безопасности и есть ли потенциальные уязвимости, такие как SQL-инъекции, межсайтовый скриптинг и т.д.
Дополнительная информация:
– Проверить, есть ли дополнительная информация, ограничения или предложения по улучшению предоставленного кода.
– Предоставить общую оценку кода, его читабельности и сопровождаемости.
– Примеры тест-кейсов включая крайние случаи, которые нужно выполнить для детальной оценки изменения кода.
Вот мой код: <_Вставить_Код_>.
Когда использовать этот пример
Я использую такие промпты, чтобы получить в ChatGPT советы по измененному коду. Я пытаюсь понять качество кода и, основываясь на советах ChatGPT, пытаюсь понять, можно ли что-то улучшить. Кроме того, это помогает обнаружить например уязвимости в системе безопасности.
3 – Промпт для создания тестовых данных
Мне нужна поддержка в создании полного набора тестовых данных для тщательной оценки устойчивости и функциональности поля ввода. Должны быть проверки чувствительности к регистру, в том числе вводы как с прописными, так и со строчными символами (например, “TestInput” и “testinput”). Также должны быть пробельные символы до и после, чтобы оценить, как система обрабатывает пробелы вокруг вводимых данных (например, ” Input123__”). Протестируй поле ввода с сочетанием символов, включая алфавитно-цифровые и специальные символы (например, “Input@123”). Проверить варианты ввода только цифр (например, “123456”) и только букв (например, “AlphaString”). Оцени поведение системы при вводе данных максимальной и минимальной допустимой длины. Проверить реакцию поля ввода на пустой ввод и оценить, как оно обрабатывает дубликаты. Проверить “сложные” символы и строки, типа Powerلُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ ॣ冗), символы юникода и латиницы, чтобы оценить безопасность и интернационализацию системы. Проверить крайние случаи, такие как null-символы и потенциальные попытки инъекций (например, “<script>alert(‘XSS’)</script>”).
Сгенерировать тестовые данные для этого поля ввода <input-field> в табличном формате.
Когда использовать этот промпт
Ответ от ChatGPT, для поля ввода имейла.
Тест-кейс | Ввод | Описание |
---|---|---|
1 | test@example.com | Основной валидный формат электронного адреса |
2 | Test@Example.com | Проверка чувствительности к регистру (верхний регистр) |
3 | tEsT@eXaMpLe.CoM | Проверка чувствительности к регистру (смешанный регистр) |
4 | user123@domain.com | Буквенно-цифровые символы |
5 | user.123@domain.com | Буквенно-цифровые символы с точкой |
6 | user@123domain.com | Буквенно-цифровые символы в домене |
7 | user@domain.123 | Буквенно-цифровые символы в домене верхнего уровня |
8 | __input@example.com | Пробел в начале строки |
9 | input@example.com__ | Пробел в конце строки |
10 | 543543 | Только цифровые символы |
11 | AlphaString | Только буквенные символы |
12 | special@characters! | Специальные символы |
13 | 123456 | Ввод только цифр с минимально допустимой длиной |
14 | A | Ввод только букв, с минимально допустимой длиной |
15 | verylongemailaddress1234567890@domain.com | Максимально допустимая длина |
16 | Пустая строка | |
17 | test@example.comtest@example.com | Дубликат |
18 | Powerلُلُصّبُلُلصّبُررً ॣ ॣh ॣ ॣ冗 | Строка с символами юникода |
19 | <script>alert(‘XSS’)</script> | Попытка потенциальной инъекции (XSS) |
20 | user@exåmple.com | Латинские буквы с диакритическими знаками |
21 | user@exámple.com | Символы Юникода с диакритическими знаками |
22 | user@domain..com | Двоеточие в домене |
23 | user@domaincom | Отсутствие точки в домене |
24 | user@domain.c | Одиночный символ в домене верхнего уровня |
25 | user@domain.com. | Точка в конце домена |
4 – Генерация кода автотеста в ChatGPT
Ниже приведен пример промпта для генерации кода даты, с детализацией.
Напиши на языке Java функцию для генерации будущей даты из текущей. Функция должна принимать входной параметр ‘NumberOfDays’ (N), представляющий количество дней, которые нужно добавить к сегодняшней дате. На выходе должна получиться строка даты, отформатированная как YYYY-DD-MM. Имплементируй функцию для точного вычисления будущей даты путем добавления указанного количества дней к текущей дате. Убедись, что функция должным образом обрабатывает крайние случаи и придерживается заданного формата даты.
5 – Промпт ChatGPT чтобы сгенерировать документацию
Специфика вашей подсказки может отличаться, но важно, чтобы в ней был такой же уровень детализации. Четко укажите каждый важный элемент, чтобы повысить релевантность ответа.
Мне нужна помощь в разработке описания листа Excel, которым я собираюсь поделиться с другими командами. Наша команда управляет сайтом магазина, и недавно мы ввели фичу, которая предлагает скидки в зависимости от стоимости корзины. Чтобы тщательно протестировать эту фичу, необходимо сотрудничество между командами, для проведения сквозного тестирования. Цель документа – систематически записывать тест-кейсы, выполненные разными командами, их результаты, найденные дефекты и важные артефакты, такие как скриншоты. Нужен формат электронных таблиц, позволяющий легко обмениваться информацией между командами. Цель – создать упорядоченный удобный документ для отслеживания процесса тестирования и его результатов.