Continuing our conversation about tips for better software test automation, this time we would talk about reuse.
Given the fact that many test automation initiatives suffer from time crunch, this aspect becomes even more important to understand. While it is very tempting to want to write your own framework for everything you need, it is not practical. If we pause and think, we can emerge over the urge to write our own libraries suited uniquely to task at hand.
While there are legitimate scenarios where such an approach might be required, more often than not, it is counter-productive. The contrast between generic and specific implementation is too stark, yet too subtle at the same time. It is advisable to seek the middle ground in our work.
As a test automation developer it is important to first learn what is already available in terms of frameworks, libraries and refer to other people’s documented experience. Only when we are sure that an existing implementation will not suffice for more than 80% percent of what we need, we should look for custom/specific solutions. Because in most of the cases, 80% requirement match is a large enough ground to start with.
There are multiple competing tools available in both commercial and open source categories and we can evaluate them before embarking on our own implementation journey. Following is a brief list of open-source/free to use tools/frameworks available for various types of automation needs –
1. Selenium Framework
Selenium is a suite of tools to automate web browsers across many platforms.
2. Robot Framework
Robot Framework is a generic test automation framework for acceptance testing and acceptance test-driven development (ATDD). It has easy-to-use tabular test data syntax and utilizes the keyword-driven testing approach. Its testing capabilities can be extended by test libraries implemented either with Python or Java, and users can create new keywords from existing ones using the same syntax that is used for creating test cases. Robot Framework is open source software released under Apache License 2.0.
Fitness is an acceptance testing framework and also duals as a fully integrated standalone wiki.
Watir, pronounced water, is an open-source (BSD) family of Ruby libraries for automating web browsers. It allows you to write tests that are easy to read and maintain. It is simple and flexible.
Inspired by Watir development of WatiN started in December 2005 to make a similar kind of Web Application Testing possible for the .Net languages. Since then WatiN has grown into an easy to use, feature rich and stable framework.
Frank allows you to write structured text test/acceptance tests/requirements (using Cucumber) and have them execute against your iOS application.
7. Monkey Talk
MonkeyTalk is an integrated environment for recording, customizing, running and managing test suites for native mobile applications. It supports iOS (iPhone + iPad) & Andriod.
8. Microsoft UI Automation Library
Microsoft UI Automation is the new accessibility framework for Microsoft Windows, available on all operating systems that support Windows Presentation Foundation (WPF). UI Automation provides programmatic access to most user interface (UI) elements on the desktop, enabling assistive technology products such as screen readers to provide information about the UI to end users and to manipulate the UI by means other than standard input. UI Automation also allows automated test scripts to interact with the UI.
White is a framework for automating rich client applications based on Win32, WinForms, WPF, Silverlight and SWT (Java) platforms. It makes use of Microsoft UI Automation Library.
There are many commercially available tools too which can help in your own test-automation adventure!
Again, remember, if you really wish to re-invent the wheel, you can, but the actual fun begins when you start putting wheels together and build a car!