データ、分析、およびデータの視覚化を検証する方法

アプリケーションのテストは、品質保証チームが機能テストを開発および自動化し、負荷テストとパフォーマンステストを実行し、静的コード分析を実行し、APIを単体テストでラップし、既知のセキュリティ問題に対してアプリケーションを検証するのに役立つツールを備えた成熟した分野です。DevOpsを実践しているチームは、自動テストのすべてまたはサブセットをCI / CDパイプラインに含めることで継続的テストを実装し、その結果を使用してビルドをターゲット環境に配信する必要があるかどうかを判断できます。

ただし、これらすべてのテスト機能は、アプリケーションの処理やデータ、分析、またはデータの視覚化の提示に不可欠な1つの重要なテストセットを簡単に無視できます。

データは正確であり、分析は有効ですか?データの視覚化は、対象分野の専門家にとって意味のある結果を示していますか?さらに、チームがデータパイプラインとデータベースを拡張する場合、変更がダウンストリームのアプリケーションやダッシュボードに害を及ぼさないようにするにはどうすればよいでしょうか。

データと分析が豊富なアプリケーションを開発した私の経験では、このタイプのテストと検証は、ユニット、機能、パフォーマンス、およびセキュリティのテストと比較して、しばしば考え直されます。また、いくつかの理由から、実行するのが難しい一連のテスト基準です。

  • データと分析の検証は、特にダッシュボードとアプリケーションを使用して洞察を開発したり意思決定を推進したりする方法に関して、通常は対象分野の専門家ではない開発者、テスター、およびデータサイエンティストにとって困難です。
  • データ自体は不完全であり、既知の、そしてしばしば未知のデータ品質の問題があります。
  • ほとんどのデータに適用される一般的なルールと、それに続くさまざまなタイプの外れ値のルールが続くことが多いため、検証ルールをキャプチャしようとするのは簡単ではありません。これらのルールをキャプチャしてコーディングしようとすることは、大量の複雑なデータセットを処理するアプリケーションやデータの視覚化にとって困難で複雑な提案になる可能性があります。
  • アクティブなデータ主導の組織は、分析と意思決定を改善するために、新しいデータセットをロードし、データパイプラインを進化させています。
  • 多くの場合、データ処理システムは複雑であり、結果を統合、管理、処理、モデリング、および提供するためのさまざまなツールがあります。

初めてチームが悪いデータや無効な分析を利害関係者に提示するのは、通常、これらのデータの問題をプロアクティブにテスト、診断、および解決するために、チームのプラクティスとツールが必要になる可能性がある最初の目覚めの呼びかけです。

データ系統とデータ品質を理解する

データの問題は、そのソースで、データのロードと処理で実行されるさまざまなデータ変換を通じて最もよく対処されます。ソースデータに新しいデータ品質の問題がある場合、またはデータパイプラインに欠陥が導入されている場合は、データ処理パイプラインの早い段階でこれらを特定して解決する方がはるかに効率的です。

2つのプラクティスと関連ツールがこれらの問題に役立ちます。どちらも、開発チームとデータチームが、ダウンストリームのデータ視覚化とアプリケーションに到達する前にデータの問題を特定できるようにします。

最初のプラクティスには、抽出、変換、およびロード(ETL)を行うためのアドオン機能であることが多いデータ品質ツールと、いくつかのデータ準備ツールが含まれます。データ品質ツールには複数の目的がありますが、できることの1つは、既知のデータの問題を特定して修正することです。一部の修正は自動化できますが、他の修正は例外としてフラグを付けてデータスチュワードに送信し、手動で修正したり、クレンジングルールを更新したりできます。

Informatica、Talend、IBM、Oracle、Microsoft、およびその他の多くのツールは、ETLプラットフォームにプラグインするデータ品質ツールを提供し、Tableau、Alteryx、Paxata、Trifactaなどのデータ準備ツールはデータ品質機能を備えています。

2番目の方法はデータ系統です。データ品質はデータの問題を特定するのに役立ちますが、データリネージは、データと基盤となる実装への変更を追跡する一連のプラクティスとツールです。これらは、データライフサイクルのどこで変換、計算、またはその他のデータ操作が実装されているかをユーザーが理解するのに役立ちます。次に、データリネージツール、レポート、およびドキュメントを使用して、データパイプラインまでさかのぼり、データフローのどこに欠陥またはその他の問題が発生したかを特定するのに役立ちます。

ゴールデンデータセットを使用してデータの視覚化を検証する

分析、ダッシュボード、およびデータの視覚化は、静的データソースでは機能しません。データは一定の速度で変化していると同時に、開発者やデータサイエンティストは、基盤となるデータフロー、アルゴリズム、および視覚化を変更している可能性があります。ダッシュボードを見ているとき、予期しないデータの問題がプログラムによる変更によるものなのか、それともデータやデータ品質の変更に関連するものなのかを区別するのは困難です。

変更を分離する1つの方法は、既知のゴールデンデータセットを分離して、データフロー、アプリケーション、およびデータ視覚化の変更を検証することです。テストチームは、ゴールデンデータセットを使用して、ユニットテスト、機能テスト、およびパフォーマンステストを定義し、出力を検証および比較できます。テスターはA / Bテストを実行できます。ここで、Aは実装の変更が導入される前の出力であり、Bは変更が行われた後の出力です。テストでは、データフロー、モデル、分析、ビジネスロジック、または視覚化が変更されたと予想される領域での出力の違いのみを表示する必要があります。

これは比較的単純な概念ですが、実装するのは簡単ではありません。

まず、チームはゴールデンデータセットを作成し、テストする包括的なサンプルセットを構成するデータの量と種類を決定する必要があります。また、さまざまなデータセグメント、境界条件、または分析モデルの検証に役立つ複数のデータセットが必要になる場合もあります。チームがテストデータを管理するのに役立つツールの1つは、テストデータ管理用のDelphixです。他のベンダーもこの機能を提供しています。

次に、ゴールデンデータセットが作成されると、テストチームは、環境内の基盤となるデータソースを切り替えるために追加の環境またはツールを必要とする場合があります。たとえば、テスターはゴールデンデータセットに対してテストしてから、本番データのレプリカであるデータに対して2回目の実行を行うことができます。クラウド環境で動作し、Puppet、Chef、AnsibleなどのInfrastructure-as-Codeツールを使用しているチームは、これらのさまざまな目的のために複数のテスト環境を構築および破棄できます。

最後に、テストチームには、データと結果のA / Bテストを実装するためのツールが必要です。私が知っている多くのチームは、SQLクエリを記述して結果を比較することにより、これを手動で行っています。データセットとテストが単純な場合は、このアプローチで十分な場合があります。ただし、データフロー内の複数のポイントをテストする必要がある場合は、テストクエリを一元化し、自動化し、レポートを使用して変更を検証するための専用ツールが必要になる可能性があります。1つのツールであるQuerySurgeは、データフロー、データベース、および一部のビジネスインテリジェンスツールに対するA / Bテストを実装するために特別に設計されています。

対象分野の専門家と効率的に連携する

ある時点で、新しいデータと更新されたデータの視覚化を使用してフィードバックを提供するには、対象分野の専門家を関与させる必要があります。彼らは、分析が有効であり、洞察を深めたり、データ主導の意思決定を支援したりするのに役立つかどうかについての質問に答えるのに役立つ必要があります。

多くのチームが直面している問題は、対象分野の専門家からこのテストに参加するのに十分な時間を確保することです。これは、変更を頻繁にテストして展開しようとする場合に重大な課題になる可能性があります。

彼らの時間を効率的に使うために、私は3つの別々の活動をお勧めします:

  • ゴールデンデータセットに可能な限り多くのデータ品質、データ系統、およびA / Bテストを実装します。対象分野の専門家を関与させる前に、生データと計算データが正しいことを検証するための合理的な努力をしてください。これは、基礎となるデータ、変換、および計算が正確であることを対象分野の専門家に説明し、理想的に説明できるように、自信を持って行う必要があります。したがって、手動でテストするために多大な時間を費やす必要がないことを確信できます。
  • 対象分野の専門家がデータと分析をレビューおよび検証できるように、データの視覚化を設計します。一部の視覚化はA / Bテストからの出力である可能性がありますが、他の視覚化は低レベルのデータを公開する視覚化である必要があります。大規模なデータ、アルゴリズム、モデル、または視覚化の変更を実装する場合、対象分野の専門家が迅速な検証を実行できるように、これらの品質管理データの視覚化を実施すると役立つことがよくあります。
  • 対象分野の専門家に、完成したアプリケーションとデータの視覚化に対してユーザー受け入れテスト(UAT)を実行してもらいたいと考えています。このステップに到達するまでに、データと分析が有効であるという完全な自信を持っているはずです。

この最後のステップは、視覚化がデータの探索と質問への回答に効果的かどうかを判断するために必要です。視覚化は使いやすいですか?データをドリルダウンするために利用できる正しいディメンションはありますか?視覚化は、答えるように設計された質問にうまく答えるのに役立ちますか?

プロセスのこの時点で、ユーザーエクスペリエンスをテストし、ダッシュボードとアプリケーションが最適化されていることを確認します。この重要なステップは、基礎となるデータと分析に理解と信頼がある場合、はるかに効率的に実行できます。