テスト 枝刈り
テスト実行時間を短縮するため、変更に関係のある箇所のテストだけを実行したいニーズがある 実現している例
必要な言語特性やエコシステム
依存関係の明確化・管理
テストのメタデータやタグ付け
カバレッジ解析・インストルメンテーション
インクリメンタルビルド・キャッシュ機構
差分検知との連携 (VCS, CI/CD)
Ruby
Rubyのプロジェクトでは事前に依存関係を把握することが難しい 静的解析
Shopifyはテストの時間短縮を目的の1つとして依存関係の静的解析を開始した Instead of running the test suite on the whole application, we can run it on the smaller subset of components affected by a change, making the test suite faster and more stable.
完全に個人的な意見にはなりますが、Shopify の状況を見るに依存グラフを作成することによるテストの実行時間の削減は現実的ではないと考えています。
diver_down gem (内部ではTracePoint) を使って動的に解析し、解析結果から依存箇所