Software testing is the process, where the stakeholders or end users are informed about the software that is being developed. At the same time, it also gives an objective and independent view of the software to the user, which helps in understanding the positives and negatives of implementing the software. For the software to be able to give the end user the right information, measures have to be taken to ensure all the necessary steps of software testing are followed.
It will not only help in giving an objective view but also will help to give a far more accurate view to the end user or stakeholder. Often, people look at software testing as executing a test program with an intention to find defects in the software. Although, it is the main aim of software testing, there are other factors, which complete the software testing process. The other factors may not be more important than the aim of finding defects, but they are of equal importance nevertheless.
Steps for Software Testing
Along with finding defects in the software, software testing aims to verify and validate the software, so that it complies with the business and technical requirements, works exactly as it is expected to and can be implemented again, when the existing factors do exist. Although software testing can be implemented at any point of time in the software development life cycle, it is normally implemented after the development stage has come to an end.
Till the software development process is underway, it is the developers, who carry out the testing process, commonly referred to as white box testing. After the software has been handed over to the testing team, starts the black box testing. This brings us to what are the essential steps of software testing. Let's find out.
Note Scope of Testing
Although software testing aims to find defects in the software, it is important to note, that testing cannot assure that the software will work perfectly under all circumstances. It will only assure that the software will work perfectly under certain predetermined conditions. It is in the scope phase that it is decided upon, 'what is the software supposed to do'. It is important that the testing team understands the aim of the software. This will help in understanding the real time scenario, where the software is exactly going to be used.
The documents created before the development process started should be analyzed and business rules have to be understood for the same. If there is any variance found in the document, the same should be raised during the meeting with the development team. Along with all the other tasks, there an important factors, which should not be forgotten while deciding the scope of testing. It is the stage when software testing stop. Else there are chances, that the testing process will go in a never ending loop.
Decide Testing Approach
Once the scope has been decided upon, the next stage of software testing is to decide the testing approach, that is going to be used. The methods and tools, which need to be used for the process are decided upon. At this stage, it is important to take the client assumptions and various dependencies and limitations into consideration.
Decide Testing Tasks
Now that the testing approach has been decided upon, the next step is to decide the tasks, that have to be completed in each testing phase. The documents to be delivered to the internal client (development team and stakeholders) and to the external client (end user) have to be decided upon. Giving the documents to the internal and external client keeps them in loop about the happenings.
Estimate Time and Budget
The next step is to estimate the time and budget necessary for the entire software testing lifecycle as well as for each of the phase of the cycle. In case any of the budget is overshooting, measures can be taken to curb them and get them on track.
Identify the Testing Phases
Now starts the actual task of testing the software. Normally, start and end date of each of the testing phase is identified, along with the phases that may overlap. It is in this phase that different software testing methodologies are used to test the software. Each of the methodology used has a different aim, while testing the software. This helps in testing maximum aspects of the software. The exit criteria for each of the phase is identified as well, so that the testing process can be stopped after the exit criteria has been met.
When bugs have been identified in the software, the same are reported to the Testing Manager. The Manager creates a report along with the conditions in which the bug was reported. This is then forwarded to the development team, who study the bugs. They may accept some of the bugs and reject some of the bugs. After which they normally give the time necessary for fixing the bugs. Once the bugs are fixed, the software is sent back to the testing team for further testing.
Decide Testing Environment
The different hardware and software requirements necessary for testing the software should be identified in advance. Normally, wide range of test environment are decided upon. For example, if it is a software intended for use on the internet, then the software is tested on all the prominent browsers. There are times, when the software may work perfectly fine on one browser, but may show errors, when it is run on another browser.
Decide Retesting Strategy
If there is a problem with the software, it is sent back to the development team. When the problem has been fixed, the testing team has to test the software. The strategy to retest the software has to be place for the same.
Decide Regression Testing Strategy
Often it happens, that one defect is fixed and another defect is created. The aim of regression testing is to ensure that no more new bugs have been introduced in the software and the software is working perfectly.
Closure of Testing Activities
After the exit criteria has been met, start the test closer activities. In this step, the key outputs are captured, results, log, documents related to the project are put together. All of these go a long way and often prove to be of help for the future projects.
These were the steps, which have to be taken while a software is being tested. Some steps may be added or some may be dropped depending in the policy of the company. In case of a deadline, the exit criteria may have to be changed and the remaining bugs may be fixed in the next release.