TDD는 우리를
- 의식적으로 구체적인 테스트 시나리오 목록을 기록하게 합니다.
- 두려워하지 않고 앞으로 나아갈 수 있게 합니다.
- “테스트는 두려움을 지루함으로 바꾸는 프로그래머의 연금석입니다.” – Kent Beck
- 구현 코드의 설계보다 제품의 가치에 집중하게 합니다.
생성형 AI 보급이 프로그래머에 미치는 영향
- 제품 개발의 궁극적인 목적은 사람에게 가치를 전달하는 것입니다.
- 제품 개발자는 가치 전달 과정에서 발생할 수 있는 기대하지 않은 피해를 차단해야 합니다.
- 주어진 요구사항에 대한 구현 코드나 그 초안을 만드는 생성형 AI의 능력은 빠르게 향상되고 있습니다.
- 프로그래머는 구현 코드의 설계보다 올바른 가치 전달을 위해 필요한 논리적이고 모순되지 않으며 구체적인 요구사항 제시에 더욱 기여해야 합니다.
- 마치 군용 AI가 본부와 자신의 통신 장비를 파괴하지 않으며 신속하고 효율적으로 적을 타격할 수 있는 명령을 작성하는 것과 비슷합니다.
생성형 AI 보급과 TDD
- TDD는 올바른 요구사항 제시를 유도 또는 장려합니다.
- 유사한 흐름을 공유하는 테스트를 반복해서 작성할 때 생성형 AI는 뛰어난 도구입니다.
- 테스트로 표현된 요구사항은 생성형 AI에게 구현 코드 작성을 주문하는 효과적인 입력입니다.
- 생성형 AI는 테스트 작성과 구현 코드 작성에서 모두 TDD 비용을 줄여 줍니다.
- AI 코드 생성 능력은 프로그래머가 구현 코드가 아닌 소프트웨어 가치에 집중할 수 있게 합니다.
- TDD를 통해 확보된 소프트웨어 가치에 기반한 테스트 집합은 시스템에 지속적으로 추가되는 AI 생성 코드가 가질 수 있는 오류와 위험을 효과적으로 방어할 수 있습니다.