[배경]
테스트 주도 개발(Test-Driven Development, TDD)은 소프트웨어 개발 방법론 중 하나로, 먼저 테스트 코드를 작성하고 이를 통과시키기 위해 실제 코드를 작성하는 과정을 반복합니다. 이전의 블로그글로 다른 소프트웨어 개발방법론을 알아보실 수 있습니다.
https://kdong0712.tistory.com/25
[CS] 테스트, 행동, 도메인: TDD, BDD, DDD로 이해하는 소프트웨어 개발
[개요] 소프트웨어 개발의 성공은 단순히 코드의 양에 달려 있지 않습니다. 개발 과정에서의 체계적인 접근과 지속적인 테스트가 중요합니다. 소프트웨어 개발의 복잡성이 날로 증가함에 따라,
kdong0712.tistory.com
TDD 방법론은 코드의 품질을 높이고, 유지 보수성을 향상시키며, 버그를 줄이는 데 도움을 줍니다. 하지만 TDD를 효과적으로 적용하기 위해서는 몇 가지 중요한 조건을 충족해야 합니다. 여기서 중요한 두 가지 기억법이 바로 Right-BICEP과 CORRECT입니다.
Right-BICEP는 테스트 케이스가 다뤄야 할 주요 요소를 기억하기 쉽게 만든 약어입니다. 각 글자는 테스트에서 고려해야 할 다양한 측면을 나타냅니다.
R - Right (정상 케이스), B - Boundary conditions (경계 조건), I - Inverse relationships (역관계), C - Cross-check using other means (다른 방법으로 교차 검증), E - Error conditions (오류 조건), P - Performance characteristics (성능 특성)을 의미 합니다.
CORRECT는 데이터와 관련된 테스트 설계 시 고려해야 할 중요한 사항들을 나타내는 약어입니다. 특히 데이터베이스 테스트에 유용한 가이드라인입니다.
C - Conformance (준수 여부), O - Ordering (순서), R - Range (범위), R - Reference (참조 무결성), E - Existence (존재 여부), C - Cardinality (기수성), T - Timing (타이밍)를 의미합니다.
[내용]
1. Right-BICEP 기억법
Right-BICEP은 TDD 과정에서 각 테스트가 가져야 하는 중요한 속성들을 기억하기 쉽게 만들어진 기억법입니다. Right-BICEP의 각 글자는 다음을 의미합니다:
- R - Right (정상 케이스):
- 기능이 예상대로 동작하는지 확인합니다.
- 정상적인 입력과 사용 시, 시스템이 올바르게 작동하는지를 테스트합니다.
- 예시: 2 + 2를 계산할 때 결과가 4인지 확인.
- B - Boundary conditions (경계 조건):
- 입력의 경계값(최대, 최소)을 테스트합니다.
- 경계값을 사용하여 예기치 않은 오류나 예외 상황이 발생하지 않는지 확인합니다.
- 예시: 배열에서 첫 번째 또는 마지막 인덱스에 접근할 때 발생할 수 있는 오류를 테스트.
- I - Inverse relationships (역관계):
- 역관계에 대한 테스트를 의미합니다. 어떤 연산을 수행한 후 그 반대 연산을 수행하여 원래 상태로 돌아오는지 확인합니다.
- 예시: 문자열을 암호화한 뒤, 다시 복호화했을 때 원래 문자열과 동일한지 확인.
- C - Cross-check using other means (다른 방법으로 교차 검증):
- 동일한 결과를 도출하는 다른 방법을 사용하여 결과를 교차 확인합니다.
- 예시: 두 개의 다른 알고리즘을 사용하여 같은 연산을 수행하고 결과가 동일한지 확인.
- E - Error conditions (오류 조건):
- 예상되는 오류 상황이나 잘못된 입력을 테스트합니다.
- 시스템이 잘못된 입력에 대해 적절하게 오류를 처리하는지 확인합니다.
- 예시: 숫자를 입력받는 함수에 문자를 입력했을 때 예외가 발생하는지 테스트.
- P - Performance characteristics (성능 특성):
- 성능 요구 사항을 확인합니다.
- 시스템이 성능 면에서 요구사항을 충족하는지 확인합니다.
- 예시: 대용량 데이터 처리 시 시스템 응답 시간이 허용 범위 내에 있는지 테스트.
2. CORRECT 기억법
CORRECT는 Right-BICEP과 함께 사용될 수 있는 또 다른 기억법으로, TDD에서 테스트 케이스의 품질을 보장하기 위해 확인해야 하는 조건을 나타냅니다. CORRECT의 각 글자는 다음을 의미합니다
- C - Conformance (준수 여부):
- 데이터가 지정된 형식, 규칙, 표준을 따르는지 확인합니다.
- 예시: 전화번호 입력 시, 형식이 123-456-7890과 같은지 확인.
- O - Ordering (순서):
- 데이터가 올바른 순서로 정렬되어 있는지 확인합니다.
- 예시: 이름 목록이 알파벳 순서로 정렬되어 있는지 테스트.
- R - Range (범위):
- 데이터가 허용된 범위 내에 있는지 확인합니다.
- 예시: 나이 입력 필드가 0에서 120 사이의 값을 받아들이는지 테스트.
- R - Reference (참조 무결성):
- 데이터가 외부 참조(외래 키 등)를 올바르게 참조하는지 확인합니다.
- 예시: 주문이 올바른 고객 ID와 연결되어 있는지 확인.
- E - Existence (존재 여부):
- 필수 데이터가 누락되지 않았는지 확인합니다.
- 예시: 사용자 프로필에서 필수 필드(예: 이름, 이메일)가 비어 있지 않은지 테스트.
- C - Cardinality (기수성):
- 데이터 간의 관계에서 올바른 수량이 있는지 확인합니다.
- 예시: 하나의 고객이 여러 주문을 가질 수 있는지 확인.
- T - Timing (타이밍):
- 시간에 따라 데이터가 올바르게 처리되는지 확인합니다.
- 예시: 주문 처리 시점이 주문 생성 후 합리적인 시간 내에 완료되는지 테스트.
[결론]
TDD는 소프트웨어 개발의 품질을 향상시키는 강력한 방법론입니다. Right-BICEP과 CORRECT 기억법은 TDD를 더욱 효과적으로 적용하기 위한 필수 조건을 제공합니다. Right-BICEP은 테스트의 범위와 깊이를 보장하여 테스트의 신뢰성을 높이며, CORRECT는 테스트의 포괄성과 정확성을 보장합니다. 이 두 기억법을 잘 활용하면, 우리는 더욱 견고하고 유지 보수하기 쉬운 소프트웨어를 개발할 수 있습니다. TDD를 통해 지속적인 코드 개선과 품질 향상을 이루어 나가길 바랍니다.
[출처 및 참조]
- 최범균의 JSP 2.3 웹 프로그래밍: 기초부터 중급까지
- https://oozoowos.tistory.com/entry/%EC%BD%94%EB%93%9C-%ED%85%8C%EC%8A%A4%ED%8A%B8%EC%97%90-%EA%B4%80%ED%95%9C-%EC%95%BD%EC%96%B4FIRST-Right-BICEP-CORRECT
- https://oozoowos.tistory.com/entry/%EC%BD%94%EB%93%9C-%ED%85%8C%EC%8A%A4%ED%8A%B8%EC%97%90-%EA%B4%80%ED%95%9C-%EC%95%BD%EC%96%B4FIRST-Right-BICEP-CORRECT
'jsp' 카테고리의 다른 글
[디자인 패턴] 템플릿 메서드 패턴 (0) | 2024.06.19 |
---|---|
[디자인 패턴] 프록시 패턴 이해하기: Java로 간단하게 따라 해보기 (0) | 2024.06.19 |
[디자인 패턴] 싱글톤 패턴 (0) | 2024.06.19 |
[JSP] 들어가기에 앞서 HTML 필수 기본 내용 정리 (0) | 2024.06.13 |