1

当社のソフトウェアは、さまざまなソースからの多くのデータ フィードを管理します。リアルタイムで複製されたデータベース、自動的に FTP 送信されたファイル、リンク サーバーからのデータのスナップショットをキャッシュするためのデータベース ストアド プロシージャのスケジュールされた実行、およびその他の多数のデータ取得方法です。

このデータを確認して検証する必要があります。

  • インポートが発生したことさえあります
  • 妥当なデータ (null 値、行数など)
  • データは他の値と一致しますか (おそらく、同様のデータのソースが複数あります)
  • データが不足しており、インポートには手動でプロンプトを表示する必要があります

多くの点で、これは単体テストに似ています。作成するチェックには多くの種類があります。新しいチェックをリストに追加し、特定のイベントに応じて各クラスのテストを再実行するだけです。テストを実行するための優れた GUI が既にあり、おそらくそれらをスケジュールすることさえできます。

これは良いアプローチですか?同様に一般化された、より優れたデータ検証パターンはありますか?

私たちは .NET ショップです。Windows ワークフロー (WF) はより優れた、より柔軟なソリューションでしょうか?

4

2 に答える 2

1

単体テストは、実行する必要があることとは異なります。統合テストまたは受け入れテストに沿ったものです。しかし、それは論外です。

お使いのシステムには、システムに入ってくるデータの検証に関する厳しい要件があります。データはさまざまな手段でシステムに入力され、さまざまな方法で検証する必要があると思います。

ワークフローは、変更されやすい、または人間の介入が必要なビジネス プロセス (ロジック) を設計および制御するのに適しています。検証の対象になると、それは不可知論的です。ただし、検証プロセスをワークフローとしてホストすることは良い考えかもしれません。ワークフローは柔軟で長寿命で、人間の介入が可能なように設計されているためです。ワークフロー ステート マシン フレームワーク内で検証プロセスをホストすると、実行時にさまざまな種類のデータ インポートの検証戦略を定義できます。

ロジックの継承よりも構成に大きく依存する検証フレームワークを設計する必要があります。データをシステムにインポートし、アトミック ステップに検証するさまざまな方法をすべて分解します。これらのステップを責任ごとにグループ化し、実装オブジェクトがそれぞれを実行するために必要な最小限のプロパティとメソッドを備えたインターフェイスを作成します。これらのさまざまなインターフェイスで構成される基本クラスを作成します。このフレームワークから、特定のインポートまたは検証ステップに適した実装を組み合わせることができます。

最後に一つだけ。ワークフローは、長期保存のために xaml にシリアル化されます。アクティビティからリポジトリへの移行を可能な限りスムーズかつシンプルにするために、クラスは xaml でシリアライズ可能である必要があります。

于 2008-09-24T11:30:51.127 に答える
0

このデータの妥当性をテストすることは合理的と思われます。あなたはそれをユニットテストと呼ぶかもしれないし、そうでないかもしれません、それはあなたの選択です。私はしません。この仕事に最適なツールを使用してください-WF(WebForms?)の意味がわかりません。

これを自動的にテストすることで得られる最大のメリット。自動であなたのために働くものは何でも、良いです。

于 2008-09-24T09:56:23.163 に答える