2012-04-28 5 views
1

私は、手動のUIテストでテストデータをどのように処理するかについての提案が必要です。私たちのアプリケーションでは、データベースからデータを取り込み、手動でテストする必要があります。機密データを取り扱っているため、テストシステム(または開発マシン)で使用するための生産的なデータをダンプすることはできません。テストシステムの生産的なデータ

どのようにこの問題に対処しますか?私はテストでそれを使用するための生産的なデータをマスクする可能性について考えていますが、これにフリーまたはオープンソースのツールがありますか?大量のデータを生成する可能性があるため、私はこのソリューションを好むでしょう。私はあなたにアイデアがあることを願っています。テストデータを手動で作成するのは本当に時間がかかるでしょう。

答えて

0

DAO(データアクセスオブジェクト)を使用してデータにアクセスする場合、コードをテストするためにそのオブジェクトのモックを作成することができます。これはプロジェクトでMockitoを使用しました。テストしているコードがデータベースに直接アクセスしている場合は、ある種の「テスト用データベース」を指す必要があります。

モックの特別な機能は、いわゆるスパイオブジェクトです。基本的な実オブジェクトにラップされます。ここではいくつかのメソッドをテストコードでオーバーライドすることができます。つまり、削除を無効にする、マスクを作成するなどです。モックオーバーライドされていないメソッドはすべて、 http://docs.mockito.googlecode.com/hg/latest/org/mockito/Mockito.html

+0

さて、そうです。私はユニットテストのためにすでにMockitoを使用しています。しかし、動作しないテストシステムでGUIを手動でテストする場合。私の要件は、クライアントの膨大な量のデータを見ることです。 – Kai

+0

には、可能な解決策がいくつかあります。データベーステスト用のJUnitの拡張機能があります。http://www.dbunit.org/howto.htmlを使用することができます。または、独自のJDBCドライバを作成して、実際のJDBCドライバの上にフィルタとして機能させることもできます。http://www.javaworld.com/javaworld/jw-05-2002/jw-0517-jdbcdriver.html –

+0

誰かがこれについて尋ねたのは初めてです:http://stackoverflow.com/questions/266370/how-do-i-unit-test-jdbc-code-in-java –

2

RedGate Sqlデータマスカhttp://www.red-gate.com/labs/sql-data-masker/はこの問題のために設計されていますが、フリーでもオープンソースでもありません。いくつかのランダム化関数にループして、たくさんのジャンクを生成することができますが、 "ビルド"よりも "バイ"を探しているようです。

+0

このSQL Serverのみが動作します。 – Kai

1

マスキングするときに考慮すべき点はさまざまです。たとえば、次のようになります。

  • すべての機密データがデータベース内のどこにあるか知っていますか。
  • 参照整合性の重要性。
  • は、時間の経過とともに、必要なデータベース間で一貫性があります。
  • それぞれのデータをどれだけ明確にしたいと考えていますか?
  • 本当にデータベース全体をマスクする必要がありますか?

これらの項目を手動で満たすことができれば、それは素晴らしいことです。しかし、コストを抑えながらこれをタイムリーに実行しようとしている場合(会社とそのデータベースを公開から保護することはもちろん)、データマスキングのベストプラクティスをwww.datamaskingでご覧になることをお勧めします.com

これが役に立ちます。