Всем привет! Я QA Engineer и недавно открыл для себя ChatGPT и хочу открыть этот мир другим тестировщикам. Эта статья не руководство к применению и каких-то суперлайфхаков здесь не будет. Цель этой статьи в том, чтобы показать огромные возможности нейросетей в помощи нам, тестировщикам, в работе. Надеюсь что кто-то, прочитав это, хоть немного сможет облегчить себе составление тест-кейсов, написание документации или написание автотестов. Примеров с написанием кода здесь по минимуму, так как таких материалов уже много. Небольшая вводная:
Преимущества применения ChatGPT в тестировании ПО:
Запрос:
Ответ
Первых 10 кейсов вполне хватит для проверки валидации, как я считаю, но я решил его помучать и попросил еще.
Ответ
После 21 кейса он уже начал фантазировать и придумывать свои требования, так как посчитал что на мои требования он написал достаточно. Это говорит о том что проверки которые он предлагает оптимальные и покрывают необходимые требования за минимальное количество кейсов:
Ответ
Запрос: "Составь матрицу компетенций для Manual Senior QA Engineer"
Ответ
Запрос:
Запрос: “Я пришел на новый проект. Как определить, какие тесты должны быть автоматизированы?”
Ответ
Запрос: "У нас есть список из 10 смартфонов которыми пользуются пользователи нашего сайта, напиши на каких разрешениях и операционных системах нам нужно тестировать сайт чтобы убедиться что у них все будет работать, а также цены этих смартфонов":
Можно также попросить его самому определить устройства.
Запрос: "Напиши список из 10 самых популярных смартфонов в интернете, напиши на каких разрешениях и операционных системах нам нужно тестировать сайт чтобы убедиться что у них все будет работать, а также цены этих смартфонов":
Ответ
P.S. подобную информацию лучше пока что перепроверять хотя бы точечно.
Запрос:
"Я скину тебе сайт, найди на его главной странице все элементы содержащие "Security", "Sign Up", а также поисковую строку и кнопки с ссылками на соц. сети внизу страницы и напиши мне уникальные локаторы этих элементов в формате XPATH
https://github.com/"
Ответ
Конечно, не все локаторы он нашел безупречно, но с чем-то справился и попробовать, в общем то, стоит:
Проверка локаторов
Запрос:
"Даны две таблицы В первой есть колонки: id, age, name Во второй id, salary, vacation_days Составь запрос который выведет name у которого наибольший age и его vacation_days"
Ответ с пояснениями
Запрос:
"Напиши пожалуйста код на Python + Requests который отправляет GET запрос на URL https://reqres.in/api/users?page=2 и проверяет статус код плюс валидность схемы JSON"
Ответ с комментариями
import requests
import jsonschema
url = 'https://reqres.in/api/users?page=2'
# отправляем GET запрос на URL
response = requests.get(url)
# проверяем статус код
if response.status_code == 200:
print('Статус код:', response.status_code)
else:
print('Ошибка! Статус код:', response.status_code)
# проверяем валидность схемы JSON
schema = {
"type": "object",
"properties": {
"page": {"type": "integer"},
"per_page": {"type": "integer"},
"total": {"type": "integer"},
"total_pages": {"type": "integer"},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {"type": "integer"},
"email": {"type": "string"},
"first_name": {"type": "string"},
"last_name": {"type": "string"},
"avatar": {"type": "string"}
},
"required": ["id", "email", "first_name", "last_name", "avatar"]
}
}
},
"required": ["page", "per_page", "total", "total_pages", "data"]
}
try:
jsonschema.validate(response.json(), schema)
print('Схема JSON валидна!')
except jsonschema.exceptions.ValidationError as err:
print('Ошибка валидации схемы JSON:', err)
Такие дела. Это лишь малая часть того что можно придумать. Я уверен что уже в этом году будут выходить нейросети, специализированные на тестировании ПО, какие функции они будут выполнять можно только представить. Возможно кто-то из прочитавших эту статью здесь вдохновится и сделает свой собственный продукт. Если бы я в университете знал что матрицы и матанализ могут мне понадобиться для написания своей нейросети то определенно учился бы лучше.
Кстати, в написании этой статьи мне также помогли нейросети ChatGPT, Notion AI и MidJourney.
Преимущества применения ChatGPT в тестировании ПО:
- Автоматизация генерации тестовых данных: ChatGPT может использоваться для генерации различных тестовых данных, таких как исходные данные и ожидаемые результаты, что может значительно ускорить процесс тестирования.
- Повышение качества тестирования: ChatGPT может использоваться для генерации более реалистичных и сложных тестовых случаев, которые могут помочь выявить более широкий спектр ошибок и проблем в ПО.
- Сокращение времени тестирования: ChatGPT может ускорить процесс создания тестовых случаев и тестирования, что позволяет сократить время, затрачиваемое на ручное тестирование.
- Ограниченность обучения: ChatGPT может быть обучен только на основе доступных данных, что может ограничить его возможности в создании более сложных тестовых случаев.
- Необходимость дополнительной проверки: ChatGPT может генерировать тестовые случаи, которые не всегда являются корректными и точными, поэтому требуется дополнительная проверка и ручное тестирование.
- Высокая сложность: ChatGPT - это достаточно сложная технология, что может потребовать дополнительных усилий для ее внедрения в процесс тестирования ПО.
1. Тест-кейсы
Я попросил ChatGPT написать тест-кейсы на форму авторизации, любимая задача на любом собеседовании QA. Конечно, ему понадобились условные требования для составления кейсов.Запрос:
Первых 10 кейсов вполне хватит для проверки валидации, как я считаю, но я решил его помучать и попросил еще.
Ответ
После 21 кейса он уже начал фантазировать и придумывать свои требования, так как посчитал что на мои требования он написал достаточно. Это говорит о том что проверки которые он предлагает оптимальные и покрывают необходимые требования за минимальное количество кейсов:
Ответ
2. Матрица компетенций
У нас маленький стартап и нет готовых матриц компетенций на позиции, а я хочу повышения и мне нужно знать к чему стремиться, чтобы объективно себя оценивать. А еще я могу взять эту матрицу и стать автором грейдов у себя в компанииЗапрос: "Составь матрицу компетенций для Manual Senior QA Engineer"
Ответ
3. Виды тестирования
Я пишу документацию и хочу описать виды тестирования, чтобы показать всей команде чем мы вообще занимаемся.Запрос:
- В чем цель нагрузочного тестирования?
- Каким методом проводить нагрузочное тестирование?
- Как определить что нагрузочное тестирование проведено успешно?
4. Как определить какие кейсы нужно автоматизировать?
Тоже, кстати, вопрос с собеседований:Запрос: “Я пришел на новый проект. Как определить, какие тесты должны быть автоматизированы?”
Ответ
5. Выбор мобильных устройств
Допустим у нас есть какая-то метрика девайсов и нам нужно передать задачу в закупку, выбрав нужные модели оптимально, рассмотрим пример:Запрос: "У нас есть список из 10 смартфонов которыми пользуются пользователи нашего сайта, напиши на каких разрешениях и операционных системах нам нужно тестировать сайт чтобы убедиться что у них все будет работать, а также цены этих смартфонов":
- Xiaomi Redmi 9C
- Samsung Galaxy A12
- OPPO A17
- Realme 8
- Xiaomi Redmi Note 11 Pro
- POCO X4 Pro
- Realme GT Master Edition
- Infinix HOT 12i
- iPhone 11
- iPhone 5s"
Можно также попросить его самому определить устройства.
Запрос: "Напиши список из 10 самых популярных смартфонов в интернете, напиши на каких разрешениях и операционных системах нам нужно тестировать сайт чтобы убедиться что у них все будет работать, а также цены этих смартфонов":
Ответ
P.S. подобную информацию лучше пока что перепроверять хотя бы точечно.
6. Поиск локаторов на странице
Я не хочу тратить много времени на написание теста, поиск и описание локаторов можно делегировать нейросети:Запрос:
"Я скину тебе сайт, найди на его главной странице все элементы содержащие "Security", "Sign Up", а также поисковую строку и кнопки с ссылками на соц. сети внизу страницы и напиши мне уникальные локаторы этих элементов в формате XPATH
https://github.com/"
Ответ
Конечно, не все локаторы он нашел безупречно, но с чем-то справился и попробовать, в общем то, стоит:
Проверка локаторов
7. SQL запрос
В SQL я не силен, но нужно срочно составить запрос и достать нужную информацию:Запрос:
"Даны две таблицы В первой есть колонки: id, age, name Во второй id, salary, vacation_days Составь запрос который выведет name у которого наибольший age и его vacation_days"
Ответ с пояснениями
8. API запрос на Requests
По-моему, с этим он справился лучше всего. Конечно весь проект такими тестами не покроешь, но по сути нагенерил себе кода, а потом дорабатываешь руками, почему нет:Запрос:
"Напиши пожалуйста код на Python + Requests который отправляет GET запрос на URL https://reqres.in/api/users?page=2 и проверяет статус код плюс валидность схемы JSON"
Ответ с комментариями
import requests
import jsonschema
url = 'https://reqres.in/api/users?page=2'
# отправляем GET запрос на URL
response = requests.get(url)
# проверяем статус код
if response.status_code == 200:
print('Статус код:', response.status_code)
else:
print('Ошибка! Статус код:', response.status_code)
# проверяем валидность схемы JSON
schema = {
"type": "object",
"properties": {
"page": {"type": "integer"},
"per_page": {"type": "integer"},
"total": {"type": "integer"},
"total_pages": {"type": "integer"},
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {"type": "integer"},
"email": {"type": "string"},
"first_name": {"type": "string"},
"last_name": {"type": "string"},
"avatar": {"type": "string"}
},
"required": ["id", "email", "first_name", "last_name", "avatar"]
}
}
},
"required": ["page", "per_page", "total", "total_pages", "data"]
}
try:
jsonschema.validate(response.json(), schema)
print('Схема JSON валидна!')
except jsonschema.exceptions.ValidationError as err:
print('Ошибка валидации схемы JSON:', err)
Такие дела. Это лишь малая часть того что можно придумать. Я уверен что уже в этом году будут выходить нейросети, специализированные на тестировании ПО, какие функции они будут выполнять можно только представить. Возможно кто-то из прочитавших эту статью здесь вдохновится и сделает свой собственный продукт. Если бы я в университете знал что матрицы и матанализ могут мне понадобиться для написания своей нейросети то определенно учился бы лучше.
Кстати, в написании этой статьи мне также помогли нейросети ChatGPT, Notion AI и MidJourney.
ChatGPT: новый инструмент в борьбе с багами. Как можно использовать AI для повышения качества тестирования
Всем привет! Я QA Engineer и недавно открыл для себя ChatGPT и хочу открыть этот мир другим тестировщикам. Эта статья не руководство к применению и каких-то суперлайфхаков здесь не будет. Цель этой...
habr.com