登場人物
名前: スーさん。(SUさん)
仕事: 神戸のソフトウェア会社W社でSEをやっている
最近の流行り:スマホゲームのスナイパー3Dアサシン(Sniper 3D Assasin)で敵をヘッドショットで銃撃すること。「東京喰種トーキョーグール」でもそうだが、意外とグロいシーンを見るのが好き。
名前: ター坊
仕事: 無職。仕事を探している。
最近の流行り:PayPayでケーキを買うこと。キャンペーンのおかげでPayPayのポイントがたまったけれど、PayPayの使えるケーキ屋さんが少ないのが難点。
ある日のこと。。。。
これまで、システム開発ライフサイクルの全体像を、以下の記事でまとめました。
システム開発ライフサイクルの模式図を見てみましょう。
システム開発の工程は、V字型に見えるのでV字モデルと呼ばれることがあります。
V字モデルの右半分がテスト工程です。
下から順番に単体テスト、統合テスト (システムテスト)、受入テスト (UAT) です。
これらの違いはテストの粒度と目的です。
順番に見てみましょう。
単体テスト、ユニットテスト
単体テストは単体機能のテストです。
ウォーターフォールモデルの詳細設計に対応したテストです。
単体テストでは、詳細設計で決定された仕様書(詳細設計書)通りの動作をするかどうかに着目したテストが行われます。
プログラマが目視でテストを行う場合もありますが、テスターなどテストを専門に行う人に任せる場合もあります。
最近は単体テストの自動化ツールなんかもあるようです。
統合テスト、システムテスト
統合テストは、構築したシステム全体のテストを行います。
ウォーターフォールモデルの基本設計に対応したテストです。
結合テストでは、基本設計で決定された仕様書(基本設計書)通りの動作をするかどうかに着目したテストが行われます。
統合テストは、システムを受注した会社のシステムズエンジニアが行うことが多いようです。
受け入れテスト、UAT (User Acceptance Test)
結合テストで仕様書(基本設計書)通りに動作するかどうかのテストをしただけでは、システムを受注時の要求水準に達しません。
そのため、受け入れテスト(総合テスト・評価テスト・シナリオテスト・UATなどとも言われます)を実施します。
受け入れテストは、ウォーターフォールモデルの要件定義に対応したテストです。
要求分析・要件定義の工程で定義されたユーザビリティや製品の企画当初の要求事項自体を満たせているかなど、よりユーザーに近い目線で品質を検証していくことになります。
受け入れテストは、システムを受注した会社のシステムズエンジニアが行うこともありますが、必ず、システムを使うユーザーがが参加する必要があります。
ユーザーが納得して初めて受け入れテストの合格となります。
ソフトウェアテストまとめ
まとめると、ソフトウェアのテストは、システムを成功裡に稼働させるのに最も重要な作業の一つです。
テストの重要性に着目したテスト駆動開発 (TDD) という手法もあります。
ウォーターフォールモデルでは実装が終わってからテストを行いますが、XP(エクストリームプログラミング)のプラクティスの一つである テストファーストでは、モノを作るよりも前に、まずテストコードの作成から着手したりします。
さて、ター坊の物理のテストの結果は、先生のUATに合格するのでしょうか。