« C言語における単体テスト テスタビリティを重視した関数設計 | トップページ | スモークテストのありがたみがようやくわかった »

単体テスト技法を図解してみる

インフルエンザが流行っています。

==

単体テストを効果的にする手法をグラフィックで表現してみる。間違った解釈も含んでいそうだが。。。

  1. テスト空間U関数func1を写像としてイメージした図。
  2. 関数func1の結果は結果空間Vの部分集合、といったイメージ。


  3. 関数の引数チェックを行い、テスト空間Uを小さくする手法をイメージした図。

  4. 引数チェックをすることで、テストケースを少なく効率的なテストを行う、という感じ。点線に関する実質的な検証をすることがなくなる。JaSST'07で松尾谷さんが使った造語を使えば、「無則」と「有則」の識別、になると思ってます。
    2007/02/17修正。無則の識別とか関係なさそう。


  5. ちょいと苦しいが、デシジョンテーブルのつもり。

  6. func1の逆関数をとり、そのカーネル原像を利用してテストケースを設計する図。


  7. 同値分割の図。


  8. テスト空間をある規則で分割し、その代表元についてだけ検証する。関数func1が連続性を持ち、代表元の検証結果がテスト空間全体での検証と同程度の結果を得る、という意味。


  9. これも苦しいが、境界値分析のつもりの図。


  10. 境界(boundary)あるいはその近傍の元について検証し、効率よく欠陥を見つける手法。


==

グラフィックにしてみて、ふと思ったのだが、同値分割って概念と、単体を小さくしてテストすることって、似てるんじゃないかって思った。関数をどんどん小さくして、テストしやすくしていく手法があると思うが、これの究極形が代表元だけ検証して、それに対する単体テストの検証結果と同一視するってことなんじゃないかと。

なーんて、午前0時を回ってからぼんやり考えてみました。

|

« C言語における単体テスト テスタビリティを重視した関数設計 | トップページ | スモークテストのありがたみがようやくわかった »

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: 単体テスト技法を図解してみる:

« C言語における単体テスト テスタビリティを重視した関数設計 | トップページ | スモークテストのありがたみがようやくわかった »