Question

Notre logiciel gère un grand nombre de sources de données provenant de différentes sources: bases de données répliquées en temps réel, fichiers automatiquement envoyés par FTP, exécution programmée de procédures stockées de base de données pour mettre en cache des instantanés de données provenant de serveurs liés et de nombreuses autres méthodes d’acquisition de données.

Nous devons vérifier et valider ces données:

  • une importation est même arrivée
  • les données sont-elles raisonnables (valeurs nulles, nombre de lignes, etc.)
  • les données sont-elles réconciliées avec d'autres valeurs (nous avons peut-être plusieurs sources pour des données similaires)
  • est-ce qu'il manque de données et l'importation a besoin d'une invite manuelle

À bien des égards, cela ressemble au test unitaire: il existe de nombreux types de contrôles à effectuer. Ajoutez simplement un nouveau contrôle à la liste et réexécutez chaque classe de tests en réponse à un événement particulier. Il existe déjà de bonnes interfaces graphiques pour l'exécution de tests, voire même leur planification.

Est-ce une bonne approche? Existe-t-il de meilleurs modèles, généralisés de la même manière, pour la validation des données?

Nous sommes une boutique .NET. Windows Workflow (WF) serait-il une solution plus souple et plus performante?

Était-ce utile?

La solution

Les tests unitaires ne sont pas analogues à ce que vous devez faire. C’est plutôt dans le sens des tests d’intégration ou des tests d’acceptation. Mais ce n'est pas la question.

Votre système a de fortes exigences pour la validation des données qui entrent dans le système. Les données entrent dans le système par divers moyens et je suppose qu'elles doivent être vérifiées de différentes manières.

Le flux de travail permet de concevoir et de contrôler des processus métier (logiques) susceptibles de changer ou de nécessiter une intervention humaine. Il est agnostique en matière de validation. Cependant, héberger votre processus de validation sous forme de flux de travail peut être une bonne idée, car les flux de travail sont conçus pour être flexibles, durables et capables d'intervention humaine. L'hébergement de votre processus de validation dans une infrastructure de machine à états de flux de travail vous permettrait de définir des stratégies de validation pour différents types d'importation de données au moment de l'exécution.

Vous devez concevoir un cadre de validation qui repose fortement sur la composition plutôt que sur l'héritage pour sa logique. Séparez les différentes manières dont les données peuvent être importées dans le système et validées en étapes atomiques. Regroupez ces étapes par responsabilité et créez des interfaces avec les propriétés et les méthodes les plus simples et minimales requises pour qu'un objet d'implémentation les exécute. Créez des classes de base composées de ces différentes interfaces. À partir de ce cadre, vous pouvez combiner des implémentations adaptées à une étape d’importation ou de validation particulière.

Une dernière chose. Les workflows sont sérialisés en xaml pour un stockage à long terme. Vos classes doivent également être sérialisables xaml pour que la transition d’activité à référentiel soit la plus simple et la plus fluide possible.

Autres conseils

Le test de validité de ces données semble raisonnable. Vous pouvez ou non appeler cela des tests unitaires, c'est votre choix. Je ne voudrais pas Utilisez l’outil qui vous convient le mieux pour ce travail. Je ne sais pas ce que vous entendez par WF (WebForms?).

Le meilleur avantage que vous obtiendrez en testant ce système automatiquement. Tout ce qui est automatique et qui fonctionne pour vous est bon.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top