What Is the Software Development Life Cycle (SDLC)? Phases and Purpose

๐Ÿ“‹ Table of Contents โ–พ
  1. The Six Core Phases of the SDLC
  2. Common Mistakes

Before you can test software effectively, you need to understand how software is built. The Software Development Life Cycle (SDLC) is the structured process that organisations follow to plan, design, build, test, deploy and maintain software. As a QA engineer, knowing the SDLC is not optional โ€” it tells you when to start testing, what artefacts to expect, and who to collaborate with at each stage. Teams that skip SDLC discipline ship chaotic releases; teams that follow it deliver predictable, testable software.

The Six Core Phases of the SDLC

While different organisations name them slightly differently, the SDLC consistently includes six phases: Requirements gathering, System design, Implementation (coding), Testing, Deployment, and Maintenance. Each phase produces deliverables that feed into the next, creating a traceable chain from business need to working software.

# Modelling SDLC phases and their key deliverables
SDLC_PHASES = [
    {
        "phase": "1. Requirements Gathering",
        "activities": [
            "Stakeholder interviews",
            "Business requirements document (BRD)",
            "Functional requirements specification (FRS)",
        ],
        "qa_involvement": "Review requirements for testability and completeness",
    },
    {
        "phase": "2. System Design",
        "activities": [
            "High-level design (HLD)",
            "Low-level design (LLD)",
            "Database schema design",
        ],
        "qa_involvement": "Identify test scenarios from design documents",
    },
    {
        "phase": "3. Implementation",
        "activities": [
            "Writing source code",
            "Unit testing by developers",
            "Code reviews",
        ],
        "qa_involvement": "Prepare test cases, set up test environments",
    },
    {
        "phase": "4. Testing",
        "activities": [
            "Execute test cases",
            "Defect reporting and tracking",
            "Regression testing",
        ],
        "qa_involvement": "Primary QA phase โ€” execute, report, verify fixes",
    },
    {
        "phase": "5. Deployment",
        "activities": [
            "Release to staging/production",
            "Smoke testing in production",
            "User communication and documentation",
        ],
        "qa_involvement": "Smoke and sanity checks post-deployment",
    },
    {
        "phase": "6. Maintenance",
        "activities": [
            "Bug fixes and patches",
            "Feature enhancements",
            "Performance monitoring",
        ],
        "qa_involvement": "Regression testing on patches, monitoring dashboards",
    },
]

for phase in SDLC_PHASES:
    print(f"\n{phase['phase']}")
    print(f"  QA Role: {phase['qa_involvement']}")
    for activity in phase['activities']:
        print(f"    - {activity}")
Note: QA involvement does not start at the Testing phase โ€” it starts at Requirements. When testers review requirements documents, they catch ambiguities, contradictions and untestable statements before any code is written. This is called “shifting left,” and it is one of the most cost-effective quality practices because fixing a requirements defect costs 10โ€“100 times less than fixing the same defect after deployment.
Tip: When you join a new team, ask for a diagram of their SDLC process on day one. Knowing which model they follow (Waterfall, Agile, V-Model) immediately tells you when your input is expected, what documents you will receive, and how tightly you will collaborate with developers during the build phase.
Warning: Some teams claim to follow an SDLC but in practice skip phases โ€” especially design reviews and formal testing. If you find yourself in a “code and deploy” environment with no structured testing phase, raise the risk with your manager. Unstructured processes lead to unpredictable defect rates and stressful release cycles.

Common Mistakes

Mistake 1 โ€” Believing QA work only happens in the “Testing” phase

โŒ Wrong: “I am a tester, so I wait until the build is ready before I do anything.”

โœ… Correct: “I review requirements for testability in Phase 1, derive test scenarios from design docs in Phase 2, prepare test cases and environments in Phase 3, and execute tests in Phase 4.”

Mistake 2 โ€” Treating the SDLC as purely sequential regardless of model

โŒ Wrong: Assuming every project follows strict Waterfall and refusing to start testing until all development is complete.

โœ… Correct: Adapting your testing activities to the team’s actual SDLC model โ€” in Agile, testing happens every sprint alongside development rather than in a single late phase.

🧠 Test Yourself

At which SDLC phase should QA engineers ideally begin their work?