728x90

TDD

TDD(Test-Driven-Development, TDD)는 구현을 먼저 하고 나중에 테스트하는 것이 아닌 테스트를 먼저 하고 이후에 구현을 하는 것을 말한다. 여기서 테스트는 기능이 올바르게 동작하는지 검증하는 테스트 코드를 작성한다는 것을 의미한다. 기능을 검증하는 테스트 코드를 작성하고 테스트를 통과하기 위해 개발을 진행하는 것을 말한다.

Write 단계

테스트를 먼저 작성합니다. 아직 개발되지 않은 기능을 테스트하는 코드를 작성하여 실행했을 때 실패하는 상태를 만듭니다. 이 단계에서 테스트가 실패하는 것이 정상이며 이를 통해 구현되지 않는 요구 사항이나 기능을 명확히 이해하고 명세화할 수 있습니다.

Make the test Pass 단계

테스트를 통과할 정도로 최소한의 코드를 작성합니다. 실패했던 테스트들을 통과시키기 위한 최소한의 코드를 작성하여 테스트를 통과십니다. 이 단계에서 최소한의 코드만 작성하여 테스트를 통과시키는 것이 목표입니다.

Refactor 단계

작성된 코드와 테스트를 리팩터링 하고, 코드를 보다 깔끔하고 효율적으로 개선합니다. 코드의 가독성을 높여주며 중복을 제거하여 더 나은 상태롤 개선합니다.

TDD 흐름

TDD는 기능을 검증하는 테스트를 작성 후에 작성 테스트를 통과하지 못하면 테스트를 통과할 만큼만 코드 작성하며 테스트를 통과한 뒤에는 개선할 코드가 있으면 리팩토링 한다 이런 단계로 버그를 줄이고 지속적으로 코드 정리를 하므로 코드 품질이 급격히 나빠지지 않게 막아주는 효과가 있다. 이런 효과로 나중에 유지보수 비용을 낮출 수 있다.

TDD 장점

  • 테스트를 통해 코드를 안정적 유지 가능합니다.
  • 테스트를 먼저 작성하므로 요구사항을 명확하게 이해하고 구체화 가능합니다.
  • 테스트가 지속적으로 개발을 이끌어가므로 코드의 유연성과 확장성을 높일 수 있습니다.

TDD 단점

  • 초기에 테스트 작성하는 데 드는 시간이 많이 듭니다.
  • 가끔은 TDD를 지나치게 적용하면 테스트 코드가 과도하게 많아질 수 있습니다. 이로 인해 유지 보수가 복잡해지고 코드의 가독성이 떨어질 수 있습니다.
  • TDD에서 초기에 테스트를 작성하고 코드를 작성하기 때문에 때로는 설계변경이 필요할 때 추가적인 노력이 필요할 수 있습니다. 특히 기존 테스트들을 유지하며 새로운 요구사항을 수용하기 위해서 조정과 수정이 필요할 수 있습니다.

JUnit

자바 프로그래밍 언어를 위한 유닛 테스트 프레임워크 중 하나입니다. 유닛 테스트란 소프트웨어의 각 부분이 의도한 대로 작동하는지 검증하는 프로그래밍 활동입니다. JUnit은 이러한 유닛 테스트를 지원하고 보조하는 테스팅 프레임워크입니다. 테스트를 위한 어노테이션을 제공하여 간편한 테스트 코드 작성을 가능하게 해 줍니다.

  • @Test, @Before, @After, @BeforeClas, @AfterClass 등의 어노테이션을 사용하여 테스트 메서드를 정의하고 테스트 실행 전/후에 수행할 작업을 설정 가능합니다.
  • assertions 기능으로 예상 결과와 실제 결과를 비교하여 테스트의 성공 또는 실패를 판단하는 데 사용하며 assertEquals, assertTrue, assertFalse 등을 이용해 값의 일치 여부를 확인할 수 있습니다.
  • 사용자 지정 어노테이션과 확장 포인트를 제공하여 테스트의 실행 흐름을 제어하고 테스트를 확장하거나 조정할 수 있습니다.
728x90

'알쓸I잡(알면 쓸모있는 IT 잡학사전)' 카테고리의 다른 글

403....Error  (0) 2023.12.08
VS CODE 태그 쉽게 감싸는방법  (0) 2023.10.11
HTML 경로 표기법  (0) 2023.10.10