/note/tech

データテストフェーズ論

要約:

■ 1. 概要

  • テーマ: SaaS領域におけるデータ品質向上の取り組みとその段階的実装戦略

■ 2. データ環境

  • DWHにはGoogle BigQueryを採用
  • 内製ETLフレームワークによりデータ処理を実施
  • One Big Tableフォーマットのデータマートを約50個提供

■ 3. 課題

  • テスト不足によりバグが偶発的にしか発見されない状況
  • レガシーなロジックが継続使用されることによる品質低下
  • ドキュメントの欠落により保守性が低下

■ 4. 導入ツール

  • dbt:
    • トランスフォーム処理とテスト管理に使用
  • Elementary:
    • dbtネイティブの観測可能性サービス
    • テスト失敗時にSlack通知を送信
    • UIによるモニタリング機能を提供

■ 5. 段階的テスト実装戦略

  • Phase1(クリティカルエラーテスト):
    • 重複チェックにより同一データの重複を検出
    • Nullチェックにより必須項目の欠損を検出
    • 値確認により基本的な異常値を検出
  • Phase2(整合性テストとサービスデータ変更検知):
    • ビジネスロジック観点でカラム間の矛盾を検出
    • 例として「解約フラグが立てばステータスは解約」といった業務ルールを検証
    • 複数カラムの合計が特定カラムと一致するかを確認するカスタムテストを開発
    • 複雑な条件に対応するためカスタムテストを独自開発
  • Phase3(ディメンショナルモデリング):
    • レイヤー別アーキテクチャへの移行を目指して進行中
    • 保守性の向上を目的とした構造改善

■ 6. 実装結果

  • 49マートに対してテストを実施
  • 合計3,076個のテストを構築
  • 120件の不具合を検知
  • 既存データの潜在的な問題を可視化