[오답정리] 단위 모듈(Unit Module)
2과목. 소프트웨어 개발 > 2장. 통합 구현 > 단위 모듈(Unit Module) : 단위 모듈의 설계 원리
- 단위 모듈 구현
- 단위 모듈 설계 원리
- 독립성 보장 : 낮은 결합도, 높은 응집도
- 공통 모듈 구현을 먼저, 개별 단위 모듈 구현 시 공통모듈을 재사용
- 항상 예외처리 로직을 고려하여 구현
- 단위 모듈 설계 원리
- 단위 모듈 테스트
- 단위 모듈 테스트 시 고려사항
- 단위모듈 구현이 완료되었으면 단위모듈 테스트를 함
- 단위모듈 테스트를 위해서 IDE 도구를 활용하여 단위모듈 하나하나에 대한 디버깅을 수행
- 단위모듈 테스트는 화이트박스 테스트 기법을 사용
- 단위 모듈 테스트의 소스코드 커버리지
- 구문 커버리지 Statement Coverage
- 소스코드 구문에 대한 단순한 실행 여부 측정
- 아래 예제에서 조건문의 결과와 관계 없이 구문이 실행된 개수로서 계산
- 결정 커버리지 Decision Coverage
- 결정 조건 내의 전체 조건식이 최소한 참 / 거짓 한 번의 값을 가지도록 측정
- 조건 커버리지 Condition Coverage
- 전체 조건식의 결과와 관계 없이 각 개별 조건식이 참 / 거짓 한 번 모두 갖도록 개별 조건식을 조합
- 조건 / 결정 커버리지 Condition / Decision Coverage
- 전체 조건식이 참 / 거짓 한 번 씩 가지면서, 개별 조건식이 참 / 거짓 모두 한 번씩 갖도록 조합
- 변경조건 / 결정 커버리지 Modified Condition / Decision Coverage
- 각 개별 조건식이 다른 개별 조건식에 무관하게 전체 조건식의 결과에 영향
- 다중조건 커버리지 Multiple Condition Coverage
- 결정 조건 내의 모든 개별 조건식의 모든 가능한 논리적 조합 100% 보장
- 구문 커버리지 Statement Coverage
- 단위 모듈 디버깅 자동화 도구
- 단위테스트 도구와 해당 언어는 첫 글자에 어느 정도 힌트가 있음
- 예외 사항 - C# : xUnit, python : unittest
- 단위 모듈 테스트 방법
- 화이트 박스 테스트
- 단위 모듈 테스트의 가장 기본적인 방법은 모듈 내부의 소스를 보면서 수행하는 화이트박스 테스트
- 소스 코드를 보면서 테스트 케이스를 다양하게 만들어서 테스트할 수 있음
- 메소드 기반 테스트
- 단위 모듈의 외부에 공개된 메소드 기반 테스트
- 메소드에 파라미터 값을 다르게 호출하면서 다양한 테스트를 수행
- 화면 기반 테스트
- 사용자용 화면이 있는 경우 각각의 화면 단위로 단위 모듈 개발 후 화면에 직접 데이터를 입력하여 테스트를 수행
- 화면 기반 테스트는 화면과 연계된 서비스 컴포넌트, 비즈니스 컴포넌트 및 공통 컴포넌트를 한꺼번에 단위 테스트에 참여시킬 수 있음
- 사용자 시나리오에 기반한 단위 모듈 테스트를 할 수 있음
- 스텁과 드라이버 활용
- 사용자용 화면, 하위 모듈 (서비스 컴포넌트, 비즈니스 컴포넌트) 등과 같이 테스트 수행에 필요한 다른 모듈 개발이 안 된 경우 스텁과 드라이버를 활용하여 단위 테스트를 함
- 화이트 박스 테스트
- 단위 모듈 테스트 시 고려사항
800제-721번. 소프트웨어 개발 시 단위 모듈의 구현 원리가 아닌 것은?
① 정보 은닉
② 분할과 정복
③ 데이터 추상화
④ 모듈 응집도
정답 : 4
1000제-259번. 다음 중 단위 모듈 구현 시 고려할 사항으로 가장 거리가 먼 것은?
① 응집도는 높이고, 결합도는 낮추는 방향으로 구현을 한다.
② 개별 모듈을 먼저 구현 후 공통 모듈은 맨 나중에 구현한다.
③ 단위 모듈 테스트는 IDE 도구를 활용하여서 수행한다.
④ 항상 예외처리 로직을 고려하여 구현한다.
정답 : 2
1000제-263번. 단위모듈 디버깅을 위하여 자동화 도구를 활용한 사례 중 가장 적절하지 않은 것은?
① Java 기반 단위 모듈 디버깅에 JUnit을 활용하였다.
② C++ 기반 단위 모듈 디버깅에 CppUnit 을 활용하였다.
③ python 기반 단위 모듈 디버깅에 unittest 을 활용하였다.
④ Swift 기반 단위 모듈 디버깅에 xUnit 을 활용하였다.
정답 : 4
1000제-265번. 단위모듈 테스트에서 소스코드 커버리지에 대한 설명 중 틀린 내용은?
① 구문 커버리지(Statement)는 조건문의 결과와 관계없이 구문이 실행된 개수로 계산한다.
② 결정 커버리지(Decision)는 전체 조건식의 결과와 관계없이 각 개별조건식이 참 한번, 거짓 한번 모두 갖도록 개별 조건식을 조합하면 달성할 수 있다.
③ 조건/결정 커버리지(Condition/Decision)는 전체 조건식이 참/거짓 한 번씩 가지면서, 개별 조건식도 참/거짓 모두 한 번씩 갖도록 조합하면 달성할 수 있다.
④ 다중조건(Multiple) 커버리지는 결정 조건 내의 모든 개별 조건식의 모든 가능한 논리적 조합을 하면 달성할 수 있다.
정답 : 2
1000제-336번. 단위 모듈 테스트 방법으로 적절하지 않은 것은?
① 화이트박스 테스트
② 메소드 기반 테스트
③ 블랙박스 테스트
④ Stub과 Driver 활용 테스트
정답 : 3
1000제-921번. 소프트웨어 개발 시 단위 모듈의 구현 원리가 아닌 것은?
① 정보 은닉
② 분할과 정복
③ 데이터 추상화
④ 모듈 응집도
정답 : 4
1000제-933번. 테스트 케이스 자동 생성 도구를 이용하여 테스트 데이터를 찾아내는 방법이 아닌 것은?
① 스텁(Stub)와 드라이버(Driver)
② 입력 도메인 분석
③ 랜덤(Random) 테스트
④ 자료 흐름도
정답 : 1