Intelligent Recording
Object Mode
HTML/DOM-Aware
Applets/Flash Recognition
Data Driven Tests
Multi-threaded
Synchronized
Continuous Validation
Seek Item Feature
Fuzzy Matching
Flexible & Adjustable
Batch Mode
Java and C++ APIs
Configurable Reports
Works 'out-of-the-box'


Intelligent Recording TestSmith can record multiple applications in the same session. It knows the type of window and type of control it is interacting with, and can recognize and record new windows that open during a session.

The recorded commands generated by interaction with a Windows application will be different to those generated by interaction with a web application. Actions on Windows controls, scroll bars and menus generate special commands. These differences allow the playback engine to correctly synchronize and validate.
Object Mode All windows, buttons and other controls are recorded as individual objects and are not dependent on screen positions or screen resolution; windows do not have to be the same size or in the same place during a playback as they were when recorded.

The Flexible & Adjustable nature of TestSmith scripts also means that Window objects (buttons, etc.) that have new ids or positions within the parent window can be located.

Fuzzy matching allows additional inexact matching of window titles and class names.
HTML/DOM-Aware All standard HTML/DOM objects are recognized and identified by a number of different attributes during a recording. On playback, if an exact match of the item cannot be found fuzzy matching is used to allow inexact matching of an item. This is especially useful for dynamically created web pages.

Use Web Mode recording to ensure the cleanest and most accurate web application scripts.
Applets/Flash
Recognition
TestSmith successfully handles the record and playback of Applets, Flash, Active-X controls, animated bitmaps and other objects embedded in html pages.
Data Driven Tests
[more info]
Data can be read in from a CSV* spreadsheet file during a playback. A script can be played back multiple times in succession, each playback reading a new set of data from the file.

A common use of this feature would be to regularly check that name/password access to a particular resource was working correctly for known accounts and failing (correctly) for false accounts.

*Note: CSV (comma separated values) files are recognized as spreadsheet files by Microsoft Excel. They can also be opened and edited in a simple text editor such as Notepad.
Synchronized Playbacks can be made to 'wait' for a certain event - such as a URL navigation, or a new window opening - to complete before continuing. This guards against 'runaway' scripts and ensures realistic playback.

All synchronized events allow a timeout so a playback will not wait indefinitely.
Multi-threaded Each playback runs in its own thread. This allows multiple scripts to be played at the same time, greatly speeding up the testing process.

Shared resources, such as the Desktop window, are locked when in use by a particular script. Other scripts wait in the queue until the resource is freed.

When used in conjunction with a simple tool that generates load, TestSmith can play back multiple complex scenarios to a web site to gauge response times under various load conditions. Timing data files store information that can be displayed and graphed in a spreadsheet application, such as Microsoft Excel.
Flexible & Adjustable TestSmith scripts are self-adapting for dynamically created web pages and GUI's. This means that if an HTML element or Active X component is in a different position, or has a different id, on playback to when it was recorded, the script can adjust itself accordingly (issuing a log message if requested) and will not fail.

Fuzzy matching allows additional inexact matching of window titles and class names.
Continuous Validation Special validation points, such as bitmap or text matching, can be inserted during a recording but TestSmith validates all recorded items 'on the fly'. All differences in, e.g. button text, HTML href's, etc. are logged (if required).

Validation can be 'exact' or 'fuzzy'.
Seek Item Feature
[more info]
TestSmith's unique 'Seek Item' feature allows any screen item that has moved to be intelligently searched for during playback. Subsequent actions on the item or on related items are adjusted to the new x,y coordinates.
Fuzzy Matching
[more info]
This feature allows inexact element matching of HTML elements and Window titles and class names. It uses the boolean operators AND, OR and XOR to create a matching pattern.

For example, rather than matching exactly on the URL "games.yahoo.com/poker?xyz123" you can specify that the URL matches if it contains the strings "games.yahoo" AND "poker" AND "?". This would allow for the reissuing of login ids, etc.

Window titles and class names can be matched in the same way. This is especially useful if a Title gets appended with additional information, such as the "[working offline]" text that gets added to IE Window titles when not connected to the internet.

Fuzzy Matching can also be case-insensitive.
Batch Mode
[more info]
The command line interface to TestSmith allows multiple scripts to be run in parallel. The PlaySmith utility provides a simple comand line interface to run a single testsmith script without the overhead of loading the main TestSmith application. Both methods can be used to run scripts in batch mode.
Java and C++ APIs By default, TestSmith tests are recorded using the proprietory Smith script language. Smith scripts can be played back immediately (without compiling) from the TestSmith GUI. Smith uses a markup-style syntax with each command followed by a set of named parameters, using the format 'name=value'. Parameter names are self-explanatory.

TestSmith can be configured to record tests in Java, C++ or C++/MFC. The TestSmith-specific calls from these programs are simple wrappers around the Smith commands.

All Testsmith tests can be edited during a recording, as well as afterwards, but only Smith scripts can be reopened in TestSmith; scripts in other languages should be managed in an appropriate IDE for the language.
Configurable Reports
[more info]
TestSmith produces both plain text and html reports/logs. Seven levels of logging are provided, each one independent of the others.

Reports contain precise timing information for each command as well as command ids and detailed information of any discrepancies and errors.

The final run time for each execution of a script is also saved to a timing log (a *.csv file), which can be viewed in a spreadsheet application.
Works
'out-of-the-box'
No complex environment to set up. No configuration files to create. TestSmith runs from a single EXE file and one DLL.

Simply run the setup file and then double-click 'testsmith.exe' to start. Click the Recording button on the single toolbar to record a new script, or the Playback button to play back your script, or one of the pre-recorded sample scripts.

Please be aware however, that creating meaningful and useful scripts takes some patience, a knowledge of one of the supported languages and a thorough understanding of the application to be tested.

TestSmith uses the "RSA Data Security, Inc. MD5 Message-Digest Algorithm".