Testing with random inputs can give surprisingly good results if the distribution of inputs is spread out evenly over the input domain; this is the intuition behind Adaptive Random Testing, which relies on a notion of ”distance” between test values. Such distances have so far been defined for integers and other elementary inputs; extending the idea to the testing of today’s object-oriented programs requires a more general notion of distance, applicable to composite programmer-defined types. We define a notion of object distance, with associated algorithms to compute distances between arbitrary objects, and use it to generalize Adaptive Random Testing to such inputs. The resulting testing strategies open the way for effective automated testing of large, realistic object-oriented programs. Categories and Subject Descriptors D.2.5 [Software Engineering]: Testing and Debugging—testing tools Keywords random testing, adaptive random testing, object distance, distancedbased testin...