Tuesday 1 October 2013

MY WORDS FOR SOFTWARE TESTING LIFE CYCLE(STLC)

Software Testing Life Cycle (STLC) :- The process of testing a software in a well planned and systematic way is known as software testing life cycle . STLC is a very important concept that we need to know if You want to understand testing process in detailed. Software testing life cycle (STLC) model is basically develop to identify which Testing activities needs to be carry out and what’s the best time to perform them to accomplish those test activities. Even though testing differs between organizations, there is a testing life cycle. Many people think testing is a static task and finds it boring, but it is definitely not. STLC shows the different phases which are essential for quality control of any software project.

             

                                                                   




Every company follows different structures for Software Testing Life Cycle. STLC is affected by the Software Development Life Cycle (SDLC) implemented by the company and the management’s views towards Quality Assurance & Control activities.

Software Testing Life Cycle(STLC) mainly consists of six phases:
Each of these stages have a definite Entry and Exit criteria , Activities & Deliverables associated with it. So for this tutorial , we will focus of activities and deliverables for the different stages in STLC.
In an Ideal world you will not enter the next stage until the exit criteria for the previous stage is met. But practically this is not always possible.


Phase -1. Software Requirement Analysis/Review :- This is a very important phase in STLC. During this phase, test team studies the requirements from a testing point of view to identify the testable requirements. Here the focus is on understanding the requirements of the system with the viewpoint of testing in mind. It is very important to start testing activities from the requirements phase itself because the cost of fixing defect is very less if it is found in requirements phase rather than in future phases. In this phase the QA interacts with the Business Analyst, System Analyst, Development Manager/Team Lead, etc. or if required the QA may also interact with Client to completely understand the requirements of the system. During this phase the QA takes many important decisions like what are the testing types & techniques to be performed, feasibility for automation testing implementation, etc.

Phase -2. Software Test Planning:- In this phase the QA,QA Lead,QA Manager plans for the complete testing process. This phase is also called Test Strategy phase. In this phase all the planning about testing is done like what needs to be tested, how the testing will be done, test strategy to be followed, Typically , in this stage, a Senior QA manager will determine effort and cost estimates for the project and would prepare and finalize the Test Plan. Important documents like Test Strategy, Test Plan and Effort Estimation are derived from this phase. Everything regarding testing like selection of the testing tools, test efforts estimations, planning resources, determining roles and responsibilities of the personnel involved in the process, planning for the training required, etc. are decided in this phase. This phase is very important as any small mistake in this phase can result in major issues in the project regarding time, money, efforts, etc. A high level test plan document is created which includes all the planning inputs mentioned above and circulated to the stakeholders.


Phase -3. Software Test Designing:- Creation, Review & Update of Test Cases as well as Test Scripts are done in this phase. In this phase various black-box and white-box test design techniques are used to design the test cases for testing, This phase involves creation, verification and rework of test cases & test scripts. Test data , is identified/created and is reviewed and then reworked as well. The test cases prepared by the QA team are reviewed and approved. Test data may also be created in this phase by the QA team if test environment is available to them.In this stage prepare test case and test plan document based on test planning and test analysis.
-Prepare functional test case documents.-Negative value test case document.-prepare validation test document.-Test data is prepared.-Finalized test environment is decided.


Phase -4.Software Test Environment Setup:- Test Environment is the actual system/environment/setup where the testing team will be testing the application. Test environment decides the software and hardware conditions under which a work product is tested. Test environment is prepared by understanding the required system architecture, software & hardware requirements, etc. After test planning phase is over test analysis phase starts, in this phase we need to dig deeper into project and figure out what testing needs to be carried out in each SDLC phase. Many times it happens that testing team is not involved in setting up the test environment. In such scenarios, it is preferable that the testing team should implement Smoke Testing to verify the readiness of the test environment before starting the actual testing.

Phase - 5.Software Test Execution:- The test cases which were prepared earlier are executed in this phase. In this phase, the testers test the websites. During this phase test team will carry out the testing based on the test plans and the test cases prepared. Bugs will be reported back to the development team for correction and retesting will be performed. Different testing techniques as well as methods are implemented and executed on the software/application to break the system and find bugs. Bugs are reported to the development team. The development team resolves the bugs and the system is retested to ensure that it is bug free and ready to go live. In this stage we need to done test cycles until test cases are executed without errors. And our test plans is reached.

Phase - 6. Software Test Closure:- When the testing team is confident that all the reported bugs are resolved and the system is ready according to the client’s requirements, the software testing life cycle enters the last stage I.e. Test Closure stage. In this phase the final testing is done for the software, non functional testing like stress, load and performance testing are performed in this phase. The software is also verified in the production kind of environment. Final test execution reports and documents are prepared in this phase. In this stage, evaluation is done for the complete testing cycle, test closure reports are prepared, proper analysis and documentation is done for the major or critical bugs so that such situations can be handled efficiently and effectively in future projects, etc. The idea is to remove the process bottlenecks for future test cycles and share best practices for any similar projects in future. Each of these phases of STLC has their Entry & Exit criteria We will put a detail article on the Entry & Exit Criterias of different stages of Software Testing Life Cycle in coming days. Hope this article will help you in understanding the Software Testing Life Cycle in detail.

No comments: