- tests versus the application is another popular goal. A higher ratio can be misleading but, in general, it provides confidence that the application is sufficiently tested.
Identifying Where Automation Benefits Most
While the experts agree that automated testing is an effective practice, it's important to remember that it's not a silver bullet for success. To ensure a better result, consider the following issues before your organization starts its test automation plan:
First, writing tests is more time consuming up front. While it's been shown that this is outweighed by future reductions in bug fixing and maintenance, it's important to note that even with the help of automation tools, the original development will take longer./p>
In addition, automated tests do not eliminate the need for manual testing. Some tests are not easily automatable (or can't be automated at all). For instance, simulating a network outage. For these reasons, it is usually impossible to achieve 100% code coverage, so include manual regression tests as usual in your application project plans.
Finally, a passing automated test does not guarantee that the software is behaving correctly or that the code is well written. Software engineering practices such as verifying requirements, gathering user feedback, and code reviews are still vital to a project's success.
Making It Happen
Despite the overwhelming agreement of software process experts and the evidence that automated unit testing significantly increases software quality, a large percentage enterprise software organizations still do not implement automated tests and their projects continue to be behind schedule and bug-prone. While some organizations consciously make this choice, others simply cannot convince developers that the reward is worth the extra time involved. I believe (and is more and more the thought of the software community) that this is negligent on the part of these organizations.
Using the tools and techniques shown in the article, development groups can create leverage and see large returns for a relatively small upfront investment. The ideas and tools here are just a base of what can turn a team that is always putting out fires into a well-oiled machine. Once ideas like automated testing and continuous integration are implemented teams usually want to embrace more forward-thinking development practices such as those touched on in this article. That is a side benefit–an environment where developers learn from each other and the community and strive to innovate their processes.