システム開発において要件定義、設計と共に重要なテスト計画、テストの進め方について
目次
はじめに
システム開発においては、要件定義、設計と共にテストを行うということが非常に重要です。
この記事では、システム開発におけるテストに関する考え方と、テストの進め方について解説します。
ポッドキャストでも関連内容お話ししています
以下をクリックしてお聞き下さい
↓
テストに関する基本的な考え方について
5つの基本的な考え方を記します。
テストは、発注者側=商品を発売する側も必ず行うこと
商品、システムを使う人の立場に立ったテスト=ブラックボックステスト=システム(総合)テストを必ず行うこと
元々の発注側からの要求仕様を満たしてるかの確認は必ず行うこと。
ブラックボックステストにおいては、通常の使い方に加えて、準正常系、異常系のテストも行うこと。
開発委託側は、発注側にシステム(総合)テストを行ってもらうために、単体テスト、結合テストを十分に行うこと
発注側で行うべきテスト、委託側で行うべきテストの区分け
以下のような区分けになります。
テスト者 | テスト目性 | テストの目的 |
発注側 | システム(総合)テスト |
要求仕様通り動作するか確認する + |
委託側 |
単体テスト |
各機能が、設計通りに正しく動作することを確認する |
テスト計画の立案=テスト計画の設計
テスト計画を立てることを、テスト計画設計といいます。計画を立てることも設計行為ととらえています。
3つのステップを記します。
ステップ1:テストの目的を明確にする=テストの内容を定義する
ステップ2:テストの目的を達成するためにはどのように行っていくかを考える→テストアプローチの策定
ステップ3:テストアプローチを実現するために必要な体制とテストスケジュールを立案する
ステップ3をいきなり行いがちですが、ステップ1,ステップ2をきちんと行ってからステップ3を行うことが重要です。
かつこういったテスト計画に関しては、必ずプロジェクトメンバー内でレビュー会議を行います。
レビュー会議では、テスト計画の”有効性”と、”妥当性”を確認して、テストの方向性の認識をメンバー間で合わせてから、具体的なテスト仕様設計を行うことが重要です。
テストケースの作成=テスト仕様設計
テスト計画をきちんと設計した後に、具体的なテストの内容を作成します。テストの内容のことを一般的にはテストケースと称します。テストケースを作成していくことも設計ととらえて、一般にはテスト仕様設計といいます。
テストに関する基本的な考え方としては、”どのような使い方をされても”、”どんなことが起こっても”システム=商品が耐えられるかを確認することが重要になります。
普通の使い方できちんと動作するのは当たり前ですが、商品が世の中で使われるようになると様々なお客様の使い方、お客様の使用環境もマチマチですので、上記のような様々な使い方を想定してテストする必要があるわけです。
元々の要求仕様から実際の利用シーンを想像して、テスト観点を洗い出していきます。
テストケースとは?
・各テスト対象に対して、入力、予想される結果、実行状態を文章化したものです。
・良いテストケースは、”曖昧さ”がなくて、誰が行っても同じ結果が得られることになります。
準正常系、異常系のテストが重要
既に解説しているように、テストにおいては、通常の使い方だけでなく、通常では行わないような操作とか、外的要因も想定してテストをする必要があります。
テストの用語で、通常のテストを正常系と称するのに対して、準正常系、異常系と称するテストがあります。以下整理します。
正常系とは?
通常の使用方法。正常な動作処理が仕様として定義されているものの総称
準正常系とは?
異常が発生したときの異常処理が仕様として定義されているものの総称
異常系とは?
異常処理として仕様で定義されている以外の異常のケースの総称
正常系と準正常系は、総合テストでも必ず行う必要があります。
異常系は、仕様で定義していないので総合テストで行うのは難しいです。敢えて総合テストの段階で行うとしたら、”意地悪テスト”の類になります。
従って異常系テストに関しては、設計者側(開発委託先)が、設計の段階、単体テスト~結合テストの段階で行うことが必要になります。
まとめ
今回はシステム開発におけるテストについて基本的な解説をしました。
テスト計画を作ることも テスト仕様を作ることも”設計”と捉えたうえで、テストの準備を進めることが非常に重要です。
テストの実施及びテスト結果の検証などについては別記事で解説したいと思います。
関連記事