🕌

full-stack テスト

に公開

前提
Fullstack: FEとBEをそれぞれ開発してる

BEはclean architectureに準拠
API定義書を満たす形で、FEとBEは実装を進める

  1. unit test
    各レイヤーで、エッジケースも含めてビチビチにprogramでテストする
    ホワイトボックス
    現在の形のスナップショットを撮るような目的

  2. integration test
    BE、FE内でそれぞれレイヤーを接続して、機能することを確認する
    ブラックボックス。実際にリクエスト投げて動くかどうかみる。

この時点で、理論上は、FEとBEを繋げれば全てがうまく動く
ただ、実際は、FEとBEチームで仕様の捉え方に違いがあったり、漏れがあったり、色々たりてない問題が出てくる
うまく動く機能は、FEかつBEが正しく実装した部分であり、どちらか一方がうまく実装できてない場合は、機能全体として成り立たない。この溢れた部分を洗い出すのが外部結合テスト。

3. 外部結合テスト
FEとBEを実際に繋いで、特定のシナリオについてテストする。
実際に画面上で操作する。
シナリオは、機能全体をカバーできるように選び出すが、ある特定のシナリオで、条件分岐があるものに関しては、代表の一シナリオを選べば良い。細かい条件分岐によるvariationは、単体、内部結合テストで確認済みであるため。

ここまでで、あとはUATなど、ビジネスチームが最終品質確認のためにテストする。

Discussion