Test-First Approach to Development
1. Introduction
A test-first approach means that tests are defined before the corresponding code is written. This approach is commonly used in Agile development to ensure that development is guided by clearly defined expectations.
Test-first approach는 코드를 작성하기 전에 테스트를 먼저 정의하는 개발 방식입니다. 애자일 환경에서 요구사항과 기대 결과를 명확히 하기 위해 자주 사용됩니다.
2. Key Concept: What Does “Test-First” Mean?
In a test-first approach:
- Tests define the expected behavior of the system
- Development is driven by tests, not the other way around
- Clear acceptance criteria are agreed on early
This helps reduce misunderstandings and rework later in development.
Test-first 방식에서는:
- 테스트가 시스템의 기대 동작을 정의하고
- 개발이 테스트를 기준으로 진행되며
- 인수 기준(Acceptance Criteria)이 초기에 명확해집니다
3. Practice Question
❓ Question
Which of the following is an example of a test-first approach to development?
- a) Component Test-Driven Development
- b) Integration Test-Driven Development
- c) System Test-Driven Development
- d) Acceptance Test-Driven Development
✅ Correct Answer: d)
4. Explanation (EN / KR)
✔ d) Acceptance Test-Driven Development — Correct
Acceptance Test-Driven Development (ATDD) is a well-known test-first approach. In ATDD:
- Acceptance tests are defined before implementation
- Business, development, and testing collaborate early
- Development is guided by user expectations and business goals
ATDD(Acceptance Test-Driven Development)는 대표적인 테스트 우선 개발 방식입니다. 구현 전에 인수 테스트를 정의하고, 비즈니스·개발·테스트가 함께 기대 결과를 합의합니다.
❌ a) Component Test-Driven Development — Incorrect
Component Test-Driven Development is not a recognized or standard test-first approach in ISTQB.
컴포넌트 테스트 기반 개발은 ISTQB에서 정의된 대표적인 test-first 접근 방식이 아닙니다.
❌ b) Integration Test-Driven Development — Incorrect
Integration testing typically happens after components are implemented. It is not commonly used as a test-first development approach.
통합 테스트는 일반적으로 구현 이후에 수행되며, test-first 개발 방식으로 분류되지 않습니다.
❌ c) System Test-Driven Development — Incorrect
System testing focuses on validating the complete system. It is not typically used to drive development from the beginning.
시스템 테스트는 전체 시스템 검증 단계로, 개발을 처음부터 이끄는 test-first 접근법은 아닙니다.
5. Summary Table
| Option | Result | Reason | 한글 요약 |
|---|---|---|---|
| d | ✔ Correct | Acceptance tests defined before development | 인수 테스트를 먼저 정의 |
| a | ✖ | Not a standard ISTQB test-first approach | 공식적인 test-first 아님 |
| b | ✖ | Integration tests are not development drivers | 통합 테스트는 개발 구동 목적 아님 |
| c | ✖ | System tests occur too late to drive development | 시스템 테스트는 시점이 늦음 |
6. Final Takeaway
For ISTQB exams, remember:
ATDD is a classic example of a test-first approach to development.
시험에서는 이 한 문장으로 정리하면 충분합니다.
ATDD는 대표적인 테스트 우선(Test-First) 개발 방식이다.
Related: More ISTQB Posts | Next Question