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

> システム・テストはもっとも誤解されやすく、困難なテスト過程である。 システム・テストは、完全なシステムまたはプログラムの機能をテストする過程ではない。 なぜなら、そうすると機能テストの過程と重複することになるからである。
> システムまたはプログラムをもとの目的仕様書と比較すること
> 
テストケースの 15 の範疇
複数の OS での実行が想定されているプログラムは各 OS でテストすべき
Web ブラウザでの動作であれば、各種 web ブラウザでテストが必要
設置テスト (
installable testing) : 複雑な導入手順が必要なソフトウェアも存在する。 導入手順をテストすることは重要 (利用者にとってそのソフトウェアを扱う最初の経験なので、そこで誤動作があるとすぐに他の製品に流れたりとか、信頼をなくしたりする)
例えば記憶域のダンププログラムとか、診断プログラム、問題をデバッグするための平均時間や維持のための手続きなど
誰がシステムテストを行うか?
プログラマはシステムテストをしてはいけない : システムテストを行う人は、エンドユーザーと同じだとみなせる人である必要がある
エンドユーザーの環境や態度、どう使うかを理解している人
一般的にエンドユーザーはテストの専門性を持っていないので、理想的なチームとしては、少人数のシステムテスト専門家と、エンドユーザーの代表者 (1, 2 人) と、人間的要素を扱える技術者と、プログラムのかぎとなる分析者や設計者
そのプログラムの開発に責任をもつ組織は、全てのテスト過程において絶対にシステムテストをしてはならない
システムテストの目的は 「目的仕様書にあわないことを示すこと」 だが、開発部門は 「円滑にシステムテストが終わること」 にインセンティブを持ちがち
最も経済的な方法は、別の企業にそれを請け負わせること