Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / DevOps / automation

Software Test Automation

1.00/5 (2 votes)
23 Feb 2012CPOL4 min read 20.3K  
This article is focusing on the importance of software test automation and how and where to make its effective use in software testing cycle of the product development. In addition to this information, it will also give some examples of best open source test automation tools.

Introduction


Have you ever executed hundreds of test cases on any software testing life cycle repeatedly and invested a huge amount of time in executing and managing the results? Definitely a question would have risen in the mind that “Can’t we develop some process to avoid the repetition of the tasks and manage the executions easily?” and you get the answer “Yes! Software Automation. Unquestionably, software Test Automation is the integral part of software development practices these days.

This article is focusing on the importance of software test automation and how and where to make its effective use in software testing cycle of the product development. In addition to this information, it will also give some examples of best open source test automation tools.


Definition


Automation is the process of controlling manual tests, comparing test execution outcomes with the predetermined outcomes, setting up pre conditions and test reporting. Crucial decisions that a testing team takes are what and when to automate. Thus success of automation largely depends on the feature that is to be automated. It should be relevant and re-testable since automation becomes cost effective only in long terms.

Effective Implementation and Requirements of Automation


No one can deny the fact that the software testing cycle is almost incomplete without automation but if it is properly implemented then it is really a worth. It is better to get involved in design phase of the software to understand how the application would work. This will lower down the automation efforts and a better automation test strategy would be prepared. A well-formed automation strategy will elaborate how the automation would be done and what is to be automated. It will contain the information about how and where the scripts need to be maintained for execution. This will clearly depicts the engineers involved in software automation to evaluate automation efforts and relating them with time and cost. This will lead in identifying the right resources with relevant right skills that are to be deployed for automation job which in turn ensure the timely achievement of automation goals.


Team must satisfy some automation requirements like it should be cross platform compatible with data driven competences. Automation should contain effective bug reporting and logging features along with customizable feature. One must consider that total automation of an application is not possible since there might be some feature like UI, help content, documentations and installation etc. which are required to be manually executed.


Sometimes it is difficult to choose best Automation tool relevant to the application under test. Here is the list of the Open Source Tools which will be really helpful to automate your testing task.

Best Open Source Unit Test Tools
C++ Sub CategoryJava Subcategory.NET Subcategory
Google C++ Testing
Framework
JunitNUnit
Automated Test
Framework
TestNGmbUnit
Boost Test LibraryUISpec4JxUnit.net
Cfix  
Overall:Junit  



Best Open Source Performance Test Tools
WEB Sub CategoryWeb Service/SOA Subcategory
JMeterSoapUI
The GrinderJMeter
HammeroraThe Grinder
Overall: Jmeter  



Best Open Source Functional Test Tools
WEB Sub Category Java Subcategory Flash/Flex Subcategory
Selenium Selenium Flex Monkey
TestMaker SWTBot Melomel
Sahi T-Plan Robot TestMaker
Watir Jemmy  
Overall: Selenium  


When Automation is Required


When there is a vast need to of regression testing, test teams should think and work upon automating the application. If the application contains frequent changes in codes but GUI remains same, then it is worth automating the application using GUI automation approach. Overall, the most worthy point to be noted is to start automating the application only when the build is almost stable as it may cause waste of work due to frequent changes if automation starts at very early stage.

Conclusion


Application automation is indeed a best way to make effective utilization of time and man power but at the same time, team should be very careful in choosing tool to automate and resources because unskilled resources and expensive tools can broadly impact overall return on investment. Thus a good automation approach along with predetermined clear automation goals such as when and how to automate is of course going to get significant results.

References


License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)