UFT: New Features & Enhancements of Note (GUI Testing Perspective)

Unified Functional Testing (UFT) logo

UFT is the new installment of HP’s automated functional testing tool that replaces QuickTest Professional (QTP). In this article, I will give a quick synopsis of some of the new features and enhancements to familiarize those who have not had a chance to do so yet with UFT.


The update brings with it a new, well-designed IDE allowing for increased productivity and functionality, in turn, easing the automated testing lifecycle for those who use the tool as a test execution platform. The new installment is even more exciting for the automation engineers who need the tool to develop and maintain testing frameworks.
UFT stands for Unified Functional Testing and has been out since December of 2012. With its redesigned IDE, UFT has combined all the capabilities of QTP for GUI testing and HP Service Test (ST) for API testing and brought it into the modern world in line with IDE’s of the likes of Visual Studio.


Though be it one would not be able to run tests without the IDE being invoked as a runtime environment which slows the test execution, however if a test is running from ALM in the “invisible” mode execution times will improve by about 20% or so.


IDE Workspace New Features and Enhancements

With the new redesign, which includes new features and enhancements, the IDE has become a more productive environment to work in. Below is the list of some of the new additions and enhancements.


Solutions Explorer Pane

Tree-like structure that allows for tests and function libraries to be accessed from the same location.
Multiple tests could be grouped into a single solution and worked on without having to close a test in order to work on a different test. Toolbox Pane
A list like structure to show function libraries, local functions and repository test objects used in the selected Action that can be dragged and dropped on the canvas at cursor position.


Properties Pane

Test is selected in the solutions explorer:
Test Settings Tab:
Test Name, Author, Location, Add-ins associated with the test, link to Settings (Test Settings option under File Menu), etc.Parameters tab:
Test Input/Output Parameters
Action is selected in the Solutions Explorer:
Action Settings Props:
Action Name, Location, Reusable


Parameters Tab

Test Input/ Output Parameters
Used By Tab: what Test and Action dependencies in ALM (if connected)  If a test requires parameterization the process is much easier to complete.
Add input/output parameters in the “Properties” pane for “Test/Action.”
Select “Test” in the Solutions Explorer and in the canvas right click on the “Action.”
In the subsequent popup, you will get the option for “Action Call Properties”… where you (as before) could tie “Test” and “Action” parameters together.
  Action Canvas
Action canvas has some new very commendable features and enhancements.
Local Functions/ Subroutines List:
Shows the list of all the functions and subroutines defined in the script. They are listed in alphabetical order in the drop down for easy searching through. By clicking on an item, you will be taken to that function/sub definition. 


Search Results Pane:

  • Searching capabilities have been improved considerably. One of the improvements is the Search Results pane that displays in a list format all of the places where your text searched for is located on the Action canvas. Not only that it lists all search criteria specified but you also could click on each item found in the list with the name of the Action and line/character position on the canvas and it will take you to that line/character position if you double click on it.
  • You also could navigate through the search results by clicking Previous Result/Next Result on the Search Results pane menu bar.

Debugging Enhancements & Additions

The following panes have been added and enhanced:

  • Call Stack – allows you to view info about the methods and functions that are currently in the call stack.
  • Loaded Modules – for API tests, this pane allows you to view info on .dlls that are loaded and executed in API test runs.
  • Threads – for API tests – allows you to view info about threads currently running as part of the run session.
  • Local Variables Pane – allows you to view all the current values and types of variables in their current context.
  • Console Pane – when debugging a script, this pane allows you to run lines of VBScript (for GUI tests) and C# code (for API tests) in your suspended run session.
  • Watch – when debugging, this pane allows you to view the current values ad types of selected variables, properties, and VBScript of C# expressions in a test’s suspended run session.
  • Debug Pane – enables you to view the current values and types of variables, properties, and VBScript or C# in a test’s suspended run session.


UI Object Recognition

Object recognition is the bread and butter of GUI automated testing. Without it user interaction with an application may not be duplicated and hence GUI automation would be useless. Having the ability to be able to deal with the UI object recognition conundrum is a constant struggle both for tool developers and engineers that use them. UFT has added another weapon to its arsenal in this struggle with the UI beast. It is image-based identification or Insight.

The basic premise of Insight for the UI objects/controls is that it can be recognized based on the way it looks like with a human eye. The best use is in the cases when object properties are not available and UI objects don’t have a unique property by which to separate them from other objects. For instance, unless you have Adobe Acrobat Pro installed on the UFT machine you will not have access to Adobe COM objects to use to operate on PDF document. Most often the objects will come up as WinObject with no unique properties except for abs_x and abs_y coordinates which are not reliable if let’s say the resolution of the test computer screen is different than that of the computer where the script was developed. In this case using image based recognition will be of help. The technology is not perfect, however, it is by far better than using x,y coordinate based technology.


Here are a couple of article links for you to check out to find out more.


Supported Browsers

UFT has an ongoing support for IE, Firefox and Chrome however what is new is the support of Safari browser on Remote Mac machine. The script must be developed on Windows machine using Remote Object Spy on Safari browser to see the properties and methods to operate on the Web controls so you can add those objects to the repository. To do so, you must install the UFT Connection Agent and the Unified Functional Testing Agent Safari browser extension on your Mac computer. For details on how to do this, see Working With Apple Safari on a Remote Mac Computer guide that comes with your UFT installation.


New Add-ins

With UFT there are some new add-ins that have been added to UFT. I will expand a little bit on Flex add-in and the requirements associated with it. The version of Flex SDK that Flex add-in supports is 4.5.x and above. That means that any earlier version of SDK used will not work with the add-in. That is an unfortunate turn of events for those who are working with Flex compiled in version prior to 4 since then you are stuck in the QTP world and would not be able to upgrade to UFT. The reason being is that prior to UFT one had to use Adobe version of Flex add-in that was the only support for Flex applications. As of this writing the Flex version that is supported by Adobe is 4.6, however that being said Adobe decided not to add support for it in UFT. HP version of Flex add-in will not recognize objects of the Flex application prior to 4.5.x, so if your developers are using that version of SDK then for all intents and purposes in all likelihood that application might be on the way out the door and therefore out of the realm of your testing requirements or might be possibly converted to HTML5 (Adobe provides tools to do that) and then will be testable with UFT. In any case there is a possibility of disconnect where if company wants to move to UFT for testing of the GUI applications outside of Flex business requirements and yet may not due to the older Flex SDK used.


The beauty of the latest version of HP Flex add-in for UFT is that if you have downloaded Adobe Flash Debugger and install it on the UFT computer, then you would not need to compile your Flex application with a UFT Flex pre-compiled agent (available since version 12.02 of UFT). You could use UFT as you would with any other application. Instructions on how to setup it all up are available in UFT_AddinsGuide.pdf that comes with UFT installation.


Mobile Testing

As of UFT 12.02 you can now test mobile applications natively using UFT without any third party add-ins. The requirement, however, is to install HP Mobile Center, connect your mobile devices through USB and immediately start testing.

Couple of links below will get you started on that journey.Couple of links below will get you started on that journey.


SVN Integration

If you remember since version control has been introduced in QC it has been a bit difficult to work with it due to locking out issues, crashes of UFT etc. To say the least it has been fraught with many shortcomings though be it now it is by far in better shape than it has ever been. However HP has added SVN support to UFT. According to HP this enables you to perform version control operations without the need to separately update and commit changes for your testing documents in Windows Explorer. While you edit the tests in UFT, the UFT IDE provides a visual indicator of those tests that need to be updated and committed from your SVN repository. Changes can be merged between 2 versions of documents and conflicts resolved between versioned documents saved in the SVN repository and on the UFT computer as well as compared. To find out more checkout Saving UFT Documents in SVN guide that comes with your UFT installation.


Continuous Integration

With advent of agile methodologies the concept of continuous integration became part of development cycle in an agile team environment. As such it has been a challenge to integrate it into a testing environment since a tester usually had to wait for a development cycle to complete before they could run their test suite. Not so anymore, with the latest version of UFT 12.02 HP Jenkins Plug-in was introduced and it allows to run UFT test/s as part of the development build process.


For more details on how plugin works please visit: Jenkins plug-in wiki.


In Conclusion

There is by far a lot more to the new iteration of HP UFT then what was covered here, looking at only those things that were of note to myself it however I hope it has been a helpful guide to my readers to familiarize themselves with some of it. UFT showcases the fact that innovation and ideas are still available in their proverbial hat of tricks, considering that competition and market place are getting stiffer and more saturated respectively. Thankfully HP is not standing still and are putting a lot of effort and know how to make a versatile and robust automated testing tool able to address enterprise and medium business needs for Quality Assurance be it their environments and/or suite of their products as seen with this set of new features and enhancements in UFT comparatively to QTP.


Hope you enjoyed the article and may you find every bug ;)!


By Roman Shulman, Lead Senior Consultant – Olenick and Associates, Chicago

Related Content: Functional Test Automation