ゼロから始める「JSTQB認定テスト技術者資格」(2日目)
本日は、「1.2 テストとは何か」について学びます。
◆いきなりまとめ
ソフトウェアを実行して動きを確認することは、テストの一部でしかなく、テストは以下に分類されることが分かりました。
「実行前の作業」「実行時の作業」「実行後の作業」「全体を通して行う作業」です。
そして、テストの目的は複数あるとのことです。
「欠陥の検出」「対象ソフトウェアの品質レベル確認」「意思決定のための情報提示」「欠陥の作り込み防止」などなど。
また、テストの視点(リリース・保守・運用)が異なると、目的も異なるそうです。
最後に、テストとデバッグは同義ではない事が理解できました。
テストとは、欠陥から発生する故障を発見・検出することで、デバッグは修正することです。
私なりに要約すると、
「テストとデバックは異なる。テストの目的と範囲は広いものだ」ということです。
以上、いきなりまとめ。
以下、詳細です。
1.2_テストとは何か
1.2.1_テストとは?
・ソフトウェアを実行して動きを確認することは、テストの一部でしかない。
・テストの概念には、ドキュメント(要件定義書、機能仕様書、構成仕様書など)とソースコードのレビューや静的解析を実施することも含む。
・テスト活動には以下がある。
(1)テスト実行前の作業
・「計画」・・準備作業、リソース配分、スケジュール、テスト終了基準(担当:テストマネージャー)
・「テスト条件の選択」・・テストベース(注1)を分析(担当:テスト担当者)
・「テストケース(注2)の設計」・・特定した条件を網羅できるように設計(担当:テスト担当者)
(2)テスト実行時の作業
・「実行結果のチェック」・・実行結果の確認(担当:テスト担当者)
・「テスト終了基準の検証」・・計画時の終了基準の検証(担当:テストマネージャー)
・「テスト結果の報告」・・実施結果、インシデント対応結果、終了基準達成度合いなどをステークホルダへ報告(担当:テストマネージャー)
◇テスト実行後の作業
・「テストウェアの整理」・・次回プロジェクトのため、テストウェアの整理と資産化
◇全体を通して行う作業
・「コントロール」・・進捗管理、テストカバレッジ(注3)、終了基準達成状況のモニタリングなどを実施(担当:テストマネージャー)
1.2.2_テストの目的
◇テストの目的は複数ある。
「欠陥の検出」「対象ソフトウェアの品質レベル確認」「意思決定のための情報提示」「欠陥の作り込み防止」など。
・静的テストと動的テストは、方法は違えど同目的のために使えて、欠陥検出により、品質レベルの十分さを確認できる。
・テストは、テスト対象のシステムだけでなく開発やテストプロセスを改善するための情報を提供する。
・テスト設計通してテストベースを検証することは、コードの中に欠陥が入り込まないようにする効果がある。
・ドキュメント(要件定義書)のレビューは、問題の認識と解決も仕様やコードに欠陥が入ることを予防する。
◇テストの視点が異なると、目的も異なる3例
(1)製品がリリースされるまでのテスト
・開発までのテスト(コンポーネント、結合、システムの各テスト)では、多くの故障を発見してソフトウェアの欠陥を特定して修正すること。
・受け入れテストでは、 システムが期待通りに動作し、要件に合致することを確認する。欠陥の修正は目的としない。品質確認を行って、所定の時期にソフトウェアをリリースする事によるリスクをステークホルダに報告する。
(2)保守テスト
・ソフトウェアの変更時(機能追加、インシデント対応など)に、新たな欠陥がないか確認する。
(3)運用テスト
・信頼性や可用性などのシステム特性を確認する。
1.2.3_デバッグとテスト
テストとデバッグは同義ではない。
テストとは、欠陥から発生する故障を発見・検出することを目的とする。
デバッグとは、故障の原因を突き止め、解析し、取り除く(修正する)一連の開発活動のこと。
(注1)テストベース
ソフトウェアテストのテスト設計において、テストケースの素材となる各種の情報源のこと。
情報システム用語事典:テストベース(てすとべーす) - ITmedia エンタープライズ
(注2)テストケース
ソフトウェアテストにおいて個々のテストの適合要件を定めたもの。一般に実行前条件・入力値・期待結果・実行後条件の組み合わせとして定義される。
情報システム用語事典:テストケース(てすとけーす) - ITmedia エンタープライズ
(補足)
なお、当ブログ記事は「ソフトウェアテスト教科書 JSTQB Foundation 第3版」をもとに記載しております。独自の解釈にて記載されていますので、詳細に関しましては、教科書をご購入、参照して頂くことをお勧めいたします。
最後までお読み頂きありがとうございました。