Mar 29 2008

Test Design Studio

I don’t usually do this, but every once in a while, there comes a product which not only dramatically improves my work and productivity, but is also extremely cool. Test Design Studio (TDS) is exactly that, and it deserves your full attention. I have been working extensively with TDS for the past week, and I decided to write a quick review to tell you about it.

Introducing TDS

TDS is a complementary tool to QTP and WinRunner, which upgrades your programming experience to that of MS Visual Studio. Since the programming experience in QTP is extremely bad to begin with, upgrading it may not seem like a big deal; but let me tell you here and now – TDS revolutionizes the field of QTP and WinRunner programming, and you owe it to yourself to try it out. Once you give it a try, I doubt you will ever go back.

The TDS suite comes packed with dozens of features, and I’ll cover only a handful. So again, I strongly recommend you to download the trial version and try it out yourself. I will obviously cover the feature from a QTP programmer’s perspective, but the WinRunner point of view is pretty much the same.

Effectively Manage Your Code

For starters, TDS is organized around solutions and projects. This means that a single project can include multiple QTP tests, function libraries, external files, documentation, and whatever you like. This effectively puts an end to all the possible deployment mishaps when you forget to copy that one crucial Excel file, which costs you a whole night test-run. It also gives you an easy way to jump from one test to another, or to any other linked resource via the TDS code editor, or any external editor you prefer. I just think of all the frequent visits to the open-file dialog I endured in QTP, compared to the instant double-click in TDS. It may sound insignificant, but when you work on a large project, with dozens of tests and actions, the interface really packs a punch.

Effectively Navigate Your Project

You will find that tedious code-navigation has been made instant. No more endless scrolling through thousands of similar looking functions, just to find that one bit of information you remembered from yesterday. In TDS, you can immediately jump to an action, a function or a class using a top navigation bar. Functions, classes and comments are collapsible, and the code can be divided into custom collapsible regions, which make a 10,000 code lines file fit into a single screen. You can even open multiple QTP tests and immediately jump from one to another, without the horrible one-test-at-a-time QTP limitation. You will be surprised by the cumulative amount of time you can save by effectively navigating large chunks of code.

Easy Coding With Auto-Complete

One of the major features of TDS is that it supports syntax auto-complete. And when I talk about auto-complete, I don’t mean the half-baked feature the QTP currently implements. I mean full auto-complete for variable names, class inner procedures and properties, object inner methods, sub-parameters suggestions, and more. In QTP my scripts would fail over and over again because I misspelled a variable, a method, or an object’s property. In TDS, these days are long gone. When I think about the sheer amount of bugs TDS saved me just by auto-completing my syntax, it gives me the chills. TDS even takes another step, and allows you to specify the possible dictionary keys for a Scripting.Dictionary variable and custom Enum lists. This means you even get auto-complete when accessing the custom different sub-values of collections and dictionaries.


Know Your Code With Full Intellisense

TDS also has an incredible intellisense. When you hover above a variable, you can see its purpose and type. When you call a function, you can see its summary data, the different types of parameters it can take (with a summary for each of them), its return values, and pretty much everything about it. The intellisense and auto-complete also works for external objects – Excel application objects, ADODB objects, and pretty much any object that has a COM interface (I have just recently been able to make it work with a custom .Net DLL I wrote). Just add a reference to that COM in your TDS project, and all the COM objects, inner functions and properties will be inherently available to you. TDS also connects to QTP object repositories, so you also get all these wonderful auto-complete and intellisense capabilities for QTP object reference.

Automatically Generate Documentation

The intellisense is driven by XML comments you can easily insert into your code. Just type ”’, and the proper XML comment structure will appear, allowing you to just fill the blanks. Apart from driving the intellisense and auto-complete, these comments make it possible for TDS to automatically create a professional help file for you project. In large projects, this could be one of the top kill-features of TDS. The help file can specify all the functions, properties, classes and tests in your project, all presented in a professional and helpful way (with inner-links between them). In my ReporterManager project alone, this feature saved my ~2 days worth of work. Is there any wonder I adore this tool?

Reduce Your License Budget

And finally, it works without QTP! Yes, you can save big bucks on QTP licenses, and develop with TDS on computers that don’t have QTP installed on them at all. You can even export you object repositories to XML format, and enjoy all of the object repository capabilities (auto-complete, intellisense), on any computer you like. I can finally have a separation between test-run machines and development machines, without doubling my licenses budget!

Make Up Your Mind For Yourself

These are just some of the major features I found exceptional in TDS. There are dozens of other major features that might have a huge impact on you programming experience (dynamic code snippets, search and replace in an entire project, object browser, working with split screens and much more). I have tried to give you a sense on what the product is all about, but you REALLY have to try it out for yourself.

About Yaron Assa

A leading automation expert, Yaron is the original founder of AdvancedQTP.com, and also ex co-founder and CTO of SOLMAR Knowledge Networks Ltd. Yaron has his own website, and also runs a Hebrew podcast on skeptical thinking and science (http://www.safeksavir.co.il).