QTP Sucks, Selenium Rocks

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. 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. I never even thought about the fact that you don’t need to write 100 lines of code to be able to dynamically find an element, which is required with VBScript.

Furthermore, VBScript is not even supported by Microsoft any more. Basically, it 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.

The problem was that 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. It 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 you have been sucked into the black hole of VBScript and its equivalents. I’ve been there, too. I feel your pain.

Declining Use of VBScript

Look, I need to be frank. If all you know is UFT and VBScript, you are probably doomed 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 Dice.com:

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.

Insane Costs

Although I have not used UFT for a couple of years now, in a recent conversation, I was shocked to learn the price of a single license. It’s between $10,000 to $15,000 per license. 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.

The problem is further exacerbated because it is almost impossible to only have one license. A typical environment requires you to be able to run functional GUI tests on at least Dev, Test, and Production. Assuming one QA Engineer is working for the entire project, that’s $30,000 in only software costs per 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, the learning curve for mastering Selenium WebDriver may be a bit higher, but that’s typically attributed to whether you are attempting to learn an Object Oriented Programming language at the same time. If you go with a scripting language like Python or Ruby, then it’s even easier to learn than VBScript.

The mistake that QTP aka UFT has made is that they got too tightly coupled to a technology. As it happens with many technologies, the one that they got coupled into 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 is tightly coupled with other HPE products. This means that if you are writing UFT tests, you are probably missing out on amazing tools like Git, Sauce Labs, BrowserStack, Jenkins, Appium, and much more.

While the industry is booming and expanding amazing technologies like Git source control, the poor UFT Engineer is stuck using their horrible source control system that is certainly going to die with the drowning of UFT in a few years.

When I was a UFT Engineer, I never even dreamed that it was possible to execute automated functional web tests in the cloud and have a video recorded for you as the test runs. Furthermore, I never even imagined that this could be done in an automated manner following a Jenkins build. 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.

It’s not until I stepped out of this box into the world of loose coupling and seamless integration between the aforementioned technologies that I could see the possibilities. They were endless!

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. LeanFT is a package that can be plugged into 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.

On to a Better Future

My 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 and are ignorant of the amazing advances in web automation that have been achieved by Selenium. I was doing the same thing about five years ago before I was forced to make the switch. I was simply not aware of the possibilities.

Now, I am happily spreading knowledge about Selenium WebDriver through my blog and other avenues. 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 are having trouble, let me know, and I will work with you to help you reach a better level of test automation.

However, I know the common situation where some of you are stuck with HP products. Your managers dish out $15,000 to $45,000 for a few licenses, and now you are committed and must make lemonade out of lemons. The great news is that you get a free access to HP LeanFT with your UFT licenses. Therefore, definitely use it.

You will be able to move to a modern language, IDE, and a host of open source tools to enhance your functional test automation. Then, when time allows, you will be able to seamlessly switch to Selenium WebDriver and forget about the painful days of coding in VBScript.