Smart identification is a fall back mechanism for when the description for the test object isn't good enough (matches multiple objects or none at all).
What happens is that if smart ID is enabled when the test is created (record/learn) then QTP stores some additional properties in the object repository and if the identification fails using the regular description it will attempt to use the properties in the smart ID.
One obvious difference between smart ID and regular description is that in regular description you have mandatory and assistive properties, when building the description QTP checks if the mandatory properties are enough in order to achieve uniqueness, if not the assistive properties are added one by one until uniqueness is achieved. Then only the properties that were used are saved in the description. Once the description is created all properties are equal if one differs the description doesn't match no matter if the mismatching property was originally defined as mandatory or assistive.
In Smart ID there are base and optional properties, all the base properties must match but the optional properties are treated differently.
After running smart ID, if smart ID fails the behaviour depends on why we called it in the first place
Note that starting in QTP 11 there is also the concept of VRI (Visual Relations Identification) which complicates issues a bit more...
联系客服