Software Development Life Cycle & Software Testing Summary

Software Development Life Cycle (SDLC)

  • Software Development Life Cycle (SDLC): Procedure for creating or altering software systems to yield high-quality products meeting customer expectations within time and cost estimates.

  • Waterfall Model: Traditional sequential process where progress flows downward through fixed phases (Requirements Collection, Feasibility Study / Analysis, Design, Coding / Programming, Testing, Installation, Maintenance). Requirements are frozen once design begins.   

    Waterfall Model Flowchart
  • Spiral Model: Iterative model where software is developed in small modules across four main quadrants (Requirements Collection, Design, Coding, Testing).   

    Spiral Model Diagram
  • V-Model (Verification and Validation Model): Model designed to execute testing activities in parallel with each development phase starting from the requirement stage.   

    V-Model Diagram
  • Prototype Development Model: Involves developing an initial prototype (static or dynamic visual image) for customer review and feedback prior to final coding and implementation.   

    Prototype Model Flowchart
  • Hybrid and Derived Models: Custom combinations of standard SDLC models adapted to meet specific project and business needs.

Core Software Testing Types

  • Software Testing: Verification of application functionality against requirement specifications to identify defects.

  • White Box Testing (WBT): Performed exclusively by developers to test internal logic, paths, conditions, and code structure (includes Path Testing, Condition Testing, and Loop Testing).

  • Black Box Testing (BBT): Functional or behavioral testing performed against requirements without internal code knowledge.

    • Functional Testing: Component-level testing evaluating each feature against specification requirements.

    • Integration Testing: Tests data flow and interfaces between interconnected modules (methods include Incremental Top-Down, Incremental Bottom-Up, and Non-Incremental Big-Bang).

    • System Testing: End-to-end testing conducted in an environment matching the production environment.

    • Acceptance Testing: Final validation conducted from the end-user or client perspective to check real-time business readiness.

Specialized Testing Methodologies

  • Smoke / Sanity Testing: High-level positive testing of basic or critical features on a new build to confirm stability before deep testing.

  • Regression Testing: Retesting unchanged areas of an application after code changes, additions, or bug fixes (categorized into Unit, Regional, and Full Regression Testing).

  • Ad-Hoc / Monkey Testing: Unplanned, random testing without predefined test cases designed to discover unexpected flaws from an end-user perspective.

  • Globalization Testing: Validates application behavior across different languages and regions.

    • Internationalization (I18N): Testing software design for multi-language translation and support using property files or resource bundles.

    • Localization (L10N): Regional format validation covering currency, dates, pincodes, and localized graphics.

  • Compatibility Testing: Verification of application functionality across diverse operating systems, browsers, and hardware configurations.

  • Usability & Accessibility Testing: Evaluation of user-friendliness, layout ergonomics, and compliance with accessibility standards (such as 508 Compliance / ADA).

Software Test Life Cycle (STLC) & Documentation

  • STLC Phases: Requirements Collection / System Study -> Test Plan Creation -> Test Case Writing -> Requirement Traceability Matrix -> Test Execution -> Defect Tracking -> Test Execution Report -> Retrospect Meeting.

  • Test Artifacts & Documents:

    • Customer Requirement Specification (CRS) / Software Requirement Specification (SRS) / Functional Specification (FS): Documents translating client needs into technical development requirements.

    • Test Plan: Central strategy document covering scope, test types, schedules, risk mitigation, roles, and entry/exit criteria.

    • Test Case Design Techniques: Derived using Error Guessing, Equivalence Partitioning, and Boundary Value Analysis (BVA).

    • Requirement Traceability Matrix (RTM): Mapping matrix connecting requirements to specific test cases to ensure complete test coverage.

    • Defect Report: Detailed record of identified defects containing Defect ID, Severity (Blocker, Critical, Major, Minor), Priority (High, Medium, Low), Steps to Reproduce, and Status (Open, Assigned, Fixed, Closed, Re-open, Rejected, Duplicate, Cannot be fixed, Postponed, Not Reproducible, RFE).