What is SDLC? - SDLC and STLC
SDLC (Software Development Life Cycle) is a process used by the software industry to design, develop, and test software.
Its aim is to produce high-quality software that meets customer expectations, within a pre-defined time frame and cost.
It consists of a detailed process for planning, building, and maintaining specific software.
Why is SDLC Needed?
- It provides a standard set of frameworks for SDLC activities.
- It is helpful for project tracking and control.
- It increases and enhances development speed.
- It helps decrease project risk and project management plan overhead.
- It improves client relations.
- It offers a basis for project planning, scheduling, and estimating.
Phases in SDLC
- Requirement Gathering and Analysis
- Design
- Coding (Development/Implementation)
- Testing
- Deployment / Installation
- Maintenance
Requirement Analysis
We must understand the customer's requirements.
Normally, BAs, Project Managers, and Product Managers are involved in this phase.
They talk to the customer, gather requirements, and prepare documents such as the BRS/SRS.
This stage provides a clearer picture of the project's scope and identifies potential issues, helping companies finalize the timeline for completing the work.
Design – High-Level Design (HLD)
Designed by the Solution Architect.
It includes:
- Brief description and name of each module.
- Outline of each module's functionality.
- Integration between modules.
- Database tables identified with their key elements.
- Complete architecture diagrams with technical details.
Design – Low-Level Design (LLD)
Designed by the Designer and Developer.
It includes:
- Actual functional logic of the modules.
- Complete inputs and outputs for every module.
- Complete details of the integrations/interfaces.
- All types of dependency issues addressed.
- List of error messages.
Coding
Once the design phase is over, developers start building the entire system by writing code in the chosen programming language.
Tasks are divided into units or modules and assigned to various developers.
It is the longest phase of the SDLC.
Developers follow predefined coding guidelines and use programming tools like:
- Compilers
- Interpreters
- Debuggers
Deployment / Installation
Once the testing phase is complete and no bugs or errors remain, the final deployment process begins.
Based on the Project Manager's feedback, the final software is released and checked for deployment issues, if any.
Maintenance
Once the system is deployed and customers start using it, any defects found are handled by the maintenance team.
Three activities may occur:
Bug Fixing
Bugs reported due to scenarios that were not tested at all.
Upgrade
Upgrading the application to newer software versions.
Enhancement
Adding new features to the existing software.
SDLC Models
Waterfall Model
- All activities are performed phase by phase.
- It is the oldest model.
- You cannot start the next phase before the first phase is complete.
- A working product can be seen at the end of the phase.
- It is used for small projects.
- Testing starts after the deployment phase rather than at the beginning.
Prototype Model
An extension of the Waterfall Model in which a dummy prototype is developed during the design phase.
Instead of giving the final product to the customer, we show a dummy prototype and take their feedback.
In the design phase, we create a prototype and send it to the client for evaluation.
Based on the feedback, we update the prototype.
Once the prototype is finalized, we move to the implementation phase.
Unlike the Waterfall Model, the risk is low because the customer knows in advance which product will be developed.
Advantage
It does not take as much time to develop the application as the Waterfall Model, and feedback comes quickly.
The final product is developed once the final prototype is approved based on customer feedback.
Iterative and Incremental Model
- The product is designed, developed, and tested incrementally.
- Software is developed incrementally and iteratively.
- In the first iteration, a small version of the product is built.
- In each subsequent iteration, the product grows until the final product is delivered.
- Requirements are not frozen and can be added at any time.
- Testing is not involved from the beginning.
- A workable product is obtained in less time.
Spiral Model
A combination of the Waterfall Model and the Iterative Model.
Instead of taking all requirements at once, a single iteration is conducted for the basic requirements, starting with concept creation.
Example:
MS Office 95, 97, 2000, 2007, 2010...
The next version of the product is achieved in the next spiral, and so on.
RAD Model (Rapid Application Development)
The application is developed at a rapid pace.
We work simultaneously on different modules of the project, using additional resources to deliver the product to the customer in less time.
Which SDLC Model is Best?
There is no single model that can be considered the best for the software development process.
However, nowadays the Agile Model is the most popular and widely used across software organizations.
In this model, after every development stage (Sprint), the user can see whether the product meets their requirements.
This way, risks are reduced as continuous changes are made in response to the client's feedback.
Why We Need Testing in the SDLC
The testing phase checks whether the developed software is a quality product and matches the design document.
It confirms that the developed product meets the requirements defined by clients.
In this stage, we perform various types of tests, including:
- Unit Testing
- Acceptance Testing
- System Testing
The testing team works with developers to identify and resolve bugs and deliver a quality application to the client.
TDD and BDD
TDD (Test-Driven Development)
The software tester creates the test cases first.
Using these, the developer writes the required code for the functionality.
The test cases are verified against the developed code, which is then tested, and the code is finalized.
BDD (Business Design Document)
An initial document designed by business people, from which they then prepare the SRS.
What is STLC?
STLC (Software Testing Life Cycle) is the sequence of phases followed specifically for testing activities.
Unlike the SDLC, which covers verification and validation across the entire project, the STLC involves only validation.
STLC Phases
- Requirement Analysis
- Test Planning
- Test Design
- Test Environment Setup
- Test Execution
- Test Closure
Requirement Analysis
The requirements documents are analyzed and validated, and the scope of testing is defined.
Test Planning
- The test plan/strategy is defined.
- Test effort is estimated.
- Automation strategy and tool selection are done.
Test Design
- Test cases are designed.
- Test data is prepared.
- Automation scripts are implemented (if automating).
Test Environment Setup
A test environment closely simulating the real-world environment is prepared.
It defines which software and hardware will be used.
Test Execution
Actual testing is performed as per the test steps.
Test Closure
The final stage is where all required documentation is prepared and submitted to the client at the time of software delivery.
Test Closure and Its Documents
Test closure is the final stage of the STLC.
We prepare all detailed documentation required for submission to the client at delivery.
Examples include:
- Test Report
- Defect Report
- Test Case Summary
- RTM Details
- Release Note
List of Test Closure Documents
Test Case Documents
Detailed test cases that can be reviewed.
(The test case Excel sheet prepared during actual testing.)
Test Plan, Test Strategy
The entire test planning, strategies, and schedules.
Release Note
Includes:
- Software version
- Supporting hardware details
- Known issues
- Closed issues
- Added features
Test Scripts
Scripts used in automation testing.
Test Data
The data used while testing.
Traceability Matrix
All pass and fail test case matrices and defect records.
Test Results and Reports
- Bug Report
- Execution Report
- Etc.
When Should We Stop Testing?
Testing can be stopped when one or more of the following conditions are met.
After Test Case Execution
When one complete cycle of test cases is executed after the last known bug fix, with the agreed-upon pass percentage.
Once the Testing Deadline Is Met
When deadlines are met with no high-priority issues left.
Based on Mean Time Between Failure (MTBF)
MTBF is the time interval between two inherent failures.
If it is quite large, stakeholders may decide to stop testing.
Based on the Code Coverage Value
When automated code coverage reaches a specific threshold with a sufficient pass percentage and no critical bugs.
SDLC vs STLC
SDLC
Full Form
Software Development Life Cycle
Scope
The complete development of a process or project.
Involves
Both Verification and Validation.
STLC
Full Form
Software Testing Life Cycle
Scope
Only the testing part.
Involves
Only Validation.
FAQs
1. What is SDLC?
A process used to design, develop, and test software with the aim of producing a high-quality product that meets customer expectations within a set time and cost.
2. What are the phases of the SDLC?
- Requirement Gathering and Analysis
- Design
- Coding
- Testing
- Deployment / Installation
- Maintenance
3. What is the difference between HLD and LLD?
HLD (High-Level Design)
Prepared by the Solution Architect.
It covers:
- Module descriptions
- Integration
- Database tables
- Architecture
LLD (Low-Level Design)
Prepared by the Designer/Developer.
It covers:
- Functional logic
- Inputs and outputs
- Interfaces
- Dependencies
- Error messages
4. Which SDLC model is best?
There is no single best model.
However, the Agile Model is currently the most popular because users see the product after each sprint, and risks are reduced through continuous feedback.
5. What is the difference between SDLC and STLC?
SDLC
- Covers the complete development process.
- Includes both Verification and Validation.
STLC
- Covers only testing activities.
- Includes only Validation.
6. What are the phases of STLC?
- Requirement Analysis
- Test Planning
- Test Design
- Test Environment Setup
- Test Execution
- Test Closure
7. What is Test Closure?
The final STLC stage in which all documentation is prepared and submitted to the client.
Examples include:
- Test Report
- Defect Report
- Test Case Summary
- RTM
- Release Note
8. When should we stop testing?
Testing can be stopped when:
- Test case cycles are complete after the last bug fix.
- Deadlines are met with no high-priority issues.
- MTBF is sufficient.
- Code coverage reaches the required threshold without critical bugs.
9. What is the difference between TDD and BDD?
TDD
Test cases are written first, and the code is developed and verified against them.
BDD
An initial Business Design Document created by business people, from which the SRS is prepared.