Это было повсюду в новостях, и если вы до сих пор не слышали об этом, пора ознакомиться с ChatGPT от OpenAI. Это невероятно мощный инструмент, работающий на искусственном интеллекте. Концепция заключается в том, что вы можете задать ему почти любой вопрос или поручить выполнить любую задачу, и он, гипотетически, ответит правильно или выполнит задачу за вас. Например, люди используют его для написания речей, составления электронных писем, исследования тем или даже написания кода. Хотя модель далека от совершенства, она все же очень впечатляет и содержит много полезной информации. Наш собственный Марк Харрис недавно продемонстрировал мне эту возможность с помощью простого скрипта, который управляет прибором для автоматизированного тестирования. Я решил пойти по этому кроличьему следу и поэкспериментировать с ChatGPT и автоматизированным тестированием. В этой статье мы рассмотрим, как начать работу с ChatGPT, научимся задавать ему вопросы и, что наиболее важно, поймем, какие правильные вопросы нужно задавать, чтобы добиться нужных вам результатов.
Прежде чем начать, вам захочется ознакомиться с ChatGPT и тем, что он может предложить. Сначала перейдите на chat.openai.com и зарегистрируйтесь или войдите в свой аккаунт. На момент написания этой статьи инструмент предлагался бесплатно, так что вы сможете начать работу сразу. Начните с простых вопросов, таких как «чему равно 1 + 1?» или «какого цвета небо?» После этого вы можете начать давать ему задания, такие как составление эссе, черновика электронного письма или написание простой функции в программном обеспечении. Интерфейс чистый и простой, просто введите сообщение в поле ввода внизу, как если бы вы отправляли любое сообщение, и нажмите на отправку (или нажмите Enter).
Как только вы почувствуете себя комфортно, ведя беседу с ChatGPT, вы можете начать экспериментировать, заставляя его генерировать для вас код. Простые запросы вроде «напиши функцию на C для сложения двух чисел» являются тривиальной задачей, с которой он легко справляется. Сложности начинаются, когда вы добавляете больше деталей к запросу. Мне нравится, когда весь мой код аккуратно упакован в маленькие классы, поэтому я явно говорю ChatGPT создать класс, который что-то делает для меня. Вот пример:
Вы также заметите, что я попросил его сгенерировать для меня тесты с использованием Pytest. Он также справился с этим запросом, но, к сожалению, код содержал ряд ошибок, с которыми было довольно сложно справиться. Тем не менее, это был отличный процесс, чтобы увидеть, как он структурирует код и модульные тесты. Я, безусловно, узнал кое-что новое, наблюдая за тем, как он генерирует код таким образом, который я сам бы не выбрал.
Один из описанных выше подходов заключается в том, чтобы ИИ предоставил вам инструмент (т.е. программную библиотеку), чтобы вы могли создать продукт (т.е. тестовый скрипт). Другой подход заключается в том, чтобы дать ChatGPT конкретные тестовые спецификации и позволить ему сгенерировать код для вас. Это отлично подходит для быстрого создания простых тестовых скриптов, чтобы начать работу, прежде чем потребуется настроить вашу среду и тестовые случаи. Давайте рассмотрим пример.
Я предоставил следующий, очень простой, набор инструкций ChatGPT для тестирования коммутируемого источника питания:
Напиши мне скрипт на Python с использованием Pytest для выполнения следующего:
1. Включить блок питания Rigol DP832 и установить его на 5В и 2А на канале 1
2. Включить электронную нагрузку Rigol DL3021 и установить нагрузку на постоянный ток 1.5А на 3 минуты
3. Выключить DP832 и DL3021
Я даже не включал в этот случай какие-либо конкретные тесты. Всё, что я хотел сделать, это убедиться, что мой преобразователь постоянного тока в постоянный может выдержать нагрузку 1,5А в течение 3 минут. Сгенерированный код был довольно неплох, но время от времени я сталкивался с ошибками, из-за которых его исправление становилось немного сложным. Вы также можете попросить ChatGPT включить в код конкретные утверждения или тесты на определенные сбои, но меня интересовало только тестирование основ с помощью приложения AI. Кроме того, вы даже можете запросить у него написание тестового класса (с моками или без) для проверки кода. Опять же, не всё было идеально. Мне пришлось подправить сам код и тестовый класс, чтобы всё работало безупречно.
В целом, эксперимент с ChatGPT был положительным опытом. Было приятно иметь «агрегатор», чтобы собрать некоторые концепции в коде, не прибегая к ручному труду или поискам примеров в интернете. Хотя это и не идеально, это всё равно было полезно и интересно экспериментировать. После прочтения этой статьи у вас должно сложиться достаточно хорошее понимание о том, как:
Я настоятельно рекомендую вам ознакомиться с этим и либо запустить примеры, которые я предоставил в этой статье, либо попробовать что-то своё. Имейте в виду, что ChatGPT все еще, технически, находится в бета-версии, так что не стоит слишком завышать ожидания. Будьте терпеливы и обязательно сообщайте ему, когда он допускает ошибки, чтобы он мог "учиться" на своих ошибках. Счастливого кодирования!