Articulo de referencia

Generador de pruebas aleatorias

Los generadores de pruebas aleatorias (a menudo abreviados como RTG o ISG [ 1 ] por Instruction Stream Generator o Instruction Sequence Generator [ 1 ] ) son un tipo de software...

Los generadores de pruebas aleatorias (a menudo abreviados como RTG o ISG [ 1 ] por Instruction Stream Generator o Instruction Sequence Generator [ 1 ] ) son un tipo de software informático que se utiliza en la verificación funcional de microprocesadores . Su uso principal radica en proporcionar estímulos de entrada a un dispositivo bajo prueba .

En un entorno de verificación de simulación / banco de pruebas , el simulador procesa la entrada creada por el RTG y los monitores de cobertura pueden usarse para verificar que el generador esté probando correctamente el diseño. [ 2 ]

Los generadores de pruebas aleatorias abarcan desde scripts sencillos y macros parametrizadas que se pueden crear en cuestión de semanas hasta sistemas completos que requieren un extenso desarrollo de software. Generalmente, los generadores de pruebas aleatorias son creados por las propias organizaciones que los diseñan.

Generadores basados ​​en tablas

Los generadores de pruebas basados ​​en tablas son los más sencillos disponibles. Su creación es relativamente rápida y su mantenimiento suele ser mínimo. Estos generadores funcionan capturando el conocimiento de la arquitectura del conjunto de instrucciones del diseño y almacenándolo en una base de datos relacional para su uso posterior. Gracias a su simplicidad, pueden ser utilizados por personal con menos experiencia para crear pruebas interesantes. Sin embargo, presentan una desventaja: su implementación suele estar restringida a arquitecturas sencillas. Su uso en arquitecturas de conjunto de instrucciones más complejas puede impedir alcanzar casos límite o crear escenarios complejos. Además, en ocasiones, los generadores basados ​​en tablas pueden generar pruebas no válidas.

Generadores estáticos

Los generadores estáticos son similares a los generadores basados ​​en tablas, con la excepción de que la mayor parte de la selección de instrucciones, operandos y datos reside en un código procedimental complejo . Los generadores estáticos pueden producir un comportamiento más aleatorio que los generadores basados ​​en tablas, pero aún presentan dificultades para abarcar muchos casos límite. Además, el nivel de habilidad requerido para crear y mantener una herramienta de este tipo aumenta considerablemente una vez alcanzado este nivel de sofisticación.

Generadores dinámicos

Los generadores dinámicos incorporan un conocimiento significativo sobre la arquitectura que se está probando. Mejoran la capacidad de los usuarios menos experimentados para generar pruebas complejas que pueden abarcar casos límite difíciles de alcanzar sin tropezar con errores de programación sutiles. Este conocimiento adicional, la flexibilidad y la facilidad de uso se reflejan en un generador más complejo y, por consiguiente, el costo de crearlo y mantenerlo es mayor que el de los generadores estáticos o basados ​​en tablas.

Referencias

  1. 1 2 Introducción a FORCE-RISC-V , OpenHW Group, 21 de febrero de 2023 , consultado el 25 de febrero de 2023
  2. "Generador de pruebas aleatorias: cerrando la brecha | BCS" . www.bcs.org . Consultado el 25 de febrero de 2023 .
  • IBM Genesys Pro archivado el 16 de marzo de 2006 en Wayback Machine .
  • Obsidian Software RAVEN
  • MicroTESK , un generador de conjuntos de instrucciones de código abierto desarrollado por la Academia de Ciencias de Rusia.
  • Artículo de IEEE: Un generador de pruebas aleatorias universal para la verificación funcional de microprocesadores y sistemas en chip.