Automating a test procedure is a powerful tool for testers, whether the goal is to complete a general sweep of a product or to test a specific feature. A programmer is capable of automating almost anything, from detecting text and buttons in an app, to assessing the correctness of the layout of a web page, to checking a product’s error handling. But the return on the investment of time and resources must be kept in mind for automation to be a worthwhile effort.
In a world of agile development where software engineers and developers can post new builds of their products daily, we must be conscious that any change made on a given day might break our automation code, and cause us to spend hours keeping our code up to date with the latest and greatest from our clients. So while manual testing is slow and sometimes tedious, it is unnecessary and inefficient to automate an entire test plan because the time and effort required would outweigh the benefits.
The payoff for the effort put into automating a procedure can be great, but only if the scope of the automation project is reasonable. We have adopted a modular approach to coding our test plans so that if the basic structure of an app or website remains constant, we can easily adjust the function modules that test different features of the product as we go. We've found that not only does the modular structure of our code make our lives easier as we develop it, but it means that we can tailor test runs to the client’s needs. If only one section of an app has changed between builds, we can just run a subset of the modules to test it, again saving everyone time.
Our approach also allows us to develop additional modules throughout a project that may be more specific, or to adapt to changes in a test procedure. We've had to design our automation to be agile to keep up with the preferred development style in the market. Using a combination of manual and automated testing allows us to maximize our coverage and minimize the risk areas. In our experience, this mixed style of testing, tailored to the current stage of development, best serves the needs of our clients.