paint-brush
소프트웨어 테스팅에 ChatGPT 활용~에 의해@ratikeshmisra
4,473 판독값
4,473 판독값

소프트웨어 테스팅에 ChatGPT 활용

~에 의해 Ratikesh4m2023/09/16
Read on Terminal Reader
Read this story w/o Javascript

너무 오래; 읽다

지난 2년 동안 AI, 특히 LLM(Large Language Models)의 발전으로 인해 전통적인 문제를 보다 효율적으로 해결할 수 있게 되었습니다. LLM이 만들 수 있는 영향 중 하나는 소프트웨어 테스트 자동화에 대한 지원을 통해서입니다. 많은 소프트웨어 팀에게 자동화는 SDLC 주기의 최우선 요소가 아니었으며 팀은 테스트 사례를 자동화하는 데 어려움을 겪고 있습니다.
featured image - 소프트웨어 테스팅에 ChatGPT 활용
Ratikesh HackerNoon profile picture
0-item
1-item

지난 2년 동안 AI, 특히 LLM(대형 언어 모델)의 발전은 기존 문제를 보다 효율적으로 해결하는 것으로 나타났습니다. LLM이 창출할 수 있는 영향 중 하나는 소프트웨어 테스트 자동화 지원을 통한 것입니다. 많은 소프트웨어 팀에게 자동화는 결코 SDLC 주기의 일류 시민이 아니었으며 팀은 " 테스트 자동화 부채 "를 생성하는 테스트 사례를 자동화하기 위해 노력하고 있습니다. 테스트 자동화의 이러한 격차로 인해 품질 팀이 이러한 테스트 사례를 수동으로 확인하고 작성하는 데 많은 시간이 소요되고 결과적으로 엔지니어링 팀의 배송 속도가 느려집니다.


코드 복잡성으로 인한 수동 테스트 시간의 변화


이러한 어려움을 피하기 위해 존재하는 유일한 탈출 경로는 테스트 사례를 더 빠른 속도로 자동화하는 것이지만 종종 다음과 같은 이유로 그렇게 할 수 없습니다.


  • 확장 가능한 코드를 작성하기 위한 수동 QA 팀 간의 자동화 경험이 부족합니다.
  • 자동화해야 하는 테스트 사례의 엄청난 백로그로 인해 자동화 시작 비용( 엔지니어링 관리 및 QA에 필요한 대역폭 측면에서 )이 너무 높습니다.
  • 테스트 사례에 대한 문서 품질이 좋지 않고 회귀 분석 및 온전성 제품군에 대한 적절한 유지 관리가 없습니다.
  • 대부분의 제품 회사가 기능 개발에 중점을 두기 때문에 안정성과 품질은 뒤로 미루어집니다.
  • 테스트 사례에 대한 사람의 평가는 기계 평가보다 선호됩니다.


위에서 언급한 모든 문제에는 소프트웨어 팀이 이를 어떻게 해결해야 하는지에 대한 별도의 문서가 필요하지만, 이 섹션에서는 QA 엔지니어가 ChatGPT 또는 LLM을 BDD(행동 중심 테스트)의 부조종사 로 활용하는 방법에 대해 설명합니다.

BDD 및 자동화에 GPT3.5 사용


BDD 란 무엇입니까?


BDD(행동 중심 개발)는 사용자가 상호 작용할 때 경험하기를 기대하는 동작을 중심으로 애플리케이션을 문서화하고 설계하는 민첩한 소프트웨어 개발 방법론입니다. 이 논의의 맥락에서 YC 웹사이트에 BDD 기반 테스트를 적용하고 YC 해커 뉴스의 로그인 페이지를 출발점으로 생각해 보겠습니다.


YC 해커 뉴스 로그인 페이지


위에서 언급한 페이지에서 예상되는 동작은 다음과 같습니다.

" 사용자가 로그인을 시도하고 https://news.ycombinator.com/login?goto=news 에 유효한 자격 증명을 입력하고 로그인을 누르면 사용자를 해커 뉴스 웹 사이트로 리디렉션해야 합니다 ."


BDD 지침에 따라 위의 동작은 가능한 테스트 사례가 될 수 있는 Gherkin 구문/단계로 작성될 수 있으며 오이를 프레임워크로 사용하면 동일한 Gherkin이 자동화될 수 있으며 이 동작은 더 이상 사람의 개입이 필요하지 않습니다 . 그러나 위 섹션에서 논의한 문제로 인해 QA 팀은 일반적으로 동일한 작업을 자동화하는 데 어려움을 겪지만 몇 가지 프롬프트를 작성하고 QA 팀이 Gherkin 단계 및 자동화를 전환할 수 있는 워크플로를 생성하여 LLM 의 기능을 활용할 수 있습니다. 오이 프레임워크에서 더 빠른 속도로.



Gherkin 구문 생성을 위한 워크플로

Gherkin 구문 생성을 위한 워크플로


예를 들어 아래 이미지에서는 프롬프트를 사용하여 자연어로 표시되는 동작에 대한 gherkin 구문을 생성함으로써 GPT 모델을 미세 조정할 수 있는 방법을 보여주었습니다.


ChatGPT는 제시된 동작에 대한 관련 Gherkin 구문을 출력합니다.



Gherkin 구문에서 오이 호환 코드를 생성하기 위한 워크플로

GPT를 사용하여 Gherkin 단계로 Cucumber 호환 코드 생성


1단계: 엔지니어링하라는 메시지 표시


다음은 제공된 HTML 코드와 Gherkin 단계를 사용하여 적절한 자동화를 뱉어내기 위해 ChatGPT 콘솔에 작성할 수 있는 프롬프트입니다. 최종 출력으로 우리는 QA가 그대로 복사하여 붙여 넣을 수 있는 오이의 필요에 따라 단계 정의 형식으로 코드를 생성하도록 요청했습니다.



오이 기반 자동화를 생성하기 위해 GPT를 미세 조정하라는 메시지


2단계: 자동화의 기반으로 사용해야 하는 관련 HTML을 삽입합니다.

아래에 설명된 대로 ChatGPT는 미세 조정 후 오이에 대한 단계 정의를 생성하는 데 사용할 수 있는 관련 HTML 및 Gherkin 단계를 요청합니다.


자동화에 사용해야 하는 HTML 피드


3단계: 단계 정의 생성


그 결과, GPT는 제공된 HTML에서 DOM 구조를 이해하고 관련 Gherkin 구문을 요청합니다. 위의 경우, 우리는 이미 있는 그대로 전달할 수 있는 Gherkin을 생성했습니다.


 Feature: User Login Redirect Scenario: User logs in with valid credentials Given the user is on the login page of "https://news.ycombinator.com/login?goto=news" When the user enters valid credentials and presses the login button Then the user should be redirected to the "hacker news" website


최종 출력


마지막으로 워크플로 및 언급된 프롬프트에 따라 위에서 언급한 Gherkin 단계 및 시나리오에 대한 단계 정의 파일을 생성합니다. 이는 사소한 품질 검사 후 QA가 오이 프레임워크에서 복사하여 가정된 동작의 자동화를 강화할 수 있습니다. 테스트합니다.


생성된 오이 단계 정의

부조종사의 시대

AI의 출현과 부조종사의 출현으로 인간의 생산성은 향상될 것입니다. 그들은 기초적이고 일상적인 작업을 AI에 넘겨줌으로써 혁신의 경계를 더욱 넓힐 수 있을 것입니다. 그러나 기술, 마케팅, 영업 및 고객 성공 팀이 업무 흐름에서 LLM의 힘을 활용하려고 노력하고 있기 때문에 우리가 하는 모든 작업의 보조자로 보아야 한다고 생각하며 이를 사용하는 지능은 인간에게 상주할 것입니다. QA 엔지니어도 동일한 작업을 수행하여 생산성을 더욱 높이고 소프트웨어의 품질과 안정성을 보장하는 작업을 흥미롭게 만들 수 있습니다!