Has she died or something?

徒然なるままに20代SEの日常

単体テスト仕様書 結合テスト仕様書 総合テスト仕様書 違いを完結に言いたい

 

 

テスト仕様書を初めてちゃんと書くことになったはいいが、

3つの違いが全く分からない。

 

テストするのは分かるけれど、

特に結合なんてテスト内容が重複するんじゃ?

 

そう思って調べていたら、

感動してしまうほど分かりやすい説明に出会えたのでお伝えしたい!

 

https://www.atmarkit.co.jp/ait/articles/1602/15/news014_2.html

ソースはこれ

 

単体テスト

 CREATE、READ、UPDATE、DELETEの操作で

・値のチェック

・関連性のチェック

・演算

・表示

・データベースへの情報操作

・ログへの情報書き出しが妥当かどうか

…を確認する。

個々のメソッドがちゃんと動いてるか確認するわけね。

 

PGの品質を保証するため、ってとても納得。

 

結合テスト

操作した情報が他の画面や機能にて

要件を満たす状態かどうかを確認する。

表示や関連するロジックとしての値が要件を満たすかどうか確認する。

DBからの出し入れが行われた状態のデータが

ページをまたいでも正しく表示されているか…

セッションとかEL式に変換して入れたデータとかがうまく入ってるかどうか…

動くかどうか…

 

ここが一番理解に苦しんだ。

この例えが正しいのかも自信がない…

ともかく

複数の機能を結合したときの動作を確認するのが結合テスト

だということ。

書こうと思うとそう簡単じゃないね…。

でもとってもよく理解できる!

 

総合テスト

業務やサービスのフローに関するデータのライフスタイルを考えて

データが生まれるところから

データがなくなるところまで

要求を満たす仕組みになっているかを確認する。

 

…なんて分かりやすいのかしら。

ユーザー目線、シナリオ重視のテストデータを残せとのお達しね。

 

まとめ

 

単体テスト:個々のメソッドがちゃんと動いてるか DB接続がうまくいってるか

結合テスト:個々のメソッドで動くPGがページやクラスをまたいでも動くか 

      情報が渡っているか

総合テスト:ユーザーの使用ストーリーに基づいてPGがちゃんと動くか

 

以上!

書き方だけは、何回も書いて練習するしかないでしょう。

理解が進むよう努めてまいります…。