知識マップ: ユニットテストと結合テストの境界をどう引くか

記事「ユニットテストと結合テストの境界をどう引くか」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。

ユニットテストと結合テストの境界を、判断のテストか接続のテストかという軸で整理する記事です。金額計算や状態遷移のような分岐の総当たりはユニットテストへ寄せ、フォーマット・配線・環境・時間という4つの境界はin-memoryのfakeでは意味が落ちるため結合テストへ置くべきだとします。stub・mock・fakeというテストダブルの違いを整理したうえで、mockが増えすぎる兆候は配線をユニットテストへ押し込んでいる合図であり、コア層をユニットテストで厚く、境界層を狭い結合テストで、全体層を少数のスモーク/E2Eで構成する3層構成を実務での落としどころとして示します。

ユニットテストと結合テストの境界の知識マップユニットテストが判断のテストで結合テストが接続のテストであること、フォーマット・配線・環境・時間という4つの境界が結合テスト側に置かれるべきこと、stub・mock・fakeの違いとmock過多が配線の混入を示す兆候であること、コア層・境界層・全体層からなる3層のテスト構成の関係を示す図利用する利用する利用する推奨される対応推奨される対応推奨される対応推奨される対応推奨される対応前提とする前提とする原因になり得る用いるのは非推奨前提とする前提とする前提とする用いるのは非推奨用いるのは非推奨用いるのは非推奨ユニットテスト結合テストスタブモックフェイクフォーマットの境界配線の境界環境の境界時間の境界分岐の総当たりbitness一致要件COMアパートメントモデル(STA/MTA)mockが増えすぎる兆候3層のテスト構成E2Eテスト

概念間の関係(全18件)

図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。

主要概念の定義

ユニットテスト
分離された1責務の正しさを、外部資源を切り離して確かめるテストの層のこと。
結合テスト
複数コンポーネントの接続と、インフラやフレームワークを含む挙動を確かめるテストの層のこと。
環境の境界
ファイル権限、COM登録、32bit/64bit、STA/MTAなど、OSや実行環境の実挙動に関わる境界のこと。
モック
テストの合否を左右するAssert操作の対象になる、呼ばれ方そのものを検証する代役のこと。
3層のテスト構成
コア層をユニットテストで厚く、境界層を狭い結合テストで、全体層を少数のスモーク/E2Eで構成するテストの配置構成のこと。
フェイク
スタブやモックを指す総称、または本物と同じ振る舞いを軽い実装で置き換えたもののこと。

機械可読データ

このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。