Before we start start, let's clear up any confusion new users may have: HP's Unified Functional Tester 12.50 (UFT) is the latest version of the QuickTest Professional (QTP) formerly from Mercury Interactive. They are essentially the same product, in the same way Word 2007 and Word 2013 are the same. There are a few new features, and all the stuff you know and love is still in there. It's just that, for long time users such as myself, someone has tidied up a bit, and I can't find anything. At the end, I will discuss a few things about HP's latest product, LeanFT. Also note that I am organizing these features starting with what beginners can handle, and then what they can leverage as their skills advance.
The features that are most valuable in UFT include the built in Excel data table, the Automatic Object Identification and the Record and Playback feature. That said, I will ask advanced automation engineers to bear with me, as that last answer will have raised huge red flag.
The Excel data tables are visible from the main interface for easy access. UFT can easily load external Excel worksheets to replace any that you have displayed. So if you want to edit them in Excel instead that's perfectly fine. Advanced users can have several test cases in individual Excel files, or as multiple worksheets in a single file. Aside from all the features Excel provides, it also allows design of data-driven tests, keyword-driven tests, and hybrids.
If you ever wonder why UFT licenses are just so darn expensive, it's because the developers bent over backwards to provide the "Kitchen Sink" of object recognition. By default UFT records and stores all objects in its Object Repository. It has at least 15 different add-ins to support multiple technologies, including .Net, Java and even Terminal Emulators. It automatically uses a minimal combination of unique object properties to do this. And in the case where no unique properties can be used, the object index is used as a last resort. However advanced users can also build objects on the fly in code, either with Descriptive Programming or a Descriptive Object. All three approaches support CSS, xPath and Regular Expressions, so that you can reduce maintenance if portions of the object property value changes regularly. There is even a feature to identify objects by image called Insight, and another to create hotspot virtual objects. While these last two are not as reliable as Descriptive Programming, they are there as your options of last resort.
Next, to clarify: Record and Playback should never be the primary way to create automated test scripts. The code is not optimized, and will often be so brittle that it will often take a few attempts to create a script that can simply be executed repeatedly. This can cause new users to inadvertently trash the product online from sheer frustration. Consider this: If you had only a hammer as a tool, would tell the internet it sucks because it's only good for building birdhouses and doghouses, but not suited for completing residential buildings? I should hope not. The best way to look at Record and Playback is as a tool with a few specific purposes: First if you are unfamiliar with the VBScript language syntax, it builds code automatically for you to inspect and learn. Second it comes in handy when first building objects with descriptive programming. It allows you to quickly inspect how UFT would choose to identify an object, if your initial attempts are failing. Lastly it is a good way to quickly create a Proof of Concept, showing that, yes, the tool understands your particular web application.
The best example of improvement within the organization is a closer working relationship with my fellow manual testers. While project managers would like have me automate 100% of everything, and secretly kick their manual testers to the curb, it's simply not possible. To avoid the natural animosity this idea can promote, I work with a manual tester on each regression release. Essentially I work down through a list of the tests I have automated, and they work up executing the remaining manual tests. We both end up in the middle, finishing a job much sooner than expected. We both feel we are an essential part of the team, and we don't feel overwhelmed by the amount of work we are expected to perform.
It also puts us on more even playing field with our Developers. Most of them think I am still just a blackbox manual tester with a tool they view as nothing more than a toy. On several occasions Developers have stated that the defects I have uncovered are caused by the tool itself. I have had accusations that it's my tool that is causing memory leaks, or that it has covertly acquired Local Admin Rights and have changed all manner of random settings. I have found, repeatedly, that I must defend and prove that I don't have the skill, nor the time, to create such fantastical code. After proving two or three items are actually the developer's issues, usually on a system without my tool installed, I generally get some "street cred" with developers. After that point we work together to be more efficient.
Deployment and setup of UFT can't be much simpler.
HP has a policy that software updates for the QTP/UFT products are only available to licensed users with a service agreement. This is fully understandable from a business perspective. However this policy extends beyond version upgrades to software patches, and it backed up by HP's highly paid lawyers. The problem this poses is that any potential customer that downloads the tool for use with a 30-day trial license must work with an unpatched version that is often less stable than the patched version in use by licensed long-term customers. The problem here is that HP wants potential new customers to try their product, but policy prevents them from showcasing that product in the best light, thus shooting themselves financially in the foot. I would sincerely hope HP CEO Meg Whitman, who is a brilliant businesswoman, might have a chance to read this article, recognize the policy flaw, and resolve it for the betterment of her company's bottom line.
That said I would recommend anyone interested trying the tool for the first time to use the latest release of UFT which is 12.50. If you have an earlier version such as 12.02, even with a patch, I would recommend the upgrade as well. This also gives you access to LeanFT at no additional cost which we will discuss shortly.
I would like to see the "double clicking a function in the keyword list takes me to the function source code" changed back to "double click a function keyword takes me to the function reference". I would like to see the person who thought that would be a grand idea removed, to prevent other such grand ideas from taking root in the product.
Seriously I would like to see a Static Code Analysis component added to the product. For those who are unfamiliar with the advantage this tool provides, it is simply this: It scans all your project code all at once, and gives you a list of where all potential errors exist. Which is significantly better than finding errors one at a time at run-time. Amazingly this professional level tool is available on the internet for just about every known programming language... except VBscript. Google it if you don't believe me.
In fact there is paid Static Code Analysis tool specifically for UFT users called Test Design Studio from a third party at patterson-consulting.net. I highly recommend including a license to compliment the HP IDE.
Get the latest patch for UFT.
Don't use more than two Actions. They only serve to needlessly complicate your project. Functions work just as well without the overhead of additional Excel pages that probably with never get populated. Similarly, if you find yourself struggling with the decision to use a Function or a Sub, make it a Function and forget about it.
Don't let the tool organize the folder structure of your project. It's buried pretty deep by default. It's easier if you have a project folder off the root of a drive that contains the folders: Tests, Functions, Environment, Results and Documentation.
Learn what Regular Expressions are and how to use them for simple pattern matching. Don't be put off by their complexity, a basic understanding goes a long way in this field. Much the way a little salt will make a bland soup better, but too much ruins it.
There is a lot of flexibility and functionality in UFT. You can store data in many different places. It does not mean you should try to utilize every one of them. Anyone who has worked with Photoshop, as an example, knows there are a hundred imaging functions, but at most six are all you need to be proficient at it. The same goes for storing data with HFT.
If you can't get the tool to recognize an object on the first day, go make friends with the developer. Show them the list of Add-In support UFT provides and ask them to point out which ones they are using in the environment. Then save them at the last second from being hit by a bus. Some day down the road you will have to call in that favor.
Roll your own results reporter. My results go out to another Excel file with links to screen captures.
LeanFT is a hybrid solution for those who are looking to take advantage of Selenium. You might think one of those advantages might be speed. Because the most commonly used language of Selenium is Java, there is no doubt that it has speed over UFT's VBscript. However, this has about as much meaning in the automation field as noting that a rocket-equipped Jaguar will out-pace a Bugatti on an open stretch of desert road. Bring them into the reality of city driving with streetlights, hairpin curves and pedestrians and speed makes it more likely both car and animal will crash into a building.
The major weakness with Selenium that LeanFT addresses is it's identification of objects. The problem here is that much of the object identification available to Selenium users is hard to decipher, and difficult to maintain, particularly with xPath. Take this example:
//a[contains(text(),'Eggs')], //div[@id='shortcuts']/span/span[2]/a/span
SPAN. SPAN[2]. A. SPAN? This is this an index to an unknown level of HTML code and impossible to maintain when it changes.
LeanFT brings to Selenium many of the object identification techniques noted above that QTP/UFT engineers how been comfortable with for years without being forced to learn the complexities of xPath. This is important to me as I can now port my own custom object recognition technique from UFT directly into Selenium. In addition reporting results can be sent back to HP ALM (formerly Quality Center). LeanFT also has access to other common frameworks like TESTNG and JUNIT, as well as source control tools such as GIT and SVN.
I personally have a relationship with contacts inside HP. Years
ago I made the decision to be a Track Speaker at a Mercury
World conference in Orlando (which is now HP Discover in Las Vegas and
London). My decision was a financial one, I simply could not afford the
airfare, the hotel and the ticket into the conference. But I learned that, if
accepted, I could at least attend the conference for free. I did
this to meet others like myself face to face and maybe get on the inside
track. I found ten other people who knew more about this tool than I do,
and I am friends with nine of them. At that initial conference I was
fortunate enough to sit in on a discussion group about the future of the
product. At the end they asked for volunteers for the Beta program and I made
sure they had my number.
Disclosure: I am a real user, and this review is based on my own experience and opinions.
I did want to post an update. In regard to HP's rule on obtaining patches for their products under the 30-day trial licenses it now can be done without an SAID. These patches are now available for download to anyone with a HP Passport account. There are several entry points from a Google search to do this. You can try this URL to start: ovrd.external.hp.com