Chapter 2 – Testing Throughout the SDLC

 

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 ActivityCorresponding Test Activity
Business requirementsAcceptance test design
System requirementsSystem test design
Architecture & designIntegration test design
Detailed designUnit test design
CodingUnit 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

TypePurpose
Confirmation testingVerify defect fix
Regression testingEnsure 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” ❌

다음 이전