Lecture 3: SDLC

The SDLC

The Software Development Life Cycle (SDLC) is a structured approach that software development teams follow to design, develop, test, and deploy high-quality software applications.

In each of the following sections, a phase of the SDLC will be discussed along with QA activities performed in it.

Planning Phase

Establishes project objectives and requirements.

QA Contribution in the Planning Phase:

  • Reviewing Project Requirements: Ensures that requirements are clear, complete, and testable
  • Defining Quality Standards: Establishes quality benchmarks for usability, performance, security, and reliability
  • Developing a Test Plan: Create a structured test plan outlining the testing strategy, methodologies, and team responsibilities.
  • Identifying Testing Resources: Determine necessary testing tools, equipment, and personnel

Requirements Gathering Phase

Key activities here are:

  • Gathering and analyzing requirements
  • Documenting requirements
  • Prioritizing requirements
  • Reviewing requirements
  • Securing stakeholder approval

During this phase, the testing team plays a role in verifying the correctness, completeness, and testability of requirements. This involves:

  • Reviewing requirements to ensure clarity and consistency.
  • Identifying missing or conflicting requirements.
  • Establishing acceptance criteria and key performance indicators (KPIs) to measure project success.

Design Phase

Has 5 steps:

  1. Architectural Design
  2. Detailed Design
  3. Prototyping
  4. Design Review
  5. Design Documentation

Common testing activities in the design phase are

  • Reviewing design documents
  • Creating test plans and test cases
  • Identifying potential defects or inconsistencies
  • Conducting design walkthroughs or reviews
  • Ensuring compliance with industry standards

Development Phase

Involves designing and building the software based on the requirements gathered and design specifications established in earlier phases. It includes coding, testing, and debugging.

Testing activities in the development phase include:

  • Unit Testing
  • Integration Testing
  • System Testing
  • Performance Testing
  • Securtiy Testing

Deployment Phase

Here, the completed software is delivered to the customer for implementation. It includes software installation, configuration, and validation.

Activities in deployment are

  • Release Planning**: Outlines the required resources, timelines, and tasks necessary for deployment.
  • Configuration Management**: Ensures correct software setup and dependency integration.
  • Data Migration: Transfers data from the previous system to the new one.
  • User Training: Educates end-users on how to use the software efficiently.
  • User Acceptance Testing (UAT): Confirms that the software meets customer expectations.

Testing activities in the deployment phase include:

  • Installation Testing
  • Configuration Testing
  • Compatbility Testing
  • Acceptance Testing
  • Performance Testing
  • Security Testing

Maintenance Phase

During this period, the development team addresses any bugs, errors, or defects reported by users.

There are three primary types of maintenance:

  • Corrective Maintenance: Fixes defects, bugs, or errors.
  • Adaptive Maintenance: Modifies the software to accommodate environmental changes, such as new operating systems or hardware.
  • Perfective Maintenance: Enhances the software’s performance, reliability, or usability.

Testing activities in the maintenance phase:

  • Regression Testing: Ensures that modifications do not introduce new issues
  • Patch Testing: Verifies that patches or updates do not cause unintended side effects
  • Integration Testing: Assesses the compatibility of updated software components
  • User Acceptance Testing (UAT): Confirms that enhancements align with user expectations.