目次
テストとは?
テストとは、開発の実装が完了し、プロジェクトのリリースに向かって行うテストのことです。
システム開発におけるテストとは、開発したプログラムが要件や設計書通りに作成されているか、問題なく動作するかの確認を行うことです。プログラミングは人が行っているので、どうしてもヒューマンエラーの可能性が存在し、バグや不具合がつきものです。
システム開発におけるテストの重要性
1. 品質の向上
テストはソフトウェアやシステムの品質を向上させるための重要な工程です。システムが仕様や要件を正しく満たしているかどうかを確認することで、システムの品質を保ちます。
2. バグの発見と修正
テストをすることにより、リリース前にバグを早期発見することができます。ソフトウェアやシステムの異なる要素をテストすることで、重大な問題やエラーを未然に特定し、修正することができます。早期に対応することで、品質の向上や時間・コストの節約を図ることができます。
3. 信頼性と安定性の確保
テストにより、システムが予期しない動作やクラッシュ、パフォーマンスの低下などの問題がないことを検証することができます。ユーザーが安心してシステムを利用できるようにするために、信頼性と安定性の確保は欠かせないと言えるでしょう。
テストの流れ
テストの流れは大きく3つに分かれます。
1. テスト計画
テスト計画とは、文字通り「テストの計画を立てること」です。
具体的には、テストの目的や対象の範囲を明確に決めます。どの機能や要件をテストするのか、どのようなテストケースを用意するのかなどを明確に決め、表を作成していきます。
その中には、テスト対象システムやアプリケーションに関する情報が含まれます。
例
・テストの背景、目的
・テスト対象機能一覧
・テスト戦略
・テスト観点(概要)
・スケジュール
・工数
2. テスト設計
テスト設計は、具体的なテストケースやテストシナリオを作成するプロセスです。
テスト計画で明確にした計画にそって「テストケース」を作成します。
テストケースは、ソフトウェアやシステムが期待通り動作するかを確認するために必要で、一つのプログラムをテストするために複数のテストケースを作成することが多く、複雑・大規模なソフトウェアでは膨大な数のテストケースを作成することもあります。
テストケースは基本的に「このような条件・状況でこのような入力を与えると、このような結果になる」という形で表現され、人が読んで分かるよう文書として作成し、人がそれを読んで一件ずつテストする場合と、一定のデータ形式で記述あるいは自動生成し、テストツールを用いて自動的に検証する場合があります。
一つのプログラムをテストするために複数のテストケースを作成することが多く、複雑・大規模なソフトウェアでは膨大な数のテストケースを作成することもあります。
また、テストケースを用いて表を作成する際の技法も多く存在します。
広く使われているのは「直交表」です。
※直交表とは?
「不具合が起こる要因のほとんどは、2つまでの要因の組み合わせによるものだ」という考えに基づいており、一部実施にもかかわらず、高次交互作用の評価を断念することで少ない実験で要因効果を知ることができます。
戦後日本の製造業発展は直交表の効果と言う人もいるほど効果的な手法で、二水準系、三水準系など多くの種類があります。
例
・1つのテストに対する詳細化(機能細分化)
・テスト対象へのテスト観点割り当て
・使用するテスト技法の検討と適用範囲
・テストするデータ
・テストの実施手順
・実行環境の確認
・期待結果
・テストで使用するデータの内容、パターン
・仕様変更や、FIX決めの対応
「テスト計画」や「テスト設計」など、テストに必要なドキュメントについて、国際標準規格が定められていますので、一度目を通しておくと良いでしょう。
ISO/IEC/IEEE 29119-3:2021(en), Software and systems engineering — Software testing — Part 3: Test documentation
3. テスト実行
テスト設計で作成したテストケースは全て実行し、実行した結果が期待値に設定した内容と一致しているかを確認します。
テスト実行の段階で不具合・欠陥を発見して開発者に知らせることにより、リリース・納品後の障害発生リスク、及びその対応コストを大幅に削減することができます。
テストをする上で大事なこと
単体テストのルールや網羅性は開発者やディレクターと一緒に考えることが重要です。
企画、開発、サポート、運用と連携し進める必要がありますので、日頃から円滑にコミュニケーションを取るようにしておきましょう。
テスト計画でテストの内容とスケジュールを決め、テスト設計で計画通りにテストを実行できるようにし、テスト設計の中で確認基準を明確化しておきましょう。
テスト計画の立て方における参考として、「JSTQBのシラバス」の内容がより深く理解の助けになるので、未読の方は拝見しておくことをお勧めします。