BackEnd/개발방법론

[ATDD] ATTD 란? Acceptance Test Driven Development

JJangGu 2022. 2. 27. 15:02

NEXTSTEP 의 ATDD 강의를 바탕으로 복습 및 ATDD 내 것으로 만들기!

 

ATDD 란?

용어를 그대로 해석했을 경우, 인수 테스트 주도 개발 로서 인수 테스트를 먼저 작성한 후 기능 개발이 이루어지는 개발방법론입니다. 

그러나 단순히 개발자의 사이드에서만, 즉 코드를 보는 쪽에서만 도입시켜야 되는 이론이 아닌 사용자와 개발자, 테스터 간의 커뮤니케이션을 원활하게 하는 개발 방법입니다. 

 

커뮤니케이션을 원활하게 해준다는 것이 어떤 의미일지 생각해보면, 하나의 서비스를 구성할때 기획과 개발, 테스트 등 여러 관점에서 같은 것을 보게됩니다. 그리고 결과물을 보았을때 각자 예상했던것이 다를 수 있는 것이죠.

인수테스트는 이런 리스크를 방지하기 위해 기획단계부터 인수 조건을 정의하고 테스트를 작성하여 여러 관점이 있는 사람들의 공통적인 이해를 목표로 프로젝트를 진행하게 도와줍니다.

 

ATDD의 사이클 출처[https://boorownie.github.io/1]
출처[https://catsbi.oopy.io/319552ed-1536-4772-b039-8c6a7929bedc]

 

ATDD 의 개발 프로세스

인수 조건 정의 → 인수 테스트 작성 → 문서화 → 기능 구현 → 테스트 리팩터링

위의 과정을 통해 항상 인수 조건에 맞는 기능 개발을 하고 있는지 확인할 수 있고, 후에 리팩터링의 과정에서도 시나리오를 계속 검증해나갈 수 있습니다.

 

그런데...인수테스트...?

인수테스트가 무엇일까요?!

 

인수테스트 (Acceptance Test)

인수테스트는 사용자의 관점에서 올바르게 작동하는지 테스트 하는 것입니다.

→ 고객이 의뢰한 요구사항에 충족하는지 테스트

 

인수테스트 VS 통합테스트

  인수 테스트 통합 테스트
대상 전체 시스템 통합 모듈
어떻게 Black Box Gray Box