The use of Symbolic Names in scripts is key when creating a maintainable Automated Test Framework.
Imagine the following scenario:
- You create a set of 10 tests, or 10,000 tests
- A common set of controls (buttons, text fields, etc.) are used through out many of the tests
- New release! One (or more) of those commonly used controls changed between releases
What happens next?
- Using Symbolic Names: You open the Symbolic Name in the Object Map, update the object reference, click save, and your scripts are off and running again.
- Symbolic Names *not* used: You have won the lucky task of locating, modifying and testing every single instance where the changed control was used in your tests.
Tell me more about Symbolic Names
What is a Symbolic Name?
A Symbolic Name is a string or name, which when looked up in an Object Map, points to a Real Name, or a collection of properties and values used to correctly identify an object. The Object Map is available to the entire Test Suite, and can also be shared across multiple test suites. Learn more.
The image below depicts the Object Map View, where the selected Symbolic Name (top) and the corresponding Real Name (bottom) appear:
The lines of script below represent a Symbolic Name and Real Name as they appear within a Test Case:
// Symbolic Name waitForObject(":addressBookView.listView_ListView"); // Real Name waitForObject("{container=':Quick Addressbook.addressBookView_TableView'" + "id='listView' type='ListView' unnamed='1' visible='true'}");
How are Symbolic Names created?
- Recording a script
All actions recorded in a script related to objects on which the actions were performed. It is while recording that Object Map entries are created automatically by Squish. - Adding an Object to Object Map using Pick tool
- Manually entering items in the Object Map
While it is very rarely necessary to manually add items (as they’re added when you interact with the object during recording), using the ‘Pick tool’ approach to at least initiate a new Object Map entry is recommended and easier.
How do Symbolic Names work with Dynamic Objects?
Symbolic Names can point to Object Map entries, or Real Names which use Regular Expressions or Wild Cards to match patterns of dynamic portions of objects.
Further information
- Update a changed object in the Object Map
- How to Access Objects Using Symbolic Names
- What is an Object Map?