The next release of Test Design Studio has literally been in development for many, many years. Even as other major versions were released, we have been prepping for an architectural shift in the core text editing experience and how we manage parsing files to provide best-in-class code analysis and intelligent code completion for VBScript.
Our singular goal for Test Design Studio has always been to provide the most advanced code-based IDE for developing VBScript-based tests for the Unified Functional Testing platform (UFT, formerly QuickTest Professional). From the beginning, QuickTest was marketed as a tool for users without development skills. The code view for tests was a basic feature, but not the focus of the tool and only briefly mentioned during sales presentations. The lack of commitment to code-based development was reflected in the limited capabilities of the text editor. This is exactly why Test Design Studio was created all those years ago. UFT has improved since Test Design Studio first introduced the automated testing community to the productivity that comes with a proper editing environment. UFT keeps changing names and ownership, but it has never crossed the boundaries into supporting enterprise-scale automation. With the next release of Test Design Studio, we solidify our position as the premium IDE experience for VBScript-based test automation and further separate ourselves from the default UFT experience. It is fitting that “Professional” was dropped from QuickTest Professional when the tool was renamed, but that’s why Test Design Studio exists… to put the “Professional” back in UFT.
The beta program for the new release is currently open to everyone and does not require a paid license. We hope you will join us in evaluating the beta and providing your critical feedback. By working with the software before release, you’ll not only be able to take advantage of all the great new functionality before everyone else, but your feedback at this early stage also allows us to guide the development in a direction that will better meet your needs. We realize you may be used to working with huge corporations that serve their stockholders before their end-users, so we invite you to experience what it is like to work with a user-centric organization whose primary goal is to improve your day-to-day job.
If you need a little arm-twisting, keep reading for a preview of what you can expect in the all-new Test Design Studio. When you’re ready to get started with the beta, please contact support to express your interest (Slack Channel preferred).
New Feature Spotlight
Now for the fun parts! The editing experience is what sets Test Design Studio apart from generic text editors and even Unified Functional Testing itself. Here are some of the features we’re excited to bring in the next release.
No modern software release is complete without support for a dark theme, so of course we had to add it! Users can now choose between light or dark themes to meet their individual preferences, and we think dark mode is going to be very popular. We’ve used dark mode for all the screenshots in this article so you can get a feel for what is coming.
Full disclosure, not all aspects of the user interface fully support dark mode yet and icons do not fully adjust between themes, but we will continue to refine support for the theme.
Options, Options, Options!
We have completely redesigned the user interface for the Options dialog to support responsive layouts. For the user, this means you can now resize the control as needed and the layout will respond to the new size. For us, it means adding new options to the dialog is very easy. So that’s exactly what we did! New options are popping up in several categories, and here’s a sample of a brand new category just for Advanced VBScript options.
Automatic VBScript Code Formatting
No more inconsistent code formatting! We spend more time reading code that writing it, and poorly formatted code has a significant impact on the ability of others to read and understand the code. Test Design Studio now includes the ability to automatically format VBScript code. Since everyone has different formatting style preferences, we put you in control of the different options and scenarios that cause formatting to occur.
With automatic formatting, you no longer need to worry about format as you type. Let Test Design Studio automatically format your code when you press the ENTER key for a new line, paste code from the clipboard, or type the end of a code block (e.g.
End If). You can easily format an entire document at any time.
The screen below demonstrates different options available for formatting. Watch the text preview area at the bottom as each setting is turned on/off to demonstrate how the setting impacts code formatting.
Redesigned Text Parsing Engine
This isn’t a flashy new feature and you may never even know it’s there, but this is the soul of the IDE. All files must be parsed to determine the code elements you define, and the new engine is at least 25% faster than the old engine. Perhaps more important than individual parsing speed, support for advanced multi-threaded scenarios means multiple operations can be processing on the same document at the same time when they used to be queued up one after the other.
Did you know that every time you edit a document you are potentially invalidating the context of every other file in your project? That’s a lot to process with every keystroke, so the new parsing engine means that when you edit a document, the impact of your changes is reflected faster in the IDE than ever before.
Code Analysis Improvements
One of the marquee features of Test Design Studio is the real-time error analysis. The new parsing engine allows for errors to be processed faster than ever before! Even when working in complex projects with 100’s of files, you will find the editing experience responsive and the error list consistently updated with your changes.
When working with XML documentation comments, we’ve made a few tweaks. First, incorrectly formatted XML now shows up as a warning instead of an error. We made this change since XML formatting errors will only impact how Test Design Studio understands your code but will not prevent your code from executing. You will also find the XML issues are better represented in the editor. Previously, a small squiggle line was placed at the position of the error, but now the squiggle will be extended to include more of the text that is relevant for that position. For code analysis rules related to missing information in XML comments (e.g. public function without a summary), we changed the severity of those messages from “Warning” to “Information”. Especially for new users, we have observed that too many warnings related to missing XML data could distract the user from seeing more important warnings about code quality.
While we have reduced the visibility and message level, it is still important to understand that properly formatted XML comments are what help light up the extended functionality of Test Design Studio. We hope this change will help you make the most of those comments and correct issues when they arise.
Brand New Text Editor Control
Paired with the new parsing engine is an entirely new editor control. On the surface, the editor will look about the same as we’ve worked hard to bring forward all the functionality you love today. It’s what this editor allows us to do that makes all the difference! As you start to use it, you’ll even realize a lot of subtle tweaks have greatly improved and modernized the editing experience. Below are some highlights of new capabilities powered by the updated editor control.
Completion List Improvements
The completion list shown to auto-complete code has seen several improvements. As you type, the list will be filtered to only show items that match the text you have typed. Most importantly, matches no longer have to happen at the beginning of the completion item!
The list will match anything you type no matter where it appears, with the “best matched” item automatically selected. The matching text doesn’t have to be contiguous, either, so long as the individual characters appear somewhere in the same order in which they were typed. Match priority is first given to text that starts at the beginning and then to upper-case characters used by
camelCase naming conventions. The following sample shows how
mbox was used to match on
MsgBox and the related constants.
You also have the ability to control which items are displayed in the list. Use the filter buttons at the bottom of the completion list to toggle which items are displayed.
Code Match Highlighting
The ability to highlight code relevant to the current caret position or selection is one of the most visible new editor features, and you’ll find it implemented in a few different ways.
We think this one will make everyone’s favorite new feature list! Any time you place the caret over an identifier (e.g. function name, variable name, parameter name), all other instances of that same identifier are highlighted in the editor. It does not simply match on text but makes sure the text refers to the same item. This makes it easy to glance at your code and see the other places an identifier is being used.
If you do want a simple text-based highlight, select any range of text and other instance of that same text will be highlighted as well.
Token Pair Matching
Several code blocks in VBScript have opening and closing token pairs:
Class…End Class. You can even have blocks of the same token pairs nested inside each other. Indenting code helps identify matching pairs, but it can still be difficult to follow, especially if you must scroll the view to find the match. Any time the caret is positioned over an opening or closing token pair, the matching tokens will be highlighted. This means if the caret is positioned over a
Function declaration, the corresponding
End Function will be highlighted.
For more complicated code blocks like
Select…Case…End Select, the
Case tokens will also be highlighted. The same concept is applied to
If…Else…End If blocks.
Incremental Search Results
Incremental search is one of those features that can change your life! If you aren’t using it yet, it only takes a moment to learn. Pressing CTRL+I activates Incremental Search mode and then every character you type after that is combined into a search term where the caret moves to the first match. Pressing CTRL+I or CTRL+SHIFT+I while the search mode is active will move selection forward and backward through all the matches. Press ESC when you’re done to go back to editing.
New in this release, all matching text will be highlighted as you type so you have greater visibility into the text you’ve typed and the matches you will find as you cycle through. The screen below shows what happens when Incremental Search is activated and then the characters
A R R are typed. Each typed letter expands the search term and updates the highlighted matches. Then CTRL+I is used to move selection forward through the matches before using CTRL+SHIFT+I to return to the original position where ESC is pressed to return to normal editing.
If you find you need to type the same text in a document in multiple locations, you can now insert multiple carets. Hold the CTRL key and click in the document to insert an additional caret at that location (or remove a caret that was already there). Add as many as you want. Every character you type will be repeated at each caret location. Backspace, caret movement, and other basic editing commands are also supported. For fast use with the keyboard, pressing ALT+SHIFT+DOWN will automatically insert a new caret below the current caret, and you can repeat the command to extend carets over as many lines as needed. This is especially useful when the text you want to edit is vertically aligned and you want to perform the same edit on each line.
Automatic Delimiter Completion
Certain characters in code are always entered in pairs where one character starts a sequence and another character ends it. When you type one of these characters, the completing character is automatically inserted after the caret. If you accidentally type the character anyway out of habit, the editor won’t insert the extra character but will advance the caret position after the closing character so you can continue typing normally.
Outlined regions have an improved visual appearance and interactive highlights of the corresponding region when hovering over the outlined nodes. XML Documentation comments have also improved the text displayed when comments are collapsed to always show the summary when defined, even if it is not the first line. Otherwise the first line of comment text will be displayed.
Each editor now supports an individual zoom setting. If you need to make text bigger or smaller, you can simply adjust the zoom level and not worry about changing font size. This is especially useful when presenting or collaborating with a colleague that may not be sitting close enough to the monitor to easily read the code.
All standard zoom gestures are supported, including CTRL+MouseWheel. There’s also a drop-down at the bottom-left of the editor where you can easily set the zoom level to a predefined list of common values.
Move Selected Lines Commands
So simple in concept, but so handy for moving code! The selected lines will be moved up ALT+UP or down ALT+DOWN in the editor. If there is no selection, the line where the caret is positioned is moved. Using these commands allow you to avoid cut & paste just to move a line and, as a result, allow you to move code without impacting the contents of your clipboard.
Expand/Contract Selection Commands
These commands allow you select the range of text based on logical blocks. If the caret is positioned inside an
If statement, pressing CTRL+SHIFT+NumPadPlus will expand to include the entire statement. Expand again and selection might include an enclosing function declaration or class declaration. Every time you expand, the selection is moved out one block. The contract command CTRL+SHIFT+NumPadPlus works in reverse and will reduce the selection by one block.
No Need to Wait… Get Started Now!
You don’t have to wait for the official release to enjoy these great new features. Join the beta program and you can experience the future of Test Design Studio today! Please contact support to express your interest (Slack Channel preferred), and we’ll let you know how to get started.