社員技術ブログ

ソフトウェアテストとは?V字モデルの単体、統合、システムテスト、受け入れテスト UATの違い

 

登場人物

 

 

名前: スーさん。(SUさん)

仕事: 神戸のソフトウェア会社W社でSEをやっている

最近の流行り:スマホゲームのスナイパー3Dアサシン(Sniper 3D Assasin)で敵をヘッドショットで銃撃すること。「東京喰種トーキョーグール」でもそうだが、意外とグロいシーンを見るのが好き。

 

 

 

 

名前: ター坊

仕事: 無職。仕事を探している。

最近の流行り:PayPayでケーキを買うこと。キャンペーンのおかげでPayPayのポイントがたまったけれど、PayPayの使えるケーキ屋さんが少ないのが難点。

 

 

 

ある日のこと。。。。

 

ター坊
うーん。`/(*-_-*)ヽ

 

スーさん

 

ター坊
うーん。うーん。`/(*-_-*)ヽ

 

スーさん
??

 

ター坊
うーん。うーん。うーん。`/(*-_-*)ヽ

 

スーさん
どうしたの?ター坊

 

ター坊
いや、明日、物理のテストだけど、全く勉強していないんだ。

 

スーさん
え?ター坊ってSEになるとか言って就職活動していなかったっけ?

 

ター坊
いや、就職活動がうまくいかないし、高校からやり直している。

 

スーさん
は!?

 

スーさん
まさかの高校から!?

 

ター坊
そう。1から勉強しないと就職は無理だわ。それにもうちょっと高校生活・大学生活をエンジョイしたくなった。

 

スーさん
...

 

スーさん
実は、今日は前回の続きでテスト工程について説明しようと思っていたんだけど。。

 

ター坊
テスト!?

 

ター坊
SEになるとテストを受けるの?

 

スーさん
いや、SEの場合はテストを行う方だね。
ター坊
やる方なら楽しそうだ。

 

 

これまで、システム開発ライフサイクルの全体像を、以下の記事でまとめました。

SE (システムエンジニア) の仕事とは?仕事内容とシステム開発ライフサイクルをわかりやすく解説

 

 

システム開発ライフサイクルの模式図を見てみましょう。

 

システム開発の工程は、V字型に見えるのでV字モデルと呼ばれることがあります。

V字モデルの右半分がテスト工程です。

下から順番に単体テスト、統合テスト (システムテスト)、受入テスト (UAT) です。

これらの違いはテストの粒度と目的です。

 

ター坊
3種類もテストあるやん。僕なんて物理だけだよ。

 

順番に見てみましょう。

単体テスト、ユニットテスト

単体テストは単体機能のテストです。

ウォーターフォールモデルの詳細設計に対応したテストです。

単体テストでは、詳細設計で決定された仕様書(詳細設計書)通りの動作をするかどうかに着目したテストが行われます。

プログラマが目視でテストを行う場合もありますが、テスターなどテストを専門に行う人に任せる場合もあります。

最近は単体テストの自動化ツールなんかもあるようです。

 

統合テスト、システムテスト

統合テストは、構築したシステム全体のテストを行います。

ウォーターフォールモデルの基本設計に対応したテストです。

結合テストでは、基本設計で決定された仕様書(基本設計書)通りの動作をするかどうかに着目したテストが行われます。

統合テストは、システムを受注した会社のシステムズエンジニアが行うことが多いようです。

 

受け入れテスト、UAT (User Acceptance Test)

結合テストで仕様書(基本設計書)通りに動作するかどうかのテストをしただけでは、システムを受注時の要求水準に達しません。

そのため、受け入れテスト(総合テスト・評価テスト・シナリオテスト・UATなどとも言われます)を実施します。

受け入れテストは、ウォーターフォールモデルの要件定義に対応したテストです。

要求分析・要件定義の工程で定義されたユーザビリティや製品の企画当初の要求事項自体を満たせているかなど、よりユーザーに近い目線で品質を検証していくことになります。

受け入れテストは、システムを受注した会社のシステムズエンジニアが行うこともありますが、必ず、システムを使うユーザーがが参加する必要があります。

ユーザーが納得して初めて受け入れテストの合格となります。

 

ソフトウェアテストまとめ

まとめると、ソフトウェアのテストは、システムを成功裡に稼働させるのに最も重要な作業の一つです。

 

テストの重要性に着目したテスト駆動開発 (TDD) という手法もあります。

ウォーターフォールモデルでは実装が終わってからテストを行いますが、XP(エクストリームプログラミング)のプラクティスの一つである テストファーストでは、モノを作るよりも前に、まずテストコードの作成から着手したりします。

 

 

スーさん
どう分かった?

 

ター坊
うー。頭一杯や`/(*-_-*)ヽ

 

ター坊
テストをやるよりも、テストを受ける方が簡単に思えてきたので、明日の物理のテスト頑張る!

 

スーさん
!?

 

さて、ター坊の物理のテストの結果は、先生のUATに合格するのでしょうか。

 

 

関連記事

TOP