問題 追加1:テストケース設計における考慮事項
問題 追加1
Section titled “問題 追加1”テストケースを設計する際に考慮すべき事項は以下のうちどれか?
- a) 異なるテストレベルに対して、同じテストベースを使用すべきである。
- b) 期待される結果には、環境の事後条件(テスト実行後の環境の状態)が含まれる場合がある。
- c) このプロセスは、動的解析と組み合わせることで効果的になる場合がある。
- d) 要求される詳細なテストインフラストラクチャの要件を最終決定すべきである。
b) 期待される結果には、環境の事後条件(テスト実行後の環境の状態)が含まれる場合がある。
この問題は、JSTQBにおける基本的なテストプロセスの中の「テスト設計(Test Design)」フェーズで実施すべきこと、およびテストケースの構成要素に関する正しい理解を問うています。
- a) 不正解。 使用される「テストベース(テストの要件や仕様となるドキュメント)」は、テストレベルによって異なります。例えば、コンポーネントテストでは詳細設計書が、システムテストでは要求仕様書がテストベースとなります。
- b) 正解。 テストケースにおける「期待される結果(Expected results)」は、画面上の表示や戻り値だけではありません。データベースが更新されたか、ファイルが作成されたかなど、データや環境の 事後条件(postconditions) も含まれる場合があります。
- c) 不正解。 テストケースの設計プロセスは、レビューや 「静的解析(static analysis)」 と組み合わせることで効果的になります。「動的解析(dynamic analysis)」はソフトウェアの実行時(runtime)にのみ実行可能であるため、実行前の段階であるテストケース設計時には必ずしも実行できるとは限りません。
- d) 不正解。 テストケース設計時に、要求される詳細なテストインフラストラクチャの要件が定義されることはありますが、実務上、それらが「最終決定(finalized)」されるのは次のフェーズである 「テスト実装(test implementation)」 の段階になることが一般的です。
JSTQB AL TA試験において、基本的なテストプロセスの各フェーズ(計画、モニタリングとコントロール、分析、設計、実装、実行、完了)で「何をするか(What)」と「どうやってするか(How)」の違いは頻出テーマです。
- テストケースの「期待される結果」を広く捉える:
初学者は「期待される結果=目に見える出力」と考えがちですが、JSTQBでは「テスト実行後のシステム全体の状態(事後条件)」を含めてテストケースに定義することを求めています。 - 設計(Design)と 実装(Implementation)の違い:
- テスト設計: テスト条件(何をテストするか)から、具体的なテストケース(どのような手順・データでテストするか)を作成するフェーズ。
- テスト実装: 作成されたテストケースを、実行可能な状態(テスト手順書、自動化スクリプトの作成、テスト環境・インフラの構築の最終決定など)に組み立てるフェーズ。インフラの「最終決定」は実装フェーズの役割です。
- 静的テストと動的テストのタイミング:
コードを動かさずに行う「静的解析(静的テスト)」は設計フェーズと並行して行えますが、コードを動かす「動的解析(動的テスト)」は設計フェーズではできません。
事後条件(Postconditions)の例
例えば「ECサイトで商品をカートに入れて購入ボタンを押す」というテストケースの場合、期待される結果は「完了画面が表示されること(出力)」に加えて、「在庫DBの数が1減ること」「ユーザーの購入履歴DBにレコードが追加されること」といった事後条件が定義されている必要があります。