October 31st, 2019 by Adam Sandman
software testing software tools
Many organizations are looking to update their software testing processes and tools, with an industry-wide move away from some of the older, monolithic legacy suites from vendors such as Micro Focus (formerly HP, and Mercury Interactive before that) to more modern tools. At Inflectra, we have partnered with Neotys to provide an integrated suite comprising: SpiraTeam, Rapise and NeoLoad that lets companies have test management, functional testing, and load testing all in one. Migrating from ALM/QualityCenter to SpiraTeam is easy using our free migration tool, and migration from LoadRunner to NeoLoad was possible using a conversion utility, however automatically converting from UFT / QTP to Rapise was not so easy.... until today!
Migrating from the Micro Focus Suite to Inflectra
With the recent increases in license cost from Micro Focus, and the fact that companies are looking for testing solutions that are easier to manage, deploy and use, now is a great time to consider switching from QualityCenter, ALM, UFT, QTP, and LoadRunner to the number one QA suite in the industry:
We have detailed whitepapers available on why you would want to switch from ALM, UFT, and LoadRunner, but before we discuss our new UFT migration framework, lets first recap some of the benefits of Rapise:
Why Migrate from UFT to Rapise?
UFT: Reasons to Migrate From:
- Very high license cost
- Every execution host needs a license
- Closed binary file formats
- Closed internal API
- Very heavy, 4GB installation package
- Hard to use in DevOps CI Pipelines
Rapise: Reasons to Migrate To:
- Moderate license cost
- Execution host does not need a license, execution is free
- Open file formats: JSON, XML, Text
- Open API, free to customize
- Lightweight, 100 MB setup file
- Selenium, Appium and WebDriver - friendly
- Can be executed on servers, VMs, cloud or containers
- DevOps ready with packages for CI Pipelines
So now that we are convinced that migrating from UFT or QTP makes sense, the next question, is how do we do it?
Migration of Test Scripts from UFT to Rapise
Possibility of Migration from UFT to Rapise
Rapise is a feature rich test automation tool, it provides a solid foundation for testing different kinds of application, of any complexity. That means that Rapise can supply all of these features that you are used to having in UFT:
- Can test desktop, web, mobile GUI and REST/SOAP APIs
- Supports modular testing (like Actions in UFT)
- Supports Data-Driven testing (spreadsheets, databases)
- Supports Object Repository (local, global)
- Integrated with test management tools
- Supports extensions (compound objects, UI extensions)
- Has outstanding maintenance features
- Reporting with screenshots and custom columns
Migration Technology
Now that we know that Rapise can supply all of the features that our UFT test scripts expect, the next step is to understand what is converted by the new Inflectra migration framework:
What Is Converted?
- Solution and test structure
- Solutions contain tests
- Tests contain Actions
- Actions have parameters and steps
- Actions use spreadsheet data
- Tests have configuration settings
- Actions may use local and global object repositories
- Object Repository
- Information about objects (selectors)
- Information about check points
- VBscript code to JavaScript code
- Generic language constructs
- UFT API calls
- Test steps: object references, operations, checkpoints
How UFT Script Conversion Works
Inflectra has developed a migration framework (not shrink wrapped tool) to perform the script conversion.
To achieve the best results, the conversion process requires the Inflectra Rapise Team and the Customer's QA Team work closely together to understand how the original UFT scripts have been written, and the best way to migrate them.
The following conversion approach uses the following steps repeated iteratively:
Next we will discuss how our UFT migration framework handles each of these areas in turn:
-
Object Repository
-
VBscript to JavaScript
-
Test Data
1) Object Repository
The object repository in UFT looks to the user like the following:
However behind the scenes, what you actually have is a combination of UFT local and shared object repositories stored in the Berkeley Database binary format. This was the same database format used in some early versions of the popular Subversion source code management system.
The migration framework converts the objects and checkpoints from this Berkeley database to the Rapise Object Repository which (as you probably know) is stored as a plain text JSON file.
2) VBscript to JavaScript
The next hurdle is to convert the VBScript test scripts used by UFT into their equivalent JavaScript code that can be executed by Rapise. Our conversion framework can handle the following three types of VBScript code:
- Operations and Object References
- These are the easiest to handle since the framework will have already converted over the object references, so it is just a matter of changing the syntax from the UFT object syntax to the one in Rapise:
Browser("Inflectra | Library Informatio").Page("Inflectra | Library Informatio").Link("Log In").Click
SeS('Log_In').DoClick();
- Here's an example of how a web application test script would migrate from UFT to Rapise:
would migrate to the following:
- Similarly, for a Windows Desktop application test script, the conversion framework would convert it from:
to
- These are the easiest to handle since the framework will have already converted over the object references, so it is just a matter of changing the syntax from the UFT object syntax to the one in Rapise:
- UFT API Calls
- The framework will convert common UFT API calls to their Rapise equivalents, such as:
- DataTable to Spreadsheet
- Reporter to Tester
- etc.
- The framework will convert common UFT API calls to their Rapise equivalents, such as:
- User-Defined Functions
- The conversion of user defined functions involves translating VBScript to JavaScript at the syntax level. It is possible because Rapise Team developed a generic translator from VBscript to JavaScript. You won't find this feature anywhere!
- For example, we used the conversion framework to convert the following VBScript user defined function from UFT to Rapise:
3) Test Data
The final conversion task is to handle the migration of the test data used in the UFT test scripts:
- The Action Parameters
- Spreadsheets / Data Tables
Action Parameters
For the action parameters, the conversion framework will convert the Input and Output parameters for the various RunAction calls:
In this example, the conversion framework will migrate the following action parameter code in UFT:
to the following Rapise equivalent code:
Spreadsheets / Data Tables
For spreadsheets and data tables in UFT, the conversion framework would take a UFT data table like this:
and turn it into a Rapise Spreadsheet like this:
The conversion framework will then migrate the corresponding VBScript code in UFT that uses this data table from this:
to this Rapise equivalent:
As you can see, with these different conversion tools at its disposal, the Inflectra migration framework for UFT provides a robust approach for migrating test scripts from UFT to Rapise.
Next Steps
If you are interested in having a consultation from our engagement specialists regarding how you can migrate from UFT to Rapise, please contact us today to get more information and setup a consultation.
In the second part of this blog we'll be doing a deeper dive into some of the specifics for how we are able to convert UFT VBScript into Rapise JavaScript code.