Meta의 새로운 LLM 기반 테스트 생성기는 개발의 미래를 엿볼 수 있는 기회
- Meta는 "Automated Unit Test Improvement using Large Language Models at Meta"라는 논문을 발표함.
- 이 논문은 AI를 사용하여 개발 속도를 높이고 소프트웨어의 버그를 줄이는 방법을 보여줌.
- LLM을 개발자의 워크플로우에 통합하면서, 현재 코드 커버리지를 개선하는 정확하고 완전한 소프트웨어 개선안을 제안함.
주요 포인트
- TestGen-LLM은 'Assured LLM-based Software Engineering' (Assured LLMSE) 접근 방식을 사용함.
- 여러 LLM, 프롬프트, 하이퍼파라미터를 사용하여 코드 개선안을 생성하고, 최선의 개선안을 선택하는 앙상블 접근법을 사용함.
- TestGen-LLM은 기존의 인간이 작성한 테스트를 개선하는 데 특별히 설계되었음.
통계
- Instagram의 Reels와 Stories 제품 평가에서 TestGen-LLM이 생성한 테스트 케이스의 75%가 정상적으로 빌드되었고, 57%가 신뢰성 있게 통과했으며, 25%가 커버리지를 증가시킴.
- TestGen-LLM은 적용된 모든 클래스의 10%를 개선할 수 있었고, 개발자들이 73%의 테스트 개선안을 수용하여 프로덕션에 적용함.
- Meta 엔지니어들이 Instagram의 테스트 커버리지를 늘리기 위해 테스트를 생성하는 "test-a-thon"에서 TestGen-LLM 테스트가 추가한 코드 라인의 중간값은 2.5였음.
실천 가능한 인사이트
- LLM을 사용하여 개발 생산성과 소프트웨어 신뢰성을 효율적으로 향상시킬 수 있는 좋은 예시임.
- LLM의 진정한 가치는 예상치 못한 엣지 케이스를 찾고 잡는 데 있음.
- LLM을 생산에 사용하기 위해서는 오케스트레이션, 파이프라인, 처리가 필요함.
TestGen-LLM 작동 방식
- TestGen-LLM은 Meta의 내부 LLM에 의해 생성된 후보 솔루션에 일련의 의미론적 필터를 적용하여 가장 가치 있는 테스트만 보존함.
- 필터 1: 빌드 가능성, 필터 2: 실행(테스트 통과 여부), 필터 3: 변덕스러움, 필터 4: 커버리지 개선.
- 이러한 처리 필터는 테스트 스위트의 개선을 보장함.
결론
- 이 논문은 많은 개발자들이 이미 LLM을 사용하여 소프트웨어 신뢰성 공간에서 LLM의 진보를 추적하는 좋은 방법임.
- LLM이 점점 더 복잡한 소프트웨어 시스템에서 버그를 찾고 테스트할 수 있게 될 것임.
GN⁺의 의견
- 이 기사는 인공지능이 소프트웨어 개발의 미래에 어떤 영향을 미칠 수 있는지에 대한 흥미로운 통찰을 제공함.
- TestGen-LLM과 같은 도구는 개발자의 작업을 자동화하고 효율성을 높이는 데 큰 도움이 될 수 있음.
- 이러한 기술의 발전은 소프트웨어 개발의 복잡성을 줄이고, 품질을 향상시키며, 개발자의 시간을 절약하는 방향으로 나아가고 있음.