QTP uses mandatory properties (like class, name) as the primary object identification method. When these aren't sufficient to uniquely identify an object, QTP adds assistive properties to improve identification. If that still fails, it uses ordinal identifiers (index, location, creation time). Both assistive properties and ordinal identifiers are used when mandatory properties alone are inadequate.