DP (Descriptive Programming) is a way to identify and interact with objects in QTP without using the Object Repository. It involves specifying an object's properties and values as strings to uniquely identify the object. There are two main methods - including the property-value strings directly in commands, or storing them in a description object. DP allows accessing objects not in the OR, and provides powerful features like getting collections of all objects that match a description. It is a flexible and useful technique for test automation in QTP.