A short-list of selection criteria and popular automation tools.
There are a lot of test automation tools available in the market, from heavy-duty enterprise level tools to quick and dirty playback-and-record tools for browser testing. For anyone just starting their research we’ve put together a short list of requirements and tools to consider.
Selecting the right tool starts by identifying what you need to achieve. If you only need to automate web browser testing, your requirements will be different than if you’re testing a custom built banking application.
Manual test design and automated test design are vastly different. There is no use investing in a tool the team won’t be able to use effectively. This will also be a factor in determining the level of support required from the tool vendor.
Some tools require the skills of knowledgeable programmers to implement. Easy to implement tools lessen the need for programming support but may sacrifice features and functionality, so the tradeoff must be weighed carefully.
If the tool supports the code your programmers are using, it’s much easier (and simpler) to get programming support for difficult automation tasks. It also allows for the potential of reusing code from unit tests, which saves time and cost of creating automated tests.
Controls and Objects
Operating systems provide dozens of various controls that can be used in tested applications like: edit boxes, list views, check boxes, menus, buttons and others. The tools you consider should include features that simplify working with controls used in your application.
Operating System Support
The tool should support common operating systems and be easy to update for the latest versions. Commercial tools provide maintenance for this, whereas open-source tools not so much.
If you need to test applications against multiple languages, you don’t want to have to create tests in every language. The tools you consider should have multiple language capability.
Specialized and complex applications will likely require customization. If this is the case you will want to focus on tools that can accommodate your needs and even offer support services that can do the customization for you.
Ease of Use
With training and experience most tools are easy to use. Record & playback tools satisfy ease of use, but not a lot else. Instead ease of use being a primary selection criteria, it is better to use it as a comparison between the top choices.
If you’re doing large-scale testing you will want to have a tool that allows tests to be executed over multiple machines that can be controlled from a single location.
The Tool Short List
Here’s a list of a subset of test automation tools available. Each tool has pluses and minuses. The best tool for any specific application will need to be determined by conducting a thorough evaluation.
HP® QTP (Quick Test Professional)
HP is the market share leader for software test automation tools. QTP works with most Windows and web-based applications. The latest iteration of the tool is UFT (Unified Functional Testing), which includes QTP for front-end web-based testing, and ST (Service Testing) for back-end Web Services-based testing, as well as mobile testing capability.
QTP has many included web and windows target automation platforms. There are also numerous integrations to 3rd-party add-ons like Flex, QT, Delphi XE2, Stingray 11.1, Web Dynprop ABAP for NW 7.31, etc., that can be purchased for specific application needs.
Novice and non-technical testers can create basic, low-level automation scripts with the record and playback feature.
QTP is integrated with HP’s Test Management tool, Quality Center (QC), to map QTP-created test cases that can then be executed in QC.
QTP test cases are heavily reliant on scripting. Test cases created with the record and playback functionality will have to be re-recorded whenever the application under test changes.
QTP only supports VBScript (a readable English-like language).
As test cases scalability grows, test case maintainability becomes a larger part of the test effort.
QTP is a heavy weight on the cost side for both licensing and computing resources. Licensing cost varies depending on the number and type of licenses. Some versions of QTP require extra-cost add ins/plugins to work with DotNet components.
Microsoft® Visual Studio® Coded UI
Visual Studio 2010, included Coded UI, as an integrated approach to get testers and developers on a unified platform. Now on the third rendition, Visual Studio 2013, Coded UI, and Team Foundation Server (TFS) with Microsoft Test Manager (MTM) form the foundation for UI test automation is a software development and application lifecycle management (ALM) environment.
Microsoft’s Coded UI integrates across Microsoft’s with Team Foundation Server (TFS) and Microsoft Test Manager (MTM).
User actions can be recorded while running a test case using MTM (Microsoft Test Manager). The automated recorded actions can be repeated any number of times after a change is made in a build.
In Visual Studio 2013, Coded UI tests support a variety of technologies, including XAML-based Windows Store apps, IE 11 and SharePoint 2013, in addition to previously supported technologies. It provides logging support for cross-browser tests.
Test creation is time consuming and Coded UI generates a large amount of C#-only code, even for small UI operations, complicating test maintenance.
Coded UI uses almost all the property-value pairs to identify and locate the UI controls, in reference to the UI MAP, which can affect the performance of the script.
Even if a set of code has been generated for a particular action, Coded UI will regenerate exactly the same code when the test actions are repeated, without leveraging the value of code reusability.
TestArchitectTM for Visual Studio®
This version of TestArchitect is an extension for Visual Studio (2012/2013), providing built-in functionality. The tool uses Action Based Testing (ABT), an advanced keyword method that provides a number of key advantages over Coded UI automation.
Coding and scripting is replaced with reusable actions for test creation. Built-in, preprogrammed actions simplify test creation.
Tests have high reusability, reducing the amount of time needed to create and execute tests. Test cases can be managed in TFS and executed in MTM.
TestArchitect uses the construct of test modules to organize test cases. This functionality makes it possible to abstract tests to the business-logic level, with objectives or user stories for each test. Tests are aggregated to the same or similar scope, making test flow organization a key focus of test development.
TestArchitect for Visual Studio only supports platforms that are supported by Coded UI. There is no iOS or Android mobile support.
TestArchitect is the enterprise test automation tool that integrates a test design methodology (ABT), test automation, and test automation life-cycle management (TLM). It addresses the needs of large-scale test automation for complex applications by focusing on test and automation maintainability.
Actions are used in place of scripts or programming for test creation. A centralized repository allows remote teams to leverage reusable test assets.
Allows distributed test execution on multiple physical or virtual machines. Includes a variations feature that allows a testing against multiple languages with a single test.
A programmable harness is provided to support customization for proprietary or third-party platforms and controls.
TestArchitect is not ideal for small-scale test creation. The systematic approach to test design and test flow is best suited for high-volume testing.
A steeper initial learning curve is required to take advantage of the ABT test methodology, than recording and scripting.
TestComplete is targeted at small to midsize test teams. It includes keyword testing to make the tool usable for a wider audience of testers. Smartbear also offers a SaaS version of the tool.
TestComplete’s record-replay feature makes it simple to record and automate basic tests. The tool works well for small to mid-size teams looking to automate a portion of their software testing.
The tool has an attractive price and there are a number of add-ons that can be purchased to extend basic capability.
Record and play-back tests require a significant amount of maintenance when the application under test is changing rapidly.
Hand-scripting test cases are an alternative to record and playback, but hand-scripting can be difficult or for novice or non-technical testers.
Micro Focus SilkTest®
SilkTest is used for automating functional tests for enterprise-level software applications. SilkTest’s automation capabilities make it a consideration for regression, cross-platform and localization testing across a broad set of application technologies.
SilkTest supports a range of application platforms, including AJAX/Flex/Web 2.0, Java, .NET,client/server system. It also provides cross-browser support, without test script modification.
The embedded VB .Net scripting language enables test customization and automation through a visual-based or editor-based editing environment.
SilkTest is limited to supporting only Windows applications and only through Internet Explorer and Mozilla browsers on Windows.
SilkTest use 4Test scripting language, an object oriented language similar to C++, which requires a programming-centric learning curve for novice and non-technical testers.
The Selenium Suite is a popular open source tool exclusively for testing web-based applications through browsers. The Selenium suite offers the choice of the Selenium IDE or Selenium RC (Resource Control) (previous version) or Selenium WebDriver (newer version), depending on the level of testing needed.
The open-source software has a zero up-front cost, and focuses on easy to create tests for web browser testing.
It has a record and playback feature for creating tests without scripting in a test domain-specific language (Selenese)
User actions can be recorded in popular languages like Java, C#, Perl and Ruby.
Selenium is for automating browser testing only. Tests are challenging to scale and maintain for large-scale projects.
Selenium tests need to start the browser and stop the browser between each test. Tests can sometimes break due to long page load times.
Support and functionality updates are only available through the open source community. Updates and maintenance require strong programming skills.
There are a lot of choices when it comes to test automation. Every tool has its plusses and minuses. Which one, or which ones, is the right choice for your organization will have many dependencies. Starting by thoroughly evaluating your needs and the team (and their skills) that will be working with and managing the tool will help narrow down your choices. Getting it right will provide a significant boost to your testing effort.