Hacker News 의견
  • LLM(대규모 언어 모델)을 사용하여 테스트 코드를 작성하는 것이 구현보다 우선하는 경향이 흥미롭다는 의견이 있음. 테스트는 시스템이 어떻게 동작해야 하는지를 설명하는 역할을 하기 때문에, 인간이 정의해야 할 부분이라는 시각이 있음. 그러나 LLM이 명시되지 않은 영역을 지적하는 데 유용할 수 있으며, 이러한 영역에 대한 단위 테스트를 제안하는 것이 LLM의 적절한 사용 방법일 수 있음.
  • 메타의 TestGen-LLM이 생성한 테스트 케이스 중 대부분은 단 2.5줄의 코드만을 추가로 커버했지만, 한 테스트 케이스는 무려 1326줄을 커버했다는 블로그 포스트에 대한 비판이 있음. 이는 예외적인 경우로, 대부분의 테스트 케이스가 기대하는 코드 커버리지보다 훨씬 낮다는 점을 논문에서 명시하고 있음. 논문의 저자들은 이를 '잭팟'이라고 표현하며, 이러한 결과가 일반적이지 않음을 분명히 함.
  • 좋은 테스트 작성이 어렵다는 의견이 있음. 코드 커버리지가 반드시 좋은 것만은 아니며, 너무 많은 테스트를 작성하면 프로그램을 경직시킬 수 있음. LLM을 사용하여 테스트를 재생성하는 것이 진전처럼 보일 수 있지만, 이는 결국 변경 감지기 프로그램을 만드는 것에 불과할 수 있음.
  • TestGen-LLM에 대한 논문의 요약이 실제 내용과 일치하지 않는다는 지적이 있음. 논문의 요약은 테스트 케이스에 대한 성공률을 언급하지만, 실제 보고서는 테스트 클래스에 대한 성공률을 다루고 있으며, 이는 매우 다른 진술임. 결론에서도 이러한 차이를 잘못 표현하고 있음.
  • LLM으로 생성된 코드를 유지보수해야 할 미래의 개발자들에 대한 동정이 있음. 이러한 코드는 관리하기 어려울 것이라는 우려가 있음.
  • LLM으로 생성된 테스트 코드가 개발자에게 적대적인 환경을 만들 수 있다는 우려가 있음. 관리가 어려운 LLM 생성 테스트 코드를 매번 승인받아야 하는 상황이 발생할 수 있음. 테스트 작성이 가속화될 수는 있지만, 유지보수는 반드시 쉬워지는 것은 아님. 테스트는 코드 설계를 검토하는 데 도움이 되며, 테스트가 쉽지 않다면 좋은 설계가 아닐 수 있음. 테스트는 자동화된 안심을 제공하고 잠재적인 오류를 방지하는 역할을 하지만, 커버리지가 높아질수록 투자 대비 효용은 감소함. LLM은 경험이 풍부한 개발자가 무엇을 테스트해야 할지 이미 알고 있는 경우에만 시간을 절약할 수 있음.
  • GPT-4를 사용하여 TypeScript 모듈에 대한 단위 테스트를 생성해본 경험이 있으며, 이는 성공적으로 작동하는 테스트를 만들어냈다는 경험담이 있음.
  • AI가 어떤 테스트를 작성해야 하는지 어떻게 알 수 있는지에 대한 의문이 있음. AI가 소프트웨어 개발을 돕는 가장 좋은 방법은 프로그래머가 코드에 대해 질문할 때 AI가 답변을 제공하는 것이며, 때로는 코드 제안을 포함할 수도 있고 그렇지 않을 수도 있음. AI는 코드를 이해하고 개선하는 방법을 이해하는 데 도움을 줄 수 있어야 함.
  • AI 코드에 대한 의견은 실제 도구를 사용하고 잘 알고 있는 코드베이스에서 출력을 검토해본 실용적인 경험이 없으면 가치 있는 의견을 가질 수 없다는 의견이 있음. AI 코드는 매우 정치적인 주제이며, 많은 사람들이 강한 의견을 가지고 있음. 그러나 실제로 시도해보고 싶은 욕구가 있음. 이러한 기술은 개발 비용이 매우 높기 때문에, AI 도구가 크게 개선되지 않는다면 그 비용을 정당화하기 어려울 수 있음. 그럼에도 불구하고 미래에 달성될 것에 대해 낙관적임.
  • 논문의 오디오북 요약 링크가 제공됨.