Page 193 -
P. 193

It is a common misconception that automation will free the test team of most of their
                          work. This simply is not true. Automation requires more effort than manual testing; the
                          trade-off is that the test scripts can be reused, so that a series of automated tests run much
                          more quickly than a manual test.
                          One good reason to adopt automation is that the test battery will never shrink. As the
                          product matures, the test battery will get bigger and bigger because the software will do
                          more and more. This means that manual testing will require more and more effort as time
                          goes on, and will take longer each time the functionality increases. Automation, on the
                          other hand, requires a constant amount of overhead, and can help keep the test effort
                          under control because the automated tests do not require much effort to run. They do,
                          however, require a lot of effort to interpret once they have run. Instead of a tester manu-
                          ally executing a test case, finding a defect, and recording that defect immediately, the
                          tester must first look at a report document to find the reported failures and then track
                          each failure down in the application, research it, and enter it as a defect.
                          Another misconception is that test scripts will somehow eliminate the need for test cases.
                          This is absolutely untrue. Automation actually requires more planning than manual test-
                          ing. Each test script must first be developed as a written test case. Writing a script without
                          a test case is like writing software without requirements—if the tester simply goes in and
                          starts recording, there is no way to define the expected result of the test. It’s not enough to
                          just record a script; the test case itself must be written, and then the recording made to
                          automate the test that has been planned. If this is not done, there is no way to verify that
                          the tests really do cover all of the requirements. And if there is no written test case, there
                          is no way to interpret the results if the script fails, because there is no record of what it is
                          that the script was supposed to do!
                          There are also many logistic difficulties in automation that must be overcome, especially if
                          there is a team of testers who will maintain and run the tests. The scripts must be stored
                          somewhere, and people need to be able to collaborate without overwriting each others’
                          work (which may require that the automation script files be stored in a version control sys-
                          tem like Subversion—see Chapter 7). It may be difficult to estimate how long it will take to
                          actually run and interpret the scripts. And another trade-off is hardware: adding more and

                          more powerful test machines can cut down on the amount of time required to test the soft-
                          ware, but, since they do not cut down on how long it takes to interpret the results and enter
                          defects, there may be some diminishing returns in that area.

                          All in all, automation is often a net gain for the project, especially if the project will be
                          tested many times and maintained over a long period of time. However, there is absolutely
                          no benefit in automating a product that will not face repeated regression tests over the
                          course of multiple releases. If there will be just one release, the cost of automation will not
                          be recouped. It is very important for a project manager to understand the pros and cons of
                          automation, and to guide the organization toward its wise use.






                                                                                       SOFTWARE TESTING  185
   188   189   190   191   192   193   194   195   196   197   198