そう言えばレベルって言葉を知ったのRPGだよね?〜テストレベル Part1
良い子のみんなー!
愛と平和を歌って笑顔を届ける愉快なピエロ、MR.SMILEだよー🤡
昨日は休暇を取って京都で遊んできたよ!
観光地をうろうろすると日本語が聞こえなくて、僕はどこの国に迷い込んだのかと頭がバグるよね?
外国から来た良い子のみんな!インバウンドでいっぱいお金落としていってね!
さて、本題の方は「テストレベル」のお話を進めていくよ。
テストレベルって何?
レベルって水準とか段階と言う意味だよね?
テストレベルではテストの段階と言う意味で使われてるよ。
シーケンシャル開発のライフサイクルモデルで出てきたV字モデルのVの右側がテストレベルになるんだ。
JSTQB FLシラバスでは以下のテストレベルで解説されるので受験する人はその名前で覚えておこうね。
・コンポーネントテスト
・統合テスト
・システムテスト
・受け入れテスト
今回は各テストレベルの概要を紹介するね。
コンポーネントテスト
コンポーネントテストは、個別にテスト可能なコンポーネントに焦点を絞ってテストすることだよ。
コンポーネントはソフトウェアの構成要素や部品と言うイメージでいくつものコンポーネントを組み合わせることで一つの製品やシステムになるんだ。
同じ内容だけどユニットテスト、モジュールテストとも呼ばれるし、実際の現場では単体テスト、略して「単テ」と呼ぶ人もいるね。
ユニット、モジュールは厳密に言えばコンポーネントとは違うんだけど調べてみると諸説あって、頭がこんがらがるので、ほぼ同じ意味で使われてると言う理解で進めておくのをオススメするよ。
統合テスト
統合テストは、コンポーネント間、またはシステム間の相互処理に焦点を当ててテストすることだよ。
細かい機能の組み合わせは当然として、機能実行によるデータベース処理と組み合わせる場合、独立した複数のシステムを繋げた時の組み合わせなどなど、製品やシステムによってテストする範囲が変わるところに注意が必要だね。
同じ内容で結合テストとも呼ばれるよ。
複数の会社や部門が分割して作っている場合は内部結合テスト、外部結合テストと2段階に分ける場合もあるんだ。
システムテスト
システムテストは、システムが実行するエンドツーエンド(E2E)のタスク、システムがタスク処理を行う際の非機能的振る舞いといった製品、システム全体の振る舞いや能力に焦点を当てたテストだよ。
統合テスト(結合テスト)では関連するコンポーネント間、システム間の処理に注目し、システムテストでは製品、システム全体の動作、処理をテストすることになるんだ。
このテストも内容は同じで違う呼び方があって「総合テスト」と呼ばれたりするけど「統合」「結合」と字面が似てて混乱するし、間違ったテストレベルを実行したら時間の無駄になるので、システムテストと書いておくのが無難だと思うよ。
エンドツーエンドのタスクとは、英語でEnd To Endと書くと分かりやすいけどシステムの端から端までと言うことになるね。
ネットショッピングとかだと会員登録して買い物かごに入れて注文、紐付く会員の注文履歴書に買い物した商品や会員情報が表示されるとか一連の動作、処理を表してるんだ。
受け入れテスト
受け入れテストはシステムテストと同様、製品、システム全体の振る舞いや能力に焦点を当てたテストだよ。
ユーザーが使用可能で受け入れ準備ができているかどうかを確認するのが目的だから、システムテストと比較して、よりユーザー観点を考えて正常な運用を想定したユースケースを確認することになるんだ。
ここまでのテストレベルで欠陥もほぼ修正されて、最後の最後に基本的な操作で重大な故障が発生するような欠陥が残ってないかを確認することが目的の一つだよ。
小さく狭い範囲から
テストレベルはテスト目的、テスト対象、テストベースなどの特徴を系統的に管理していくテスト活動の単位と言う位置付けになるんだ。
コンポーネントテストの小さく狭いプログラムの範囲から大きく広い範囲への順番で受け入れテストまで実行していくよ。
最初はスライムしかいない狭い範囲から徐々に広大なフィールドを探索していく感じだよね?
次回からはそれぞれのテストレベルの特徴をお勉強していくよ。
では、今回はこの辺で!
最後まで読んでくれた良い子のみんなー!
さんきゅーすまいる🤡