BackEnd/개발방법론 4

[단위 테스트와 도구] 단위 테스트 & 통합과 고립(Sociable and Solitary)

단위 테스트를 주도로 하는 TDD 에 대해서 간단히 설명을 했습니다. 이제 단위 테스트를 작성할 때, 협력 객체에 대해서 어떤 관점으로 테스트를 작성할 지 또 그에 따른 도구들은 어떤 것이 있는지 학습하겠습니다. 해당 내용은 "우아한 테크캠프 Pro" 과정과 "ATDD와 함께 클린 API로 가는 길" 교육을 바탕으로 학습한 내용입니다. 1. 단위 테스트란? 응용 프로그램에서 테스트 가능한 작은 소프트웨어를 실행하여 예상대로 동작하는지 확인하는 테스트. 단위 테스트는 보통 메서드, 클래스 단위로 정해지는데, 단위의 크기가 작을수록 복잡성이 낮아집니다. 단위에 대한 정의는 하는 사람에 따라 다르지만 결국 검증하려는 시스템에서 작은 부분에 맞추어지고, 다른 종류의 테스트보다 가볍고 빠르고 화이트박스 테스트의 ..

[ATDD] RestAssured

간단하게 ATDD에 대한 개념만 지난 글에서 잠깐 다루었습니다. 이번에는 ATDD 를 하기 위한 테스트 도구를 소개하고자 합니다. 1. RestAssured REST 어플리케이션의 HTTP Endpoint 에 초점을 맞춘 테스트 도구. RestAssured 를 본격적으로 소개하기 전에 먼저 인수 테스트는 블랙박스 테스트의 성격을 가지고 있고, 내부의 코드를 직접 호출하지 않고 외부에서만 요청하여 검증하는 것이 좋습니다. 예를 들어, 고객이 상품을 구매한다는 액션을 할 때, 상품의 재고를 확인하고 할인율을 적용하고 고객의 등급을 확인하고 이런 여러가지의 내부로직이 동작한다고 해봅시다. 그렇다면 인수 테스트로 검증하는 것은 "고객이 상품을 구매한다" → "상품 구매 성공" 이 시나리오를 검증하는것 입니다. ..

[ATDD] ATTD 란? Acceptance Test Driven Development

NEXTSTEP 의 ATDD 강의를 바탕으로 복습 및 ATDD 내 것으로 만들기! ATDD 란? 용어를 그대로 해석했을 경우, 인수 테스트 주도 개발 로서 인수 테스트를 먼저 작성한 후 기능 개발이 이루어지는 개발방법론입니다. 그러나 단순히 개발자의 사이드에서만, 즉 코드를 보는 쪽에서만 도입시켜야 되는 이론이 아닌 사용자와 개발자, 테스터 간의 커뮤니케이션을 원활하게 하는 개발 방법입니다. 커뮤니케이션을 원활하게 해준다는 것이 어떤 의미일지 생각해보면, 하나의 서비스를 구성할때 기획과 개발, 테스트 등 여러 관점에서 같은 것을 보게됩니다. 그리고 결과물을 보았을때 각자 예상했던것이 다를 수 있는 것이죠. 인수테스트는 이런 리스크를 방지하기 위해 기획단계부터 인수 조건을 정의하고 테스트를 작성하여 여러 ..

[TDD] TDD 란? (Test Driven Development)

[사진 : https://wooaoe.tistory.com/33] 우아한테크캠프 Pro 과정에서 배웠던 TDD 를 복습하고자 합니다. ✹ TDD란? Test Driven Development. 즉, 테스트가 주도하는 개발. 기존에 방식 : 설계 → 개발 → 테스트 TDD의 방식 : 설계 → (테스트 - 개발) 위와 같이 3가지의 cycle 을 돌며 개발을 진행하다 테스트를 통하여 설계의 오류를 잡을 수 있음. 🔄 TDD 개발 사이클 설계 → 실패하는 테스트 케이스 작성(작은 단위) → 테스트 통과하도록 작성 → 리팩토링 TDD 에서 코드는 크게 두가지로 나눕니다. 실제 구현 코드인 '프로덕션 코드' 와 테스트를 담당하는 '테스트 코드' TDD 로 개발을 진행하는 경우에는 TDD의 cycle에 맞게 프로덕..