Интервью гостей Бу Шаопэн, Чжоу Ле
Редактор | Лин Мин
В области тестирования программного обеспечения «тестирование на обезьянах» всегда было популярным методом, но оно также имеет ограничение на случайные действия. Что, если мы представим большие модели и создадим более умную обезьяну, которая сможет понимать приложение и взаимодействовать с ним, как человек?
Ранее внутренняя группа Microsoft создала и открыла исходный код кросс-платформенной инфраструктуры тестирования программного обеспечения Hydra Lab (https://github.com/microsoft/hydralab). В настоящее время служба системы облачного тестирования, поддерживаемая Hydra Lab в Microsoft, находится в разработке. в сочетании с Microsoft Phone Link, Link to Windows, Teams, Outlook, Edge и другими линейками продуктов. Чтобы создать более умную обезьяну, в этом году Hydra Lab подключилась к LLM (Azure OpenAI Service), чтобы улучшить свои возможности в области анализа результатов тестов, исследовательского тестирования и создания тестовых примеров.
в этом году 9 луна 3-5 держался QCon На Международной конференции по разработке программного обеспечения в Пекине старший менеджер по исследованиям и разработкам Microsoft в Китае Бу Шаопэн поделился Hydra Lab технические идеи, а также его понимание и практический опыт интеллектуального тестирования программного обеспечения. Недавно InfoQ Верно Шаопэн, эксперт по серверным технологиям тестовой платформы Microsoft Чжоу Лепровел эксклюзивное интервью。Ниже приводится стенограмма разговора, отредактированная。
InfoQ: Господин Бу, можете ли вы представить проект Hydra Lab?
Бу Шаопэн:Hydra Lab Это проект, который совершенствовался в Microsoft около двух лет. По мере того, как проект продолжает развиваться, в нем приняли участие все больше партнеров. Мы вместе преодолели множество ловушек и получили различную поддержку от руководства. Легко, заранее большое спасибо команде. В настоящее время тестирование программного обеспечения вступило в эпоху автоматизации, но по-прежнему существует большое количество ручных тестов. В последние годы с AI Благодаря постоянному развитию технологий мы видим возможность перехода от автоматизации тестирования программного обеспечения к интеллектуальному. Однажды во время чата внутри команды друзья рассказали о применении обучения с подкреплением в игровой сфере (на тот момент flappy bird Оно до сих пор очень популярно), это очень интересно, и мы подумали, можно ли перенести это ощущение игры по-человечески в тестирование ПО. Рассматривая тестируемое программное обеспечение как концепцию «среды» в обучении с подкреплением, обеспечивается интерактивная обратная связь, как в игре, постоянно расширяя исследовательские возможности агента и, в конечном итоге, достигая интеллектуального исследования.
В ходе этого процесса мы обратились ко многим соответствующим научным работам и при поддержке коллег из Microsoft Research Asia и других групп обнаружили, что у академического исследовательского сообщества также есть аналогичные идеи и исследования. В то же время изучите концепцию Monkey Test, упомянутую в классической теории тестирования программного обеспечения (то есть введите серию случайных входных данных в тестируемое приложение, точно так же, как если бы обезьяна случайно постучала по клавиатуре или случайно щелкнула по мобильному телефону). экрана телефона, а затем наблюдать за работой программного обеспечения в этой ситуации), мы также дополнительно изучили реализацию Smart Monkey, попросив более умных обезьян протестировать программное обеспечение. Среди них ключевым вопросом является то, как заставить «обезьяну» «понять» тестируемое приложение. Учитывая популярность технологии больших языковых моделей в отрасли, использование этой технологии для расширения возможностей этой «обезьяны» также является предметом наших текущих исследований и практики.
В целом, в отличие от общих платформ тестирования, Hydra Lab стремится предоставить набор решений для разработки тестирования или платформу облачного тестирования с открытым исходным кодом. Мы надеемся, что ее можно легко интегрировать с системами DevOps, системами компиляции или GitHub и т. д. Комбинация. Инструменты или платформы разработки предоставляют команде разработчиков недорогие комплексные решения для тестирования. Заодно мы ввели в него интеллект. Некоторые модули, решения и подсказки для автоматической генерации тест-кейсов вы можете увидеть в этом проекте. Инженерия и интеллект — ключевые слова Hydra Lab, а инженерия — основа интеллектуальных возможностей.
InfoQ: Какие интересные тенденции вы заметили в отношении этой волны больших моделей в сочетании с приложениями для разработки программного обеспечения?
Бу Шаопэн: В последнее время я много делился информацией и участвовал во многих мероприятиях. Я обнаружил, что все обсуждают интеграцию больших моделей с различными областями, например с различными. copilot Опыт продукта. В настоящее время, хотя возможности больших моделей впечатляют, они еще не появились. AGI На всех этапах расширения прав и возможностей нам необходимо понимать его сильные и слабые стороны, использовать его сильные стороны и избегать слабостей, а это требует сотрудничества людей, поэтому мы больше говорим о вместо этого второй пилот автопилот. В настоящее время большие модели демонстрируют большие перспективы в создании контента и обобщении информации, но если вы планируете решить проблему с низкой отказоустойчивостью и огромным контекстом, зрелого решения может не быть до тех пор, пока не будет сделан прорыв в ключевых технологиях.
Разница на этот раз в том, что большая часть движущей силы инноваций исходит от промышленности, а не только от научных кругов. Все больше и больше инноваций можно увидеть от ведущих инженеров-разработчиков в индустрии программного обеспечения и в реальной практике разработки продуктов. Это неотделимо от появления возможностей после того, как модель ИИ достигнет определенного масштаба и сможет выполнять многоцелевые задачи и решать некоторые общие проблемы.
Чжоу Ле: Из моего собственного опыта разработки можно выделить в основном два аспекта. GPT、BERT、DALL-E Когда появляется предварительно обученная модель, разработчики могут легко вызвать ее. API Возможность интерфейсов использовать эти модели применяется в разных областях. За этим следует генерация и оптимизация кода, например. GitHub Copilot Рекомендации по завершению кода могут быть даны на основе контекста кода, GitHub. Copilot Chat Вы даже можете помочь выявить проблемы и устранить их посредством диалога. Bug。
1 Технический дизайн и конструктивные идеи Hydra Lab
InfoQ: Автоматизация тестирования программного обеспечения значительно повысила эффективность и качество тестирования. Однако по мере того, как программные системы становятся все более сложными, а разнообразие сред тестирования увеличивается, традиционное автоматизированное тестирование сталкивается со многими проблемами. Каковы основные аспекты?
Бу Шаопэн: Прежде всего, наша команда — это глобальная совместная команда, и наши продукты Phone Link Это также кроссплатформенный взаимосвязанный продукт, что увеличивает сложность нашего сотрудничества в области автоматизации тестирования как на уровне «людей», так и на уровне «вещей». Мы надеемся, что автоматизированное тестирование можно будет полностью автоматизировать, что уменьшит нагрузку на каждого человека, связанную с написанием и поддержкой тестов, и в то же время можно будет действительно обнаруживать проблемы. Кроме того, мы также хотим разместить мобильные телефоны в облаке и создать кластер оборудования для облачных испытаний, который будет использоваться по всему миру. Теперь есть Hydra Lab, пока мы создадим эту платформу и настроим соответствующие группы и разрешения, географическое положение реальной машины больше не будет препятствием. Команды со всего мира могут преодолевать физические границы и более эффективно сотрудничать при тестировании.
Во-вторых, задачи автоматизации тестирования пользовательского интерфейса могут испытывать некоторую нестабильность, например, из-за внезапной невозможности найти элемент или некоторых неожиданных перекрытий. Сбои в тестовых заданиях в этом случае могут не отражать реальные проблемы с качеством. С помощью решений уровня платформы, таких как Hydra Lab, мы можем выявить этот тип нестабильности и повторно запустить задачу для повышения стабильности. Это также эквивалентно интеграции нашего опыта в выявлении и устранении факторов нестабильности тестов в проект с открытым исходным кодом Hydra Lab. Вносит свой вклад один человек, а от этого выигрывает все сообщество.
Кроме того, с точки зрения безопасности и конфиденциальности, если команда разработчиков использует внешнюю стороннюю службу облачного тестирования для тестирования приложений, созданных системой непрерывной интеграции, поскольку приложения, созданные на этом этапе, обычно содержат большое количество отладочных файлов. информация, это может также включать нераскрытую информацию. Существуют некоторые опасения по поводу загрузки новых функций или даже бизнес-тайн сторонним третьим сторонам, поэтому в этом сценарии очень ценна настраиваемая система с открытым исходным кодом. Другими словами, с Hydra. Lab, команда разработчиков может напрямую использовать приобретенное испытательное оборудование для создания внутренней инженерной системы непрерывного тестирования, которая очень экономична и позволяет полностью контролировать поток данных.
Чжоу Ле: Что касается индивидуальных потребностей, позвольте мне добавить еще один момент, потому что наша продукция Phone Link、Link to Windows Имейте оба PC терминал и мобильный терминал, поэтому он должен быть кроссплатформенным Windows Тестируйте и проверяйте одновременно с мобильным телефоном. Эта функция требует практической поддержки со стороны нашего отдела исследований и разработок, поэтому Hydra «Врожденная» способность Лаборатории.
InfoQ: Вы возглавляли команду, занимавшуюся созданием и улучшением платформы облачного тестирования Hydra Lab. Каковы были возможности и идеи для создания Hydra Lab?
Бу Шаопэн:Hydra Lab Сейчас просто Открытый исходный код несколько луна, думаю сборка Hydra Lab Эта возможность во многом связана с культурой инженеров Microsoft. Кроме того, мы также опираемся на многие классические работы в области тестирования, такие как:
Кроме того, в исследовании интеллекта мы активно сотрудничаем и сотворчим с Microsoft Research Asia MSRA и другими командами Microsoft, а также совместно продвигаем некоторые патенты в этой области, поэтому мы очень благодарны им за помощь. В процессе создания платформы Hydra Lab мы сначала решали реальные потребности и тестировали болевые точки внутри команды и братских команд Microsoft. Они хорошо служат им, но также сопровождаются улучшением стабильности и функциональности нашей платформы. После того, как проблема стабильности была в основном решена, мы начали думать, как объединить интеллект и внедрить ИИ. Некоторое время назад открытый исходный код был важным моментом, а появление больших языковых моделей также принесло новые изменения.
InfoQ: Может ли Hydra Lab решить проблемы автоматизации тестирования, которые вы только что упомянули? Какие конструкции безопасности есть у Hydra Lab?
Чжоу Ле: Да, на самом деле эти проблемы сравнительно легко решить. Например, благодаря облачной платформе межрегиональное сотрудничество стало намного проще. В США есть пять мобильных телефонов, а в Китае — пять. Мы можем подключить их все. Hydra Lab на этой платформе. Более того, команда с китайской стороны может развертывать, тестировать и проверять новые изменения на пяти мобильных телефонах в США, а команда с американской стороны также может проверять на мобильном телефоне в Китае. Таким образом, межрегиональные проблемы хорошо решаются.
Кроме того, мы также реализовали некоторые правила и соглашения по конфигурации, которые можно настроить в тестовых задачах. В описании определения каждого тестового задания мы можем настроить некоторые правила выполнения, пре- и постскрипты и т. д. Мы также реализовали простую систему разрешений пользователей на основе OAuth 2.0, которая позволяет легко подключаться к пользовательским серверам и поддерживает расширенный контроль разрешений.
Для сценариев кроссплатформенного тестирования в проекте вы можете найти что-то под названием AppiumCrossRunner, которое представляет собой исполнитель тестов (Test Runner), реализующий кроссплатформенное тестирование через Appium. В Hydra Lab вы можете найти Runners для различных платформ, что также отражает. Это абстрагирует процесс выполнения теста.
2 Исследование интеллектуального тестирования в области тестирования «черного ящика»
InfoQ: Каковы технические характеристики и отличительные преимущества Hydra Lab по сравнению с другими аналогичными платформами?
Бу Шаопэн: Наш проект просто Открытый исходный код несколько луна времени, в данный момент я лично нахожусь в Открытом исходный В сообществе кодировщиков пока никого не найдено Hydra Lab Нацеливайтесь на одни и те же предметы. существовать GitHub Вверх, Гидра Lab Метка основной классификационной метки: Cloud Testing — облачная система тестирования под этим ярлыком. Hydra Lab да top 1. В настоящее время он относительно популярен. platform engineering Под этой концепцией Hydra Lab Также вошел в пятерку лучших. Это также показывает, что в настоящее время существует очень мало конкурирующих решений для платформ облачного тестирования с открытым исходным кодом.
Hydra Lab предоставляет плагины интеграции для RESTful API и платформы Azure DevOps, чтобы облегчить интеграцию разработчиков Android, а также плагины Gradle; Кроме того, Hydra Lab также поддерживает тестирование производительности приложений на платформах Android и Windows. В настоящее время она может извлекать данные о потреблении энергии и памяти тестируемого приложения и визуально представлять их в отчете о тестировании.
Наконец, что касается интеллектуального тестирования, мы Hydra Lab Многие случаи применения больших языковых моделей уже можно увидеть в , и недавно мы включили многие связанные PR。Такой Открытый исходный код В настоящее время проекты могутда Только этот。
Чжоу Ле: Что касается интеллекта при генерации тестов, недавний результат нашей команды Dexter Одноклассник пишет план разработки одиночного теста и уже работает над ним. Hydra Lab продолжайте здесь PR code обзор, каждый может участвовать в подаче жалоб и совместном творчестве.
InfoQ: Вы упомянули, что ваша команда взяла на себя ведущую роль в разработке интеллектуальных тестовых сценариев в области тестирования «черного ящика». Можете ли вы дать нам подробное представление? Какие основные методы используются?
Чжоу Ле: Позвольте мне сначала кратко представить процесс исследования приложения. Во время исследования приложения мы сначала будем использовать модель понимания экрана для извлечения функций и пользовательского интерфейса на текущей странице. Классифицируйте, а затем используйте большие языковые модели, чтобы выносить суждения и работать с конкретными элементами страницы, чтобы охватить как можно больше страниц или выполнить конкретные пользовательские сценарии.
Бу Шаопэн: даиз,Чжоу да, упомянутое Ле, основано на UI Изучите интеллектуальные решения с точки зрения «черного ящика». В настоящее время интеллект, предоставляемый Моделью большого языка, особенно генерация данных, в основном основан на перспективе теста белого ящика, что эквивалентно отправке кода в Модель большого языка, требуя от него написания вариантов использования модульного теста, которые улучшают тест покрытия кода. Тест «черного ящика» гораздо сложнее, чем тест «белого ящика», и это все еще относительно передовое исследование. Для теста черного ящика код подобен черному ящику, внутренняя логика невидима, а интерфейс приложения или пакет исполняемой программы содержит богатую информацию, «контекст» огромен и многомодален, и его трудно напрямую конвертировать быстрый. Как в этом случае заставить работать большую языковую модель?
здесь Hydra Lab команда brainstorm Основная идея, которая возникла и принята в настоящее время, заключается в следующем: сначала исследуйте, а затем используйте. Начните с изучения и перемещения программы с помощью некоторых стратегий. обеспечения, а затем преобразовать понимание в структуру данных и, наконец, использовать эти данные в качестве основы для последующего исследования и создания вариантов использования. Это эквивалентно обобщению и уточнению внутренней логики черного ящика путем исследования и выполнению «сжатия с потерями». Эта идея также очень похожа на ситуацию, когда тестировщик впервые использует программу. обеспечение,Обязательно сначала изучу и пойму,В то же время организуйте рядом с ним инфографику.,В области тестирования это известно как «функциональная диаграмма» или «диаграмма состояний».,Затем спроектируйте варианты использования; это очень естественно и близко к человеческой деятельности. Если бы мы могли сделать это с помощью компьютера,может автоматически завершить исследование,Нарисовать диаграмму состояний,и генерировать тестовые варианты использования.
3 «Ценность инженеров по-прежнему очень важна, и у них есть большой потенциал в будущем»
InfoQ: Разработка технологии Big Model для программного обеспечения обеспечениетест открывает больше возможностей для тех, кто хочет применять большие модели для использования программного обеспечения в своих проектах. Команда обеспечениятеста, какой совет вы бы им дали?
Бу Шаопэн: Во-первых, столкнувшись с большой Моделью, нужно спокойно подумать. У нее есть преимущества, но она не всесильна в настоящее время. Нам необходимо изучить и понять его характеристики, следить за его развитием, понять его «способности» и найти точки входа, исходя из проблем, с которыми мы сталкиваемся, чтобы заставить его работать на себя, мы должны избегать механического копирования и использовать для некоторых обычные алгоритмы; Эмпирические правила могут помочь. Во-вторых, для нападения на нефрит можно использовать камни из других гор. на Открытый исходный код программы и набора данных, вы можете перейти к дополнительным Hugging Face и GitHub Прогуляйтесь по такой сокровищнице, следующей может стать мультимодальный Открытый; исходный код Модельдастоит продолжитьсосредоточиться на х. В-третьих, обратите внимание на ценность данных. Энергичные люди питаются высококачественными данными. Lab Команда проекта в настоящее время также изучает возможность использования программного обеспечения в различных сценариях. Построение набора данных программного обеспечениятеста.
InfoQ: Что вы думаете о большой модели программного обеспечения? обеспечение Какова наибольшая ценность в рабочем процессе НИОКР? Большая модель против программного обеспечения программное обеспечение Как изменения в рабочем процессе исследований и разработок повлияют на программное обеспечение обеспечение Будущая тенденция развития индустрии развития?
Бу Шаопэн: Причина, по которой «Большая модель» стала такой популярной в последнее время, во многом заключается в том, что она стала возможностью соединить промышленность и научные круги. Отрасль может напрямую использовать новые возможности, возникающие из большой Модели, и может применять их к пользовательским сценариям в больших масштабах, и эти приложения могут легко стать темами в средствах массовой информации, как будто их «аплодируют и хорошо принимают», давая каждому новый рассвет. . ИИ Архитектура из Seq2Seq、Self-Attention、Transformer、GPT полностью,Достигнуто качественное изменение после масштабного прорыва Модели.,Произошли прорывы в создании языка, кода и изображений. После того, как произойдет прорыв,Мы обнаружили, что многие задачи можно перевести на естественный язык.,Таким образом, мы можем преобразовать тестовые варианты использования в описания языка.,Таким образом, к этим сценариям можно применить Большую Модель. точка спроса,Пока это можно ясно описать ограниченным языком.,Большая Модель может стать практичным решением.
Чжоу Ле: большой Модельсуществоватьпрограммное обеспечение Максимальная ценность рабочего процесса исследований и разработок может улучшить программное обеспечение обеспечение эффективности и качества развития. Используя большую Модель, программное обеспечение обеспечение Разработчики могут автоматически генерировать код,Оптимизировать код,код теста,Быстрое создание документации.
С одной стороны, большая Модель сделает программное обеспечение разработка программного обеспечения стала более популярной и удобной, что позволяет большему количеству людей участвовать в программном обеспечении. программное обеспечениесоздать для продвижения программного обеспечения обеспечение инноваций и диверсификации. С другой стороны, большая Модель также предоставит программное обеспечение. развитие программного обеспечения сопряжено с некоторыми проблемами и рисками,Например, как обеспечить корректность и безопасность кода, сгенерированного Моделью.,Как бороться с возможной предвзятостью и дезинформацией в большой модели,Как защитить конфиденциальность, авторские права и т. д. данных, используемых Big Model.
Суммируя,Большая Модельда – мощный инструмент,Может быть полезным Разработка программного обеспечения приносит огромную пользу и влияние. Но да, нам также необходимо обратить внимание на его потенциальные проблемы и ограничения и использовать его разумно.
InfoQ: Не слишком ли часто вы использовали Модель в реальном процессе исследований и разработок? Каков ваш опыт ее использования?
Бу Шаопэн: Я лично использую большую модель часто, почти каждый день, да и GitHub Copilot X Постоянный пользователь, есть некоторые проблемы, связанные с конфиденциальными данными, которые я буду использовать. Azure OpenAI Service или Bing Chat Предприятие, эти AI Инструменты могут помочь разработчикам писать электронные письма и код и действительно могут значительно повысить производительность. У них также есть определенные ограничения, такие как иногда вызов несуществующих функций из воздуха; API ждать. На уровне команды мы изучаем возможности применения Copilot for Pull Request,Схема формирования инженерных модульных тестов и т.д.,иметь определенные результаты,создал некоторый контент,Это облегчает работу каждого; есть также некоторые проблемы и трудности (решение проблемы больших Модельных галлюцинаций и нестабильности), которые необходимо преодолеть.
InfoQ: Какие качества необходимы разработчикам программного обеспечения, чтобы сохранять конкурентоспособность, несмотря на влияние больших моделей?
Бу Шаопэн: Очень хороший актуальный вопрос. Прежде всего, очень важна уверенность в себе. Не считайте себя просто «болваном» и не устанавливайте себе ограничений. Вы должны выйти из роли младшего. прибыть AIGC Каждый, кто занимается этой темой, уже находится в авангарде времени. В будущую эпоху межотраслевых и междисциплинарных инноваций люди с междисциплинарным опытом и способностью мыслить независимо будут. программное обеспечение Талант инженера, используемый Copilot В будущем мы определенно создадим большую ценность и в то же время будем иметь большой потенциал, постараемся улучшить наши возможности и объем решения проблем, ориентироваться на решение проблем, улучшить наши комплексные возможности и создать свои собственные межотраслевые преимущества; Кроме того, очень важна наша способность разбирать сложные проблемы. Способность общаться и выражать мысли также очень важна: разборка и решение сложных проблем в проекте часто требует большого знания предметной области в сочетании с окружающей средой и ситуацией, мобилизации логического мышления и сочувствия; , которым вряд ли будет обладать дабольшой Модель. Навыки выражения и общения связаны с эмпатией человека. С помощью модели большого языка мы можем не только испытывать сочувствие к людям, но и AI Диалог также требует «сопереживания», и необходимо знать, что происходит и почему. и Prompt Engineering Как будто да исследует и строит нас и AI эмпатии.
Чжоу Ле: Я полностью согласен с Шаопэномизточка зрения,Способ есть, но нет навыков,Навыки все еще доступны,Умение есть, но нет возможности,Остановитесь на технике. по моему мнению,Наши усилия по улучшению не должны ограничиваться определенной технологией или структурой.,Как быстро освоить новые знания,Как находить и решать проблемы в сложных средах,Как эффективно общаться с членами команды и клиентами,Поэтому нам следует задуматься об улучшении.
Интервью гостей
Бу Шаопэн,Старший менеджер по исследованиям и разработкам Microsoft в Китае,Работал в отделе продуктов Microsoft Mobile Intelligent Experience.,Ответственный за строительство Phone Link Проектирование инженерных систем; Hydra Lab Скоро будет опубликована среда облачного тестирования с открытым исходным кодом, которая обслуживает многочисленные внутренние тесты продуктов Microsoft; «Лучшие практики разработки программного обеспечения», написанные в соавторстве с экспертами Microsoft Ху Сяову и Мо Цюем.
Чжоу Ле,Эксперт по серверным технологиям тестовой платформы Microsoft,Отвечает за разработку основного модуля Hydra Lab и общее развитие архитектуры приводной технологии.,Руководил направлением развития технологий проекта в должности старшего инженера-разработчика Puyuan;,Руководить исследованиями и разработками платформы данных.,И участвуйте в исследованиях и разработках платформ с низким кодом.