generated at
システムテスト

V 字モデルや W 字モデルにおいては、システム全体をテストする
多分システムの外部仕様との比較を目的にしている
> システムテストでは、システム全体をテストする。 このテストレベルでは、機能の組み合わせに着目したテスト、パフォーマンスなどの非機能要件に対するテスト、ビジネスプロセスユースケースなどに対するテストなどを実施する。

ソフトウェア・テストの技法 第 2 版』 で紹介されているのは、目的仕様書との比較
そもそも目的仕様書というものがあんまり他の文献に出てこなくてよくわからんのだよな nobuoka
> システム・テストはもっとも誤解されやすく、困難なテスト過程である。 システム・テストは、完全なシステムまたはプログラムの機能をテストする過程ではない。 なぜなら、そうすると機能テストの過程と重複することになるからである。
> システムまたはプログラムをもとの目的仕様書と比較すること

>

テストケースの 15 の範疇
機能部分テスト (facility testing) : 目的仕様書に書かれている機能部分が満たされているか判定
大容量テスト (volume testing) : プログラムに大容量のデータを扱わせる
ストレステスト (stress testing) : プログラムに重い負荷をかける
秘密保護テスト (security testing) : セキュリティのテスト
記憶域テスト (storage testing) : 記憶域についての目的仕様が満たされているかどうか (例えばプログラムが使用する主記憶と 2 次記憶の量とか)
構成テスト (configuration testing) : OS や DBMS など、種々のハードウェア構成をサポートするものについては、最低限、各型式のハードウェア機器と最小・最大の構成でプログラムをテストする必要がある
複数の OS での実行が想定されているプログラムは各 OS でテストすべき
Web ブラウザでの動作であれば、各種 web ブラウザでテストが必要
互換性 / 構成 / 変換テスト (compatibility / configuration / conversion testing) : ソフトウェアの新バージョンを作る場合、古いバージョンからのデータの移行などの目的仕様を持つことが多い。 この目的仕様が満たされているかどうか
設置テスト (installable testing) : 複雑な導入手順が必要なソフトウェアも存在する。 導入手順をテストすることは重要 (利用者にとってそのソフトウェアを扱う最初の経験なので、そこで誤動作があるとすぐに他の製品に流れたりとか、信頼をなくしたりする)
回復テスト (recovery testing) : OS や DBMS など、回復についての目的仕様をもつものについて。 この回復機能が正しく働かないことを示そうとするテスト
サービス性テスト (serviceability testing) : サービス性、すなわち保守能力の性質についての目的仕様をテストする
例えば記憶域のダンププログラムとか、診断プログラム、問題をデバッグするための平均時間や維持のための手続きなど
文書テスト (documentation testing) : ユーザーの書いた文書の正確さも調べる
手続きテスト (procedure testing) : 多くのプログラムは、人手による手続きも含んだ大きなシステムの一部。 それらの人手による手続きもシステムテストの一部としてテストする
誰がシステムテストを行うか?
プログラマはシステムテストをしてはいけない : システムテストを行う人は、エンドユーザーと同じだとみなせる人である必要がある
エンドユーザーの環境や態度、どう使うかを理解している人
一般的にエンドユーザーはテストの専門性を持っていないので、理想的なチームとしては、少人数のシステムテスト専門家と、エンドユーザーの代表者 (1, 2 人) と、人間的要素を扱える技術者と、プログラムのかぎとなる分析者や設計者
そのプログラムの開発に責任をもつ組織は、全てのテスト過程において絶対にシステムテストをしてはならない
システムテストの目的は 「目的仕様書にあわないことを示すこと」 だが、開発部門は 「円滑にシステムテストが終わること」 にインセンティブを持ちがち
最も経済的な方法は、別の企業にそれを請け負わせること