Software Development Life Cycle determines the series of steps to be performed to develop an application or the efficiency of a software. In this chapter, we will discuss the phases defined in SDLC. Each phase has its own process and deliverables that goes into the next phase.
The first stage of SDLC is requirement gathering. After the requirements are gathered, the team comes up with a rough plan of software process. At this step, the team analyzes if a software can be made to fulfill all the requirements of the user. It is found out if the project is financially, practically, and technologically feasible for the organization to take up. There are many algorithms available, which help the developers to conclude the feasibility of a software project.
At this step, the developers decide a roadmap of their plan and try to bring up the best software model suitable for the project. System analysis includes understanding of software product limitations, learning system-related problems or changes to be done in the existing systems, identifying and addressing the impact of the project on the organization and personnel etc. The project team analyzes the scope of the project and plans the schedule and resources accordingly.
The next step is to bring the whole knowledge of requirements and analysis on to the desk and design the software product. The inputs from the users and the information gathered in the requirement gathering phase are the inputs of this step. The output of this step comes in the form of two designs; logical design and physical design. Engineers produce meta-data and data dictionaries, logical diagrams, data-flow diagrams and in some cases pseudocodes.
This step is also known as programming phase. The implementation of software design starts in terms of writing the program code in a suitable programming language and developing error-free executable programs efficiently.
An estimate says that 50% of the whole software development process should be tested. Errors may ruin the software from critical level to its own removal. Software testing is done while coding by the developers and thorough testing is conducted by testing experts at various levels of code such as module testing, program testing, product testing, in-house testing and testing the product at user’s end. Early discovery of errors and their remedy is the key to developing a reliable software.
Software may need to be integrated with the libraries, databases, and other program(s). This stage of SDLC deals with the integration of the software with outer world entities.
Implementation or deployment means installing the software on user machines. At times, the software needs post-installation configurations at the user’s end. Software is tested for portability and adaptability and integration related issues are solved during implementation.
Software Testing Life Cycle (STLC) consists of all the steps that are performed in a specific way to ensure that quality goals are met and each step has specific goals and deliverables.
STLC is used to improve the quality of a software product and to make it capable to meet the business requirements to achieve certain goals.
The different stages that come under Software Testing Life Cycle are as follows −
This is the first phase of Software Testing Life Cycle. During this phase, the tester’s job is to analyze the requirements. There are various methods for Requirement Analysis like conducting brainstorming sessions with business people, team members, and try to find out whether the requirements are testable or not.
This phase determines the scope of the testing. If a testing team finds any features that can’t be tested, then that should be communicated to the client.
In this phase, the tester identifies the activities and resources which would help to meet the testing objectives.
Various metrics are defined and there are methods available to determine and track those metrics. Test planning also includes identifying key performance indicators for testing evaluation.
This phase determines the guidelines that has to be tested. It includes identifying the test conditions using the requirements document, any risks involved, and other test criteria.
Various factors are used to find out the test conditions −
Test conditions should be written in a detailed way.
Let us take an example. For a website selling products online, a test condition is that a customer should be able to make an online payment. You can add detailed conditions like, payment should be feasible using Credit card, NEFT transfer, debit card or net banking.
The advantage of writing the detailed test condition is that it increases the scope of testing because test-cases are normally written on the basis of the test condition. It allows to write more detailed test cases. It also helps in determining the condition of when to stop the testing of a software product.
This phase determines how the tests are performed.
Break down the test conditions into multiple sub-conditions to increase its coverage.
Get the test data.
Set up the test environment.
Get the requirement traceability metrics.
Create the test coverage metrics.
This phase includes the creation of detailed test-cases as per the test conditions and metrics defined.
This phase of Software Testing Life Cycle involves actual execution of test-cases.
This phase includes checking for the completion of the test.