Applies to AQTime 8.80, last modified on June 13, 2019
This topic describes the changes made to AQTime 2.0. For information on the changes made to other versions of the product, see Version History.
QTime, the forbear of AQTime 2.0, supported Macro recording of user actions for playback, so this is not an honest "What's New" item. And there are several new features that are even more important. But the Recorder feature is easy to overlook because it is normally not visible onscreen.
AQTime profiles Visual Basic applications. Both of Microsoft debugger information formats, PDB and DBG, are supported.
AQTime supports the most common debugger format for Visual C++ applications, Program Data Base (PDB).
AQTime profiles GNU C++ (GCC) applications.
AQTime is an OLE server. You can control the profiling process from any application, including the application under test. This also allows AQTime to provide services to TestComplete, SmartBear's test automation and management tool.
AQTime includes triggers. These only apply with the function profilers (all three). Any function can be defined as an on-trigger, and the effect will be that it will turn profiling on, for their thread, on entry and off on exit. Off-triggers will suspend profiling for their thread while they run (including everything they call, directly or indirectly).
AQTime integrates into development IDEs - Microsoft Visual C++, Borland Delphi, Borland C++Builder, Borland C++.
The new Call Graph panel displays the flow of execution graphically, in a hierarchical scheme that provides you with an overall view of where the application spends its time, then lets you dig down into the chain of functions calls to any level of detail, always with full timing information.
The new Events panel targets every kind of event that occurs during the run - UI events, messages, exceptions, module loading and releasing, thread creation and termination, process creation and termination, etc. These are displayed in an expandable tree with information about parameters, results, and of course precise time of occurrence.
The new Memory and API Resource Profiler is two monitors wrapped in one. They both work and display in real time, but also can output reports at the end of the run. The Memory Resource profiler tracks memory allocations made by the application and signals leaks and overwrites (e.g. of "just released" memory). The API Call monitor tracks all calls to the Windows API and shows their parameters and return values, especially errors.
The new Platform Compliance profiler uses a database of all APIs supported by any Windows platform to tell you what platforms the application will run on without modifications, and every call that would have to be modified to make it run on other platforms.
The new PE Reader profiler reads the structure of the application's executable and reports what module actually got linked in, what functions it exports, which it imports and what DLL's it links statically.
The Function Profiler now has an option to figure time percentages relative to total elapsed time, rather than relative only to total profiled time. The difference is that profiling is off during system calls and calls to other functions you choose not to include. Relative-to-profiled-time tells you how expensive a call is relative to the other calls you are profiling. Relative-to-total-elapsed-time tells you how expensive it is relative to the entire test run.
The Function Profiler lets you drill down more easily. It has options to order functions in the Call Graph, to show the function body in the Details panel, to show individually only functions that cost more than a given percentage of the total time, etc.
The Function Trace profiler can show calls in the Events view, can show the values of parameters on each call, and can display a memory dump from the top of the stack.
The Function Trace profiler can log its results to file, to a display panel in real time, or to both.
All relevant profilers identify the thread a call occurs in, and can display results by thread. Threads can also receive meaningful names from the application.
AQTime can display results before the end of the process being profiled. This allows profiling processes that cannot be ended without major inconvenience, such as Windows NT services or IIS Applications.
The Explorer panel can now automatically merge new results with existing ones. This facilitates gathering statistics over many iterations of a test.
AQTime now records your jumps among procedures in the Report panel, so that you can easily retrace your steps backwards or forward, as in a browser. (The Report panel is AQTime's main output, and you are likely to spend most of your time there.)
Test results can be exported to an XML file, viewable on any computer that has Internet Explorer 5.0 or any other browser that supports XML.
We should be done by now, but we are not. More improvements:
Test results can be added to source code as comments.
Results from separate runs can be displayed side by side.
Searching and sorting of features in the Setup panel.
Advanced drag-and-drop mode in the Setup panel.
Column customization in the Setup panel.
Modified Add Procedure, Add Classes and Add Unit dialogs.
Modified docking mechanism.
Records can be printed directly from the Report panel.
Printed reports can be customized for page properties, font style and color, background, etc.
User-defined file types to be recognized by the Editor for syntax highlighting in Visual C++, Visual Basic, Delphi or C++Builder styles.