통합구현
단위모듈 테스트의 개념
- 컴퓨터 프로그래밍에서 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차
단위모듈 테스트 방법
- 화이트박스 테스트
- 단위모듈 테스트의 가장 기본적인 방법
- 모듈 내부의 소스 코드를 보면서 테스트 케이스를 다양하게 만들어서 테스트
- 메소드 기반 테스트
- 단위 모듈의 외부에 공개된 메소드 기반 테스트
- 메소드에 파라미터 값을 다르게 호출하면서 다양한 테스트 수행
- 화면 기반 테스트
- 사용자용 화면이 있는 경우 각각의 화면 단위로 단위모듈 개발 후 화면에 직접 데이터를 입력하며 테스트 수행
- 화면과 연계된 서비스 컴포넌트, 비즈니스 컴포넌트 및 공통 텀포넌트를 한꺼번에 단위 테스트에 참여시킬 수 있음
- 사용자 시나리오에 기반한 단위 모듈 테스트
- 스텀과 드라이버 활용 테스트
- 사용자용 화면이 없는 경우 스텁 혹은 드라이버를 활용한 단위모듈 테스트
- 서비스 컴포넌트, 비즈니스 컴포넌트 등 하위 모듈 개발이 안된 경우에도 스텁과 드라이버를 활용한 단위 테스트 가능
소스코드 커버리지 개념
- 프로그램의 테스트 수행 정도를 나타내는 값으로 테스트 수행의 완벽성을 측정하는 도구
소스코드 커버리지 유형
- 구문 커버리지
- 소스코드 구문에 대한 단순한 실행 여부 측정
- 결정 커버리지
- 결정 조건 내의 전체 조건식이 최소한 참/거짓 한 번의 값을 가지도록 측정
- 조건 커버리지
- 전체 조건식의 결과와 관계없이 각 개별 조건식이 참/거짓 한번 모두 갖도록 조건식을 조합
- 조건/결정 커버리지
- 전체조건식이 참/거짓 한번씩 가지면서, 개별 조건식이 참/거짓 모두 한 번씩 갖도록 조합
- 변경조건/결정 커버리지
- 각 개별 조건식이 다른 개별 조건식에 무관하게 전체 조건식의 결과에 영향
- 다중조건 커버리지
- 결정 조건 내의 모든 개별 조건식의 모든 가능한 논리적 조합 100% 보상
IDE도구를 활용한 디버깅
- Eclipse 혹은 Window Visual Studio 같은 IDE 도구를 활용하여 단위 모듈에 대한 디버깅을 실시
- 디버깅 시 에러가 나온 코등 대해서 로직을 따라가면 변수 값의 변화를 관찰
단위테스트 자동화 도구를 활용한 디버깅
- JUnit
- Java 기반의 단위 모듈 테스트 자동화 도구
- CppUnit
- C++ 언어 기반의 단위 모듈 테스트 자동화 도구
- unittest
- Python에서 단위 테스트를 수행하기 위한 자동화 도구
- Python에서 단위 테스트를 수행하기 위한 자동화 도구