Software testing is not like taking the software and start testing it, Software testing is not just a single activity its set of activities which need to be performed step by step to ensure that the software is Bug, Defect free.
Software testing has six different phases, we can also called it as the six task or six activity that need to be performed. And those six tasks are Requirement analysis, test planning, test design, test environment set up, test case execution and test closure.
We are going to look each phase step by step and you get know about the Software testing process.
Requirement Analysis : Here from the phase name you might have got some idea about this phase. Here testing team gathers as much as possible information about the software which they are going to test. It’s obvious if the testing team have good knowledge about the software then they can test it very well.
So testing team collect the information from software specification document (SRS) , business document and if testing team requires more information then they contact to developer, Technical leads, business analyst and even client also. The main aim of this phase is to get clear requirement of the software.
After collecting all possible information about the software then decides which type of testing is requires for this software and also testing team check the testable requirement and automation testing feasibility.
Test Plan : everyone knows the important of the planning. In testing planning is also very important to ensure smooth progress and meet all the deadlines. a senior manager or manager by considering all the points/ artifacts create a plan. In that plan they specify many things like when roles and responsibilities of testing team members, scheduling, cost , which part of software is to be tested and which part of the software has to leave, testing tools , etc. you will get more details on test plans and its artifacts in next coming articles.
Test Design : third phase is test design, here tester actual develop the test cases in case of manual testing and if they have to perform automation testing then here tester creates the test script which then executed against the software.
Tester after reading and understanding the software requirement,tester writes the test scenarios based on requirements ,then tester write the test cases and then at last tester creates the test data (test data can be provided by the client also). To understand this let take a example, suppose we are testing the software which consist the student creation form so in this case adding the student is our test scenario and filling the form with valid data, invalid data, trying to fill the form with digit, trying to save the form empty etc would be our test cases and Test data would be like name :chiragnbansod , mobile :900000***** etc would be our test data.
Test Environment Setup : Every software is developed by considering hardware and software requirement. You might have seen in government sites at the bottom there sometime a message it written like this site is based viewed in internet explorer and resolution of something like 136 x 768. Or in many heavy applications they indicate the minimum hardware and software requirement like Photoshop, heavy games etc.
In this phase, according to requirement they configure required hardware and software. Tester may or may not involve in setting the configuration. Sometime client provide the configuration.
Test Case Execution : when a software or a part of the software is made available for testing then tester has to execute his written test cases against the software which they have written during the Test case design phase. Tester execute the test cases, check the response of the software and verify the response of software whether is it as expected or not.
After executing each test cases tester verify the output and if that output is not as expected then it means that the test case has failed and a bug has found then tester report that bug to team lead. Then bugs will be reported back to the development team for correction and retesting will be performed.
Test Closure : this is the last phase of software testing life cycle. This meeting is conducted after testing and releasing of the software.
Here during this phase, all the testing team meet and discuss about the software and the issues those they faced during the testing. Also they collect all the testing artifacts (documents). This meet up will help the testing team to improve the testing process and if they get same kind of software for testing then they may refer this artifacts which have collected.