Lifecycle in the simple term refers to the sequence of changes from one form to another form. These changes can happen to any tangible or intangible things. Every existence has a lifecycle from its inception to retire / demise.
In a similar manner, Software is also an entity. Just like developing software involves a performance of steps, testing also has steps which should be executed in a definite sequence.
This phenomenon of executing the testing activities in a systematic and planned way is known as testing life cycle.
What is Software Testing Life Cycle (STLC)
Software Testing Life Cycle refers to a testing process which has certain steps to be executed in a definite performance to ensure the quality results have been met. In the STLC process, each activity is carried out in a planned and systematic way. Each phase has different goals and deliverables. Different companies have different phases in STLC; however, the basis remains the same.
Software Testing Life Cycle consists of six phases:
1. Requirements Analysis
In this process, the testing team analyze the client requirements and discuss with developers during the design phase to check which requirements are suitable or testable and how they are going to test those requirements during this process. It is very important to start testing activities from the requirements phase during the design phase itself because the cost of fixing a defect is very less if it is found in design requirements phase rather than in future phases.
2. Test Planning:
A test plan defines how we are going to proceed to test with the requirements that we have for a project
3. Test Design
· In this phase, Test cases are created with reference to available for a project. During the test case process, the test cases are categorized under test suits, which have a bunch of test cases for a particular module. In the test-case process, it should have a test summary, test inputs, expected result, actual result section. The test cases prepared by the QA team are reviewed and approved during the process.
· The QA team analysis the cases to be automated for the milestones and writes the test cases. Test data may also be created in this process by the QA team if the test environment is available to them. The test cases should cover all positive and negative a postulated sequence along with input data’s.
4. Test Execution (Unit / Functional Testing Phase)
Test Case execution is a process of executing test cases/scripts in a logical performance with specific test data (if available). The unit testing phase is carried out by the developers and other functional and non-functional test cases are executed by a dedicated testing team. If any Test Case/Script or Test Scenario fails, Testing Team logs the bug in Bug Tracking tools, etc. Simultaneously a dedicated team of developers would be fixing the bugs and release the fixes in next build process. The testing team will verify the reported bug and accordingly update the Bugs logged in a document. This cycle continues till all the bugs identified in the product are fixed in a manner. Finally, a Regression Testing is performed after that the test results are updated.
5. Re-testing and regression testing phase
By this time, at least one test cycle (one round of test execution) would have been completed and bugs would have been reported by the testing phase team. Once the development team fixes the bugs, then the second round of testing begins where re-testing and regression testing is carried out by the testing team. Re-testing is testing of corrected/enhanced module. And regression testing is done to ensure that fixed bug does not affect the remaining functionality of the modules and also the functionality of the same module in the process. Here, where automation tests are extremely useful to repeat the same test cases, again and again, is the part of the process. During this phase – review of test cases and test plan could also be carried out in the test plan.
6. Final Testing and Closure
When the planned test cycles are completed in the process, then the final testing is done. Ideally, this is System or Integration testing. Also, any remaining Stress and Performance testing are carried out. Inputs for process improvements in terms of software metrics are given. Test result analysis is done in order to find out the defect distribution by type and severity. Then final Test reports, test release notes are prepared and final auditing is done for closing the testing process in order to release the tested product.
I think I have addressed all the major points of the Software Testing Life Cycle (STLC). I would like all of you to please share your experience on STLC in below comment section.