35. 단위 테스트(Unit Test)와 관련한 설명으로 틀린 것은?
① 구현 단계에서 각 모듈의 개발을 완료한 후 개발자가 명세서의 내용대로 정확히 구현되었는지 테스트한다.
② 모듈 내부의 구조를 구체적으로 볼 수 있는 구조적 테스트를 주로 시행한다.
❸ 필요 데이터를 인자를 통해 넘겨주고, 테스트 완료 후 그 결과값을 받는 역할을 하는 가상의 모듈을 테스트 스텁(Stub)이라고 한다.
④ 테스트할 모듈을 호출하는 모듈도 있고, 테스트할 모듈이 호출하는 모듈도 있다.
단위 테스트(Unit Test)와 관련된 문제에 대해 쉽게 설명드리겠습니다. 각 선택지와 관련된 개념을 분석하고, 잘못된 설명을 짚어보겠습니다.
문제:
"단위 테스트(Unit Test)와 관련한 설명으로 틀린 것은?"
- ① 구현 단계에서 각 모듈의 개발을 완료한 후 개발자가 명세서의 내용대로 정확히 구현되었는지 테스트한다.
- ② 모듈 내부의 구조를 구체적으로 볼 수 있는 구조적 테스트를 주로 시행한다.
- ❸ 필요 데이터를 인자를 통해 넘겨주고, 테스트 완료 후 그 결과값을 받는 역할을 하는 가상의 모듈을 테스트 스텁(Stub)이라고 한다.
- ④ 테스트할 모듈을 호출하는 모듈도 있고, 테스트할 모듈이 호출하는 모듈도 있다.
정답: ❸
해설 및 분석
① 구현 단계에서 각 모듈의 개발을 완료한 후 개발자가 명세서의 내용대로 정확히 구현되었는지 테스트한다.
- 설명: 맞는 설명입니다. 단위 테스트(Unit Test)는 주로 개발자가 작성한 코드가 명세서나 요구 사항에 맞게 동작하는지 확인하는 테스트입니다. 개발이 완료된 모듈을 독립적으로 테스트하여, 기능이 정확히 구현되었는지 확인하는 과정입니다.
- 예시: 예를 들어, "두 숫자의 합을 구하는 함수"가 있다고 할 때, 이 함수가 정확히 동작하는지 테스트하는 것이 단위 테스트입니다.
② 모듈 내부의 구조를 구체적으로 볼 수 있는 구조적 테스트를 주로 시행한다.
- 설명: 맞는 설명입니다. 단위 테스트는 주로 모듈의 내부 구현을 직접적으로 검사하는 구조적 테스트입니다. 개발자는 각 함수나 메서드가 의도한 대로 작동하는지, 그리고 내부 로직에 오류가 없는지 확인하는 데 초점을 맞춥니다.
- 예시: 예를 들어, 함수 내부에서 사용하는 변수들이 올바르게 업데이트되는지, 예외 처리가 제대로 되는지를 확인하는 것처럼 구조적인 부분을 테스트합니다.
❸ 필요 데이터를 인자를 통해 넘겨주고, 테스트 완료 후 그 결과값을 받는 역할을 하는 가상의 모듈을 테스트 스텁(Stub)이라고 한다.
- 설명: 틀린 설명입니다. **"테스트 스텁(Stub)"**은 모듈이나 함수의 테스트 과정에서 실제 구현이 아닌 "가짜" 대체물을 사용하는 방법입니다. 그러나 스텁은 필요한 데이터를 넘겨주는 역할이 아니라, 테스트할 코드가 호출할 다른 함수나 모듈을 대신하는 가짜 객체로 사용됩니다. 즉, 테스트 대상 모듈이 호출할 외부 의존 모듈을 대체하기 위해 사용됩니다.
- 정확한 설명:
- 테스트 스텁은 단위 테스트를 수행할 때 실제 의존성을 모킹(mocking)하는 객체입니다. 예를 들어, 데이터베이스나 파일 시스템과 같은 외부 시스템과의 연결을 대신하는 "가짜" 모듈입니다. 이 스텁을 사용하여 테스트 대상 모듈이 실제 데이터베이스와 연결하지 않고도 테스트할 수 있게 합니다.
- 예시: 만약 테스트 대상이 데이터베이스에서 데이터를 읽어오는 함수라면, 실제 데이터베이스 대신 가짜 데이터베이스를 사용하는 스텁을 만들 수 있습니다. 스텁은 데이터베이스와 연결되지 않지만, 미리 정의된 데이터를 반환합니다.
④ 테스트할 모듈을 호출하는 모듈도 있고, 테스트할 모듈이 호출하는 모듈도 있다.
- 설명: 맞는 설명입니다. 단위 테스트에서 테스트 대상 모듈이 호출하는 다른 모듈과 테스트 대상 모듈을 호출하는 외부 모듈이 있을 수 있습니다. 실제로, 테스트 대상 함수가 다른 함수나 모듈을 호출하거나, 반대로 다른 함수가 테스트 대상 함수를 호출하는 경우가 존재합니다.
- 예시: 예를 들어, A 함수가 B 함수를 호출할 때, A는 테스트 대상 함수이고, B는 호출된 함수가 됩니다. 이때 B 함수는 이미 테스트가 되었거나, 스텁을 사용하여 대체할 수 있습니다.
결론
- 정답은 ❸입니다.
- 테스트 스텁(Stub)은 테스트 대상 모듈이 의존하는 외부 모듈을 대체하는 "가짜" 객체로, 결과값을 받는 역할을 하는 것이 아니라, 외부 의존성을 대신하여 테스트를 독립적으로 수행할 수 있도록 돕는 역할을 합니다.
- 단위 테스트는 모듈이나 함수의 개별적인 동작을 검증하는 테스트로, 개발자가 명세서에 맞게 구현되었는지 확인하고, 구조적인 테스트를 진행합니다.
'기출문제 > 정보처리기사' 카테고리의 다른 글
2022년 2회 정보처리기사 기출문제 37번 (0) | 2025.02.25 |
---|---|
2022년 2회 정보처리기사 기출문제 36번 (0) | 2025.02.25 |
2022년 2회 정보처리기사 기출문제 34번 (0) | 2025.02.25 |
2022년도 2회 정보처리기사 기출문제 33번 (0) | 2025.02.24 |
2022년도 2회 정보처리기사 기출문제 32번 (0) | 2025.02.24 |