Pregunta

Nuestro software gestiona una gran cantidad de fuentes de datos de diversas fuentes:bases de datos replicadas en tiempo real, archivos enviados por FTP automáticamente, ejecución programada de procedimientos almacenados de bases de datos para almacenar en caché instantáneas de datos de servidores vinculados y muchos otros métodos de adquisición de datos.

Necesitamos verificar y validar estos datos:

  • ¿Ha ocurrido alguna importación?
  • ¿Son los datos razonables (valores nulos, número de filas, etc.)?
  • ¿Los datos se concilian con otros valores (tal vez tengamos varias fuentes de datos similares)?
  • ¿Se ha quedado sin datos y la importación debe solicitarse manualmente?

En muchos sentidos, esto es como las pruebas unitarias:Hay muchos tipos de comprobaciones que realizar, simplemente agregue una nueva verificación a la lista y vuelva a ejecutar cada clase de prueba en respuesta a un evento en particular.Ya existen buenas GUI para ejecutar pruebas, tal vez incluso para poder programarlas.

¿Es este un buen enfoque?¿Existen patrones mejores, igualmente generalizados, para la validación de datos?

Somos una tienda .NET, ¿Windows Workflow (WF) sería una solución mejor y más flexible?

¿Fue útil?

Solución

Las pruebas unitarias no son análogas a lo que usted necesita hacer.Es más parecido a las pruebas de integración o las pruebas de aceptación.Pero eso no viene al caso.

Su sistema tiene una gran necesidad de validación de los datos que ingresan al sistema.Los datos ingresan al sistema por varios medios y supongo que deben verificarse de diferentes maneras.

El flujo de trabajo es bueno para diseñar y controlar procesos de negocio (lógica) que son propensos a cambiar o requieren intervención humana.Es agnóstico en lo que respecta al tema de la validación.Sin embargo, puede ser una buena idea alojar su proceso de validación como un flujo de trabajo, ya que los flujos de trabajo están diseñados para ser flexibles, duraderos y capaces de intervención humana.Alojar su proceso de validación dentro de un marco de máquina de estado de flujo de trabajo le permitiría definir estrategias de validación para diferentes tipos de importación de datos en tiempo de ejecución.

Es necesario diseñar un marco de validación que dependa en gran medida de la composición sobre la herencia para su lógica.Separe todas las diferentes formas en que se pueden importar datos al sistema y validarlos en pasos atómicos.Agrupe esos pasos por responsabilidad y cree interfaces con las propiedades y métodos más básicos y mínimos necesarios para que un objeto de implementación realice cada uno de ellos.Cree clases base que se compongan de estas diferentes interfaces.Desde este marco, puede mezclar y combinar implementaciones que se adapten al paso de importación o validación en particular.

Una última cosa.Los flujos de trabajo se serializan en xaml para su almacenamiento a largo plazo.Sus clases también deben ser serializables en xaml para que la transición de la actividad al repositorio y viceversa sea lo más fluida y sencilla posible.

Otros consejos

Probar la validez de estos datos parece razonable.Puedes o no llamarlo Prueba Unitaria, esa es tu elección.Yo no lo haría.Utilice la herramienta que mejor le parezca para este trabajo. No sé a qué se refiere con WF (¿WebForms?).

El mayor beneficio que obtienes al probar esto automáticamente. Todo lo que sea automático y funcione para usted, es bueno.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top