/note/tech

テスト設計にも使える設計原則:SoCの原則とSLAP

上記のSoCの原則、SLAPは、レイヤー構造やツリー構造の設計・実装を行う際に普遍的に使えるものです。これはテスト設計でも同様です。

例えばテストコードの実装では、次のような推進が有効になります。

  • SoCの原則の推進:テスト設計で抽出した、テストコンテナやテストスイートを単位に、テストコードのクラスやモジュールを分ける
  • SLAPの推進:テストクラス、テストメソッドの抽象度を統一する。また、Page ObjectやFacadeパターンといった抽象化・ラッピングを行う設計パターンを採用する際はそれに応じた抽象化の統一を行う。例えばPage Objectパターンならば、Page Objectに具体的なテスト対象制御の記述を書き、テストコードでは抽象化されたテストのWhatを書くように抽象度を統一する

次にテスト設計でも、次ような推進が有効になります。

  • 全体のテストの責務を設計する際は、品質特性や、抽象度の高いテストの要求など、テスト分析に応じた関心ごとを単位に、テストレベルやテストタイプを分割する
  • 全体のテストの責務をツリー構造で設計する際は、兄弟ノードの抽象度を合わせる。例えば、テストを責務を、最初のレイヤでテストレベルに分け、次のレイヤで抽象的なテストタイプに分け、次の末端レイヤで具体的なテストタイプに分ける、といった全体設計アプローチを取る