What's New in TestComplete 5
TestComplete 5 has been greatly enhanced compared to its previous versions, TestComplete 4.x. The new version includes a number of exciting features that provide new functionality and make the product more convenient to use. Below is a list of major changes.
| Note: | TestComplete version 5 completely supports projects created in version 4. However, you may need to recompile your Visual C++, Delphi or C++Builder Open Applications. |
- Overall Improvements
- Windows Vista Technologies Support
- Web Testing Improvements
- Name Mapping Improvements
- User Forms
- Changes in Stores
- Load Testing Improvements
- Changes in .NET, Java and Other Open Applications
- Manual Testing Improvements
- Low-Level Procedures Improvements
- Program Objects Enhancements
- AQtime Integration Improvements
- Other Improvements
Overall Improvements
- Testing under a different user account. TestComplete 5 lets you launch and test applications under a different user account and test your application under different user accounts without rebooting.
- Tested application improvements. The Tested
Applications editor has been improved. Now you can specify the
run mode for applications: Simple, RunAs, Debug or Profile. If Simple
mode is selected, the application is launched as it normally would
be launched in earlier versions of TestComplete. RunAs mode lets you
specify the user account under which the application will be executed.
If Debug mode is used, TestComplete traces events and exceptions that occur in the application under test and posts them to the test log.
Profile mode lets you select an AQtime profiler, which will trace the application execution. That is, your TestComplete project will simulate user actions or perform unit tests and AQtime will simultaneously check for memory leaks, performance bottlenecks, or perform the coverage analysis. TestComplete’s test log will contain references to files storing AQtime results.
You can set up the run mode and run parameters in the TestedApps editor or from scripts.
- Support for third-party menu controls. In earlier
versions, TestComplete only provided special scripting support for standard
(Win32) menus. The simulation of user actions over third-party menus
were limited by mouse clicks, or were not supported at all. In version
5, the third-party menu support has been improved. Now, window objects
contain specific properties that let you simulate user actions and work
with items from most popular third-party menu components by Microsoft,
Borland, Developer Express, Component One, Janus, Infragistics, Syncfusion.
To work with these menus, TestComplete adds new properties to the
windowobject:Window.ActionMainMenuWindow.C1MainMenuWindow.EssMainMenuWindow.JMainMenuWindow.StripMainMenuWindow.UICtrlsMainMenuWindow.UltraMainMenuWindow.XtraMainMenu
All of these properties return the
Menuobject that provides a scripting interface to the menus. The object’s methods and properties coincide with the methods and properties of theWin32Menuobject. TheWin32Menuobject was renamed toMenuand theWin32MenuItemobject was renamed toMenuItem. - Test items parameters. In earlier versions a test item could refer to a project item or script routine to be executed. The script routine could not use parameters. Now you can run routines that have parameters. Using a special dialog you specify the parameter values for the run.
- Better protection from unsafe operations. To obtain
property values, TestComplete calls the get methods of these properties.
In general, these methods can perform any operations including those
that can cause errors in the application under test. To make testing
safer, TestComplete 5 by default hides the protected and private properties
from the Object Browser and other panels and dialogs, though, these properties
remain available in scripts. To view these properties in TestComplete’s
panels and dialog, enable the new Show hidden properties option in the
Engines - General Options dialog.
This new option makes the Object Browser’s Show hidden properties option obsolete. So, the Object Browser’s Show hidden properties option has been removed.
Also, to avoid possible application damage, TestComplete does not display properties of those .NET objects that inherit methods and properties of the
System.Windows.Forms.Controlclass and whoseIsHandleCreatedproperty is False. If the property is True, the object properties are visible. - Improvements in Connected and Self-Testing Applications.
In earlier versions of TestComplete, a Connected or Self-Testing Application
had to be started from a TestComplete project, since TestComplete posts
messages to the log and only provides access to scripting objects when
a script was running.
In TestComplete 5, the files that are used to create these applications have been updated. Now these files include a special
RunTestroutine that lets you switch TestComplete to the script-running mode from an external application. In other words, now there is no need to launch Connected and Self-Testing Applications from scripts even though the previous launching approach is also supported.
Windows Vista Technologies Support
TestComplete version 5 provides an extensive support for Microsoft Windows Vista:
- Script recording and playback. TestComplete can record and play back scripts under Windows Vista. Note that in order to run tests on Windows Vista, TestComplete and the application under test must have the same security privileges.
- UI Automation support. TestComplete 5 supports the Microsoft
UI Automation technology. Using UI Automation providers, TestComplete retrieves
information on application controls and their methods and properties, thus,
giving you a possibility to use these methods and properties in your test
projects. Also, TestComplete adds a new
UIAObjectmethod to the process and window objects. This method is used to address application object through the UI Automation technology. - WPF (XAML) support. TestComplete 5 includes support
for XAML (WPF) controls and applications. It adds special method (
WPFObject) to process and window objects. Using this method you can work with controls in your WPF application. TestComplete also includes special new objects for different types of XAML controls: combo boxes, list boxes, toolbar, and others. These objects contain specific methods and properties that let you easily obtain information on the control’s state and simulate user actions over the control.
Web Testing Improvements
TestComplete 5 includes the following new features intended for functional testing of web pages:
- Firefox support. Earlier versions of TestComplete provided access to web page elements only shown in Internet Explorer. Version 5 lets you work with elements of web pages that are displayed in Firefox. Testing these pages is very similar to testing web pages shown in Internet Explorer.
- Scripting interface to Internet Explorer settings. The
Optionsobject contains two new properties:IESettingsandIEZoneSettingsthat provide program access to Internet Explorer options that are displayed on the Advanced and Security pages of Internet Explorer’s Internet Properties dialog.
Name Mapping Improvements
The Name Mapping engine has been greatly improved:
- Name Mapping templates. The Name Mapping engine provides predefined sets of property values that are commonly used for recognition of mapped objects. Instead of selecting the set of custom object’s properties manually, you now can select the appropriate name mapping template. TestComplete contains predefined templates for standard Win32 controls, VCL controls, .NET controls and so on.
- Enhanced Name Mapping aliases. In TestComplete 5 the
concept of aliases has been improved. Now you can create a custom tree
of mapped object that differ from the physical object tree. This gives
you a possibility to call mapped objects only by alias, that is, skipping
the
NameMapping.Sys.MyProcessNamenotation. Also, you can hide any intermediate levels of object hierarchy and make, for example, a control a child of a process (in normal hierarchy, a control is a child of a window, which in its turn is a child of a process). - Using Project Variables to specify property values. In earlier versions of TestComplete, you can specify property values only by using constants. Now you can link a project variable with the property, so TestComplete will use this variable’s value to recognize objects.
User Forms
- In TestComplete 5 you can create user-defined forms to be displayed during the test execution. The forms can contain various controls - buttons, check boxes, edit boxes, combo boxes and many others - so you can easily create a form that will ask you to select one of possible testing scenarios or to specify initial test conditions.
- The form creation is visual and it is very similar to the form creation in Microsoft Visual Studio or Borland Delphi. Using the powerful form editor, you are able not just set controls’s properties, but also create event handlers to implement complex processing.
- To manage user-defined forms TestComplete
includes special project item - User Forms. To work with forms in script,
TestComplete provides a new
UserFormsobject.
Changes in Stores
Three new improvements have been made to the Stores engine:
- The
Regions,ObjectsandFilesobjects' Compare method's behavior has been changed. According to new options and settings made in the Regions, Files and Object editors, the methods are not only able to compare the images (files, objects), but update the stored items with the image, file or object properties being compared. That is, you can use the same script code to update the images and to compare them. - The methods of the
RegionsandObjectsobject that added images and object properties to the Stores project item now have an extra parameter that let you specify the file and folder where the image and object properties will be saved. In earlier versions, the images and properties were saved to the folder where the Stores project item file resided. - The
Files.CompareandObjects.Comparemethods have a new ReportDifference parameter. It specifies whether the method will post a message about comparison results to the test log when the comparison fails. - The Objects editor has been modified. Now you are not only able to change the stored property values, but you can also create new objects in the stored hierarchy.
Load Testing Improvements
- The HTTP Load Testing project item now supports the Kerberos authentication type. Also, the Load Testing engine can work through proxies that use the Basic, Negotiate, Kerberos, NTLM ver. 2 or Digest authentication.
- Now you can specify the connection speed for your load tests. This
feature lets you make testing conditions closer to real life. The Load
Test Editor contains a new column, Connection
Speed, where you can
type the desired speed or select one of the predefined speed values from
the drop-down list. The
HTTPTaskobject now has a newBandWidthproperty that lets you specify the desired speed from scripts. - Now, if the load testing engine was unable to simulate connection requests, TestComplete logs a warning or an error message.
- To manage cookies more efficiently, TestComplete 5 adds a new
ClearCookiesproperty toVirtualUserandTestInstanceobjects that are used to perform load testing. - The
HTTPRequestobject now contains two newURLVariablesandBodyVariablesproperties that provide access to request variables passed via the URL string and request body. - The load tests created visually now have a new property that lets you specify whether TestComplete will simulate virtual users simultaneously or in a series.
- The context menu of the Load Testing Task editor contains a new Show Connections item. When this item is checked, the tree on the left of the editor contains the connection and request nodes. When the item is unchecked, the tree only displays request nodes.
Changes in .NET, Java and Other Open Applications
- New option. Java and .NET application objects can be addressed by their names defined in application code or by class name, caption (or accessible name) and index. In TestComplete 5, the project property's Open Applications group includes a new Use native object names for TestComplete object names option. It specifies whether TestComplete will use the names defined in the application code to name objects of .NET and Java applications. The option also affects naming WPF application objects.
- New properties of Java applications’ objects.
TestComplete adds new properties to objects of Java applications:
JavaClassName,JavaFullClassName,AWTComponentAccessibleNameandAWTComponentIndex.The
AWTObjectandWaitAWTObjectmethods of the window object have a new WndIndex parameter that is used to identify controls in addition to the class name, accessible name and index. - Support for arrays in Java applications. TestComplete
recognizes objects that contain arrays and adds two properties to them:
ItemsandLength. These properties provide access to array items. Multi-dimensional arrays are also supported. - Delphi CLX Open Applications. In addition to Delphi VCL applications, TestComplete now supports Delphi Open Applications compiled with the CLX library.
- New modules for creating Visual C++, Delphi and C++Builder Open Applications. The helper files that were used to create Visual C++, Delphi and C++Builder Open Applications have been changed. To create an Open Application compatible with TestComplete 5, use the files shipped with TestComplete 5.
- The Object Browser does not display WinForms objects' private and protected
property values, which are descendants of the
System.Windows.Forms.Controlclass and whoseIsHandleCreatedproperty returns False.
Manual Testing Improvements
- The Manual
Test editor contains new toolbar items providing more editing capabilities
for HTML text in step instructions:
- Adding tables.
- Support for numbered and non-numbered lists.
- Special items for indenting and outdenting text blocks.
Also the editor of the root step now contains the Step notes and comments edit box.
- Using the new
ManualTestBuilderobject you can create manual tests directly from your scripts.
Low-Level Procedures Improvements
- Low-level procedures can now be recorded and executed in window coordinates. In earlier versions, low-level procedures only worked with screen coordinates. This new feature lets you create low-level procedures that will only operate over one window. This is useful, if the window location on screen changes between different test runs and you cannot position the window before running the low-level procedure.
- To record a low-level procedure, use a new button on the Recording toolbar.
- The
Executemethod of theLowLevelProcedureobject has been changed. Now it uses a parameter that specifies a window where the procedure will simulate user actions. If you skip this parameter, the procedure will work for the whole screen. - The low-level procedures, whose execution is started from the Project Explorer panel always work in screen coordinates. The same concerns low-level procedures that are executed as test items.
Program Objects Enhancements
- Win32 controls support. Support for Win32 controls
has been greatly improved. TestComplete includes special program objects
for working with IP
Address and SysLink controls.
Existing Win32 objects now have new methods and properties that provide extended access to controls. Now it is possible to obtain images displayed by buttons, checkboxes, tab pages, toolbars and controls, retrieve application-defined data or get the bounds of the control’s items, labels or icons. Control-specific properties and methods has also been extended, for instance, the TreeView control has a new
wItemsproperty that allows a user to access all tree view control items. - Picture object enhancements. The Picture object
contains the following new members:
- A new
Pixelsproperty - Use it to access individual pixels of the image. - A new
Stretchmethod - Use it to stretch or shrink the image at your desire. - A new
GetRectmethod - Use it to obtain a Picture object that corresponds to a rectangular area within the given image. - The
Compare,DifferenceandFindmethods have a new Mouse parameter that lets you include the mouse pointer in the comparison.
- A new
- The
TestedAppobject contains a newParamsproperty. This property returns a newTestedAppParamsobject that provides a scripting interface to run parameters of various run modes through its properties (SimpleParams,RunAsParams,DebugParamsandProfileParams). Now, to specify the command line for a tested application, you should use these properties. TheParametersandWorkFolderproperties of theTestedAppobject became obsolete. They are supported for backward compatibility only. - The object returned by the
TestedApp.Runmethod depends on the run mode that is set for the tested application in the Test Applications editor. If Profile mode is selected, the method returns a newAQtimeobject. Else, it returns theprocessobject. - The
TestedApp.RunandTestedApp.RunAsmethods contain two new parameters: IgnoreRunning and Timeout. Using the IgnoreRunning parameter you can control the number of application instances to be launched and using the Timeout parameter you can specify the time period to wait until the application is started. - TestComplete adds new properties to Java application objects:
JavaClassName,JavaFullClassName,AWTComponentAccessibleNameandAWTComponentIndex. - The
AWTObjectandWaitAWTObjectmethods of the window object have a new WndIndex parameter that is used to identify controls in addition to the class name, accessible name and index. - The functionality of the
DbgServices.LaunchTestedApplicationandDbgServices.LaunchAllTestedApplicationsmethods has been changed. Now, these methods launch the tested application according to the application’s run mode. - Version 5 includes new
ManualTestBuilderandManualTestStepscripting objects that let you create manual tests from scripts. - The
Variablesobject contains two new methods:AddVariable- Lets you create project, project suite or network suite variables directly from your script code.GetVariableDefaultValue- Returns the default value of the specified variable.
- A new
StopWatchobject has been added. Using this object you can time the execution of your script code. - A new
RegExprobject lets you use regular expressions in scripts. - A new action - HoverMouse -
has been added to
onscreenobjects. It lets you hot-track the object with the mouse pointer by moving the pointer to the specified position within the object. - The built-in
_Ordroutine has been renamed toGetOrd.
AQtime Integration Improvements
- Integration has been made easier. Now you can select the Profile run mode for a tested application, and when TestComplete launches the application, it also launches AQtime to profile this application during the test run. AQtime now traces for bottlenecks or checks the application for memory and resource leaks while TestComplete is simulating user actions over the application. The Profile run mode can be set in the TestedApps editor or from script code.
- Version-independent scripting. The
AQtimeIntegrationobject includes newCurrentVersionandAQtimeproperties. Using theAQtimeproperty you can create scripts that are not dependant on the AQtime version (the scripts will work for both AQtime 4 and AQtime 5). The only thing you have to change is your AQtime version with theCurrentVersionproperty at the beginning of the test run.TestComplete also includes a new
AQtimeobject that contains the same methods and properties as the object returned by theAQtimeIntegration.AQtimeproperty and is used for version-independent work with AQtime. - A new WaitAndExportResult method. The
AQtime4andAQtime5objects contain a newWaitAndExportResultmethod that pauses the script execution until profiling is over and then exports profiling results to a file.
Other Improvements
- Now you can use Opera and Mozilla to view exported test log data.
- Using a new Character encoding project property, you can now select three formats for storing script files: ANSI, UTF-8 and UTF-16. TestComplete 3 and earlier used the ANSI format. TestComplete 4 uses the UTF-16 format to support Unicode. However, some version control systems do not support Unicode files or provide limited support for them. To resolve the problem, TestComplete 5 includes a new option that lets you change the script file format to UTF-8 or ANSI.
- The Tools menu contains a new Network Suite submenu, whose items let you start and stop the Network Suite Remote Agent executable (tcrea) and control its run mode.
- The Code Editor now copies script code to the clipboard keeping the color and font attributes, for example, if you paste the copied text to WordPad, the formatting will be the same as it was in the Code Editor.
- Context menus in the ODT editors now include special items that allow you to change the method’s or property’s position in a class or object.
- In earlier versions of TestComplete, the Code Templates Options dialog displayed templates defined for only one language. In TestComplete 5 the dialog lets you modify code templates for all supported scripting languages. Also, by default, TestComplete offers a number of pre-defined templates.
- The context menu that is displayed when you right-click an editor’s caption in the Workspace panel now contains new items that let you check the file in or out of source code control, get the latest version of the file or compare it with another file.
- TestComplete’s COM interfaces have been improved and now they provide access to projects’ and project suites’ test items.
