Обучение с подкреплением становится прорывом для модульного тестирования в разработке программного обеспечения

- Большие языковые модели (LLM) сталкиваются с проблемами при генерации точных модульных тестов из-за «галлюцинаций».
- Обучение с подкреплением, основанное на методе проб и ошибок, становится более эффективным решением для автоматизации написания модульных тестов.
- Diffblue Cover, используя обучение с подкреплением, может автономно создавать модульные тесты, превосходя LLM в сложных задачах тестирования.
В мире разработки программного обеспечения точность и аккуратность имеют первостепенное значение. Написание надежных модульных тестов является важным шагом для обеспечения надежности и функциональности программных приложений. Хотя большие языковые модели (LLMs), такие как ChatGPT, поразили сообщество ИИ своим лингвистическим мастерством, когда дело доходит до сложной задачи модульного тестирования, новый претендент emerged как более точное и экономически эффективное решение: обучение с подкреплением.
Проблема галлюцинаций LLM
Большие языковые модели, безусловно, революционизировали обработку естественного языка, предлагая высоко беглые и контекстуально релевантные ответы. Однако они не лишены своих ограничений. Одна из ключевых проблем, поражающих LLM, — это явление галлюцинаций, при котором они генерируют текст, который, хотя и грамматически правилен и семантически правдоподобен, в конечном итоге неверен или бессмысленен. Это ограничение вызвало обеспокоенность среди экспертов.
Обучение с подкреплением против LLM
Дебаты о эффективности обучения с подкреплением по сравнению с большими языковыми моделями в решении проблем модульного тестирования ведутся давно. Некоторые эксперты, включая Илья Сутскера из OpenAI, считают, что обучение с подкреплением, в сочетании с человеческой обратной связью, имеет потенциал устранить галлюцинации LLM. Однако другие, такие как Ян Лекун из Meta и Джефф Хинтон, ранее из Google, утверждают, что фундаментальные недостатки LLM делают их менее подходящими для этой задачи.
Модульное тестирование является критическим аспектом разработки программного обеспечения, обеспечивая выполнение индивидуальных компонентов программного приложения в соответствии с задуманным. Это не только гарантирует точность кода, но и экономит время и повышает производительность. Хотя LLM могут предлагать фрагменты кода для тестирования, они часто отдают приоритет обобщению над точностью, оставляя разработчикам проверку эффективности сгенерированного кода.
GitHub’s Copilot, работающий на базе производной GPT-3 от OpenAI, предлагает предложения по коду для модульного тестирования, но явно не генерирует модульные тесты. Он предоставляет разработчикам фрагменты для тестирования различных сценариев, служа ценной отправной точкой для написания комплексных модульных тестов. Однако Copilot не является заменой комплексной стратегии тестирования, так как человеческий надзор остается необходимым.
Представляем TiCoder
Чтобы решить проблемы модульного тестирования, исследователи из Microsoft Research, Пенсильванского университета и Калифорнийского университета в Сан-Диего разработали TiCoder (Test-driven Interactive Coder). Этот инновационный инструмент использует обработку естественного языка и алгоритмы машинного обучения для помощи разработчикам в генерации модульных тестов.
TiCoder взаимодействует с разработчиками, задавая вопросы для уточнения своего понимания их намерений. Затем он предлагает варианты и функции автозаполнения на основе контекста кода, синтаксиса и языка. Кроме того, TiCoder генерирует тестовые случаи и предлагает утверждения, облегчая процесс модульного тестирования.
Как Copilot, так и TiCoder, наряду с другими инструментами на основе LLM, ускоряют создание модульных тестов. Однако они служат помощниками ИИ для человеческих кодеров, которые должны проверять и дорабатывать свою работу. Эти инструменты повышают производительность, но не заменяют человеческий опыт в процессе разработки программного обеспечения.
Джефф Хинтон, видная фигура в ИИ, недавно покинувшая Google, подчеркивает важность обучения на основе проб и ошибок. Он проводит параллель с тем, как люди учатся играть в такие виды спорта, как баскетбол — через практику и эксперименты. Обучение с подкреплением, мощный метод ИИ, соответствует этой концепции и продемонстрировало исключительные результаты в таких задачах, как игры.
Diffblue cover: Пионер обучения с подкреплением
Один из замечательных примеров обучения с подкреплением в действии — Diffblue Cover. Этот инновационный продукт использует обучение с подкреплением для автономной генерации исполняемых модульных тестов без вмешательства человека. Он имеет потенциал автоматизировать сложные и подверженные ошибкам задачи тестирования в больших масштабах.
Подход Diffblue Cover включает поиск в огромном пространстве возможных методов тестирования, автоматическое написание тестового кода для каждого метода и выбор наиболее подходящего теста на основе различных критериев, включая покрытие тестов и стиль кодирования. Этот инструмент на базе ИИ может создавать тесты для каждого метода в течение нескольких секунд и предоставлять лучший тест для единицы кода всего за одну-две минуты.
Методология Diffblue Cover аналогична AlphaGo, системе DeepMind для игры в Го. Обе системы выявляют критические области в огромном пространстве поиска и используют обучение с подкреплением для принятия обоснованных решений. В случае с Diffblue Cover это включает генерацию методов модульных тестов и выбор наиболее эффективных тестов через систематический процесс.
Ограничения LLM
Когда дело доходит до таких задач, как автоматизация написания тысяч модульных тестов для сложной программы, обучение с подкреплением превосходит большие языковые модели. LLM, несмотря на их лингвистическое мастерство, не обладают способностью к эффективному человеческому надзору и коррекции в таких масштабах. Увеличение сложности LLM не решает эту фундаментальную проблему.
Хотя большие языковые модели, такие как ChatGPT, привлекли внимание своей беглостью и знаниями, они могут не быть идеальным выбором для точных задач, таких как модульное тестирование в разработке программного обеспечения. Обучение с подкреплением emerged как более точное и экономически эффективное решение, демонстрируя свой потенциал революционизировать эту область.
По мере роста спроса на надежность программного обеспечения интеграция обучения с подкреплением в процессы тестирования может стать значительным достижением в ландшафте разработки программного обеспечения.
Если вы читаете это, вы уже впереди. Оставайтесь с нами, подписавшись на нашу рассылку.
Отказ от ответственности. Предоставленная информация не является торговой рекомендацией. Cryptopolitan.com Мы не несем ответственности за любые инвестиции, сделанные на основе информации, представленной на этой странице. Мы настоятельно рекомендуем проводить независимое исследование и/или проконсультироваться с квалифицированным специалистом перед принятием любых инвестиционных решений.

Брайан Кум
Брайан Кум имеет более семи лет опыта в освещении блокчейна и криптовалют, активно работая в отрасли с 2017 года. Он публиковался в ведущих изданиях, включая BlockToday.com. Кроме того, он разработал курс «Ethereum 101» для BitDegree.org до перехода в Cryptopolitan в качестве штатного автора. Брайан пишет вечные руководства (EG), глубокие аналитические материалы, интервью и обзоры цен. Его фокус на DeFi, инновациях в блокчейне и новых криптопроектах радует читателей.
















