Sunday, 3 March 2013

Test Automation

When we think about test automation what exactly coming to our mind is running test cases with out human intervention.But test automation is not simple as that.

In simple terms, test automation is using special software other than software being tested, in order to control the execution of tests and to carryout the comparison of actual outcomes to predicted outcomes.

In test automation there need to be a good test code which is written by a tester at the first place. One of the biggest mistakes being carried out by the people who automate tests is that they do not try to maintain the quality  of the test code. They sometimes try to write tests and finish them as soon as possible to save their time. But it is necessary to maintain the quality of the test code as they maintain the quality of product software. Otherwise what happens is;
  • The test code writers will have to spend most of their time maintaining their test code, if they have done writing test cases superficially.
  • And the other thing is that they will also have to go on investigating failed tests.   
Ultimately the test code automation will never be able to reduce the time of writing and executing the test cases and it will be a futile method of testing.

Usually the expected amount of automating tests should be 100%  from the tests that any tester has. The automated tests resides as binaries (such as exe or dll) or as scripts (Java Scripts, Quick Test Pro, Power Shell, python). So when executing the tests these names are called for execution.

First of all we need a  place to run the tests.The place where all the automated tests are going to run is called the Automated Test Lab. Several machines can be used in the lab to run test cases in parallel.

After that there should be a consideration on "how to distribute the test cases among the machines we have in test lab". We can allocate a separate set of machines to do this task. These machines are named as test controllers. Test controller machines are provisioned with test cases by a "Test case manager/ DB"

After finishing the execution of the tests by the test execution machines in the automated test lab, they signal the test controller about their completion.

Ultimately the test results from test lab are taken for analysis and report generation. So this is all about test automation.