運用テストとは?
運用テストとは英語で「OT(Operations Test)」とも呼ばれ、多くのステップを経て進められてきたシステム開発の、まさに最終のテストです。システム開発の工程ではさまざまなテストが行われますが、運用テストはそれらのテストとどう違うのでしょうか。また、どんな内容でテストが行われるのでしょうか。
本番稼働直前に行う最後の関門
ソフトウェアテストは、単体テスト、結合テスト、さらにシステム全体を稼働させて行うシステムテストの順に進められます。運用テストは、これら一連のテストが終わった後、本番稼働直前に本番環境と同様の環境で実際に運用を行い、動作を確認するテストです。
テストを行うのはユーザー側
運用テストが他のテストと根本的に違うのは、「誰がやるのか」という点です。他のテストはベンダー側が行うのに対し、運用テストはエンドユーザーが行うテストです。ベンダー側も協力してテストの進行を支援しますが、テストを行うのはあくまでユーザー側です。
ユーザー側の視点でシステムの動作チェックを行うため、「ベンダー側が想定していなかった操作をしてどういう結果が出るか」といった点についても検証します。例えば「システムを終了させずに電源ボタンを押す」、「データを保存せずにサービスを終了させる」といった操作です。
また、UI(ユーザーインターフェース)など、使用上の不都合がないかといった観点からの確認も行います。運用テストは、ユーザー側の担当者がシステムの操作や運用に習熟するための場でもあります。
運用テストの目的
運用のテストの目的は、ユーザー側が実際の業務でシステムを問題なく利用できるかどうかを確かめることです。そのため、運用のテストの主体はユーザー側にあり、ベンダー側はユーザーと密に連携しながら運用テストを進める必要があります。
具体的には、システムの開発当初に定めた要件が守られているか・品質が保たれているか等をチェックします。また、システムの使い方をユーザーに教育するといった目的も含みます。
その他のテストとの違い
システム開発におけるテストは、大きく分けて4つ行われます。以下で、各テストの概要について説明します。
・単体テスト(Unit Test / UT) 作成したプログラムのひとつひとつをモジュール単位で動作を確認・検証するテスト。不具合が見つかった場合には修正し、最終的に問題がないことが実証されたあとで結合テストへ移行します。
・結合テスト(Integration Test / IT) 単体テストが終了したモジュールを結合させた状態で、動作の確認や入出力の検査などを行うテスト。主にモジュール間のインターフェースが正しく機能するかを確認し、問題がないことが実証されたあとで総合テストへ移行します。
・システムテスト(System Test / ST) 本番に近い環境を用意し、システム全体を稼働させた上で動作確認などを行うテスト。ベンダー側による最終確認テスト、総合テストと呼ぶ場合もあります。
・運用テスト(Operation Test / OT) システム開発における最終テスト。本番稼働後と同様の環境(または実際の運用環境)でユーザー側が動作確認等を行います。ベンダー側も協力しテストの進行を支援します。
ぜひ『マイナビIT エージェント』をご活用ください!
運用テストの進め方
それではもう少し具体的に、運用テストをどう進めていくのかを解説します。運用テストで確認したいのはシステムの本番稼働後に支障なく業務で使えるかどうかなので、基本的には要件定義の際に確認した業務の流れに沿って操作し、動作を確認することになります。
ただし、要件定義書を遵守するというよりも、実際の業務の流れに沿ってテストシナリオを作成し、テストをするというイメージが重要になります。そうすることにより、要件定義書における記載漏れや間違いを発見することにもつながるからです。
運用テストを進める手順としては、以下のとおりです。
テスト計画の作成
まずはテストの種類や範囲、実施の方法、実施環境、使用するツール、スケジュール、結果の判定基準などをまとめ、計画を策定します。内容についてはユーザー側と合意するとともに、ベンダー側の開発プロジェクトメンバー全員で共有します。
運用テスト仕様書の作成
次に、策定したテスト計画に基づいて運用テスト仕様書を作成します。テストのシナリオや内容、確認すべき項目などの具体的な定義を行い、どのようなテストデータを使うのかということもここで決めます。仕様書は計画書と呼ばれる場合もあります。
運用テスト仕様書は基本的にユーザー側で作成しますが、どのように作成したらいいかわからないというケースもあるでしょう。そういう場合はベンダー側で必要な資料を提供する・テンプレートを準備するなど、作成のサポートをするとよいでしょう。
運用テスト仕様書の記載項目例
▪テスト概要 詳細なテストシナリオを作成する前に、まずここでどういったテストをしようとしているのかという概要を記載します。
▪テストシナリオ どんな業務をどうテストするのか、どのようなデータを使用するか、極力具体的に記載します。運用テストの環境構築やデータ提供はベンダー側が行うことになるため、テストシナリオはきちんとベンダー側と共有しましょう。
▪テスト実施担当者 誰がテストを実施するかを定めます。原則としてシステムの利用部門の担当者となります。
▪テスト結果確認者 利用部門の責任者、または担当者の上司となる場合が多いです。
▪テスト体制 テストを実施する体制を記載します。ユーザー側がテストを実施し、ベンダー側は支援となることを確認します。
▪テストスケジュール 運用テストのスケジュールを立てて記載します。
テスト環境の構築
運用テスト仕様書を作成したら、ベンダー側で運用テストの環境を構築します。本番稼働前の最後のテストとなりますので、テスト環境は本番環境と同じ構成の専用環境を構築したり、場合によっては災害環境を利用したりすることもあります。
▪運用テスト専用環境を構築するケース 本番環境とできるだけ条件を揃えて、運用テストの専用環境を用意します。その環境でシステムの動作確認を行い、本番環境に移行した時に不具合が起こることのないようテストします。
▪本番環境を利用するケース すでに構築されている本番環境を利用する場合もあります。ただし、開発中のシステムに不具合があると既存のプログラムやデータなどに悪影響を及ぼす危険性がありますので、それ以前の段階で必ず検証のための環境で動作確認を行いましょう。
▪災対環境を利用するケース 災害対策のための代替環境として用意する災害対策環境を利用して、運用テストを行う場合もあります。コストの削減ができ、また本番環境に影響を与えることなく運用テストを実施することができます。
テスト実施
ここまでの準備が整ったら、運用テスト仕様書に基づいてユーザー側のテスト担当者が運用テストを実施します。障害を検知した場合は、障害管理票を起こしてベンダー側に不具合の改修を依頼します。
テストの実施においては、仕様書にない作業は行うことのないよう注意が必要です。不用意に設定を変えると、システムの正常な稼働に影響が出ます。仕様書に記載のないことを行ったり、変更したりする場合は、まず上司や責任者に必ず相談しましょう。
操作マニュアルへの反映
システムの本番稼働後の運用にあたっては、システムの維持管理運用、実際に業務を行うためのものなど、さまざまなマニュアルが作成されます。
例えば維持管理運用のためのマニュアルでは、サーバーの起動や停止にはじまりシステムの運用にあたる担当者が何をすべきか、作業手順が詳細に書かれています。業務用のマニュアルには、業務でシステムを利用するユーザーの担当者が実際に操作するための手順などが記載されています。
運用テストに先行してそうしたマニュアル類が作成されている場合には、運用テストの結果を踏まえ必要に応じて内容の改修を行います。
運用テストの注意ポイント
ここまで、運用テストの準備と実施について解説しました。では運用テストを実施するにあたって、どのようなことに注意する必要があるのでしょうか。
スケジュールには余裕を持たせる
徹底してユーザー目線で行う
要件定義にはじまるシステム開発の長い工程を、ユーザー側と密にコミュニケーションを取りながら進めていると、ベンダー側もユーザー側の意図や思いを完全に理解できたような気になるかもしれません。しかし、それは大きな誤りです。
ユーザー側の意図や思いを100%理解するのは不可能なので、運用テストにおいては必ずユーザー側が自らの視点でテストパターンを作成し、テストを実施しましょう。
前述したように、ベンダー側からすれば「とんでもない」と思えるような想定外なことも含めて、実際にテストし検証することを徹底しましょう。
不具合・バグなどの報告・対応は迅速に行う
当然ながら、運用テストにおいて何らかの問題点が明らかになる場合があります。それらはテストのあと定例ミーティングなどの場でまとめて報告を受けるのでなく、その都度ユーザー側に共有してもらいましょう。
改修に時間を要するような問題点の報告が遅くなると、納期に影響を及ぼす可能性もまた大きくなります。問題点などないに越したことはありませんが、いざ発覚しても本番稼働前に発見されたことを前向きに捉え、スピーディに調査や対応にあたりましょう。
別のテスト名で呼ばれることもある
IT業界では開発工程の名称が統一されておらず、テストの名称も会社によってまちまちであることも少なくありません。
システム開発の最終テストである運用テストについても、会社によって受け入れテスト(User Acceptance Tes / UAT)、システムテスト(System Test / ST)などと呼ばれているケースがあります。テストなどでよく意味のわからない名称があった場合には、必ず周囲に確認しましょう。
本番環境を使う場合は既存データなどへ影響する可能性がある
運用テストをユーザーの本番環境(実際の業務で使用している環境)で実施する際は、十分に注意が必要です。システムにバグが残っていたり予期せぬトラブルが発生したりした場合、ユーザー側の重要なデータや機器に支障が出る恐れがあります。
そのため、ネットワーク・データ・セキュリティ設定・ハードウェア等のインフラが本番環境と同等の環境を別で用意すると安心です。
運用テストはエンジニアとしてのスキルアップにつながる
運用テストは本番稼働前の最終テストのため、ユーザー側は業務手順や操作性など、幅広く確認しなければなりません。スムーズにテストを進行するためには、システムのすべてを把握したベンダー側のサポートが欠かせません。
またエンジニアとして運用テストに関わることは、納品に至る開発全体の流れを理解できる機会になります。テストの技法やノウハウが身につき、テストエンジニアなどとしてのキャリアアップにもつながるいい経験となるでしょう。
運用テストを通して身に付くスキル
運用テストを行う際は、さまざまな観点からシステムの動きを検証・改善する必要があるため、テスト技法に関する知識やテストツールを扱うスキルはもちろん、プログラムコードを読み解くスキル、ネットワークやサーバに関する知識など開発工程でも必要とされるスキルも用います。
また、運用テストはユーザー視点で行うテストのため、顧客ニーズを汲み取る力やコミュニケーション能力も養われます。加えて、リスクマネジメントスキルや、テスト結果の報告や改善提案を行うためのドキュメンテーションスキルも必要になります。
こうした幅広いスキルが身に付くことは、テストエンジニアだけでなく他のITエンジニア職種でも役に立ちます。これらのスキルを活かしてどのようなキャリアを歩めるのか、転職エージェントへ相談して確かめてみましょう。
エンジニア転職のご相談はぜひ
『マイナビIT エージェント』へ!
テスト工程を担うテストエンジニアの役割は大きい
システム開発における一連のテスト工程は通常、テストエンジニアと呼ばれる専門のエンジニアが担当します。テストエンジニアは、テスト計画・テスト設計を行い、それを実行して報告や改善案の提案をする、といったテスト工程全般を担います。
社会全体のIT化が進む中で、ITシステムの不具合やセキュリティ上の脆弱性によって深刻な問題が発生するケースもあり、システムの品質を担保することは非常に重要な要素となっています。
システムが正確かつ安全に稼働することを隈なくテストし、運用を始めてからトラブルに見舞われないようにするテスト工程、そしてそれを確実に行えるように計画・実行するテストエンジニアは、需要の高い職種と言えます。
テストエンジニアの年収
テストエンジニアの年収は「マイナビエージェント職業別年収ランキング/職種図鑑」で「品質管理/QA/QC」を参考にすると、平均年収は526万円(※2024年10月執筆時点)、経済産業省2017年発表の「IT関連産業の給与等に関する実態調査結果」から近い職種の「SE・プログラマ(ソフトウェア製品の開発・実装)」を参考にすると、平均年収568.5万円と分かりました。
国税庁2020年発表の民間給与実態統計調査における民間企業平均年収は433万円なので、品質管理を含むシステム開発に携わるエンジニアは、一般平均年収よりもやや高めであることが分かります。
テスト工程全般を担えるようなスキルを身に付ければ高収入を目指せる職種で、IT開発市場のニーズから考えても将来性も高いでしょう。
【参考】:マイナビエージェント職業別年収ランキング/品質管理/QA/QC ※【平均年収 調査対象者】2020年1月~2020年12月末までの間にマイナビエージェントサービスにご登録頂いた方 【参考】:IT関連産業における給与水準の実態① ~ 職種別(P7) 【参考】:民間給与実態統計調査-国税庁
運用テストを確実に実行してシステム開発を成功させよう
運用テストは、単体テスト、結合テスト、システムテストを経た後、最終確認として行うテストです。ユーザー側で行われるのが特徴で、本番と同様の環境で実際の運用状況を再現します。
運用テストの成功なくしてシステム開発の成功はありません。ベンダー側としても、運用テストが適切に行われるよう体制を整える必要があります。ベンダー側でそれを担うのがテストエンジニアで、IT化が進む昨今では特に需要の高い職種です。
テストエンジニアとして実力を身に付ければ、高年収を狙うこともできます。スキルを磨ける環境に身を置き、テスト工程での実績を積みましょう。
そこで利用を推奨するのがマイナビIT エージェントです。
マイナビIT エージェントは、IT・Webエンジニア向け、無料の転職⽀援サービスです。
IT・Webエンジニアの転職事情に詳しいキャリアアドバイザーが、あなたのご経験やスキルをお伺いし、転職活動のプランをご提案します。
アドバイザーは企業側と直接連携を取れるので、求人票に載っていない情報も確認することができます。こちらで、働き方などをしっかり確認の上、応募企業を選んでいくのが良いでしょう。
未経験からのキャリアチェンジは心身ともに本当に大変だと思います。少しでもご自身の負担を減らすべく、エージェントサービスを活用して、失敗のない転職活動に臨んでいただければ幸いです。
マイナビエージェントに無料登録して
転職サポートを受ける
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから