Let us begin by answering two questions. What is Software Testing? and Why do we need Software Testing?
Let’s see the answer for the first question- What is Software Testing? To put it simply, Software Testing is the process of running a program or application in order to detect software bugs.
Further explanation would mean the process of validating and verifying if a software program or application or product,
- Fulfills the business and technical requirements that led to its design and development
- Works appropriately and can be implemented with the same characteristic.
Now coming to answer the second question, Why do we need Software Testing? Software testing is required to detect bugs in softwares. It is also done to test if the software meets the requirements of the customers.
It is possible that sometimes human errors can lead to producing a software that does not meet customers requirements.
What Is Testing Life-Cycle?
Life-cycle simply signifies the sequence of changes from one form to another form. Such changes can be easily seen in both tangible and intangible things. Every entity on earth has a lifecycle from its beginning to demise.
Similarly, software is also an entity. Like how developing software, involves a sequence of steps, testing also involves steps that have to be executed in a definite sequence. This manner of executing testing in a systematic and planned way is called Testing Life Cycle.
STLC Life Cycle (Software Testing Life Cycle), Entry and Exit Criteria
Software Testing Life Cycle or STLC Life Cycle comprises of 6 phases. The STLC process is executed in a sequential manner to meet the quality goals. The testing team does the STLC work in a company or an organization.
Before the different phases begin and end, the Entry Criteria and the Exit Criteria have to be fulfilled. Entry Criteria indicates the prerequisite items that have to be completed before testing can begin. The Exit Criteria mentions the items that must be completed before the conclusion of a test. The Entry and Exit Criteria is necessary at all levels of the Software Testing Life Cycle (STLC).
The Six Phases Of Software Testing Life Cycle (STLC)
The six phases of the STLC are,
- Requirement Analysis
- Test Planning
- Test Case Development
- Environment Setup
- Test Execution and
- Test Cycle Closure
Now let us see what process will be undertaken in each phase, classified on the basis of Entry Criteria, Activities Involved, Exit Criteria and Deliverables.
Requirement Analysis is the first step in STLC. The testing team looks at the Requirement document with both functional and non-functional details in order to identify the testable requirements.
- Requirements specifications and
- Document of application architectural
- Analyze the System Requirement specifications from a testing point of view.
- To prepare Requirement Traceability Matrix (RTM).
- To identify testing techniques and testing types.
- To prioritize features that require focused testing.
- To analyze automation feasibility and
- Identify the details about the testing environment where actual testing will be done.
- RTM should be signed off and
- The customer should sign off on the test automation feasibility
- Procurement of the Requirement Traceability Matrix (RTM) and
- Automation Feasibility report if applicable.
In this phase, all the testing strategies are defined. The Test Manager will determine the cost and effort of the entire project.
- Requirements documents and
- Automation Feasibility Report
- To estimate the testing effort
- To select the testing approach
- To prepare the Test Plan and Test strategy documents
- Resource planning and assigning of roles and responsibilities
- Selection of Testing tool
- Approved test plan and test strategy document
- Effort estimation document
- To procure the Test Plan or Test strategy document and
- Testing Effort estimation document
Test Case Development
Here the testing team writes down the detailed test cases. If required they also prepare the test data. Obviously, RTM is also prepared.
- Availability of the Requirements Documents and
- The automation feasibility report.
- To create test cases
- To create test scripts if required
- To verify test cases and automation scripts and
- To create test data in the testing environment
- Reviewed test cases
- Reviewed test automation scripts and
- Test data creation ready for testing
- You have the test cases
- Test data and
- Test Automation Scripts, if required.
Test Environment Set Up
This phase involves the setup or installation process of software and hardware that is required to test the application.
- Availability of Test Plan
- Availability of Smoke Test cases and
- Availability of test data.
- Based on the Requirement and Architecture document the list of required software and hardware is prepared.
- To set up the test environment
- To create test data and
- After the Test Environment is set up we have to execute the Smoke test cases in order to check the readiness of the test environment.
- Environment setup is ready for testing
- Installed required software and hardware
- Build installation is complete and successful
- Completion of test data creation and
- Completion of Smoke testing.
- The Test Environment is ready with test data and
- We have the results of the Smoke test cases.
In this phase, the testing team begins to execute test cases based on the prepared test planning and prepared test cases.
- To procure the Test Plan or Test strategy document
- Test cases and
- Test data
- To execute test cases
- To report test results
- Logging defects for the failed test cases
- To verify and retest the defect and
- Closure of defects
- Execution of all test cases and
- Defects are logged and tracked for closure
- Test case execution report and
- Defect report
Test Cycle Closure
The Test Cycle Closure process is where you meet with the testing team members. You discuss and evaluate cycle completion criteria based on Test coverage, Quality, Cost, Time, Critical Business Objectives, and Software.
You brush up on what all went good and which area needs improvement. You also acquire lessons from current STLC as input to upcoming test cycles. This will also help in reducing bottlenecks in the future STLC processes.
- Completion of Test Case Execution
- Report of the Test Case Execution and
- Defect Report
- Evaluate test completion based on Test Coverage and Software Quality
- Documentation of learning from the project
- To analyze the test results in order to find out the distribution of severe defects.
- Preparation of the Test Closure report.
We procure the signed off Test Closure report by the client.
- Test Closure report and
- Test metrics
The above mentioned six phases are essential to complete the STLC process. These processes are carried out meticulously to ensure that the product quality fulfills the demanded expectations.