Home » Software Testing » Software Development Life Cycle (SDLC)
SDLC stages

Software Development Life Cycle (SDLC)

Software Development Life Cycle (SDLC)

Software Development Life Cycle(SDLC) is a process that creates a structure of development of software. There are different phases within SDLC, and each phase has its various activities. It makes the development team able to design, create, and deliver a high-quality product.

SDLC describes various phases of software development and the order of execution of phases. Each phase requires deliverable from the previous phase in a life cycle of software development. Requirements are translated into design, design into development and development into testing; after testing, it is given to the client.

Let’s see all the phases in detail:

Different phases of the software development cycle

software development life cycle

1. Requirement Phase

This is the most crucial phase of the software development life cycle for the developing team as well as for the project manager. During this phase, the client states requirements, specifications, expectations, and any other special requirement related to the product or software. All these are gathered by the business manager or project manager or analyst of the service providing company.

The requirement includes how the product will be used and who will use the product to determine the load of operations. All information gathered from this phase is critical to developing the product as per the customer requirements.

2. Design Phase

The design phase includes a detailed analysis of new software according to the requirement phase. This is the high priority phase in the development life cycle of a system because the logical designing of the system is converted into physical designing. The output of the requirement phase is a collection of things that are required, and the design phase gives the way to accomplish these requirements. The decision of all required essential tools such as programming language like Java, .NET, PHP, a database like Oracle, MySQL, a combination of hardware and software to provide a platform on which software can run without any problem is taken in this phase.

There are several techniques and tools, such as data flow diagrams, flowcharts, decision tables, and decision trees, Data dictionary, and the structured dictionary are used for describing the system design.

3. Build /Development Phase

After the successful completion of the requirement and design phase, the next step is to implement the design into the development of a software system. In this phase, work is divided into small units, and coding starts by the team of developers according to the design discussed in the previous phase and according to the requirements of the client discussed in requirement phase to produce the desired result.

Front-end developers develop easy and attractive GUI and necessary interfaces to interact with back-end operations and back-end developers do back-end coding according to the required operations. All is done according to the procedure and guidelines demonstrated by the project manager.

Since this is the coding phase, it takes the longest time and more focused approach for the developer in the software development life cycle.

4. Testing Phase

Testing is the last step of completing a software system. In this phase, after getting the developed GUI and back-end combination, it is tested against the requirements stated in the requirement phase. Testing determines whether the software is actually giving the result as per the requirements addressed in the requirement phase or not. The Development team makes a test plan to start the test. This test plan includes all types of essential testing such as integration testing, unit testing, acceptance testing, and system testing. Non-functional testing is also done in this phase.

If there are any defects in the software or it is not working as per expectations, then the testing team gives information to the development team in detail about the issue. If it is a valid defect or worth to sort out, it will be fixed, and the development team replaces it with the new one, and it also needs to be verified.

5. Deployment/ Deliver Phase

When software testing is completed with a satisfying result, and there are no remaining issues in the working of the software, it is delivered to the customer for their use.

As soon as customers receive the product, they are recommended first to do the beta testing. In beta testing, customer can require any changes which are not present in the software but mentioned in the requirement document or any other GUI changes to make it more user-friendly. Besides this, if any type of defect is encountered while a customer using the software; it will be informed to the development team of that particular software to sort out the problem. If it is a severe issue, then the development team solves it in a short time; otherwise, if it is less severe, then it will wait for the next version.

After the solution of all types of bugs and changes, the software finally deployed to the end-user.

6. Maintenance

The maintenance phase is the last and long-lasting phase of SDLC because it is the process which continues until the software’s life cycle comes to an end. When a customer starts using software, then actual problems start to occur, and at that time there’s a need to solve these problems. This phase also includes making changes in hardware and software to maintain its operational effectiveness like to improve its performance, enhance security features and according to customer’s requirements with upcoming time. This process to take care of product time to time is called maintenance.

“So, all these are six phases of software development life cycle (SDLC) under which the process of development of software takes place. All are compulsory phases without any one of the development cannot be possible because development continues for the lifetime of software with maintenance phase”.

Software Development Life Cycle (SDLC) Models

software development life cycle learnersThe software development models are those several process or approaches which are being selected for the development of project based on the project’s objectives. To accomplish various purposes, we have many development life cycle models. And these models identify the multiple phases of the process. Picking up the correct model for developing the software application is very important because it will explain the what, where, and when of our planned testing.

Here, are various software development models or methodologies:

  • Waterfall model
  • Spiral model
  • Verification and validation model
  • Prototype model
  • Hybrid model

Waterfall Model

It is the first sequential-linear model because the output of the one stage is the input of the next stage. It is simple and easy to understand, which is used for a small project. The various phases of the waterfall model are as follows:

  • Requirement analysis
  • Feasibility study
  • Design
  • Coding
  • Testing
  • Installation
  • Maintenance

Spiral Model

It is the best suites model for a medium level project. It is also called the Cyclic and Iteration model. Whenever the modules are dependent on each other, we go for this model. And here, we develop application model wise and then handed over to the customer. The different stages of the spiral model are as follows:

  • Requirement collection
  • Design
  • Coding
  • Testing

Prototype Model

From the time when customer rejection was more in the earlier model, we go for this model as customer rejection is less. And also, it allows us to prepare a sample (prototype) in the early stage of the process, which we can show to the client and get their approval and start working on the original project. This model refers to the action of creating the prototype of the application.

Verification & Validation Model

It is an extended version of the waterfall model. It will implement in two phases wherein the first phase, we will perform the verification process, and when the application is ready, we will perform the validation process. In this model, the implementation happens in the V shape, which means that the verification process done under downward flow and the validation process complete in the upward flow.

Hybrid Model

The hybrid model is used when we need to acquire the properties of two models in the single model. This model is suitable for small, medium, and large projects because it is easy to apply, understand.

The combination of the two models could be as follows:

  • V and prototype Spiral and
  • Prototype

Software Testing Life Cycle (STLC)

The procedure of software testing is also known as STLC (Software Testing Life Cycle) which includes phases of the testing process.The testing process is executed in a well-planned and systematic manner. All activities are done to improve the quality of the software product.

Let’s see, the different steps of STLC.

Software testing life cycle contains the following steps:

software testing life cycle

Requirement Analysis:

The first step of the manual testing procedure is requirement analysis. In this phase, tester analyses requirement document of SDLC (Software Development Life Cycle) to examine requirements stated by the client. After examining the requirements, the tester makes a test plan to check whether the software is meeting the requirements or not.

Entry CriteriaActivitiesDeliverable
For the planning of test plan requirement specification, application architecture document and well-defined acceptance criteria should be available.Prepare the list of all requirements and queries, and get resolved from Technical Manager/Lead, System Architecture, Business Analyst and Client.
Make a list of all types of tests (Performance, Functional and security) to be performed.
Make a list of test environment details, which should contain all the necessary tools to execute test cases.
List of all the necessary tests for the testable requirements andTest environment details

Test Plan Creation:

Test plan creation is the crucial phase of STLC where all the testing strategies are defined. Tester determines the estimated effort and cost of the entire project. This phase takes place after the successful completion of the Requirement Analysis Phase. Testing strategy and effort estimation documents provided by this phase. Test case execution can be started after the successful completion of Test Plan Creation.

Entry CriteriaActivitiesDeliverable
Requirement DocumentDefine Objective as well as the scope of the software.
List down methods involved in testing.
Overview of the testing process.
Settlement of testing environment.
Preparation of the test schedules and control procedures.
Determination of roles and responsibilities.
List down testing deliverables, define risk if any.
Test strategy document.
Testing Effort estimation documents are the deliverables of this phase.

Environment setup:

Setup of the test environment is an independent activity and can be started along with Test Case Development. This is an essential part of the manual testing procedure as without environment testing is not possible. Environment setup requires a group of essential software and hardware to create a test environment. The testing team is not involved in setting up the testing environment, its senior developers who create it.

Entry CriteriaActivitiesDeliverable
Test strategy and test plan document.
Test case document.
Testing data.
Prepare the list of software and hardware by analyzing requirement specification.
After the setup of the test environment, execute the smoke test cases to check the readiness of the test environment.
Execution report.
Defect report.

Test case Execution:

Test case Execution takes place after the successful completion of test planning. In this phase, the testing team starts case development and execution activity. The testing team writes down the detailed test cases, also prepares the test data if required. The prepared test cases are reviewed by peer members of the team or Quality Assurance leader.

RTM (Requirement Traceability Matrix) is also prepared in this phase. Requirement Traceability Matrix is industry level format, used for tracking requirements. Each test case is mapped with the requirement specification. Backward & forward traceability can be done via RTM.

Entry CriteriaActivitiesDeliverable
Requirement DocumentCreation of test cases.
Execution of test cases.
Mapping of test cases according to requirements.
Test execution result.
List of functions with the detailed explanation of defects.

Defect Logging:

Testers and developers evaluate the completion criteria of the software based on test coverage, quality, time consumption, cost, and critical business objectives. This phase determines the characteristics and drawbacks of the software. Test cases and bug reports are analyzed in depth to detect the type of defect and its severity.

Defect logging analysis mainly works to find out defect distribution depending upon severity and types.If any defect is detected, then the software is returned to the development team to fix the defect, then the software is re-tested on all aspects of the testing.

Once the test cycle is fully completed then test closure report, and test metrics are prepared.

Entry Criteria                         ActivitiesDeliverable
Test case execution report.
Defect report
It evaluates the completion criteria of the software based on test coverage, quality, time consumption, cost, and critical business objectives.
Defect logging analysis finds out defect distribution by categorizing in types and severity.
Closure report
Test metrics

Test Cycle Closure:

The test cycle closure report includes all the documentation related to software design, development, testing results, and defect reports.

This phase evaluates the strategy of development, testing procedure, possible defects in order to use these practices in the future if there is a software with the same specification.

Entry CriteriaActivitiesDeliverable
All document and reports related to software.Evaluates the strategy of development, testing procedure, possible defects to use these practices in the future if there is a software with the same specificationTest closure report

Leave a Reply

Your email address will not be published. Required fields are marked *

*
*