Por ejemplo, es posible que quiera invocar muchos métodos directamente en el mismo objeto; en este caso, Functional Tester perdería mucho tiempo buscando el objeto cada vez que se invoca un método. Puede utilizar el método TestObject.Find para buscar un objeto sin que Functional Tester invoque métodos en el objeto. TestObject.Find devuelve un objeto de prueba que contiene un tipo de referencia diferente al objeto en la aplicación sometida a prueba. A veces esta referencia se denomina referencia de límite, referencia encontrada o referencia no correlacionada.
Una referencia de límite retiene el acceso al objeto en la aplicación sometida a prueba, hasta que el usuario explícitamente cancele el registro de la referencia. Functional Tester cancela el registro de las referencias de límite sólo cuando finaliza toda la reproducción, no cuando finaliza el script. Mientras haya una referencia de límite a un objeto, es posible que Functional Tester evite que el objeto en la aplicación se libere completamente. Por ejemplo, mientras se mantenga una referencia de límite a un objeto Java, el objeto Java no se recopilará de la basura. Es necesario que cancele el registro de las referencias de límite que haya creado, en el momento en que ya no las necesite.
En un script habitual de Functional Tester, los únicos objetos de prueba que contienen referencias correlacionadas son los métodos de los scripts del ayudante. Los demás objetos de prueba contienen referencias de límite cuyos registros deben cancelarse. Por ejemplo, se ha manifestado expresamente que el método TestObject.GetTopParent devuelve un objeto de prueba. Está constatado que los demás métodos devuelven un System.Object, pero es posible que devuelvan un objeto de prueba cuyo registro debe cancelarse (por ejemplo, TestObject.GetProperty).
RationalTestScript contiene diversos métodos que eliminan referencias a objetos de prueba, incluidos net.Rational.Test.Ft.Script.RationalTestScript.Unregister y UnregisterAll. (Consulte la Referencia de API de Functional Tester para obtener información acerca de estos métodos.)
Los valores que devuelve la aplicación sometida a prueba que no sean objetos de prueba son objetos que representan un valor. El tipo de objeto también se conoce como clase de valor. Una clase de valor es una copia del objeto en la aplicación sometida a prueba, no es una referencia a un objeto en dicha aplicación. Los ejemplos habituales de clases de valor son Integer y System.Drawing.Rectangle.
El grabador y los asistentes de Functional Tester únicamente generan código que devuelve clases de valor. Por ejemplo, una propiedad que se muestra en el caso de prueba de propiedades de objeto es una propiedad cuyo valor es una clase de valor. Es posible invocar TestObject.GetNonValueProperties para buscar las propiedades de referencia disponibles para un objeto determinado. Se puede invocar TestObject.GetMethods para visualizar la lista de todos los métodos que se podrían invocar si se llama a TestObject.Invoke.
Tenga mucho cuidado cuando trabaje con objetos de prueba que contienen referencias a objetos en la aplicación sometida a prueba, porque hacerlo podría crear inestabilidad en la aplicación. Cancele el registro de estos objetos de prueba cuanto antes.