Product Reviews

Review: AQTest

Software testing made easy and inexpensive.

All developers give lip service to testing. Fewer developers actually do anything about it. This is a pity, because it's been shown many times that testing applications before release is one of the best ways to stamp out bugs. Ideally, you want a full regression suite of tests that will exercise all the features of your application automatically, and let you know which ones don't work as planned. Otherwise it is all too easy for a fix in one part of the code to break something else in another area.

If you're one of the developers without a test suite, you might want to take a look at AQTest (especially if you don't have a dedicated QA team to pound on your products). Designed especially for Visual C++, Visual Basic, Delphi, and C++ Builder applications, AQTest has an almost frightening array of features designed to let you test your work in great detail. Perhaps most interestingly, AQTest supports both internal and external testing. That is to say, it lets you record (and then edit) test scripts based solely on the behavior of the user interface -- this is external testing, sometimes called black-box testing. But it can also (using a single module that you link in to your code) test at the source code level -- internal testing, or white-box testing.

I took AQTest for a spin on one of my own VB6 projects. Here's a tiny portion of an external text script, just to give you the flavor of the objects that AQTest uses in building scripts:

  Set w = p.Window("ThunderRT6FormDC", "Connect to SQL Server")
  Call w.Window("ThunderRT6ComboBox").Click("(local)")   w.Window("ThunderRT6OptionButton", "S&QL Server authentication").Click
  Call w.Window("ThunderRT6TextBox", "", 2).Click(29, 6)
  Call Sys.Keys("Albert[Tab]Foo")

As you can see, it's pretty readable and easy to edit.

AQTest is entirely COM-based and extensible. An application can even test itself by making appropriate calls back to AQTest. It supports VBScript, DelphiScript, and JScript for scripting, depending on what you're testing. All test results are saved to a log that you can use as a source for reports about progress (or lack thereof). There's a built-in object browser that lets you capture properties of pretty much anything you can see on screen and include them in your tests. All in all, it's a pretty impressive package.

If there's anything wrong with AQTest, it's that it's just TOO flexible (and the documentation, while making a valiant effort, doesn't make it possible to grasp how it all fits together without investing substantial time in learning the program). You should plan to spend as much time getting to know AQTest as you would, say, a new IDE. Of course, there are a LOT of testing applications out there that you can evaluate -- but if you're working in one of the languages that AQTest directly supports, I'd say it belongs on your short list.

And remember, the best time to start testing is at the start of a new project -- you can kid yourself that you'll go back and write all the tests later, but if you're like the rest of us, you'll never get around to it. Fortunately, once you get used to the ways that it works, AQTest makes writing tests incrementally almost easy. Put in the effort up front and you'll be glad you did.

About the Author

Mike Gunderloy, MCSE, MCSD, MCDBA, is a former MCP columnist and the author of numerous development books.


  • Gears

    Top 10 Microsoft Tips and Analyses of 2018

    Here are the year's most popular explainers and how-to columns -- along with some plain, old "Why did Microsoft do that?" musings thrown in.

  • Sign

    2018 Microsoft Predictions Revisited

    From guessing the fate of Windows 10 S to predicting Microsoft's next big move with Linux, Brien's predictions from a year ago were on the mark more than they weren't.

  • Microsoft Recaps Delivery Optimization Bandwidth Controls for Organizations

    Microsoft expects organizations using its Delivery Optimization peer-to-peer update scheme will optimally see 60 percent to 70 percent improvements in terms of network bandwidth use.

  • Getting a Handle on Hyper-V Virtual NICs

    Hyper-V usually makes it easy to configure virtual network adapters within VMs. That is, until you need to create a VM containing multiple virtual NICs.

comments powered by Disqus
Most   Popular

Office 365 Watch

Sign up for our newsletter.

Terms and Privacy Policy consent

I agree to this site's Privacy Policy.