This article will present the dilemma of automating test cases and will bring the advantages (values) and disadvantages (obstacles) of implementing it, solutions for these obstacles are also presented. What is the goal you would like to achieve by automating the test cases? If you are able to answer this question a wise decision can be taken. Lets assume that currently a documented manual test case exists, testing team is very professional and the customer is satisfied with software quality. Why to automate the test cases? This is a classic argument budget manager (maybe its you) will use. Well, I must say its an individual decision for each software and company. Truth and optimum with test cases automation are somewhere in the middle. The conclusion is automating only a selective list of test cases. Following are the main values of having automatic test cases: Flexibility and Fast Tester is running the defined test cases one by one and always performs it during day light. Automatic test cases can be executed any time, one by one or in parallel. Less Testing Errors During manual execution of test cases, testers are doing mistakes with checking the expected results. A programmed automatic script of test cases is extremely accurate and reliable. Better Resources and Budget Effort Allocations This value is certainly not immediate, but gradually few testers will be free for different allocation of other projects. Improving Quality In the long run, automation will improve the general software quality, not only the automated areas. The flexibility will save time and free resources for performing deeper manual tests and even covering new areas. Disadvantages of implementing automatic test cases are actually several known obstacles that need to be considered before and during the implementation. In case of simple software, meaning one or two modules with simple functionality, the implementation will be relatively fast for an experience developer. The question if it necessarily to perform it for simple software is relevant, because manual tests are simple to be done and automation implementation costs might be higher than its value. To implement automation test cases for complicated software with several connected applications and external interfaces is completely different story. Following are the requirements and obstacles: Experience Developer The market existing tools which allow you automating test case required professional developer. Some of those tools have dedicated development language. C++, Java or COBOL developers will not be able to perform this activity without training. A decision related to the allocate person should be taken, either to hire an experience developer which already familiar with the tool or using one of the exiting resources and sending him to courses. Both options are valid, but impacting the implementation period and costs. A third option is allocating testers which were never developed. This will prolong the implementation period, but relevant since tester have a wide business and operative views of the entire system. Business Knowledge A professional developer must have the software business background. Each test case is reflecting real business scenario. The developer should know the business logic behind each test case in order to be able developing the correct script. From experience, one full position will work together with the developer at the beginning. Maintenance Automation of test cases is not one time effort. For each functional change it is required to maintain the automated script package accordingly. My recommendation is not to decide in advance that all areas need to be adapted, but to evaluate each change separately. In general those with highest volume in production environment should be automated even if the effort is a bit high. Other cases will be considered as not worthwhile from time and cost point of views. Please note, 1. Automated processes in software cost money. Special resources, training, tool etc. 2. The project goals should be accepted by the relevant groups and managers. 3. Project plan with milestones should be prepared. 4. It has to be clear that effort needs to be invested and the return of investment is not immediate. |