Whether to use a Testing Tool or Not-Tips to Decide
Whether to go in for a testing tool or carry on with manual testing is undoubtedly a tricky question; however following tips shall be helpful in reaching a logical conclusion.
As an underlying guideline, objectives of our test are the key factors that dictate as to whether we should go in for a testing tool or not.
First of all let us see � which are the right situations for using a tool?
We would prefer to go in for some testing tool, only when the manual testing process proves to be inadequate. Some of the situations can be like:
1) Use of Load Testing Tools: If we need to stress test a system, we can very well deploy several testers who can logon to the system simultaneously
and can create a peak load on the system manually by using stopwatches etc. But such an approach has many drawbacks in the sense that our measurements of performance can not be accurate & repeatable.
Hence in such a case it would be wise to go in for a load-testing tool with the help of which we can artificially simulate the condition of several virtual users under accurately controlled stress conditions. The load testing tool shall provide us accurate results every time we repeat the test under similar conditions.
2) Use of Regression Testing Tools: We would certainly need a regression-testing tool under the following situations:
# We are to test every build of the application. This can be in situations when manual testing tend to become unreliable, time consuming & inconsistent.
# We are to test the system with multiple data values for getting similar actions
# We expect detailed information from system internals like SQL, GUI attributes during the tests
# We want to stress test the system to see its behavior under load
3) Utilization of following benefits of the Testing Tools:
# Testing tools have greater speed of operation compared to manual effort.
# Testing tools can run in unattended mode without the human intervention
# We can get detailed code coverage analysis after every test run
# Testing is accurate & repeatable with the use of tools.
# Testing tool is reusable, just like subroutines of programming.
# Tools are easily programmable
Next let us see the situations not conducive to the use of Testing Tools
Following factors discourage the organizations against the use of testing tools.
1) Exorbitant Cost of the tool: There can be a tradeoff between the cost & performance. The organization can decide against the use of a testing tool if tangible benefits are not expected to come out in comparison to the marginal performance benefits.
2) Cultural Barriers: The development culture might not be available in the organization that may pose resistance to the use of a testing tool. One factor for such barrier can be that once a tool is deployed it would need proper training of personnel, enhancement of other skills and even the management commitment for quality on a longer term.
3) Usability Testing: It is such an area, which can be handled by human efforts only. An automated testing tool can not test usability.
4) Frequency of Testing: If the test frequency is quite low say once or twice only, it will not be wise to invest time & money in a testing tool.
5) Time Limitation: There can be situations of intense pressure of finishing the testing within a particular time frame. Hence in such situations, thinking of deploying a testing tool may not be wise; since considerable amount of learning time, set up time & integration efforts will be needed.
6) Ad hoc testing: Deployment of a regression testing tool will not be advisable when formal test design & test cases are not available.
7) Predictable results: Deployment of a regression testing tool will not be advisable If our tests are not expected to provide predictable results.
8) Rapid changes in System: If the system is expected to change quite frequently during every testing cycle, it will not be wise to deploy a regression testing tool wherein we would land up spending more time in maintaining it.