That’s right, I truly believe that when it comes to automated functional web testing, Selenium WebDriver annihilates HP’s web testing tool, QuickTest Pro (QTP), aka Unified Functional Testing (UFT).

If you disagree, that’s cool –– I welcome your thoughts and counter arguments. However, I am going to explain why I believe that Selenium WebDriver is superior when compared to its HP competitor.

Please feel free to voice your counterarguments in the comments section.

VBScript Is Dead


I spent years and thousands of hours learning and using VBScript with UFT and QTP. I never realized how miserable this experience was until I used a different programming language. VBScript requires at least 100 lines of code to be able to dynamically locate an element. I thought this is normal.

Furthermore, Microsoft doesn’t even support VBScript any more. Basically, VBScript has no future. Now, the part of my brain that has been storing the thousands of lines required to manage an Excel object is now occupied with useless information.

I was unaware of other possibilities, until I was forced out of my comfort zone. Then I came to the realization that there are amazing libraries that exist in the world that can help you do exactly what you want. I assume that if you are a proponent of UFT, then you are probably in the same situation that I was in many years ago.

To prove my point, take a look at something like PowerShell, where you only need one line of code to send a web request. Or a single line of code to write to a file.

In contrast, here is a sample of how to write to a file using VBScript:

See the difference?

By the way, PowerShell is the replacement of VBScript by Microsoft. PowerShell has been around for about 10 years and has made some amazing advances. Performing any kind of Microsoft system operations is extremely easy. There is a simple and powerful IDE that comes with PowerShell called PowerShell ISE. This IDE allows you to easily write and test code, just like any modern IDE.

But you wouldn’t know about any of that because VBScript and its evil siblings have sucked you into a black hole. I have been there, too. I feel your pain.

Nobody Wants Your VBScript Skills

Here is the honest truth:

If your only skills are UFT and VBScript, you are really going to hurt next time you go out looking for a job. That’s one of the main reasons why I am so against UFT. By learning it and its programming language, you are forced into an outdated technology, which ultimately limits your options.

On the other hand, Selenium WebDriver can plug into all of the most popular programming languages such as Java, C#, JavaScript, Ruby, and so on. Do a job search for any of those languages, and then compare those results to VBScript. They will scare you.

This is an example from

Selenium webdriver

Selenium Webdriver

That’s right, there are 38 times more Java positions than VBScript based on the results from Washington, D.C., and this disparity will only increase over time.

Nobody is looking for VBScript jobs, that’s true. But this image conveys the immanent death of the single language that supports the whole tool…

10X less UFT jobs than Selenium jobs

Are you looking for a UFT job? Well, this is your outlook in DC from

qtp jobs

qtp jobs

uft jobs

uft jobs

selenium jobs

selenium jobs

As you can see, there are ten times less UFT/QTP jobs than there are Selenium jobs.

There is a reason for this… Think about it? What is that reason?

Here is the deal:

If you perform a search in Google Trends to see the interest in a topic over time, you can know if there is more or less interest. Take a look at this .gif below.

qtp vs selenium

qtp vs selenium

HP UFT Costs Too Much

qtp vs selenium webdriverRecently, I was shocked to learn the price of a single license. It’s between $10,000 to $15,000 per license. This is how much it used to cost 5 years ago. I thought for sure HPE would change that. This is an absurd amount of money for a piece of software that isn’t all that good. I could spin up an entire infrastructure for a website including multiple load balanced Virtual Machines with databases for a fraction of that cost in Azure.

Furthermore, it is extremely impractical to only have one automation license.  A typical environment requires you to be able to run functional GUI tests on at least Dev, Test, and Production. If your team has one QA Engineer for the entire project, that’s $30,000 in only software costs for that Test Automation Engineer.

This price is even more absurd when you compare UFT to its top competitors, Selenium WebDriver, Telerik Test Studio, or Smart Bear TestComplete. Selenium WebDriver is free, Telerik and Smart Bear costing around $2500 and $2000 respectively. Granted, learning Selenium Webdriver has a bit of a steeper learning curve. However, learning an Object Oriented Programming language is the reason for this steeper curve. If you go with a scripting language like Python or Ruby, then you can be doing Test Automation much faster than if you had to pick up VBScript.

QTP aka UFT made a horrible mistake. They got too tightly coupled to a technology. VBScript, the technology, became obsolete. Therefore, they either had to reinvent 10 years of a tool or maintain the obsolete dinosaur, which is usually the less painful option in the short term.

Other functional testing tools like Selenium WebDriver didn’t make the same mistake by allowing users to choose which programming language or technology they want to use to interact with the WebDriver API. If a user already knows Ruby, they can seamlessly pick up Selenium WebDriver just by understanding the WebDriver API. Same thing goes for Java, C#, Python, and JavaScript.

The users of all of these technologies probably account for 95 percent of all programmers (not a fact, that’s just my observation). Therefore, assuming that’s true, if most of the market wants to use a functional testing tool, they can easily plug into Selenium WebDriver without needing to learn another language. If anyone wants to use UFT, they must learn VBScript. This not only creates a bigger barrier to entry, but also doesn’t make sense from a career perspective. Therefore, UFT is doomed.

Tight Coupling

UFT and other HPE products are so tightly coupled. By coding UFT tests, you are missing out on amazing tools like Git, Sauce Labs, BrowserStack, Appium, and much more. Basically, HPE decides what a Test Engineer should and should not use for automation.

The industry is booming and expanding amazing technologies like Git source control. However, the UFT Engineer is stuck using HPEs horrible source control system. This source control software is certainly going to sink with the UFT Titanic.

Did you know that it is possible to execute automated functional web tests in the cloud, on as many virtual machines as you can pay for, and have a video recorded for you as the test runs? Did you also know that you can execute your automated functional tests immediately after the Developers build their code? You can do this in an automated manner using a Continuous Integration tool like Jenkins. It’s not because I was clueless, but simply because I was stuck in the outdated black box created by HPE technology. I only saw the possibilities inside of that box.

When an entity allows others to plug into their functional testing tool and use it as needed, you create a technical masterpiece of integrated technologies, working together for a common goal: to provide the most robust and efficient functional test automation on the planet.

UFT Positives

Yes, I’ve said a lot of painful truths about Unified Functional Testing. However, for now, it continues to offer us some useful assets. For instance, it is actually a pretty good tool when it comes to automation that doesn’t apply to the web. UFT can test APIs, SAP, Siebel, Windows applications, and many other technologies.

The Internet of Things is rapidly expanding how many APIs exist in today’s world. Therefore, the fact that UFT has positioned itself to be able to test APIs is excellent. Furthermore, you can combine all of the other technologies that it can automate with API testing to make a nice end-to-end automation solution. With its competitors, you normally need to create such integrations from scratch, making life a bit tougher.

Finally, HP has recently come out with what they call LeanFT. You can think of LeanFT as Selenium WebDriver combined with UFT. You can simply plug int LeanFT your IDE such as Visual Studio or Eclipse. Now, you can use a programming language of your choice along with the cool features of UFT like the Object Spy. Also, you can plug into all of the amazing open source tools.

It’s Sinking, Grab a Selenium Lifeboat

selenium webdriver jobMy goal here is to help individuals that are using UFT to migrate to a better solution. I am 100 percent certain that there are still poor QA Engineers that are using UFT. These UFT Engineers are ignorant to how the Selenium community has drastically changed the way people do functional web automation.

It’s not your fault…

You were given a rock and asked to build a boat with it. No matter how amazing you are as a boat builder, there is only so much you can do with limited tools. I’ve tried, really hard, trust me.

Now, I am happily spreading knowledge about Selenium WebDriver through my blog and my free video courses. Do yourself a serious favor and forget about UFT for web automation. You will open up a lot more doors for your career. You will be able to have more options when it comes to jobs, and you will even enjoy better automation results. I truly guarantee this! If you have any trouble, let me know and I will work with you to reach a better level of test automation.

Sadly, I know that some of you are stuck using HP Products. Your managers have bought a few UFT licenses for $15,000 to $75,000. Therefore, you need to make lemonade from lemons. The great news is that you get a free access to HP LeanFT with your UFT licenses. Therefore, definitely use it.

First, you will be able to move to a modern programming language and IDE. This alone will quadruple your job opportunities. Second, you can learn a plethora of open source tools that will drastically improve your functional test automation. Finally, when time allows, you will be able to seamlessly switch to Selenium WebDriver. Leaving you with just a bad taste in your mouth for HP UFT.

Here’s the truth:

I am not here to support a technology simply because it has some users…

My purpose on this planet is to help automation engineers become the best possible engineers that they can.

I want to take my knowledge and teach you so that you avoid my years of mistakes and start at a higher level…

This means that I will say things that hurt others.

Please understand that I have nothing against UFT users. I simply believe that UFT for web automation is a bad product that hinders the potential of web automation for all users.

And I want you to stop using UFT.

Finally, please let me know your thoughts, if you used UFT, and what you thought about it?

[Tweet “QTP Sucks, Selenium Rocks. @nikolay_A00.”]