Product Discontinued Notice: We have learned that HP's roadmap for ALM is to move to a thin client with rules-based customization instead of the current workflow-based customization, so the need for a more advanced editor for workflow files will be short-lived. We have decided to stop development of this product so our resources can focus on projects with longer-term benefits.
We are pleased to announce that the first public preview of Workflow Editor is now available for download! Since giving a sneak peak, a lot of work has been completed to improve the core editing backend of the software. We took extra time to get the editing engine closer to where it needs to be for a full release. In that time, we also made some tweaks to the UI to give it a more modern look-and-feel. One thing that has not changed is the price… this product will still be free!
Before taking a quick tour of the product, let’s talk about what it takes to make it work.
.NET Framework 4.5
This product is built using Microsoft’s .NET Framework 4.5 (download), so you must have this framework installed. As of this writing, it is the most recent release of .NET Framework, and we wrestled with moving from 4.0 to 4.5. In the end, the benefits (especially asynchronous programming and bug fixes) outweigh the bad (more limited install base). Many of you will not have .NET 4.5 already installed, so it is an extra download. Those of you running Windows XP will find that the download is not even available. That’s right, we will not be supporting Windows XP. Microsoft has now released it’s 3rd operating system since Windows XP, and it’s time to move on. Most corporations that were hanging to Windows XP have now moved on to Windows 7, and expect most others to complete this transition by the time Workflow Editor and Test Design Studio 3 are ready.
Application Lifecycle Management (ALM)
You must be running ALM 11. You should also be able to use ALM 11.5, but we have not been testing against this latest release of ALM yet. If you do use ALM 11.5 successfully, please share your feedback. Additionally, ALM 11 users must have installed at least Patch 1 or Service Pack 1 (which includes Patch 1) to enable the FTP server functionality. More on that to come.
Why no Quality Center 10 support? The answer is simple… HP does not provide an approved or secure way to transfer workflow files between the Quality Center server and your computer. Their own tools handle the transfer of files through private APIs that are not available for 3rd-party tools. The only way to enable the file transfer is to expose Extended Storage access on the server. This works, but is a security concern since anyone with project access and programming knowledge can access and modify most of the files on your Quality Center server!
ALM 11 began offering an FTP server for project repository browsing, and the workflow files are part of that repository. We have wanted to provide a workflow product based on our Test Design Studio code engine for many years, and the FTP feature finally makes it possible to provide mainstream support without the security issues of the technique necessary for Quality Center.
The FTP functionality is required, so it must be turned on. In most cases, it is as simple as adding the ‘FTP_PORT’ site configuration parameter to your server. Refer to the ‘Browsing the Project Repository’ section of the ALM Administrator Guide for details.
Your user account must also be a Site Administrator. This is required by the FTP server in ALM. We realize that some users will have access rights to modify workflow for specific projects (through Project Customization) and not be a Site Administrator. Regrettably, we know of no other reasonable way to transfer the files at this time.
Your user account needs access to the individual project whose workflow you want to edit. While not presently enabled, the goal for Workflow Editor is to provide context-sensitive IntelliSense about available field names. To access that information, the tool will need to access the project customization through the API. Currently, your project access is used to display a list of available projects to open.
While this should be a non-issue for most, your user account must have a password. While ALM does not require it, the FTP server in ALM does.
Finally, our tool uses the COM API, so you must register the ALM Client Components on your machine to make the API available. This option is available from the ALM Add-ins page.
Now to the fun stuff! We are very excited to make Workflow Editor available. This product is sharing a lot of the code from our Test Design Studio 3 product currently under development. We have been working on Test Design Studio 3 for a few years and made many exciting improvements. We finally get to show off those improvements to the public!
When you open Workflow Editor, you will see the basic IDE framework.
Aside from the ‘Welcome’ message, most of the IDE is empty. Please take a moment to read the important information on this page. Most of the ‘Getting Started’ information is available on this blog post, but please refer to the ‘What’s Missing’ and ‘Feedback’ sections.
Open a Project
Your first step will be to open a project’s workflow code. Click the ‘File’ button on the application ribbon to expose the backstage menu.
The default tab ‘Info’ will be selected to show you the status of your current connection. Click the ‘Open’ tab to open a project.
Step 1 is to define the connection information for your server. Hover your mouse over the icon on the screen to see helpful information about relevant fields. You will need to enter the URL of your ALM server, the FTP port you configured for file access, and indicate if you setup FTP for secure transfer. Finally, enter your user name and password. Once all fields are complete, click the ‘Connect to ALM’ button. At this time, Workflow Editor will attempt to connect to the ALM server to pull back a list of projects and will also validate the FTP connection is available.
Step 2 allows you to select the specific project (based on domain) that you would like to open. Even though your account will be setup as Site Administrator, you will only see the domains and projects to which you have been granted explicit access. After selecting your project, click the ‘Open from ALM Project’ button. Workflow Editor will begin downloading the workflow files and preparing the IDE. We are using the demo project that ships with ALM.
You are now returned to the core IDE.
Script Explorer and Document Navigation
You will see that the ‘Script Explorer’ tool window has been populated with entries for each of the workflow scripts that exist for this project. Double-click any of the scripts in ‘Script Explorer’ to open the text editor for that file.
In the example above, we have opened the ‘Defects’ workflow. At this point, you are essentially working with a VBScript-based code editor, and some of the great editing experiences are described in the sections below.
Since an editor is open, the ‘Document Outline’ tool window has been populated with a list of relevant language elements in the file (e.g. variables, functions). The ‘Document Outline’ is a great way view the defined elements in your code as well as jump to the code that is important to you. The ‘Document Outline’ also helps you keep track of where you are in the document because the selection is synchronized to your location in the editor. You will find the same functionality in the navigation bar at the top of the editor document. For more details on documentation navigation, please refer to our previous blog post highlighting the feature.
Most importantly, a new document tab has been opened to edit the code.
Our editor supports code outlining, so you will probably see many lines of code have been collapsed to show indicators instead of the full text. This helps you focus on the overall structure of the document and only drill in to the details as you want. You can click the icon in the margin to expand the code regions. You can also fully manage outlining use the options on the application ribbon (also available on the editor context menu) including an option to disable the feature entirely if you prefer. For the purposes of this tour, please select ‘Stop Outlining’ so you can see all the code in the editor.
You will see that the editing experience features full syntax highlighting of the code. You may also notice that the colors used are a little different than those used by the ALM editor. We are using the same colors and styles used by QuickTest Professional (remember, Workflow Editor is based on our QTP tool Test Design Studio). In future releases, we hope to allow custom color schemes. You will find that the color scheme defaulted in Workflow Editor is consistent with other mainstream VBScript editors.
One feature severely lacking from the ALM editor is code completion for standard VBScript language elements. Place the caret in the editor and press the Complete Word shortcut key (Ctrl+Space) to display a member list (alternatively, select ‘Complete Word’ from the IntelliSense group of the application ribbon). You will see a list populated with all the key elements from VBScript.
In addition to VBScript entries like ‘Mid’ and ‘MsgBox’, you will also find references to all the functions you have defined in your workflow code. When an item is selected (such as ‘Mid’ in the screen shot above), a tooltip will even be displayed to give you information about the context of that function. The benefits of IntelliSense are well-understood, and Workflow Editor comes fully loaded!
You can read our feature highlight about member list enhancements to learn about some of the unique features you will find in Workflow Editor’s IntelliSense engine. For instance, type “mb” when the member list is displayed and you’ll see that ‘MsgBox’ is in the short list of options because it is a shortcut for the full word.
You can also type “date” to see all entries related to date even if they do not start with those letters.
IntelliSense also covers parameter information when calling functions.
You can even use specially-formatted XML comments to provide descriptions for your custom code so that you receive the same full IntelliSense features as built-in functions.
In the screen shot above, notice that the parameter information for the ‘SetFieldProperties’ function includes summary information about the function, the expected type of each parameter (e.g. String, Boolean, or Integer) and a summary of the purpose for each parameter. The XML-formatted comments before the function declaration are what power the IntelliSense. XML-formatted comments even get special syntax highlighting to improve readability. Note: We will be adding functionality in the future to help speed the entry of XML-based comments including the ability to auto-generate a skeleton of code just by typing three comment characters (‘ ‘ ‘) immediately before any declaration.
The final IntelliSense topic is Code Snippets. This feature allows you to quickly insert a common block of code and focus only on changing the elements of the code that are important. Many Code Snippets have shortcuts to activate them in the editor. For example, type the shortcut text ‘for’ and then press the Tab key to activate the ‘For Loop’ snippet.
You will see the editor inserts all the “boiler plate” code and has highlighted the three elements that actually need your input; iterator variable name, start value, and end value. As you change each entry, press the Tab key again to move to the next entry. When you are finished, press the Enter key to complete the snippet and move the caret inside the code block so that you may start entering the elements to be included in the loop. You can also press the Esc key at any time to exit the snippet. This is a very simple example, but you can also use code snippets to provide guidance on larger blocks of code. From the main ribbon, click the ‘Code Snippets’ command and select ‘Insert Snippet –> Regular Expressions –> Test Partial Match’. This will activate a code snippet to use a regular expression to see if a certain pattern is found in a string.
You will see this code is more complex than the original For loop sample, and it highlights another key aspect of code snippets. Notice that the variable ‘oRegEx’ is used four times in this snippet. If you change the value in one place, you much change the other values to match. Code snippets handle this redundancy for you. If you decide to rename the ‘oRegEx’ variable as ‘objRegExp’ and press Tab to advance to the next field, all the other instances are updated as well! Many code snippets are included with Workflow Editor. In future releases, you will be able to create your own.
With any editor, Syntax Checking is a major “must have” feature, and Workflow Editor delivers. Errors in syntax are highlighted as you create them. There is a syntax error in the following code, and Workflow Editor makes this mistake obvious.
The error is underlined with typical “red squiggle” line to emphasize the mistake, and hovering the mouse over the error will display a tooltip of the problem. The ‘Error List’ tool window is also available to show you details of all errors in all files.
You can optionally filter the ‘Error List’ to only show errors related to the actively edited file, and double-clicking any error in the list will open the editor for the relevant file and move the caret to the location of the error. The ALM editor does not show you errors until you explicitly invoke the ‘Syntax Check’ command or try to save the file. Fixing errors immediately as you create them is always more efficient than being told later (perhaps after many edits have been made) that you introduced an error.
One of the great new features available through our improved editing engine is identifier highlighting. This allows the editor to visual highlight other instances in code where the same identifier is being used. Our other blog post has details and screen shot samples. This has been a highly-requested feature for our Test Design Studio product, and it makes a great addition to Workflow Editor as well.
Similar to identifier highlighting, we also support highlighting certain language structures. We have a blog post that talks about that feature in depth as well.
Being a modern IDE, you can heavily customize the view of the application. Tool windows can be moved, regrouped, collapsed, resized, or docked like documents. Even document windows can be repositioned to view multiple documents at once. Click on the document tab, tool window tab, or tool window title bar and start dragging it around. Guides will appear to show you the various drop targets for the item, or you can float the window outside of the IDE. In the screen shot below, the ‘Script Explorer’ tool window has been dragged to reveal the drop targets.
Hovering over any of the drop targets will show you a preview of where the tool window will be placed. If you end the drag-and-drop operation without being on a drop target, the window will float. Users with multiple monitors will appreciate the fact that you can even float one or more document windows! That allows you to have the IDE on one monitor and optionally display a second full document on another monitor. You can also dock documents side-by-side in the main IDE and even split the view of a single document into as many as four independent views. The following screen shows a possible customization:
The ‘Ribbon’ and the ‘Error List’ tool window have been collapsed. The main IDE document area has been split to show three simultaneous documents. The ‘Script Explorer’ and ‘Document Outline’ tool windows have been grouped into a single tool window and floated. The ‘Test Lab’ document has been floated outside the IDE. The ‘Defects’ code has been split into four views, and the ‘Common’ document has been split into two horizontal views (two vertical views also available). The options are nearly limitless! In the screen shot above, you are viewing eight different sections of code. The ALM editor can only ever show you one!
Workflow Editor has many other useful features that won’t be discussed in detail.
- You can zoom your editor view in or out. Zoom out to get a bigger picture of the document, and zoom in to help with small screen resolutions or code review presentations. The zoom indicator is at the bottom-left of the document window. You can also use Ctrl+MouseWheel or the Zoom buttons on your keyboard (if available).
- The editor margin changes colors as you make edits. It turns “yellow” when you have modified a line, and then turns “green” when those modifications have been saved. This helps you keep track of all the changes in your editing session as well as which changes have or have not been committed.
- Macro recording (available from the ‘Editing’ group of the ribbon) allows you to record a series of editing actions and then play them back. Through combinations of typing, cursor movement, and clipboard actions you can easily perform repetitive tasks on your code.
- The Advanced drop-down menu on the ‘Editing’ group of the ribbon exposes many features such as converting spaces to tabs, tabs to spaces, and eliminating unnecessary horizontal whitespace.
While we are very happy with the features and functionality already available in Workflow Editor, we know it is far from complete. Most of the work so far has been related to generic VBScript editing capabilities (since that is the same work necessary for our Test Design Studio 3 project), so workflow-specific enhancements are still needed. The built-in ALM editor is so weak that our Workflow Editor already provides many benefits over the built-in editor in spite of the current state of the project.
The product is absolutely free, and we hope you take the time to evaluate what we have done so far and provide feedback to contribute to its future.