Sunday, November 15, 2009

Importance of Software Testing

Software testing is a process which ensures that a software/application is delivered with highest quality.

Importance of Software Testing

Whenever an application is developed for end users, its the sole responsibility of Software Test Engineer to test the entire the application for bugs which may happen when the application is released.

Though the developers believe that there application is bug free but still the application should be thoroughly tested.

How Should an Application should be tested?

Step1
Requirement Phase
An application is build based on the requirement of the end user. A software Test Engineer understands these requirements and create a Test Plan for the same.We will use black box testing and automation regression suite for automation.

Step 2
Test Strategy
Test Engineer breaks down the requirements into small modules and looks what all functionality should be automated and what all requires manual testing.

Black box and regression suite Automation



Step3
Test Case Writing
For each module TCO'S(Test Case Outlines) are identified and these TCO'S are then breakdown into test cases(A test case in software engineering is a set of conditions or variables under which a tester will determine whether an application or software system is working correctly or not)
eg.
Lets take gmail login page. What all are the test cases.

1>User should be able to login with correct username and password.
2>User should not be able to login with incorrect username and password.

These are basic functional test cases for gmail login page. You can also include some negative test cases but we will cover them later on.

Step 4
Reviewing of Test cases
This is an important step in a test plan where a test lead/manager reviews the test cases. Review will include like all the test cases are there for requirements, whether the test case is right. In some cases a developer can also review the test cases as in case of Agile methodology.

Step 5
Traceabilty Matrix
A traceability matrix is then created matching the test cases with the requirements.This is mainly done by a test manager or test lead.

Step 6

What will the testing cycle be

2 test cycles of 2 test passes each. This will include functional testing

End of each test cycle there will be regression testing.

After 2 test cycles there will be a performance test.



Meanwhile Developers develop the application and release the application for testing.

Step 6
Tools Used
Here all the tools used for application management and bug management are chosen.
Step 7
Test Pass
Software Test Engineer test the application on the basis of test cases he has written and log the bugs if any of the test passes fails. Also he do adhoc testing for the application. These bugs are then assigned to the respective developers and once fixed are then rechecked by the testers.

Step 8
Timelines
Here the time line is decided. Here is an example
2 test passes , each test pass of 3 day cycle.


Step 9
Bug Matrix
A bug matrix is created for all the bugs in which bugs are matched with their respective test cases.

Step 10
Bug Triage Meeting
Here all the top management guys sit together and decide what all bugs need to be fixed and what all we can live with. Mainly low priority bugs are ignored.(P4 and P5)

Step 11
Exit Criteria
100% test pass, No P1-P2 open/resolved bugs.

Step 12
Delevirables
Test run report, What all test cases passed/failed in test runs.
Tracebillity matrix:traceability matrix is then created matching the test cases with the requirements

No comments:

Post a Comment