2.1 Testing in the Context of Software Development Lifecycle
Key Idea (시험 핵심 문장)
Testing is integrated into every phase of the Software Development Lifecycle (SDLC).
Testing is not a separate phase at the end.
Relationship between Development and Testing
For each development activity, there is a corresponding test activity.
| Development Activity | Corresponding Test Activity |
|---|---|
| Business requirements | Acceptance test design |
| System requirements | System test design |
| Architecture & design | Integration test design |
| Detailed design | Unit test design |
| Coding | Unit testing |
This mapping is the foundation of the V-model
2.2 Test Levels (★★★★★ VERY IMPORTANT)
1. Unit Testing
Focus
- Smallest testable parts (functions, methods, classes)
Test Basis
- Detailed design
- Code
Typical Defects Found
- Logic errors
- Incorrect calculations
- Data handling issues
Who tests
- Usually developers
2. Integration Testing
Focus
- Interfaces and interactions between units or components
Test Basis
- Software architecture
- Interface specifications
Typical Defects Found
- Interface mismatches
- Incorrect data passed between components
- Communication failures
3. System Testing
Focus
- Entire system as a whole
- End-to-end behavior
Test Basis
- System requirements
- Use cases
Typical Defects Found
- Missing or incorrect functionality
- Performance issues
- Security issues
4. Acceptance Testing
Focus
- Business needs and user expectations
Test Basis
- Business requirements
- User stories
- Acceptance criteria
Who performs
- Customers
- Business users
- Product owners
Goal
- Decide whether to accept the system
Acceptance Test Types (Exam Favorite)
- User Acceptance Testing (UAT)
- Operational Acceptance Testing (OAT)
- Contractual / Regulatory Acceptance Testing
- Alpha / Beta Testing
2.3 Test Types (★★★ Often Confused)
Functional Testing
- What the system does
- Based on functional requirements
Non-Functional Testing
- How well the system performs
Examples:
- Performance
- Load
- Stress
- Usability
- Security
- Reliability
Structural Testing
- Based on internal structure
- Often measured by coverage (statement, branch)
Change-Related Testing
- Confirmation testing (re-testing)
- Regression testing
| Type | Purpose |
|---|---|
| Confirmation testing | Verify defect fix |
| Regression testing | Ensure no unintended side effects |
2.4 Maintenance Testing
When Maintenance Testing Occurs
- Bug fixes
- Enhancements
- Migration
- Retirement
Scope depends on:
- Risk of the change
- Size of the system
- Impact of the change
2.5 Testing in Different SDLC Models (Exam Trap Area)
Waterfall Model
- Testing phases follow development phases
- Late defect detection risk
V-Model (★★★★★ MUST KNOW)
- Test design activities start early
- Each development phase has a corresponding test level
Exam phrase:
“Test planning and test design start early in the SDLC”
Iterative / Incremental Models
- Development and testing happen in cycles
- Partial system tested repeatedly
Agile Development (★★★ High Probability)
Key Characteristics
- Testing is continuous
- Whole team is responsible for quality
- Less documentation, more collaboration
Tester Role in Agile
- Supports user story refinement
- Designs acceptance tests
- Performs exploratory testing
- Works closely with developers
DevOps
- Focus on fast feedback
- High degree of automation
- CI/CD pipelines
Chapter 2 – 시험 직전 암기 포인트
반드시 구분할 것:
- Test levels vs Test types (시험에서 섞어서 냄)
- Unit ≠ Integration ≠ System ≠ Acceptance
- Regression ≠ Confirmation
- Functional ≠ Non-functional
- Acceptance testing = business/user focus
VERY COMMON EXAM TRAPS
- “System testing checks user acceptance” ❌
- “Regression testing verifies defect fix” ❌
- “Acceptance testing focuses on internal structure” ❌
- “Testing starts after coding” ❌
Tags
ISTQB
