>  기사  >  기술 주변기기  >  AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

WBOY
WBOY앞으로
2024-03-15 15:46:111053검색

저자 소개

Ctrip의 수석 R&D 관리자인 Thales Fu는 AI와 엔지니어링을 결합하여 실제 문제를 해결하는 더 나은 방법을 찾는 데 전념하고 있습니다.

소개

빠르게 반복되는 소프트웨어 개발 주기에서 사용자 인터페이스(UI)의 자동화된 테스트는 효율성을 향상하고 제품 품질을 보장하는 열쇠가 되었습니다. 그러나 애플리케이션이 점점 더 복잡해짐에 따라 기존 UI 자동화 방법은 점차 한계를 드러냅니다. AI 기반 UI 자동화가 등장했지만 여전히 정확성과 안정성 문제에 직면해 있습니다. 이러한 맥락에서 이 기사에서는 실시간 디버깅 기술을 통해 AI가 작성한 UI 자동화 스크립트의 효율성을 크게 향상시킬 수 있다는 혁신적인 관점을 제안합니다.

이 문제는 단순한 기술적인 문제가 아니라 소프트웨어 품질을 보장하면서 소프트웨어 제공 속도를 높이는 방법과 관련이 있습니다. 이 기사에서는 AI가 UI 테스트 스크립트를 더 정확하게 이해하고 실행하는 데 실시간 디버깅이 어떻게 도움이 되는지, 그리고 이 방법이 어떻게 소프트웨어 개발에 혁신적인 변화를 가져올 수 있는지 살펴보겠습니다.

1. UI 자동화 현황

UI 자동화는 원래의 단순한 녹음 및 재생 도구에서 오늘날의 복잡한 스크립팅 프레임워크에 이르기까지 상당한 발전을 이루었습니다. 지속적인 기술 발전에도 불구하고 전통적인 UI 자동화 방법은 빠르게 변화하는 애플리케이션 인터페이스를 처리할 때 여전히 어려움에 직면해 있습니다. 애플리케이션이 더욱 복잡해지고 동적으로 변하면서 기존 접근 방식으로는 충분하지 않을 수 있습니다. 따라서 엔지니어들은 UI 자동화의 효율성과 신뢰성을 향상시키기 위해 보다 유연하고 안정적인 솔루션을 찾고 있습니다.

업계 설문 조사 결과에 따르면 테스트 스크립트를 수동으로 작성하는 것은 비효율적이며 업데이트 적용 시 재작업하는 데 많은 시간이 걸립니다. 연구에 따르면 UI 자동화 테스트 스크립트를 유지하는 것이 전체 테스트 작업의 60~70%를 차지할 수 있습니다. 민첩한 개발 환경에서는 각 애플리케이션 업데이트에 대해 기존 자동화 스크립트를 다시 작성하고 테스트하는 데 100시간 이상이 걸릴 수 있습니다. 이러한 높은 유지 관리 비용은 기존 UI 자동화 방법의 비효율성과 리소스 소비를 강조합니다.

2. 행동 중심 개발 BDD 소개

행동 중심 개발(BDD)은 소프트웨어 프로젝트의 개발자, 테스터 및 비기술적 이해관계자 간의 의사소통을 장려하는 민첩한 소프트웨어 개발 관행입니다. Cucumber는 팀 구성원이 자연어를 사용하여 명시적이고 실행 가능한 테스트 사례를 작성할 수 있도록 하는 BDD 방법론을 구현하는 데 널리 사용되는 도구입니다.

Cucumber는 Gherkin이라는 도메인별 언어(DSL)를 사용하는데, 이는 읽기가 매우 쉽고 기술 지식이 없는 사람도 테스트의 목적과 내용을 이해할 수 있도록 해줍니다. 테스트 시나리오는 특정 조건에서 시스템이 어떻게 응답해야 하는지를 명확하게 설명하는 일련의 주어진-When-Then 문 형식으로 작성됩니다.

예를 들어 온라인 쇼핑 웹사이트의 장바구니 기능에는 다음과 같은 Gherkin 시나리오가 있을 수 있습니다.

AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

이 접근 방식은 자연어 설명 기능을 활용하여 기술 팀과 비기술 팀 간의 더 나은 의사소통을 촉진합니다. 이해하다. 동시에 자연어 테스트 시나리오는 프로젝트 문서화 역할도 수행하여 새로운 팀 구성원이 프로젝트 기능을 빠르게 이해할 수 있도록 도와줍니다. 이를 통해 비기술 인력이 테스트 사례 작성 및 검증 프로세스에 직접 참여할 수 있으므로 개발 작업이 비즈니스 요구 사항과 밀접하게 일치하도록 보장됩니다.

하지만 테스트 시나리오가 자연어로 작성되었지만 각 단계 뒤에 있는 구현(단계 정의)에는 여전히 기술 담당자가 프로그래밍 언어로 작성해야 합니다. 이는 테스트 로직을 구현하는 데 복잡한 코딩 작업이 포함될 수 있음을 의미합니다. 애플리케이션이 성장하고 변경됨에 따라 해당 테스트 단계를 유지하고 업데이트하는 것이 지루해질 수 있습니다. 특히 UI가 자주 변경되는 경우 관련 단계 정의도 이에 따라 업데이트되어야 합니다. 유연성과 적응성 제한도 있습니다. 오이 테스트 스크립트는 미리 정의된 단계와 구조에 의존하므로 테스트의 유연성이 제한될 수 있습니다. 일부 복잡한 테스트 시나리오의 경우 특정 테스트 논리를 구현하려면 프레임워크의 한계를 우회하는 창의적인 방법이 필요할 수 있습니다.

AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

3. UI 자동화에 AI 적용 현황

최근 AI 기술은 UI 자동화에 통합되었으며, 특히 GPT로 대표되는 대형 모델 등장 이후에는 AI 자체에 코드 생성 기능이 있기 때문입니다. 능력. 업계에서는 대형 모델을 통해 Gherkin의 테스트 케이스 설명 언어를 테스트 코드로 직접 생성하려는 시도도 시작되었습니다.

AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

현재 대규모 모델에서 생성된 테스트 코드는 몇 가지 주요 문제가 있습니다. 첫째, 구문 오류로 인해 생성된 스크립트가 실행되지 않을 수 있습니다. 사용 사례에서는 체크포인트를 테스트해야 합니다. 실제로 우리의 첫 시도 성공률은 5%를 넘지 않습니다.

생성되지 못한 후에는 사람들이 개입하여 일부 수정 작업을 수행해야 합니다. 포함: 디버깅, 사용 사례 수정을 통해 재생성 또는 생성된 스크립트 직접 수정.

AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

그리고 이러한 작업 자체에도 많은 인력이 필요하므로 AI를 통해 자동으로 테스트 스크립트를 생성하려는 시스템의 원래 의도와는 상반됩니다.

4. AI는 효과적인 테스트 스크립트를 완전 자동으로 작성합니다

이 문제를 해결하기 위해 우리는 AI가 테스트 스크립트를 생성하는 전체 프로세스를 다시 생각했습니다.

AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

우리는 사람들의 작업도 고려합니다. 사람들이 시스템에서 디버깅 및 수정 작업을 수행했는데 AI가 이 작업을 수행할 수 있습니까? 시스템이 생성된 코드를 자체적으로 실행하고 AI가 생성하는 오류 코드를 디버그하고 수정하도록 하십시오.

따라서 이러한 작업을 인간 대신 AI가 자율적으로 수행할 수 있도록 시스템 설계를 조정했습니다. 결국, 씨트립 호텔 주문 세부정보 페이지의 모든 사용 사례 중 83.3%가 누군가의 개입 없이 성공적으로 생성되었으며, 스크립트 생성 과정에서 8%의 사례에서 버그가 발견되었습니다. 우리는 이러한 사용 사례를 세 번 연속 생성했으며, 성공률은 각각 84.3%, 81.4%, 83.3%였습니다.

AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

구체적인 테스트 사례와 코드는 다음과 같습니다.

AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

먼저 주문 세부정보 페이지 하단의 사용자 권한 모듈로 슬라이드한 후 가격 부동 레이어를 팝업하는 예약 최적화 영역.

AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

그런 다음 수수료 세부정보에 블랙 다이아몬드 VIP가 포함되어 있는지 확인하세요.

AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

최종 생성된 테스트 코드는 다음과 같습니다.

AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

5. 시스템 구현

전체 시스템의 핵심 아키텍처 다이어그램은 다음과 같습니다. 시스템의 핵심 부분은 langchain 프레임워크 프로그램입니다. 이는 대형 모델에 액세스하며 여러 도구를 갖추고 있는데, 이는 주로 두 가지 범주로 구분됩니다. 하나는 페이지 정보를 얻기 위한 도구이고 다른 하나는 디버깅 도구입니다.

Langchain은 코드를 생성하기 위해 현재 작업에 필요한 특정 제어가 무엇인지 결정하기 위해 페이지 정보 획득 도구를 자동으로 사용하여 필요에 따라 페이지 데이터를 가져옵니다. 그런 다음 디버깅 도구를 사용하여 실제로 휴대폰에서 코드를 실행하고, 디버깅 피드백을 기반으로 생성한 코드가 올바른지 판단합니다.

AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

5.1 프롬프트 단어

기본 구조를 갖춘 후에는 이러한 도구를 서로 연결하고 AI가 작동 방식을 이해할 수 있도록 즉각적인 단어가 필요합니다. 구조적으로 프롬프트 단어에는 여러 부분이 포함됩니다. 첫째, AI가 어떻게 생각하고 작동해야 하는지 알려주고, 둘째, 디버그를 통해 생성된 각 명령문을 디버그하도록 지시하고, 출력 형식이 무엇인지 다시 말하고, 마지막으로 AI에게 지시합니다. AI가 처리할 사용 사례의 전체 텍스트입니다.

AI에게 AI가 어떻게 생각하고 작동해야 하는지 알려주기 위해 확장에는 다음 부분이 포함됩니다. 먼저 페이지에 어떤 모듈이 있는지, 어떤 모듈이 내가 작동하려는 단계가 되어야 하는지, 이 모듈에는 어떤 컨트롤과 구성 요소가 있는지 살펴보세요. , 현재 내가 무엇을 조작하고 싶은지, 어떤 컨트롤인지 컴포넌트인지, 조작하고 싶은 액션은 무엇인지, 사용할 수 있는 특수 구문은 무엇인지 등을 입력한 뒤 문장을 생성합니다.

AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

5.2 디버깅 도구

디버깅 도구의 핵심은 adb 도구를 통해 휴대폰에 원격으로 연결하는 것입니다. 연결 후 AI가 생성한 명령을 휴대폰으로 보내 달리고, 실행 결과를 AI로 읽어 AI가 생성한 명령이 올바른지 판단할 수 있습니다.

5.3 페이지 정보 획득 도구

페이지 정보 획득 도구의 궁극적인 목적은 동작할 BDD 유스케이스에 어떤 내용을 썼는지, 특정 컨트롤의 ID를 AI가 판단하도록 돕는 것입니다. 작동하려는 것은 ID를 사용하여 ID를 기반으로 후속 프로그램 명령을 생성할 수 있다는 것입니다. ID를 얻으려면 컨트롤과 구성 요소 라이브러리가 필요합니다. 이 라이브러리의 핵심은 각 컨트롤과 구성 요소의 ID 및 설명입니다. 이 두 가지 콘텐츠를 통해 AI는 BDD 사용 사례를 읽은 후 컨트롤에 대한 설명을 기반으로 어떤 컨트롤이 필요한지 추측하는 데 도움을 받을 수 있습니다.

이 목적을 달성하기 위해 페이지 제어 라이브러리를 구축했습니다. 페이지에 있는 각 컨트롤의 ID와 설명 외에도 이 라이브러리에는 페이지와 구성 요소 간의 관계, 구성 요소와 컨트롤 간의 관계도 포함되어 있습니다. AI가 단계별로 쿼리하는 것을 용이하게 할 수 있습니다.

AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

컨트롤 라이브러리 자체는 작업을 통한 코드의 정적 분석을 기반으로 생성됩니다. 그러나 실제 애플리케이션에서는 현재 페이지에 표시되는 컨트롤이 장면 상태에 따라 다르기 때문에 일부 시나리오에서는 페이지의 컨트롤이 숨겨집니다. 따라서 페이지 정보 획득 도구는 페이지에 있는 현재 기존 컨트롤과 컨트롤 라이브러리에서 쿼리된 컨트롤을 교차하여 현재 페이지에 실제로 표시되는 컨트롤과 해당 설명 정보를 얻습니다.

5.4 AI 추가 분할

AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

이 작업을 수행한 후 AI는 기본적으로 위 그림의 노란색 부분인 인간 작업을 자동으로 수행할 수 있습니다. 세대 성공률도 5%에서 55%로 높아졌지만, 여전히 55% 성공률은 부족하다.

실패한 사례를 추가로 분석했습니다. 가장 큰 문제는 AI의 환각인 것으로 밝혀졌다. 프롬프트의 말은 비교적 자세했지만, AI가 요구한 대로 문제를 처리하지 못하고, 스스로 말도 안 되는 말을 하는 경우도 있었다.

우리의 결론은 AI에게 너무 많은 책임이 부여되고 고려해야 할 사항이 너무 많다는 것입니다. 토큰이 부족한 것이 아니라 너무 많은 일을 해야 한다면 잊어버리고 요구 사항을 정확하게 완료할 수 없다는 것입니다. 그래서 분할을 고려했고, 여전히 랭체인의 기능을 사용했습니다. AI가 도구를 통해 기능을 완성할 수 있는데 왜 이 도구 자체가 AI가 될 수 없는 걸까요?

AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

다시 분할할 수도 있습니다.

AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.

이러한 분할을 통해 각 AI가 고려해야 할 작업을 덜 간단하게 만들고 더 정확하게 처리하도록 하여 최종 세대 성공률을 80% 이상으로 높였습니다.

VI. 후속 개발

현재 AI는 사람의 참여 없이 약 80%의 성공률로 자동화된 테스트 코드를 생성할 수 있습니다. 이는 매우 흥미롭지만 여전히 많은 문제가 있습니다. 계속해서 해결해보세요.

1) 대형 모델을 호출하는 비용은 여전히 ​​높습니다. 더 저렴하게 작업을 완료할 수 있는 더 좋은 방법이 있을까요?

2) 현재 처리하기 어려운 일부 작업이나 검증이 80%의 성공률에는 여전히 개선의 여지가 많으며 생성된 결과를 검토해야 합니다.

3) 이 밖에도 다른 측면에서도 개선의 여지가 있어 지속적인 개선이 필요합니다.

위 내용은 AI가 실시간 디버깅을 통해 효과적인 UI 자동화를 작성할 수 있도록 하세요.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제