현대 소프트웨어 개발 프로세스에서 널리 채택된 애자일(Agile)은 스프린트(Sprint)라는 짧은 개발 사이클을 반복해 빠른 시장의 변화와 요구사항에 유연하게 대처하는 개발 방법론으로서 테스트 자동화 및 테스트 코드 작성의 중요성이 강조된다. 테스트주도개발(TDD:Test-Driven Development)은 애자일의 주요 실천 방법중 하나로써 "테스트가 개발을 주도한다"라는 의미로 테스트 코드를 먼저 작성한 후에 해당 테스트를 통과하는 코드를 작성하는 과정을 반복하는 방식이다. 그러나, TDD 개발 방식은 개념상으로는 매우 단순하지만, 초보 개발자와 전통적 개발 방식에 익숙한 이들에게는 상당한 시간과 노력이 필요하게 된다[1][2].
2022년 11월 발표된 OpenAPI 사의 ChatGPT는 LLM(Large ...
현대 소프트웨어 개발 프로세스에서 널리 채택된 애자일(Agile)은 스프린트(Sprint)라는 짧은 개발 사이클을 반복해 빠른 시장의 변화와 요구사항에 유연하게 대처하는 개발 방법론으로서 테스트 자동화 및 테스트 코드 작성의 중요성이 강조된다. 테스트주도개발(TDD:Test-Driven Development)은 애자일의 주요 실천 방법중 하나로써 "테스트가 개발을 주도한다"라는 의미로 테스트 코드를 먼저 작성한 후에 해당 테스트를 통과하는 코드를 작성하는 과정을 반복하는 방식이다. 그러나, TDD 개발 방식은 개념상으로는 매우 단순하지만, 초보 개발자와 전통적 개발 방식에 익숙한 이들에게는 상당한 시간과 노력이 필요하게 된다[1][2].
2022년 11월 발표된 OpenAPI 사의 ChatGPT는 LLM(Large Language Model)기반 대화형 생성 AI 서비스로서 프로그래밍 분야에서도 다양한 기능들과 함께 뛰어난 성능을 보여주고 있다[3]. 이에 본 논문에서는 애자일(Agile)의 TDD 방식으로 개발 진행시 ChatGPT를 테스트코드 자동 생성 도구로 활용하는 방안에 대해 제안한다.
본 실험에서는 회원가입 시 입력받은 아이디, 비밀번호, 이메일, 휴대폰 번호 등에 대한 Validation을 체크하는 프로그램을 ChatGPT를 이용하여 TDD 방식으로 테스트 코드를 생성해 보고, 이를 실제 개발 환경에서 실행하여 테스트 결과를 확인하였다. 실험 결과, ChatGPT와 소통하면서 순차적으로 테스트 코드를 작성할 수 있었고 일부 테스트 케이스에서 잘못된 코드로 인해 오류가 발생했지만, ChatGPT를 통해 오류 원인분석과 함께 수정된 코드를 제시받아 문제를 해결함으로써, ChatGPT를 테스트코드 자동 생성 도구로 활용할 수 있다는 충분한 가능성을 확인할 수 있었다.
그러나 실제 프로젝트 수행 시 훨씬 더 복잡한 환경과 구조, 다양한 기능의 테스트 케이스들이 존재하므로, 이에 관한 다양한 연구와 검증을 통해 ChatGPT와 같은 생성형 AI가 소프트웨어 개발자들의 생산성 향상과 소프트웨어 품질 향상에 큰 도움이 될 것으로 기대한다.
현대 소프트웨어 개발 프로세스에서 널리 채택된 애자일(Agile)은 스프린트(Sprint)라는 짧은 개발 사이클을 반복해 빠른 시장의 변화와 요구사항에 유연하게 대처하는 개발 방법론으로서 테스트 자동화 및 테스트 코드 작성의 중요성이 강조된다. 테스트주도개발(TDD:Test-Driven Development)은 애자일의 주요 실천 방법중 하나로써 "테스트가 개발을 주도한다"라는 의미로 테스트 코드를 먼저 작성한 후에 해당 테스트를 통과하는 코드를 작성하는 과정을 반복하는 방식이다. 그러나, TDD 개발 방식은 개념상으로는 매우 단순하지만, 초보 개발자와 전통적 개발 방식에 익숙한 이들에게는 상당한 시간과 노력이 필요하게 된다[1][2].
2022년 11월 발표된 OpenAPI 사의 ChatGPT는 LLM(Large Language Model)기반 대화형 생성 AI 서비스로서 프로그래밍 분야에서도 다양한 기능들과 함께 뛰어난 성능을 보여주고 있다[3]. 이에 본 논문에서는 애자일(Agile)의 TDD 방식으로 개발 진행시 ChatGPT를 테스트코드 자동 생성 도구로 활용하는 방안에 대해 제안한다.
본 실험에서는 회원가입 시 입력받은 아이디, 비밀번호, 이메일, 휴대폰 번호 등에 대한 Validation을 체크하는 프로그램을 ChatGPT를 이용하여 TDD 방식으로 테스트 코드를 생성해 보고, 이를 실제 개발 환경에서 실행하여 테스트 결과를 확인하였다. 실험 결과, ChatGPT와 소통하면서 순차적으로 테스트 코드를 작성할 수 있었고 일부 테스트 케이스에서 잘못된 코드로 인해 오류가 발생했지만, ChatGPT를 통해 오류 원인분석과 함께 수정된 코드를 제시받아 문제를 해결함으로써, ChatGPT를 테스트코드 자동 생성 도구로 활용할 수 있다는 충분한 가능성을 확인할 수 있었다.
그러나 실제 프로젝트 수행 시 훨씬 더 복잡한 환경과 구조, 다양한 기능의 테스트 케이스들이 존재하므로, 이에 관한 다양한 연구와 검증을 통해 ChatGPT와 같은 생성형 AI가 소프트웨어 개발자들의 생산성 향상과 소프트웨어 품질 향상에 큰 도움이 될 것으로 기대한다.
Widely adopted in modern software development processes, Agile is a development methodology that emphasizes the importance of test automation and writing test code in short development cycles called sprints to flexibly respond to rapid market changes and requirements. Test-driven development (TD...
Widely adopted in modern software development processes, Agile is a development methodology that emphasizes the importance of test automation and writing test code in short development cycles called sprints to flexibly respond to rapid market changes and requirements. Test-driven development (TDD) is one of the main practices of Agile, which means "tests drive development," and it involves writing test code first and then iterating on code that passes those tests. However, while TDD development is very simple in concept, it can take a lot of time and effort for beginner developers and those who are used to traditional development methods[1][2].
OpenAPI's ChatGPT, announced in November 2022, is an LLM-based interactive generation AI service that shows excellent performance with various functions in the programming field[3]. In this paper, we propose how to utilize ChatGPT as an automatic test code generation tool when developing with the TDD method of Agile.
In this experiment, we created a test code using ChatGPT to check the validation of the ID, password, email, mobile phone number, etc. entered when signing up, and then executed it in the actual development environment to check the test results. In our experiments, we were able to use a program with relatively simple logic to communicate with ChatGPT and write test code sequentially.
Although some test cases resulted in errors due to incorrect code, ChatGPT provided us with corrected code along with an analysis of the cause of the error, and we were able to solve the problem, showing that ChatGPT can be used as an automated test code generation tool.
However, there are much more complex environments, structures, and test cases of various functions in real projects, so we expect that generative AI such as ChatGPT will help software developers improve productivity and improve software quality through various studies and verifications.
Widely adopted in modern software development processes, Agile is a development methodology that emphasizes the importance of test automation and writing test code in short development cycles called sprints to flexibly respond to rapid market changes and requirements. Test-driven development (TDD) is one of the main practices of Agile, which means "tests drive development," and it involves writing test code first and then iterating on code that passes those tests. However, while TDD development is very simple in concept, it can take a lot of time and effort for beginner developers and those who are used to traditional development methods[1][2].
OpenAPI's ChatGPT, announced in November 2022, is an LLM-based interactive generation AI service that shows excellent performance with various functions in the programming field[3]. In this paper, we propose how to utilize ChatGPT as an automatic test code generation tool when developing with the TDD method of Agile.
In this experiment, we created a test code using ChatGPT to check the validation of the ID, password, email, mobile phone number, etc. entered when signing up, and then executed it in the actual development environment to check the test results. In our experiments, we were able to use a program with relatively simple logic to communicate with ChatGPT and write test code sequentially.
Although some test cases resulted in errors due to incorrect code, ChatGPT provided us with corrected code along with an analysis of the cause of the error, and we were able to solve the problem, showing that ChatGPT can be used as an automated test code generation tool.
However, there are much more complex environments, structures, and test cases of various functions in real projects, so we expect that generative AI such as ChatGPT will help software developers improve productivity and improve software quality through various studies and verifications.
주제어
#애자일 Agile 테스트주도개발 TDD 대형언어모델 LLM 생성형AI ChatGPT Test-Driven Development Generative AI
학위논문 정보
저자
이해수
학위수여기관
국민대학교 소프트웨어융합대학원
학위구분
국내석사
학과
인공지능전공
지도교수
이민석
발행연도
2022
총페이지
v, 88
키워드
애자일 Agile 테스트주도개발 TDD 대형언어모델 LLM 생성형AI ChatGPT Test-Driven Development Generative AI
※ AI-Helper는 부적절한 답변을 할 수 있습니다.