QTP has a predetermined set of properties that it learns/stores for every class of object it identifies. There are 3 aspects to this:
- Mandatory properties: This is the list of properties for a certain class that QTP always stores. We could say that this is the object description. It also checks this in conjunction with the parent object to see if the description is sufficient to identify the object uniquely.
- Assistive properties: In case the description of mandatory properties is insufficient to identify the Object a set of non-mandatory properties will be added to the description one after the other until there is enough data to identify the object.
- Ordinal Identifier: If the assistive properties also do not result in the unique identification of an object a special ordinal identifier is added by QTP, such as the object's location on the page or in the source code.