単体テスト、結合テスト、総合テストの違いと方法について、
みんな知ってると思っていたけど、明らかに知らない人がいたので
意識合わせのメモ
■単体テスト(ユニットテスト、モジュールテスト)
・最小限の単位である、関数ないしはメソッドレベルで行う
・詳細仕様の通りに作ってあるかを、確認する
・2通りあり、プロジェクトにより、どちらか一方を採用する
1(現在はマイナー):
プログラムの分岐点にいき、値を設定して、通過するかどうかチェック
これを、IF分全部に対して行う。for,whileループも確認。
→テスト項目は、分岐に対応して出てくる
・gdbを使って調査する(値のところでとめて、変数の値を設定出来る)
・網羅率で、C1,C2とかいうのは、この話
・ソースコードをみて、分岐点を判断する=ホワイトボックステスト
2.(こちらが多い)
JUnit等を使い、対象メソッドの入力に対して、出力が正しいか確認する
すべて緑になればOK!
→テスト項目は、入力に対する出力結果に対応して出てくる
・JUnitをはじめとするxUnit,などで調査する
・入力を適当に変えて網羅率を上げる(ブラックボックス)
→っていうことを行うのは難しいので、実はツールを使う
djunit等を使うと、網羅率が分かる
■結合テスト
・単体テストが終わると、次は結合テストを行う。
レベル違いによって、IT1、IT2・・・がある※
・外部仕様どおりにつくっているか、確認する
各画面、画面項目に対して、テスト観点の掛け合わせで
テスト項目が出てくる(多すぎるときは直行表等で減らす)。
→境界値、同値などは、観点の1つ
・selenium等を使う。
※システムを1個のものと考えれば、IT1(IT2)だけでよい。
システムが、いくつかのコンポーネントに別れているとき、
・各コンポートのテストがIT1,
・全体を1つのものとみて、入出力を確認するのがIT2
■総合テスト
・要求通りに創っているか、確認する
大きく2種類のテストがある。両方確認する必要がある
(1)機能要件に対するテスト
・正常系のシナリオ、異常系のシナリオを満たしているか、確認する
(2)非機能要件に対するテスト
・負荷テストなど。品質特性などに従ってやるとか・・・
ツールとしてはJMeter等がある
とりあえず、こんなかんじかな
また、後で、加筆するかも
P.S 具体的なテスト項目の挙げ方の違いについては、以下参照
単体テストと結合テストのテスト項目の違い
https://blog.goo.ne.jp/xmldtp/e/890d3a845901b980b5704bc75f5ac694
みんな知ってると思っていたけど、明らかに知らない人がいたので
意識合わせのメモ
■単体テスト(ユニットテスト、モジュールテスト)
・最小限の単位である、関数ないしはメソッドレベルで行う
・詳細仕様の通りに作ってあるかを、確認する
・2通りあり、プロジェクトにより、どちらか一方を採用する
1(現在はマイナー):
プログラムの分岐点にいき、値を設定して、通過するかどうかチェック
これを、IF分全部に対して行う。for,whileループも確認。
→テスト項目は、分岐に対応して出てくる
・gdbを使って調査する(値のところでとめて、変数の値を設定出来る)
・網羅率で、C1,C2とかいうのは、この話
・ソースコードをみて、分岐点を判断する=ホワイトボックステスト
2.(こちらが多い)
JUnit等を使い、対象メソッドの入力に対して、出力が正しいか確認する
すべて緑になればOK!
→テスト項目は、入力に対する出力結果に対応して出てくる
・JUnitをはじめとするxUnit,などで調査する
・入力を適当に変えて網羅率を上げる(ブラックボックス)
→っていうことを行うのは難しいので、実はツールを使う
djunit等を使うと、網羅率が分かる
■結合テスト
・単体テストが終わると、次は結合テストを行う。
レベル違いによって、IT1、IT2・・・がある※
・外部仕様どおりにつくっているか、確認する
各画面、画面項目に対して、テスト観点の掛け合わせで
テスト項目が出てくる(多すぎるときは直行表等で減らす)。
→境界値、同値などは、観点の1つ
・selenium等を使う。
※システムを1個のものと考えれば、IT1(IT2)だけでよい。
システムが、いくつかのコンポーネントに別れているとき、
・各コンポートのテストがIT1,
・全体を1つのものとみて、入出力を確認するのがIT2
■総合テスト
・要求通りに創っているか、確認する
大きく2種類のテストがある。両方確認する必要がある
(1)機能要件に対するテスト
・正常系のシナリオ、異常系のシナリオを満たしているか、確認する
(2)非機能要件に対するテスト
・負荷テストなど。品質特性などに従ってやるとか・・・
ツールとしてはJMeter等がある
とりあえず、こんなかんじかな
また、後で、加筆するかも
P.S 具体的なテスト項目の挙げ方の違いについては、以下参照
単体テストと結合テストのテスト項目の違い
https://blog.goo.ne.jp/xmldtp/e/890d3a845901b980b5704bc75f5ac694