A medida que la cobertura de pruebas y la complejidad de las aplicaciones crecen, los ingenieros a menudo pasan más tiempo manteniendo la infraestructura de gestión de pruebas que desarrollando mediciones, lo que conduce a sistemas menos mantenibles y de baja reutilización. La secuenciación es una parte esencial de la gestión de pruebas, lo que permite pruebas y mediciones automatizadas.
Este informe técnico explora el uso de secuenciación y secuenciación sin código a nivel de aplicación en un marco de gestión de pruebas dedicado como NI TestStand y cómo determinar el mejor enfoque para usted. Este informe técnico también discutirá cómo la IA se puede utilizar para acelerar el desarrollo y cómo NI LabVIEW+ Suite se compara con las soluciones de código abierto.
Los ingenieros a menudo pasan demasiado tiempo desarrollando secuenciadores en lugar de desarrollar código de prueba, ralentizando la implementación y la ejecución de pruebas. A medida que crecen los requisitos, la secuenciación y el soporte de código se convierten en una segunda base de código. El trabajo típico cambia de nuevas mediciones a mantenimiento de la infraestructura. Las operaciones como la ejecución de pasos, la configuración, la implementación del sistema de prueba, el manejo de errores, el registro y los informes deben desarrollarse y mantenerse para garantizar la productividad de prueba continua. Cambiar el enfoque de la ejecución de pruebas a la gestión de pruebas reduce la productividad, ralentiza la replicación a nuevas estaciones y aumenta el riesgo. Cualquier pequeño cambio en la orquestación de la prueba puede romper un código de medición estable.
Otro desafío que a menudo se pasa por alto es el de no dedicar suficiente tiempo o esfuerzo a la infraestructura de gestión de pruebas, lo que conduce a un desarrollo repetitivo en etapas posteriores. Tomemos, por ejemplo, un equipo de validación que solo puede tener necesidades de automatización simples. Al pasar de la validación a la producción, es probable que las pruebas ejecutadas se superpongan. Si la infraestructura de prueba está desalineada, puede dar lugar a un redesarrollo innecesario del código de prueba existente y a una automatización que de otro modo podría haberse trasladado a la siguiente etapa de desarrollo del producto.
Un secuenciador es la capa de control que define el flujo de prueba, como el orden de pasos, la ramificación, los límites/decisiones, el manejo de errores, la generación de informes y el uso de recursos (instrumentos, conexiones DUT, directorios de archivos, etc.). En el diseño y validación, los equipos suelen comenzar con mediciones interactivas para obtener el “primer rastro” rápidamente, luego agregar automatización tan pronto como se repite el flujo de trabajo. Estos pasos trazan una progresión común:
La secuenciación básica se puede manejar en aplicaciones interactivas para flujos de automatización lineal simples. Programas como InstrumentStudio y NI FlexLogger, que ofrecen herramientas de automatización de pruebas sin código, serían ejemplos de este tipo de aplicaciones interactivas.
Por ejemplo, imagine que necesita validar un dispositivo bajo prueba (DUT). En InstrumentStudio, puede automatizar un conjunto de pasos repetidos en una secuencia como configurar su instrumento para generar una señal conocida, medir la respuesta del DUT y capturar los resultados. Esta secuencia repetible le permite volver a ejecutar rápidamente el mismo proceso en el mismo dispositivo o en varios, lo que garantiza la coherencia y el ahorro de tiempo en comparación con la operación manual, sin necesidad de código adicional. Sin embargo, es importante señalar que este tipo de secuencia es típicamente lineal y solo ejecuta los mismos pasos en el mismo orden para cada dispositivo. Para el control de flujo de secuencia extendido, modelos de procesos especializados o IU e informes personalizados, necesitaría una herramienta de secuenciación más avanzada. Las secuencias incorporadas en InstrumentStudio se guardan como un archivo de secuencia que también se puede abrir en TestStand para una funcionalidad de gestión de pruebas extendida.
Consulte la Tabla 1 para obtener una lista más detallada de lo que puede y no puede lograrse utilizando el secuenciador InstrumentStudio.
Nota: El secuenciador InstrumentStudio requiere una licencia InstrumentStudio Professional, que también está incluida en LabVIEW+ Suite.
Para obtener más información sobre el secuenciador InstrumentStudio, visite la página de documentación de la herramienta InstrumentStudio sequencer.
Figura 1. InstrumentStudio Sequencer
Otro ejemplo de secuenciación de automatización sin código es automatizar el registro para la respuesta de salida de un módulo sensor usando FlexLogger. FlexLogger ofrece un plug-in de secuenciación para automatizar el registro de datos de un DUT, incluida la inicialización de un dispositivo de adquisición de datos, la aplicación de señales de estímulo al DUT y el registro de datos durante una duración definida en una secuencia lineal. Este plug-in permite la ejecución lineal de secuencias basadas en pasos, la ramificación básica a nivel de paso (saltar, repetir, detener o saltar al paso) y la lógica condicional sondeada (comienzo, parada, condiciones previas y acciones posteriores al paso), lo que permite la automatización de los procedimientos de prueba sin necesidad de desarrollar código.
En el cuadro 2 se ofrece una lista más detallada de lo que puede y no puede lograrse utilizando el complemento de secuenciación FlexLogger.
Nota: El plug-in de secuenciación para FlexLogger requiere una licencia FlexLogger Professional, que también está incluida en LabVIEW+ Suite.
Para obtener más información sobre el Sequencer Plug-In, visite https://github.com/ni/niflexlogger-plugins/tree/main/PDK%20plugins/Output%20Sequencer
Figura 2. FlexLogger Sequencing Plug-In
La secuenciación compleja añade variabilidad (parámetros basados en datos), reintentos/lógica de salto, paralelismo (multi-UUT, multi-sitio), arbitraje de recursos y trazabilidad. Las complejas capacidades de secuenciación son cruciales en la validación y producción porque imponen la ejecución repetible a través de estaciones, variantes, mejoran el rendimiento utilizando modelos avanzados de procesos, definen el comportamiento determinista y producen un seguimiento/informe consistente para la depuración y auditoría de resultados.
Una prueba de producción funcional con TestStand, por ejemplo, podría ejecutar los mismos pasos de medición principales para múltiples variantes de producto y múltiples unidades bajo prueba (UUT), al tiempo que se adaptan los parámetros y el flujo basándose en un archivo de configuración o número de pieza escaneado. La secuencia puede inicializar recursos compartidos, como chasis PXI, fuentes de alimentación o accesorios, y luego ejecutar subprocesos de prueba por UUT en paralelo mientras bloquea instrumentos que no se pueden compartir. Si una medición falla, la secuencia puede aplicar ramificación condicional, como ejecutar una subsecuencia de diagnóstico o saltar a un apagado seguro, y puede capturar resultados estandarizados en un informe rastreable con número de serie, límites, ID de operador y metadatos de calibración. Este proceso asegura que cada estación produzca datos consistentes para depurar y auditar los resultados de la secuencia.
Figura 3. Editor de secuencias TestStand
La LabVIEW+ Suite cubre la secuenciación a múltiples niveles, dependiendo de dónde se encuentre en el flujo de trabajo de desarrollo.
Esta sección describe tres estrategias distintas para organizar secuencias de pruebas automatizadas en función de los requisitos específicos de su proyecto. Elegir el enfoque correcto depende de equilibrar sus necesidades de velocidad de configuración, escalabilidad y mantenimiento a largo plazo.
Utilice herramientas de automatización de pruebas sin código como FlexLogger o InstrumentStudio cuando el flujo es sencillo y desea una rápida aparición sin crear un marco. Estos productos son los más adecuados para la validación y caracterización de bancos: ejecuciones repetibles donde las necesidades de informes y trazabilidad son mínimas.
La secuenciación de automatización sin código simplifica la automatización que a menudo se realiza utilizando un lenguaje de scripting como Python, que ahora se puede realizar a nivel de aplicación, reduciendo la cantidad de código que se necesita escribir y validar.
Cambie a TestStand cuando necesite coordinar varias estaciones, realizar cambios frecuentes, requerir una interfaz de operador, necesitar informes estandarizados, admitir la ejecución multi-UUT o en paralelo, o debe cumplir con los requisitos de cumplimiento y trazabilidad. En estos casos, mantenga el código de medición modular y traslade el control de flujo, el manejo de resultados y las preocupaciones de implementación al secuenciador, para que la orquestación no se extienda en cada módulo de prueba.
El principal caso de uso para un marco de gestión de pruebas es sin duda en entornos de prueba de producción donde un alto volumen, alto rendimiento y trazabilidad de prueba son un requisito. Sin embargo, las aplicaciones de gestión de pruebas también pueden encontrar un lugar dentro de las etapas de validación de la prueba. Tomemos, por ejemplo, cuando se necesita ejecutar un gran volumen de pruebas de validación y/o caracterización, las limitaciones de un secuenciador simple se harán evidentes rápidamente, particularmente en lenguajes como Python que carecen de optimización de velocidad. Además, puede haber una brecha entre los ciclos de validación y producción, donde el código puede necesitar ser reescrito para ser más optimizado para la prueba de producción. Usar TestStand tanto en validación como en producción garantiza que los equipos de validación estén bien equipados para situaciones que requieren pruebas de gran volumen y una transición más fluida a la etapa de producción de desarrollo.
Desarrolle un secuenciador personalizado solo cuando sus requisitos sean estables y pueda comprometerse con la propiedad a largo plazo (mantenimiento, documentación, incorporación e implementación/actualizaciones automatizadas). Fuera de la secuenciación básica, el costo de propiedad suele ser significativo en comparación con el uso de herramientas de secuenciación comprobadas y mantenidas.
El software NI reduce el riesgo cuando necesita soporte de hardware integrado, motor de ejecución mantenido, herramientas de implementación y generación de informes/trazabilidad integrados. El software de código abierto puede funcionar si su equipo posee el framework a largo plazo y sus requisitos (combinación de hardware, informes, implementación) son simples, lineales y estables. Sin embargo, fuera de la secuenciación básica, la propiedad de un marco personalizado induce un costo significativo de propiedad en el desarrollo y mantenimiento, y estos ya se pueden manejar dentro de software de NI como InstrumentStudio y FlexLogger.
Además, TestStand como parte de LabVIEW+ Suite ofrece un rendimiento de prueba inigualable, en comparación con la optimización de ejecución más lenta de Python, y menos complejidad de desarrollo de secuenciadores en comparación con el desarrollo en C o .NET. TestStand ofrece un marco de gestión de pruebas completo que hemos optimizado y mantenido durante décadas, para ahorrar a los ingenieros el esfuerzo de tener que volver a desarrollar la misma solución que ya está disponible en el mercado.
La IA acelera el desarrollo de la secuenciación de pruebas. Muchos desarrolladores utilizan la IA para generar código de medición, analizar datos de prueba e incluso crear secuencias más delgadas simples en sus idiomas preferidos. NI Nigel™ AI está integrado directamente en LabVIEW+ Suite, por lo que puede aprovechar Nigel AI para todo esto y más. Nigel AI con LabVIEW+ Suite ofrece varios beneficios sobre otras soluciones de IA.
Nigel está entrenado específicamente para aplicaciones de prueba y medición y puede proporcionar información sobre cómo usar LabVIEW, InstrumentStudio, FlexLogger y TestStand para ayudarle a aprender y comenzar más rápido. Nigel proporciona orientación sobre qué funciones y configuración utilizar y pronto podrá generar una secuencia TestStand completa a partir de un indicador, tal como podría hacer en Python o C, en un marco de gestión de pruebas completamente desarrollado para mayor robustez.
La secuenciación de pruebas es una parte fundamental de la gestión de pruebas porque define cómo se ejecutan las mediciones, incluido el orden de pasos, la ramificación, los límites/decisiones, el manejo de errores y el registro/informe de resultados. A medida que crece la cobertura de pruebas y la complejidad de las aplicaciones, la secuenciación y la infraestructura de soporte pueden convertirse rápidamente en una segunda base de código que ralentiza la implementación y aumenta el riesgo.
Con LabVIEW+ Suite, puede escalar la automatización sin necesidad de incorporar la orquestación, los informes, la implementación y la trazabilidad en todos los módulos de medición mediante el uso del enfoque de secuenciación más simple que satisface las necesidades actuales con InstrumentStudio o FlexLogger, mientras planifica un camino claro hacia un marco de gestión de pruebas dedicado con TestStand a medida que los requisitos se expanden desde la validación hasta la producción. Además, Nigel AI ofrece una asistencia integral en IA y una futura orquestación del desarrollo de secuenciación, proporcionando información completa sobre hardware y software, y una generación de secuencias que pronto se implementará para llevar su automatización al siguiente nivel.
| Área | Capacidad del secuenciador InstrumentStudio | InstrumentStudio Sequencer Limitación |
|---|---|---|
| Construyendo una secuencia | Añadir paneles de instrumentos como pasos secuenciales para configurar plug-ins de E/S y medición para pasos de medición personalizados | No admite ramificación avanzada, lógica condicional o ejecución en paralelo dentro de secuencias |
| Configuración de pasos | Cree pasos directamente desde las mediciones del panel InstrumentStudio. Al configurar una medición dentro de un panel de instrumentos, InstrumentStudio puede traducir la configuración directamente en un paso de automatización | No se puede crear una lógica de medición personalizada ni integrar scripts/códigos externos para la ejecución de pasos |
| Barre | Implemente barridos básicos de un solo nivel con progresión lineal de parámetros | No admite barridos anidados, estructuras de bucle complejas ni cambios dinámicos de parámetros basados en los resultados de las pruebas |
| Ejecución de secuencias | Ejecutar secuencias para realizar cada paso de medición definido. Las mediciones se muestran en vivo en InstrumentStudio durante la ejecución. | No se puede ramificar la ejecución en función de los resultados de los pasos, ejecutar pruebas paralelas o manejar los flujos de trabajo del operador |
| Informe de secuencias | Generar un archivo PDF que detalle los resultados de cada ejecución de secuencia | No se pueden personalizar los formatos de informe más allá del .pdf predeterminado ni generar análisis o resúmenes avanzados automáticamente |
| Registro de secuencias | Genera automáticamente un registro de ejecución que se puede utilizar para el rastreo y validación de las ejecuciones de secuencias | No proporciona administración avanzada de registros, opciones de exportación ni integra registros con sistemas externos automáticamente |
Tabla 1. Tabla de comparación de secuenciadores InstrumentStudio
| Área | FlexLogger Secuenciación Plug-In Capacidad | FlexLogger Secuenciación Plug-In Limitaciones |
|---|---|---|
| Modelo de secuenciación | Ejecutar secuencias lineales basadas en pasos con duraciones definidas | Actuar como una máquina de estado completo con estados jerárquicos o paralelos |
| Control del flujo | Ramificación a nivel de paso: omitir paso, repetir paso, detenerse o saltar a un paso específico | Soporta flujo de control arbitrario (switch/case, ramificación anidada, etiquetas dinámicas) |
| Lógica condicional | Utilice expresiones condicionales (booleanas/numéricas) para iniciar, detener, precondiciones y acciones posteriores al paso | Reaccionar de forma determinista o instantánea a los eventos (las condiciones son sondeadas, no impulsadas por interrupciones) |
| Bucles | Implemente bucles básicos repitiendo pasos o saltando a pasos anteriores | Cree bucles calculados dinámicamente o secuencias generadas en tiempo de ejecución |
| Canales de salida | Dispara múltiples canales de salida analógicos y digitales por instancia de secuenciador | Exceda los límites de hardware / FlexLogger o especifique un valor explícito de “canales máximos” (no definido) |
| Valores de salida | Mantener, rampar, interpolar y calcular salidas mediante fórmulas (última, predeterminada, t, funciones matemáticas) | Ejecutar código de usuario (LabVIEW VIs, Python, algoritmos personalizados) dentro de un paso |
| Temporización | Ejecutar pasos programados por software adecuados para secuenciación lenta/moderada | Proporciona un control de forma de onda de alta velocidad, determinista y temporizado por hardware |
| Reactividad | Canales de entrada mapeados de referencia en condiciones | Garantía de respuesta de latencia cero (los valores de entrada pueden retrasarse ligeramente) |
| Runtime Behavior | Ejecutar varias instancias de plug-in secuenciador independientes en un proyecto | Modificar la estructura de la secuencia (pasos, canales, lógica) mientras se ejecuta |
| Casos de uso | Procedimientos de ensayo, combustión, perfiles de durabilidad, rampas/retenciones condicionales | Sustituir los PLC, los enclavamientos críticos para la seguridad, el control en bucle cerrado |
Tabla 2: Tabla de comparación de plug-ins de secuenciación FlexLogger