ISTQB 연습문제 풀이 - Exam B : Q#15

 


1. Introduction

Static testing evaluates work products without executing the code, whereas dynamic testing requires running the software. This question asks which defect can be identified only through static testing.

Note (EN/KR):
Static testing includes reviews, walkthroughs, and static analysis.
정적 테스트는 리뷰, 워크스루, 정적 분석 등 실행 없이 이루어지는 활동입니다.

2. Key Concepts

  • Static Testing – Review or analyze artifacts without executing the code.
    정적 테스트: 코드를 실행하지 않고 산출물을 검토·분석하는 활동입니다.
  • Dynamic Testing – Execute the software to observe behavior, performance, and usability.
    동적 테스트: 실제로 코드를 실행하여 동작·성능·사용성을 확인합니다.
  • Main Difference
    핵심 차이 – Static testing finds structural defects (e.g., unreachable code). – Dynamic testing finds behavioral defects (e.g., performance, usability).

3. Practice Question

❓ Question

Which of the following is an example of a defect that can be found by static testing but NOT by dynamic testing?

  • a) Lack of usability provided through the user interface
  • b) Code with no path that reaches it
  • c) Poor response times for most of the expected users
  • d) Required features that are not implemented in the code

✅ Correct Answer: b)

📘 Explanation (EN/KR)

  • a) Not correct. Usability issues can be found through UI reviews (static), but also by having users interact with the system dynamically.
    오답. UI 사용성 문제는 리뷰(정적)로도 찾을 수 있지만 실제 사용자 테스트(동적)로도 쉽게 확인할 수 있습니다.
  • b) Correct. Unreachable code can be detected by reviewing source code or running static analysis tools. Dynamic tests cannot reliably detect unreachable code unless every possible input/state is executed—which is impractical.
    정답. 도달 불가능한 코드는 코드 리뷰나 정적 분석으로 발견할 수 있습니다. 동적 테스트는 모든 가능한 경로를 실행해야만 알 수 있는데, 이는 현실적으로 불가능합니다.
  • c) Not correct. Poor response times require execution of the system, so dynamic testing is needed.
    오답. 응답 시간이 느린 문제는 실제 실행해야만 알 수 있으므로 동적 테스트로만 발견 가능합니다.
  • d) Not correct. Missing features can be found by reviewing requirements or code (static), but also through dynamic execution when expected behavior does not occur.
    오답. 요구 기능 누락은 코드/요구사항 리뷰로 찾을 수 있지만, 실제 실행을 통해 기능이 동작하지 않는 것으로도 확인할 수 있습니다.

✔ Therefore, only option (b) represents a defect detectable exclusively by static testing.
✔ 따라서 정적 테스트로만 확실히 발견 가능한 결함은 (b)입니다.

📊 Summary Table

Option Defect Type Static? Dynamic? Why?
b Unreachable code
도달 불가능한 코드
✔ Yes ❌ No Requires code inspection; dynamic execution cannot prove unreachable paths.
코드 리뷰 필요, 모든 경로 실행은 불가능.
a Low usability
사용성 문제
✔ Possible ✔ Possible 정적/동적 모두 가능.
c Poor performance
성능 저하
❌ No ✔ Yes 실행해야만 알 수 있음.
d Missing feature
미구현 기능
✔ Possible ✔ Possible 정적 리뷰/동적 실행 모두로 발견 가능.

4. Summary & Call to Action

Static testing is powerful for identifying structural issues like unreachable code, while dynamic testing finds issues related to performance and behavior.

정적 테스트는 도달 불가능한 코드 같은 구조적 결함을 찾는 데 강하며, 동적 테스트는 성능·동작 문제를 발견하는 데 유용합니다.

refer to : FL-3.1.3


Related: More ISTQB Posts

다음 이전