Guidelines for Software Testing.

Software Testing is not only about finding defects during test execution. Following are the key guidelines for software testing for improving product quality and delivering quality software product.

1. Testing should uncover software defects and improve software quality.

Test team should focus on finding the defects in the software like any deviation from the software requirement specification (SRS) or any variance from the desired output. Also test team should focus on performance, reliability of software so as to improve software quality.

2. Testing should be done throughout the SDLC.

As in the traditional software development models like waterfall model, testing is done only after certain phases of development, so test team is not involved throughout the SDLC. This is not the right approach to get the best quality software’s. In order to do effective testing the test team should be included from the requirements phase till the implementation phase of the software.

3. Testing should do both black-box and white-box testing.

Test team should perform both black-box testing or functional testing, i.e. if the software should produce certain output by performing some series of actions then that output should be verified by following that series of steps.Also the white-box testing or structural testing which tests the internal logic of the system should also be done for the software.

4. Testing should be performed by using business logic. 

Any software application performs some business logic and provides the solution.  The test team should test all the business logic of the software and ensure that the logic is implemented correctly and provides desired results

5. Testing should be performed effectively and reduce software risks.

Testing team should put their full effort and perform testing effectively with minimal resources. The test process should be well defined so that there is minimal variance between the tasks performed from tester to tester.Since software testing is the control which provides management with the risk information so that they can take necessary actions to reduce the project and product risks.