코드 변경으로 인해 기존에 정상적으로 동작하던 기능이 여전히 정상 동작하는지 확인하는 테스트 활동을 회귀 테스트(Regression Testing) 라고 한다.
회귀 테스트는 유닛 테스트, 통합 테스트 등 다양한 테스트 전략을 동시에 활용하는게 일반적이다. 유닛 테스트의 작성 비용은 AI로 인해 많이 줄어들었다. 하지만 여전히 실제 운영 환경과 동일한 의존성을 갖는 환경에서 동작을 검증하기 위한 통합 테스트는 유닛 테스트에 비해 작성, 관리 비용이 높다. 비용이 더 큰 이유는 DB, Broker, Redis 등 외부 인프라 자원을 활용하기 때문이다.
통합 테스트 환경을 구축하고 CI/CD에 통합하거나 혹은 로컬에서 수동으로 테스트를 진행하기 위해 Testcontainer를 많이 사용하지만 컨테이너를 생성하고 초기화하는 오버헤드로 인해 속도가 느리다는 점이 있고, 자원 관리도 신경써야 한다.
개발자들은 AI가 작성한 코드를 직접 검증해야하는 의무가 있다. 예를 들어 로컬 서버를 dev 환경에 붙도록 띄운 다음에 직접 API를 호출하면서 확인할 수 있다.
이제는 AI 덕분에 AI가 작성한 코드가 회귀 문제를 일으키지 않는지 쉽게 검증하고 자동화할 수 있다. 아이디어는 다음과 같다.
먼저 통합 테스트 케이스(e.g 자주 검증을 위한 테스트 케이스)를 testcase.http 파일에 정의하고 ijhttp를 설치한 다음 testcase.http를 편하게 수행하기 위한 shell을 만들어야 한다.
그리고 rule을 정의해서 AI가 구현이 완료되면 자동으로 회귀 통합 테스트를 수행하도록 할 수 있다.
즉, testcase.http는 단순한 API 테스트 파일이 아니라 AI Agent가 코드 변경 후 기존 시스템의 동작을 스스로 검증하기 위한 통합 회귀 테스트의 최소 실행 단위로 활용할 수 있다.
