Tuesday, April 26, 2011

Search For The Holy Grail - Automated Test Software


How many software managers and executives imagine armies (ie door computers) automatically runs millions of tests over and over again and find all the problems in the software? What a great idea - software that software testing! Main eyes light up: That's what companies that sell automated tools to tell all - the right "You mean we do not have to hire and pay people to do Think of all the The money we save? "? "Just pay $ 100k to this beautiful automated tool - see the price enough recovery vs. PowerPoint graphics and remember how much money it will save you!" - They insist. Except they do not tell you a dirty little secret - it rarely works for most businesses. Tools end up sitting on a shelf in someone's cube.

Why? - Since the instrument alone does not solve the problem of evidence. You are still: 1) a development process that supports automated testing, 2) watchful automation management support, the software version of the cycle, 3) the tools that are smart enough to deal with unexpected problems and results and analysis ( software stupid), 4) basic and advanced training (such as employees leave the company, and hired new), 5) and many other items.

What kind of development process is necessary to support the automation of software testing? It is very easy to make a change in the application software and break the automated test scripts. For example, say you had written 50 scripts to test the ordering process for a retail site (like Amazon) - one for each state in the United States. Each automated script to select an item, enter amount, select the shipping method, add sales tax to the State and / or location, the total amount of the basket, then click the order button now. Now, say the developers changed the buying process by adding an extra step (as a verification step), so that a new page can be found with the order details and a Next button, and then (when you click Next) takes you to another page with the order of the buttons now. You would have to modify all the scripts to add (or insert) the additional details requested page and click the Next button. And only if there was a command script (state).

If you had been 10 scripts, you must edit the script 500! So the best software development seeks to minimize the changes to the program, which covers automation scripts (not easy for most of the time). In addition, there are ways and create automation scripts to reduce the maintenance costs of the script.

So why care management automation? In fact, a number of issues related to test automation that require management support. To develop the first series of automated scripts usually takes longer than just to test the software manually. However, the real benefits of automation is not the first time to develop and implement test automation - but with script runs later. In general, you can click the start button (figuratively speaking) and when the race ends - analysis of results - which usually takes less time than just manually running all tests. Therefore, management should be compatible with more time needed to develop an initial set of automated scripts to return to subsequent executions.

The administration should also support making changes in software application to minimize the impact of automation scripts - something that sometimes takes longer to design and implement a straight forward change or fix . But once again - reducing maintenance scripts automation saves time and money for the project and the company. Management should understand the concept.

The administration should bear the cost and training involved in standardization in automation tool. There are upgrade costs and recurrent costs of staff training (as resources come and go throughout the organization.)

Often software applications in unexpected situations and errors rare. Fortunately, the code is programmed to correctly handle exceptions and error conditions. Unfortunately, most scripts to automate software testing are not treated with elegance and unforeseen circumstances change the way they behave. There is no real artificial intelligence in the scripts that change the flow or pattern, as well as verification of the results. The tools are getting better - but still a long way to go.

Employees come and go. The industry average is about 10% of staff change every year or so. Check for software testers who are familiar with a testing tool in particular (and many times a particular version of the tool) is a bit difficult. More effective implementation of the tool in an organization can affect the characteristics of behavior and performance. Thus, training is a must. Many organizations are not willing to make that kind of commitment.

What works? Well, in my experience, there were a few software organizations that have successfully automated. Some have set up software development process, which consists of a set of code and then change the layer (like an onion) to reduce breakage of automated test script. All changes are analyzed for the coding and the impact of automated testing before approval is given for implementation. Management also contends (and budgets) of training and development of automated tools.

So many barriers and obstacles involved - Test Automation is still the Holy Grail of software testing. It is still (even with the automation of success) lots of participation rights of the script coding, maintenance and analysis of results. But the benefits are huge for companies that can dominate the whole process. The automation can free your trial software resources to be more creative and seek unity to find test cases, while robotic automated test scripts to cover evidence of the most common (and boring). In my experience, test automation does not usually result in faster test, but rather more extensive testing resulting in turn in a quality software product.