テスト技法と結合・性能検証
頻出約 33 分5 用語過去問 16 題
この単元の目標
- ブラックボックステスト が何を手がかりにテストケースを作るかを説明できる。
- テストの段階の順序を並べ、統合テスト で確かめる範囲を他の段階と区別できる。
- 性能テスト と 負荷テスト の違いを説明し、修正の後に 回帰テスト を行う理由を述べられる。
用語総表(5 語)
用語
プログラムの内部構造を見ずに、外部仕様 に照らして、与えた入力に対して正しい出力が返るかを確かめるテスト技法。
テストする人は仕様書だけを手がかりにケースを作るので、コードを書いた本人でなくても設計できる。代表的な作り方の 同値分割 は、入力を「結果が同じになる範囲」ごとのグループに分け、各グループから代表の値を選ぶ方法である。範囲の端とその隣の値を重点的に試す 境界値分析 も、仕様だけから作れる。
たとえ電卓を分解せずに、キーを押して表示された答えが合っているかだけを確かめるようなもの。
覚え方ブラックボックス = 中が黒く塗られて見えない箱。見えるのは入口と出口だけ。
出題のポイント
- 出題ブラックボックステストは内部構造を問わず、仕様に照らして入力と出力の対応を確かめる技法である。
- 出題ケースの作り方の一つである同値分割では、正常・異常を含む入力を結果が同じになるグループに分け、各グループから少なくとも 1 つ値を選ぶ。
- 混同注意全命令や全分岐を通すようにケースを作るのは、内部構造を見るホワイトボックステストのやり方である。ホワイトボックステストは主に単体テストで使われる。
この用語の過去問 3 題 ブラックボックステスト →
単体テストを終えたプログラムや部品を組み合わせ、互いの インタフェース (データの受け渡しや呼び出し方の取り決め) が正しくかみ合うかを確かめるテスト。
結合テスト とも呼ばれ、単体では正しく動く部品同士でも、渡す値の形式や順序が食い違えばつないだ所で不具合が出るため、その継ぎ目を確かめる。テストは一般に、部品ごとの 単体テスト、統合テスト、開発者がシステム全体を要件に照らして確かめる システムテスト、利用者が業務で使えるかを確かめる 運用テスト の順に進む。開発工程と対応させると、統合テストはシステム内部の構造を決める 内部設計 の結果を確かめる段階にあたる。
たとえ検査を終えたエンジンと変速機を車体に組み付け、アクセルを踏んだ力が車輪まで正しく伝わるかを試すようなもの。
覚え方結合 = 結んで合わせる。見るのは部品そのものではなく「結び目」。
出題のポイント
- 出題統合テストは、単体テストを終えたプログラム同士をつなぎ、インタフェースの取り決めどおりにデータが渡って連携できるかを確かめる。
- 出題開発工程と対にすると、単体テストはプログラミング、統合テストは内部設計、システムテストは外部設計、運用テストは要件定義に対応する。
- 混同注意システム全体の性能を測るのは次のシステムテストで、統合テストの対象は部品同士の継ぎ目である。内部の経路を網羅的に確かめるのは前の単体テストである。
この用語の過去問 3 題 統合テスト →
システムが求められた速さと量で処理できるかを、応答時間 や スループット (一定時間に処理できる件数) などの数値で測るテスト。
どれだけ速く多く処理できるかは 非機能要件 (機能以外に求められる性能・信頼性などの条件) の一つで、その目標値に届くかを確かめる。測った値は機器の構成に左右されるため、本番に近い機器とソフトウェアをそろえた環境で測る。部品をつないだ後のシステム全体で意味をもつので、主に システムテスト の段階で開発者が行う。
たとえ新しいレジを入れた店で、客 1 人の会計にかかる秒数と、1 時間にさばける人数をストップウォッチで数えるようなもの。
出題のポイント
- 出題応答時間やスループットといった性能の要件が目標値に届くかは、主にシステムテストで開発者が確かめる。
- 混同注意仕様どおりの結果が出るかを見るのは機能 (機能性) のテストで、速さや処理量を測る性能テストとは別物である。
この用語の過去問 3 題 性能テスト →
同時アクセスやデータ量を想定の上限まで、さらにはそれを超えるまで増やし、システムが動き続けられるかと処理の 限界 を確かめるテスト。
性能テスト の一種で、アクセス数やデータ量を段階的に増やし、応答の遅れ方と処理が追いつかなくなる点を見る。限界を超えたときにデータを壊さずにエラーを返せるか、負荷が下がれば元の速さに戻るかを確かめることもある。
たとえ橋の耐荷重試験で、おもりを少しずつ積み増し、どの重さでたわみが急に大きくなるかを見るようなもの。
出題のポイント
- 混同注意負荷テストは、決めた条件で目標値に届くかを測るだけでなく、量を上限の先まで増やして限界と限界付近の振る舞いを探る点で、普段の性能テストと狙いが異なる。
プログラムを修正・変更した後に、これまで正しく動いていた機能が 変更の影響で壊れていないか を、確認済みのテストをもう一度実行して確かめるテスト。
リグレッションテスト とも呼ばれ、修正が原因で既存の機能に出た不具合 (デグレード、品質の後戻り) を見つけるのがねらいである。1 か所を直しても、その部品を共有する別の処理に影響が及ぶことがあるため、直した箇所だけでなく周辺の機能も流し直す。変更のたびに同じテストを繰り返すので、テストの自動化と相性がよい。
たとえ台所の配管を直した後、風呂や洗面所の水も出るかを確かめに、家じゅうの蛇口をひと通りひねって回るようなもの。
覚え方regression は英語で「後戻り」。直したつもりで品質が後ろへ戻っていないかを見る。
出題のポイント
- 出題テストを終えたプログラムを直したら、修正箇所を確かめるケースを、以前に合格したケース一式に加えて流し直す。
- 出題不具合を見つけたケースだけを再実行するのでは足りず、修正が他の機能に影響していないかも確かめる。
- 出題稼働中のシステムに加えた変更を確かめるテスト (回帰テストもその一つ) は、本番に影響を与えないよう、本番と同等の構成をもつ別のテスト環境で行う。
この用語の過去問 2 題 回帰テスト →
要点
- ブラックボックステスト は仕様だけを手がかりにケースを作り、同値分割では入力をグループに分けて代表の値を選ぶ。
- テストは単体、統合 (結合)、システム、運用の順に進み、統合テスト はプログラム同士の継ぎ目を確かめる。
- 性能テスト は応答時間や処理量が目標値に届くかを数値で測る非機能のテストで、主にシステムテストで行う。
- 負荷テスト は性能テストの一種で、量を上限の先まで増やして限界を探る。
- 回帰テスト は、修正や変更が既存の機能を壊していないかを確かめ直すテストである。
この分野の過去問をすべて見る →