Prácticas recomendadas para el desarrollo de tipos de pasos personalizados de TestStand

Información general

TestStand incluye numerosos tipos de pasos integrados que actúan como bloques de construcción para las secuencias de prueba. Además de los tipos de pasos integrados, TestStand permite a los usuarios crear tipos de pasos personalizados para implementar funcionalidades adicionales.

Los tipos de pasos personalizados permiten a los usuarios ampliar los pasos existentes de las siguientes maneras:

  • Configurar valores para las propiedades de paso y determinar qué propiedades pueden modificar los usuarios de paso.
  • Agregar nuevas propiedades de paso para almacenar datos personalizados, que pueden registrarse opcionalmente en los resultados de la prueba.
  • Definir el código que se llamará antes o después de la ejecución del módulo principal.
  • Crear una interfaz para permitir a los usuarios configurar propiedades de paso personalizadas en el momento de la edición.

 

Un tipo de paso bien diseñado puede acelerar el desarrollo de la secuencia, puede reducir los esfuerzos de depuración, puede permitir a los desarrolladores compartir código estandarizado y puede lograr consistencia entre múltiples estaciones de prueba y grupos separados. Sin embargo, los tipos de pasos personalizados pueden requerir bastante tiempo para planificar, programar, depurar, implementar y mantener.

Antes de leer este artículo, asegúrese de estar familiarizado con el proceso de creación de un tipo de paso personalizado. Consulte el tutorial Creación de un tipo de paso personalizado de forma de onda para obtener más información sobre este proceso.

Contenido

Elección de cuándo usar un tipo de paso personalizado

Antes de comenzar a diseñar un tipo de paso personalizado, debe tener en cuenta otros enfoques que pueden ser más adecuados para una nueva funcionalidad.  

No se recomienda crear o modificar un tipo de paso personalizado en los siguientes casos:

  • La nueva funcionalidad afecta a todos o muchos de los tipos de pasos.  En este caso, considere la posibilidad de usar una Devolución de llamada del motor, que se ejecuta antes o después de cada paso.
  • Si desea proporcionar una configuración básica de un paso existente, pero no se requieren nuevas funciones o propiedades.  En este caso, cree una plantilla de pasos que contenga los cambios para el paso.
  • Si desea proporcionar una herramienta o utilidad para usar en el momento de la edición.  En este caso, use un elemento del menú de herramientas personalizado para llamar a su código personalizado.


Crear o modificar un tipo de paso en las siguientes situaciones:

  • La funcionalidad no se puede implementar en los tipos de pasos integrados.
  • La funcionalidad requiere modificar propiedades que no se pueden modificar en instancias de tipos de pasos existentes,
  • La funcionalidad requiere que las acciones se realicen antes o después de llamar al código de prueba, como la configuración del paso o el análisis de los resultados.
  • Si desea simplificar la experiencia del usuario para configurar pasos con la ayuda de una interfaz de usuario.
  • Si comparte la funcionalidad con otros grupos, empresas o clientes.

 

Plantillas de pasos frente a tipos de pasos personalizados


Puede crear plantillas de pasos mediante el desarrollo o la configuración de pasos en una secuencia, seguida del arrastre y la colocación de esos pasos en la Lista de plantillas [Templates List] de la Paleta de inserción [Insertion Palette]. TestStand almacena una copia de la instancia de paso como una plantilla que puede reutilizar para crear nuevas secuencias con rapidez al arrastrar y soltar la plantilla de pasos en una secuencia nueva.

La diferencia entre una plantilla de pasos y un tipo de paso personalizado es que puede crear una plantilla solo a partir de los tipos de paso existentes y la plantilla incluye solo las mismas capacidades del tipo de paso original. No puede modificar ni rediseñar la plantilla de pasos en la medida en que puede hacerlo un tipo de paso personalizado. En el caso de los pasos que se añaden a la lista de plantillas, solo puede configurar los ajustes habilitados por el desarrollador del tipo de paso original. Por el contrario, puede usar un tipo de paso personalizado nuevo para crear un paso completamente nuevo con un comportamiento completamente nuevo. Además, los cambios en una plantilla de pasos afectan solo a las instancias futuras del paso y no cambian las instancias existentes de ese paso.

Una de las ventajas de utilizar una plantilla de pasos es que se evita la personalización de la configuración de los pasos más de una vez si se reutiliza el mismo paso de la misma manera. Por ejemplo, si configura una fuente de alimentación IVI a 5 V y, a continuación, a 3.3 V y planea hacerlo muchas veces durante toda la secuencia, crear plantillas de dos pasos después de usar y configurar los pasos inicialmente puede ahorrar tiempo. Sin embargo, si necesita un paso que primero configure la fuente de alimentación antes de ejecutar el código de prueba, la creación de un tipo de paso personalizado es la mejor opción.

 

Comparación de plantillas de pasos frente a tipos de pasos personalizados  

Plantillas de pasos

Tipos de paso personalizados

  • Útil para insertar repetidamente un tipo de paso existente con las mismas preferencias y configuraciones.
  • Sin personalización adicional más allá de las instancias de pasos existentes.
  • Baja sobrecarga de desarrollo. 
  • Útil cuando se requieren nuevos datos y funcionalidades.
  • Permite la personalización no disponible en instancias de pasos.
  • Alta sobrecarga de desarrollo.

 

Definición de los requisitos para un tipo de paso personalizado


Cuando diseñe tipos de pasos personalizados, tenga en cuenta los roles independientes del desarrollador de marcos de trabajo y del desarrollador de pruebas.  El rol del desarrollador de marcos de trabajo es desarrollar herramientas y bloques de construcción, mientras que el rol del desarrollador de pruebas es usar estas herramientas para implementar el código de prueba real.

Al diseñar un tipo de paso personalizado, asume el rol de desarrollador de marcos de trabajo y es importante tener en cuenta la funcionalidad del tipo de paso que desarrolla en términos de los usuarios finales, los desarrolladores de pruebas.
Utilice estas pautas al determinar los requisitos para el tipo de paso personalizado:

  • Defina el alcance del tipo de paso personalizado.  Analice qué tareas utilizará un desarrollador de pruebas para implementar el tipo de paso personalizado.  El alcance debe ser lo suficientemente grande como para manejar estos casos de uso, pero no demasiado grande cuando el propósito del tipo de paso no está claro.
  • Según el alcance del tipo de paso, defina los datos que requerirá el tipo de paso y cómo deben almacenarse los datos.
  • Defina las funcionalidades que deban implementarse para todas las instancias del tipo de paso.  Asegúrese de que todos los datos necesarios para esta funcionalidad estén definidos en las propiedades del paso.
  • Defina qué datos podrán editar los usuarios y cuáles deben registrarse en el informe o la base de datos.
  • Tenga en cuenta qué funcionalidades o configuraciones se pueden solicitar en el futuro y asegúrese de que estos elementos se implementarán de forma que las actualizaciones del tipo de paso se propaguen a todas las instancias.

 

Administración de datos de tipos de pasos

Los tipos de pasos personalizados almacenan datos en varias propiedades y configuraciones que puede usar para configurar el comportamiento de las instancias del tipo de paso y administrar los datos necesarios para la funcionalidad del tipo de paso. Estos incluyen:

  • Las propiedades de tipo integradas que están presentes para todos los tipos de pasos y no se pueden modificar en instancias del tipo.
  • Propiedades de valor predeterminado que definen el estado de las nuevas instancias de pasos pero se pueden modificar en instancias del tipo.
  • Propiedades personalizadas que se definen para un tipo de paso.

 

Propiedades de tipo integradas

Existen propiedades de tipo de paso integradas para todos los tipos de paso, y el usuario no puede realizar cambios en esta configuración en instancias del tipo de paso.  Además, todos los cambios que realice en los valores de estas propiedades se propagarán a cualquier instancia del tipo de paso.

Ejemplo: Todos los tipos de pasos definen una expresión de descripción que se muestra en el panel Pasos [Steps] junto a las instancias del paso.  Esta propiedad está presente para todos los tipos de pasos, pero el valor se establece para cada tipo de paso.  El valor no se puede modificar en instancias del tipo de paso.

Para acceder a las propiedades integradas de un tipo de paso:

  1. Vaya a la vista de tipos usando el menú Ver »Tipos [View » Types], o la tecla de acceso directo Ctrl + T.
  2. Haga clic con el botón derecho en el tipo de paso y, a continuación, seleccione Propiedades... [Properties…] para iniciar la ventana de propiedades.

Cuadro de diálogo Propiedades de tipo de paso [Step Type Properties]

 

La mayoría de las configuraciones de este cuadro de diálogo son valores predeterminados, que se describen en la siguiente sección.  Las propiedades integradas incluyen:

  • Icono: el icono del paso, ubicado en la carpeta <TestStand Public>/Components/Icons.
  • Expresión de descripción del paso: la descripción del paso que aparece en el panel de pasos, por ejemplo, del tipo de paso.
  • Configuración de versión: se usa para resolver conflictos de tipos.  
  • Expresión del nombre del elemento (pestaña Menú [Menu]): define el nombre del paso en la paleta de inserción.

 

Creación de descripciones de autodocumentación


Dado que la descripción no es configurable en instancias de pasos, puede definirla como un desarrollador de tipo de paso para ayudar a los usuarios a crear pasos de autodocumentación.  El campo de descripción se especifica mediante una expresión que le permite crear descripciones dinámicas que muestran propiedades de paso importantes.  Cuando el usuario realiza cambios en estos valores de propiedad en instancias del tipo de paso, la descripción se actualizará y permitirá al usuario ver rápidamente el estado del paso sin navegar al panel de configuración del paso.

Ejemplo: La descripción del paso en el segundo paso de la siguiente imagen es más descriptiva y proporciona una mejor documentación.  Esta descripción usa la siguiente expresión para definir la descripción:

"Calibrate Channels: " + Str(Step.minChannel) + " - " +Str(Step.maxChannel)

Esta expresión configura la descripción para que se actualice de forma dinámica si el usuario configura las propiedades de paso minChannel y maxChannel.

 

Ejemplos de descripciones de pasos

 

Valores predeterminados de las propiedades de pasos

Al desarrollar un tipo de paso, puede configurar valores predeterminados para todas las configuraciones de paso configurables por el usuario.  Además, puede configurar estas propiedades para que se deshabiliten en instancias de pasos y los valores predeterminados que establezca no puedan modificarse.  Al igual que las propiedades integradas, los valores predeterminados se definen en la ventana de propiedades del paso.  Sin embargo, todos los valores predeterminados contienen la palabra “predeterminado” [“default”], ya sea en el nombre de la configuración o en la pestaña de configuración donde están configurados.

Ejemplo: La propiedad de expresión de estado se usa para determinar el resultado del paso.  Esta propiedad está presente en todos los tipos de pasos, pero el valor predeterminado se establece en cada tipo de paso.  En algunos tipos de pasos, como la Prueba de límite numérico [Numeric Limit Test], la expresión de estado se deshabilita en el tipo de paso para que no se pueda editar en pasos de prueba de límite numérico individuales.

Al diseñar un tipo de paso personalizado, puede deshabilitar las propiedades que no variarán entre instancias del tipo de paso.  Esto le proporcionará más control sobre cómo los usuarios del tipo de paso pueden modificar el comportamiento. Sin embargo, impedir que los usuarios editen los ajustes de los pasos puede limitar la flexibilidad, por lo que solo debe deshabilitar los ajustes que esté seguro de que un usuario nunca tendrá que modificar.

Tenga en cuenta que cualquier cambio futuro que realice en los valores predeterminados de las propiedades de paso, incluso si desactiva la edición en instancias de pasos, no se propagará a instancias del tipo de paso. Consulte Actualizar y mantener los tipos de pasos para obtener más información sobre cómo mitigar este problema.


Consideraciones al actualizar los valores predeterminados


No debe usar los valores de estas propiedades para definir ninguna funcionalidad del tipo de paso que deba actualizar el desarrollador del tipo de paso.  Por ejemplo, no use la expresión Post del paso para implementar la funcionalidad específica del tipo de paso.  Si necesita actualizar esta funcionalidad en una versión futura del tipo de paso, no habrá forma de garantizar que se actualicen todas las instancias del paso.  En su lugar, implemente la funcionalidad en un subpaso previo o posterior al paso.

 

Propiedades personalizadas


Además de las propiedades integradas, puede definir propiedades personalizadas específicas para el tipo de paso.  Utilice estas propiedades para almacenar datos específicamente relacionados con la funcionalidad del tipo de paso.  

Ejemplo: Los pasos de prueba de límite numérico contienen una propiedad Limits.High, que es exclusiva del tipo de paso Límite numérico.  El tipo define un valor predeterminado de 11 para esta propiedad, y el usuario puede modificar el valor para cada instancia que cree.

Para crear propiedades de paso personalizadas, siga los pasos siguientes:

  1. Vaya a la vista de tipos usando el menú Ver »Tipos [View » Types], o la tecla de acceso directo Ctrl + T.
  2. Expanda el elemento de tipo de paso.
  3. Haga clic con el botón derecho en la propiedad principal o en la entrada “<Haga clic derecho para insertar campo>” [“<Right click to insert field>”] para añadir una nueva propiedad

Si define una propiedad en el contenedor de resultados del tipo de paso, la propiedad se incluirá en la recopilación de resultados.  A continuación, puede utilizar los indicadores IncludeInReport o IncludeInDatabase para registrar los datos en un informe o base de datos.

 

 

De forma predeterminada, los usuarios pueden cambiar los valores de propiedad de paso en cada instancia de paso.  Sin embargo, si establece el indicador compartido para una propiedad de paso en el tipo de paso, el valor se bloqueará en el valor del tipo de paso.  A diferencia de los valores predeterminados de los pasos, las actualizaciones del valor se propagarán a instancias del tipo de paso.

Determinación del alcance de un tipo de paso personalizado

Los tipos de datos que elija para las propiedades de paso deben estar determinados por el alcance del tipo de paso. Por ejemplo, considere la prueba de límite numérico y los pasos de la prueba de límite numérico múltiple.  Si bien la prueba de límite numérico múltiple puede acomodar límites adicionales y tiene más capacidad, también introduce complejidad en la interfaz de usuario de tiempo de edición y el registro de resultados.  La prueba de límite numérico más básica tiene un alcance más pequeño y una interfaz mucho más simple. Además de requerir menos trabajo de desarrollo, los pasos con un alcance más pequeño también son más fáciles de usar para los desarrolladores de secuencias de prueba.


Al desarrollar sus propios tipos de pasos personalizados, es importante definir el alcance del paso antes de definir propiedades personalizadas, ya que las propiedades que elija tienen un impacto significativo en la complejidad del tipo de paso.

 

Configuración de la funcionalidad del tipo de paso personalizado mediante subpasos

Las siguientes secciones describen cómo puede usar los subpasos para implementar los siguientes comportamientos de tipo de paso:

  • Funcionalidad de tiempo de ejecución que debe ejecutarse para todas las instancias del tipo de paso antes o después del módulo de código principal.
  • Interfaces de usuario para ver y editar datos de pasos al editar secuencias de prueba.
  • Funcionalidad para ejecutar cuando el desarrollador de pruebas crea nuevas instancias del paso.

 

Implementación de subpasos

Los subpasos llaman a los módulos de código mediante uno de los adaptadores de TestStand proporcionados.  Los subpasos no se pueden modificar en instancias del paso, y todos los cambios en la configuración del subpaso se propagarán a instancias del tipo de paso.   

Para agregar subpasos a un tipo de paso personalizado, haga lo siguiente:

  1. Vaya a la vista de tipos usando el menú Ver » Tipos [View » Types], o la tecla de acceso directo Ctrl + T.
  2. Haga clic con el botón derecho en el tipo de paso y, a continuación, seleccione Propiedades... [Properties…].
  3. Seleccione la pestaña Subpasos [Substeps].  Elija el adaptador que coincida con el módulo de código deseado.
  4. Haga clic en Añadir [Add] y, a continuación, seleccione un tipo de subpaso.  Aparece una nueva entrada en la lista de subpasos.
  5. Seleccione la entrada y haga clic en Especificar módulo [Specify Module] para configurar el módulo de código para el subpaso de la misma manera que configuraría el módulo de código para un paso.

     Publicación y edición de subpasos del tipo de paso de prueba de límite numérico múltiple

 

Definición de la funcionalidad de tiempo de ejecución para el tipo de paso

Puede definir la funcionalidad de tiempo de ejecución para el tipo de paso mediante subpasos anteriores y posteriores al paso.  Estos pasos se ejecutan antes o después del módulo de código principal cuando se ejecuta el paso.   

Ejemplo: El tipo de paso de mensaje emergente utiliza un módulo de código C para crear y mostrar el cuadro de mensaje en tiempo de ejecución.  A este módulo se le llama en un subpaso posterior al paso.  

          Orden de ejecución de pasos: subpasos

 

Utilice estos subpasos para definir la funcionalidad que se aplica a todas las instancias del paso.  A menudo, los subpasos requerirán datos específicos relacionados con el comportamiento del tipo de paso.  Defina estos datos en las propiedades de paso personalizadas para asegurarse de que estén disponibles en todas las instancias del paso.

Si existe más de un subpaso previo o posterior, se ejecutan en el orden en el que aparecen en la pestaña Subpaso [Substep] del cuadro de diálogo Propiedad de tipo de paso [Step Type Property].

De forma predeterminada, los desarrolladores de pruebas pueden especificar un módulo de código para cada instancia del tipo de paso.  Si el tipo de paso no requiere un módulo de código, debe deshabilitar la opción “Especificar módulo” [“Specify Module”] en la pestaña Deshabilitar propiedades [Disable Properties] para la configuración del tipo de paso.  Muchos tipos de pasos integrados están diseñados de esta manera, como los pasos emergentes de declaración y de mensaje.

Proporcionar comentarios visuales para operaciones largas

TestStand espera a que se ejecute el código en los subpasos previos y posteriores al paso antes de continuar. Si los módulos de código para esos pasos funcionan lenta o silenciosamente, es posible que parezca que TestStand no responde. Para solucionar esto, puede cambiar el cursor o usar mensajes de la interfaz de usuario, como UIMsg_ProgressPercent, para actualizar la barra de progreso en la barra de estado. 

Consulte Actualizar la barra de estado mediante mensajes de la interfaz de usuario para obtener más información sobre este enfoque.

Uso del monitor de terminación

Los módulos de código que desarrolle deben incluir y sondear periódicamente un monitor de terminación para manejar correctamente el momento en el que los usuarios finalizan o cancelan la ejecución de la secuencia mediante las opciones integradas en TestStand o en la API de TestStand.  Al usar el monitor de terminación, puede terminar rápidamente el subpaso si el usuario finaliza la ejecución de la secuencia.

Consulte el Ejemplo del monitor de terminación para obtener más información sobre la implementación del monitor de terminación en el código.

Uso de subpasos previos o posteriores en lugar del módulo predeterminado

Implemente el módulo de código para las operaciones básicas inherentes al tipo de paso como un subpaso previo o posterior en lugar de como un módulo predeterminado. Utilice la configuración predeterminada del módulo solo cuando cada una de las instancias de un paso pueda llamar a un módulo de código diferente. La configuración predeterminada del módulo existe por separado en cada instancia de pasos y TestStand no actualiza las instancias de paso existentes de forma predeterminada cuando cambia la configuración en el tipo de paso. Sin embargo, los cambios en los subpasos afectan automáticamente a todas las instancias existentes del tipo de paso.

 

Creación de interfaces de edición para los tipos de pasos

Los subpasos de edición proporcionan una interfaz gráfica de usuario (GUI), implementada en un módulo de código, en la que el usuario puede modificar las variables o la configuración de esa instancia de paso en el momento de la edición. Normalmente, el subpaso Editar se usa para configurar las propiedades de paso personalizadas que se definen para el tipo de paso.   

Ejemplo: El tipo de paso Abrir base de datos [Open Database] proporciona un cuadro de diálogo a través de un subpaso de edición para permitir a los usuarios configurar las propiedades de paso ConnectionString y DatabaseHandle, que son propiedades personalizadas para el tipo de paso de base de datos.

El subpaso de edición proporciona una interfaz de usuario para configurar los ajustes de los pasos

 

Cuando el usuario crea una instancia de un tipo de paso personalizado, puede acceder a la interfaz de usuario del subpaso de edición mediante un botón en el panel de configuración de pasos, que inicia la interfaz de usuario del subpaso de edición en una nueva ventana.  Sin embargo, también puede integrar la interfaz de usuario del subpaso de edición directamente en la pestaña, como muchos tipos de pasos incorporados.  Este enfoque requiere un esfuerzo de desarrollo adicional y debe desarrollarse en un lenguaje .NET, pero proporciona una interfaz de edición perfecta para el usuario del tipo de paso.  Consulte Creación de pestañas de edición del tipo de paso personalizado en el editor de secuencias para obtener más información sobre cómo implementar interfaces de subpaso de edición incorporadas.

Comparación entre una interfaz de edición incorporada (arriba) y un subpaso de edición, que se inicia en una ventana separada (abajo)

Subpasos de edición simples frente a múltiples

Un tipo de paso personalizado puede definir muchas propiedades que pueden ser confusas si el usuario las visualiza todas a la vez.  Cuando use el enfoque típico de los subpasos de edición que se inician en una ventana independiente, utilice métodos organizativos en un solo subpaso de edición, como la introducción de pestañas, para organizar los datos en secciones manejables.  No se recomienda el uso de varios subpasos de edición porque cada interfaz debe iniciarse por separado.  Por ejemplo, el paso Abrir declaración SQL [Open SQL Statement] implementa un solo subpaso de edición con múltiples pestañas.   

El subpaso Editar [Edit] para el paso Abrir declaración SQL [Open SQL Statement] contiene dos pestañas para clasificar la configuración

Si utiliza el enfoque de panel de pasos incorporado para tipos de pasos complejos, resulta ventajoso usar múltiples paneles de edición, ya que los datos serán fácilmente visibles en las pestañas de pasos. Por ejemplo, el paso Prueba de límite numérico múltiple [Multiple Numeric Limit Test] incluye dos pestañas para editar la fuente de los datos numéricos y las condiciones de los límites para cada fuente de datos.  

Las pestañas Límite [Limit] y Fuente de datos [Data source] están implementadas en un panel de edición independiente

 

Hacer que los subpasos de edición sean modales para TestStand

Haga que subpasos de edición y otros módulos de código de interfaz de usuario sean siempre modales para TestStand, porque, cuando TestStand llama a los subpasos de edición, deshabilita el editor de secuencias. Si los módulos de código no son modales, la ventana de TestStand puede ocultar los módulos de código. Los usuarios podrían pensar que el editor de secuencias está bloqueado y pueden intentar cerrar TestStand.

Consulte el ejemplo Hacer que los cuadros de diálogo sean modales para TestStand para obtener más información sobre cómo implementar la modalidad en un módulo de subpasos.

 

Utilizar expresiones para maximizar la flexibilidad

El uso de campos de expresión en una interfaz de usuario de subpasos de edición es una forma flexible para que los usuarios interactúen con los datos y les permite usar variables y lógica en los valores de propiedad.  Sin embargo, trabajar con el control de expresión puede requerir una inversión mayor que trabajar con controles de cadena o numéricos, y requiere una verificación adicional para garantizar que la expresión se evalúe como un valor válido para la propiedad.  

Las expresiones son más flexibles que los valores fijos para especificar configuraciones

Definición del comportamiento cuando los desarrolladores crean instancias de pasos

En muchos casos, es posible que desee definir la funcionalidad que tiene lugar cuando un desarrollador de pruebas crea una nueva instancia de un paso.  Por ejemplo, el tipo de paso If integrado utiliza un subpaso OnNewStep para insertar un paso End coincidente.

Para implementar este tipo de funcionalidad, cree un subpaso de edición y cambie el nombre del subpaso a “OnNewStep”.  Estos subpasos suelen utilizar la API de TestStand para manipular la instancia de paso o crear instancias de pasos adicionales.

 

Recomendaciones generales para subpasos

Uso de parámetros frente a la API de TestStand para acceder a datos en subpasos

Al igual que con un módulo de código estándar, hay dos métodos para proporcionar datos de TestStand a un subpaso.  Puede pasar datos a través de los parámetros del módulo de código.  O bien, puede llamar a la API de TestStand desde el módulo de código para acceder directamente y cambiar las propiedades. Los subpasos previos y posteriores al paso generalmente solo necesitan leer las propiedades de los pasos para determinar su comportamiento. Por ejemplo, el valor de temperatura para configurar una cámara térmica.  Sin embargo, los subpasos de edición necesitan que se muestre el estado actual de las propiedades en la IU inicial, pero también necesitan una forma de actualizar cualquier valor que el usuario modifique.   

En la mayoría de los casos, lo más conveniente es usar parámetros para pasar datos en lugar de usar la API de TestStand para acceder a ellos directamente.  El uso de parámetros es menos propenso a errores: cualquier error en los nombres de propiedades o tipos de datos será fácil de encontrar, ya que las propiedades se definen en la configuración de tipo de paso en TestStand, no directamente en el módulo de código. Además, tener todas las propiedades definidas en la configuración del paso hace que el tipo de paso sea más fácil de mantener.  Cualquier cambio en las propiedades del paso puede lograrse sin modificaciones en el módulo de código.

Sin embargo, usar la API para acceder directamente a las propiedades puede ser útil en los casos en que el módulo de código accede a una variedad de datos de forma dinámica, en función del estado del paso.  El uso de parámetros de pasos en este caso puede llevar a una larga lista de parámetros donde solo algunos se usan en diversas condiciones.

El módulo Adaptador lee o escribe variables de paso para las entradas y salidas de los módulos de código y comprueba errores

 

Acceder a las propiedades de los pasos desde LabVIEW mediante la API de TestStand no proporciona verificación de errores de parámetros en el momento de la edición

Descarga de módulos al editar

Al desarrollar y probar módulos de código para subpasos de un tipo de paso personalizado, tenga en cuenta que TestStand carga y reserva el módulo de código en la memoria cuando se ejecuta el subpaso. Esto mejora el rendimiento, ya que el módulo permanece cargado para ejecuciones posteriores, pero no puede editar el módulo de código hasta que TestStand lo descargue. Puede descargar el módulo de código de una de estas dos maneras:

  1. Seleccione el Archivo » Descargar todos los módulos [File » Unload All Modules] para descargar cualquier módulo reservado actualmente en la memoria.
  2. En el panel de configuración de subpaso, seleccione el botón de edición para descargar el módulo y abrirlo en el entorno de desarrollo correspondiente.

 

Prácticas recomendadas para mantener tipos de pasos personalizados

Almacenamiento y distribución de tipos de pasos personalizados

Es importante plantearse cómo almacenar y distribuir los pasos personalizados que se crean. NI recomienda crear todos los tipos de pasos en un archivo de paleta de tipos, no dentro de un archivo de secuencia, porque TestStand busca actualizaciones de los archivos de paleta de tipos para el tipo de paso cuando carga un archivo de secuencia. TestStand también le ayuda a administrar la reutilización de pasos al guardar una copia de cada tipo de paso utilizado dentro de un archivo de secuencia. Si implementa el archivo de secuencia sin el archivo de paleta de tipos, el archivo de secuencia aún contiene una copia del tipo de paso.   

Como desarrollador de marcos de trabajo, es habitual que varios desarrolladores de pruebas utilicen sus tipos de pasos.  Esto puede ser un reto, ya que los tipos de pasos tienen muchos archivos asociados.  Para ayudar a administrar los archivos de tipo de paso, utilice los siguientes directorios para almacenar los archivos de su tipo de paso:

  • Archivo de paleta de tipos que contiene la definición de tipo <TestStand Public>/Components/TypePalettes/.
  • Archivos de módulo de código de subpaso <TestStand Public>/Components/StepTypes/[typeName].
  • Icono personalizado <TestStand Public>/Components/Icons/[typeName].

Al usar estos directorios, puede distribuir los archivos requeridos al directorio público de TestStand en cualquier sistema del desarrollador de pruebas.  Si ha definido el tipo en un archivo de paleta de tipos nuevo, puede configurar TestStand para importar automáticamente la paleta de tipos añadiendo un prefijo “Install_” al nombre del archivo de paleta de tipos.  Consulte el tema de ayuda Archivos de paleta de tipos para obtener más información sobre este método

 

Evitar cambiar el nombre o cambiar el tipo de datos de las propiedades del paso

Si necesita cambiar el tipo de una propiedad personalizada, puede hacerlo al crear otra propiedad con el nuevo tipo y reteniendo la propiedad con el tipo anterior. Si cambia el nombre o el tipo de datos de una propiedad, TestStand sustituye el valor de la propiedad en las instancias de pasos por el valor predeterminado de la propiedad. Además de crear una propiedad nueva con el nuevo tipo, puede agregar lógica al tipo de paso para manejar casos en los que un paso utiliza la propiedad anterior y la nueva. Por ejemplo, cuando TestStand implementó valores límite como expresiones, se agregaron dos nuevas propiedades booleanas para especificar el uso de la propiedad de límite numérico antiguos. Las propiedades UseLowExpr y UseHighExpr determinan si el paso evalúa los límites numéricos antiguos o los límites de expresión nuevos.

 

Was this information helpful?

Yes

No