ChatGPT를 이용한 자동화 테스팅

Ari Mahpour
|  작성 날짜: 오월 3, 2023  |  업데이트 날짜: 구월 24, 2024
ChatGPT를 이용한 자동화 테스팅

뉴스에서 계속 나오고 있고, 아직 듣지 못했다면 지금이 OpenAI의 ChatGPT를 확인할 때입니다. 이것은 인공지능을 기반으로 하는 매우 강력한 도구입니다. 거의 모든 것을 물어보거나 어떤 작업을 주면, 이론적으로는 올바른 답을 하거나 그 작업을 대신 수행해 줄 수 있다는 개념입니다. 예를 들어, 사람들은 이를 사용하여 연설을 작성하거나, 이메일을 작성하거나, 주제를 연구하거나, 심지어 코드를 작성하기도 합니다. 모델이 완벽하지는 않지만 여전히 매우 인상적이며 많은 좋은 정보를 담고 있습니다. 우리 자신의 Mark Harris가 최근에 자동 테스트를 위한 기기를 제어하는 간단한 스크립트로 이 기능을 저에게 보여주었습니다. 저는 이 토끼굴로 들어가 ChatGPT와 자동 테스트를 실험하기로 결정했습니다. 이 글에서는 ChatGPT에 어떻게 접속하는지, 어떻게 질문하는지 배우고, 가장 중요하게는 원하는 결과를 얻기 위해 필요한 올바른 질문이 무엇인지 이해하는 방법을 걸어가 보겠습니다.

ChatGPT 시작하기

먼저 시작하기 전에 ChatGPT와 그것이 제공하는 것에 익숙해지고 싶을 것입니다. 먼저 chat.openai.com으로 이동하여 계정으로 가입하거나 로그인하세요. 이 글을 쓰는 시점에서 이 도구는 무료로 제공되고 있어서 바로 시작할 수 있어야 합니다. “1 + 1은 무엇인가요?” 또는 “하늘의 색깔은 무엇인가요?”와 같은 기본적인 질문부터 시작하세요. 그 후에는 에세이 작성, 이메일 초안 작성, 소프트웨어에서 간단한 함수 작성과 같은 작업을 시키기 시작할 수 있습니다. 인터페이스는 깨끗하고 간단하며, 마치 어떤 메시지를 보내듯이 아래쪽의 메시지 상자에 입력하고 보내기를 클릭하거나 엔터를 누르기만 하면 됩니다.

 

Using ChatGPT, Automated Testing, AI, Machine Learning, Embedded Software, Altium
그림 1: ChatGPT가 있는 메시지 박스

소프트웨어 라이브러리 작성

ChatGPT와 대화하는 데 익숙해지면 코드 생성을 시도해 볼 수 있습니다. "C로 두 숫자를 더하는 함수를 작성하라"와 같은 기본 요청은 쉽게 처리할 수 있는 간단한 작업입니다. 요청에 더 많은 세부 사항을 추가하면 복잡해지기 시작합니다. 저는 모든 코드를 깔끔한 클래스로 정리하는 것을 선호하기 때문에 ChatGPT에게 제게 필요한 작업을 수행하는 클래스를 생성하도록 명시적으로 요청합니다. 여기에 예시가 있습니다:

Test Automation, Chatbot Testing, Software Testing
그림 2: 클래스 생성 요청

 

또한 Pytest를 사용하여 테스트를 생성하도록 요청한 것을 알 수 있습니다. 이 요청도 처리했지만, 불행히도 코드에는 수정하기 다소 어려운 버그가 많았습니다. 그럼에도 불구하고 코드와 단위 테스트를 구조화하는 방식을 보는 과정은 매우 유익했습니다. 저는 분명히, 스스로는 하지 않았을 방식으로 코드를 생성하는 것을 보며 한두 가지를 배웠습니다.

ChatGPT에서 지시적 코드 생성

위에서 설명한 한 가지 접근 방식은 AI가 도구(즉, 소프트웨어 라이브러리)를 제공하여 제품(즉, 테스트 스크립트)을 직접 구축할 수 있게 하는 것입니다. 또 다른 접근 방식은 ChatGPT에 구체적인 테스트 사양을 제공하고 코드를 생성하도록 하는 것입니다. 이 방법은 설정을 조정하고 테스트 케이스를 수정하기 전에 빠르고 간단한 테스트 스크립트를 생성하는 데 좋습니다. 예를 들어 보겠습니다.

스위칭 파워 컨버터를 테스트하기 위해 ChatGPT에 다음과 같은 매우 간단한 지시 세트를 제공했습니다:

Pytest를 사용하여 Python 스크립트를 작성하여 다음 작업을 수행하십시오:

1. Rigol DP832 전원 공급 장치를 켜고 채널 1에서 5V 및 2A로 설정하십시오

2. Rigol DL3021 전자 부하를 켜고 부하를 3분 동안 1.5A 일정 전류로 설정하십시오

3. DP832 및 DL3021을 끄십시오

이 경우에는 특정 테스트를 구현하지 않았습니다. 제가 하고 싶은 것은 DC-DC 컨버터가 3분 동안 1.5A 부하를 처리할 수 있는지 관찰하는 것뿐입니다. 생성된 코드는 꽤 괜찮았지만 가끔 버그가 발생하여 수정하기가 조금 어려웠습니다. ChatGPT에게 특정 단언을 구현하거나 특정 실패를 테스트하도록 요청할 수도 있지만, 저는 AI 앱을 사용하여 기본적인 테스트에만 관심이 있었습니다. 또한, 코드를 검증하기 위해 테스트 클래스(모의 객체 사용 여부와 관계없이)를 작성해 달라고 요청할 수도 있습니다. 다시 말하지만, 모든 것이 완벽하게 준비된 것은 아니었습니다. 코드 자체와 테스트 클래스를 마사지하여 완벽하게 작동하도록 만들어야 했습니다. 

결론

결론적으로, ChatGPT와의 실험은 좋은 경험이었습니다. 수동 작업을 하거나 웹에서 예제를 찾는 대신 몇 가지 개념을 코드로 모으는 "집계자"가 있다는 것이 좋았습니다. 완벽하지는 않지만 여전히 도움이 되고 실험하는 재미가 있었습니다. 이 글을 검토한 후에는 다음을 할 수 있는 충분한 이해를 얻게 될 것입니다:

  1. ChatGPT에 접속하기
  2. 기본적인 질문하기
  3. 요청에 기반한 소프트웨어 라이브러리 생성하기
  4. 요청에 기반한 테스트 실행 코드 생성하기

이 기사에서 제공한 예제를 실행하거나 자신만의 것을 시도해 보시길 강력히 권장합니다. ChatGPT가 기술적으로 아직 베타 버전임을 명심하세요. 기대치를 너무 높게 설정하지 마시고, 잘못된 부분을 알려주어서 그것이 실수로부터 "배울" 수 있도록 인내심을 가지세요. 코딩 즐기세요!

작성자 정보

작성자 정보

Ari is an engineer with broad experience in designing, manufacturing, testing, and integrating electrical, mechanical, and software systems. He is passionate about bringing design, verification, and test engineers together to work as a cohesive unit.

관련 자료

홈으로 돌아가기
Thank you, you are now subscribed to updates.