Perhaps the most obvious reason for automating software is to speed up a process and remove mundane, repetitive manual tasks. Software automation therefore saves time and resources, which equates to cost savings. Examples of this abound. But in this article I’d like to talk about some other good reasons for automating software, beyond the obvious benefits of saving time and money.
One consequence of software automation is an improved understanding of the software's interface. One of the best ways to learn to use a software product fully is to try to automate it. Testers and automation engineers have to learn the software’s interface really well, possibly better than the people who wrote it. The developers may well know the algorithms better than anyone else, but it is the person automating it who knows the ins and outs, pitfalls and quirks of the interface.
We all know how badly designed some Windows programs are. And in these days of fancy hi-res graphics and snazzy toolbar buttons it’s easy for the designers to forget about shortcut keys and keyboard navigation. The most productive way to use a PC is to forget the mouse and learn the keyboard shortcuts. You can get things done much more quickly. Yet even the most experienced Windows users don’t know half the keyboard shortcuts that exist in Windows. For tips on keyboard navigation in Windows see
http://support.microsoft.com/default.aspx?scid=kb;en-us;301583Knowing these shortcuts makes automation so much easier and more reliable. Automating an application by sending mouse events and mouse clicks is unreliable and depends on the screen resolution never changing. Although you can use relative mouse coordinates, sooner or later something is going to change and the button you want to click is not in the place it was when the script was created.
The automation/test engineer is the one who figures out the keyboard shortcuts and finds the simplest, most reliable way of navigating an application. People who automate applications regularly have a good understanding of the different ways to move around Windows and Windows applications. Automated Software Testing can help find issues in the interface just from the process of building the automated test, even before the test script has been run. Building an automation routine for an application will help you find those missing or duplicated shortcut keys and other objects that can’t be driven by the keyboard.
Automation script developers spend so much time fiddling with the software’s interface that they will often become more knowledgeable than the “power-users”. Testers also have the great advantage of being allowed to try unusual scenarios that developers never think about or are too busy to try. They are allowed to break things!
So it goes both ways. Find out the Windows keyboard shortcuts and the hot-keys for the application you’re scripting and you can create a better script. Build an application with good keyboard support and your application can be automated more easily. If it can be automated easily it will be easy to use!
Software automation can also lead to improved documentation. Automation scripts are the ultimate way to document a process. A script that automates a process describes how to carry it out properly. Businesses need to document all their manual processes so that other people can carry out the task. By scripting the process it is being described at the same time. As well as saving time by automating it, it is also now easy for someone else to see how the process is carried out.
Finally, an important benefit of software automation is in contingency planning. Contingency goes hand in hand with documentation. If only one person in the organisation knows how to carry out a task there will be problems if and when that person is sick, on vacation, or leaves the company. Not all absences are planned. By documenting a process the business is ensuring that someone else can carry it out should the usual task owner be unavailable.
Automation takes that one stage further. If the process is scripted and automated it is easy for someone else to take on ownership of the task in the future. The task will continue to run and the script itself describes how the task works.
Therefore software process automation not only allows businesses to save considerable time and human resource, but it can also improve documentation and contingency; aid in software development and testing and help towards building better user interfaces.
Marcus Tettmar is founder and CEO of MJT Net Ltd, specialists in windows automation and publishers of Macro Scheduler, the leading automation tool for Microsoft Windows; and WebRecorder for Web Application Automation. Find out more at
http://www.mjtnet.com