ITシステムの品質確保に必要なテスト工程

ITシステムにおける品質とは、想定したことが想定通り動作する度合いのことをいいます。仮に仕様通り作成されたシステムでも、操作方法がわかりにくかったり、エラー処理が複雑だったりすると、ユーザの満足度が低下します。この状態では、高品質のシステムとは言えません。
こういった事態を防ぐために行われる工程の1つが、テスト工程です。テスト工程では、テストエンジニアを中心にしてあらゆる観点からシステムのテストを行い、品質に問題がないかをチェックします。
ソフトウェアの品質は「品質特性」に基づいて評価される
開発者は、ユーザの満足度を高めるために「品質特性」を考慮して、企画・設計・開発・テストを進めます。品質特性とは、ソフトウェアの品質を評価する基準のことで、ISO/IEC 9126(JIS X 0129)に定義されています。
ISO/IEC 9126(JIS X 0129)では、以下の6つの特性と、それぞれの品質特性をさらに細分化した21の副特性が定められています。
◆機能性(Functionality) 目的から求められる必要な機能の実装の度合いで、想定条件の下で要求仕様を満たす能力
◆信頼性(Reliability) 想定条件の下で機能が正常動作し続ける度合いで、障害の起こりにくさの度合い
◆使用性(Usability) ソフトウェアの想定動作に関して、利用者に対する分かりやすさ、使いやすさの度合い
◆効率性(Efficiency) 与えられた条件で、目的達成のために使用する時間や資源の度合い
◆保守性(Maintainability) 保守作業や改修作業に対する、必要なコストの度合い
◆移植性(Portability) 別の環境へ移した際、移植のしやすさや、そのまま動作する度合い
【参考】:JISX0129-1:2003 ソフトウェア製品の品質-第1部:品質モデル|日本産業企画の簡易閲覧
テスト工程にはいくつかのステップがある
ソフトウェア開発におけるテスト工程は、大まかに考えると以下の4ステップに分けられます。段階的にテストを行うことで、ユーザ側の要求に沿ったものになっているか、問題なく動作するかなどを隈なく確認することができます。
◆単体テスト(コンポーネントテスト) モジュールごとに正しく動作するかテストする
◆結合テスト モジュールを組み合わせて動作をテストする
◆システムテスト(総合テスト) すべての機能が揃った状態で設計仕様に沿っているかテストする
◆運用テストまたは受入テスト 実際の利用環境、もしくはそれに近い環境で動作をテストする
運用テストや受入テストは基本的に、テスト工程の中でも「最終チェック」として行われるものです。




運用テスト・受入テストは「要件定義」に対応する

各テスト工程は、それぞれ開発工程の各ステップと対応しています。テストは、ソフトウェア開発の要求発生から設計・開発までの流れを遡るようにして行われます。その際は各テストごとに品質特性を意識したチェック項目を作成し、品質基準をクリアしているか判断していきます。

開発工程のステップ
開発者はユーザ側から要求を受けてから、以下のステップに従って開発工程を進めていきます。
◆要求分析(Requirements analysis) ユーザの要求を理解するために、ユーザから要望書である要求仕様書を入手する
◆要件定義(Requirement definition) ユーザの要求が実現できるかどうかを確認し、要件定義書を作成する
◆基本設計(Basic design) 要件定義書の記載事項に基づき、外部設計仕様を設計する
◆詳細設計(Detailed design) 基本設計書の各項目に対応する開発を想定し、設計の詳細化を進める
◆開発・製造(Development / Manufacturing) 詳細設計の項目・ルールに従い、モジュールの開発・製造を行う

開発工程とテスト工程の関係性
テスト工程の最初のステップである単体テスト(Unit Test)では、開発・製造の工程での品質を確保するために、テストデータとテストロジックに基づいて単体動作の妥当性を検証します。
次に、結合テスト(Integration Test / IT)では、詳細設計工程での品質を確保するために、テストデータにより、モジュール間の動作の妥当性を評価します。上限値・下限値やエラー処理の振る舞いが妥当かも確認します。
その後のシステムテスト(System Test / ST)は基本設計に対応するテストで、疑似ユーザデータを用いてシステム全体での動作が妥当か確認します。また高負荷環境での動作が安定するかどうかや、運用想定のエラー処理が妥当かどうかもみていきます。
最終工程となる運用テスト(Operations Test / OT)・受入テスト(User Acceptance Test / UAT)では、要件定義工程や要求分析工程の品質を確保するために、ユーザの運用環境と実データを用いて、ユーザの要求が満たされていることを確認していきます。
ぜひ『マイナビIT エージェント』をご活用ください!
運用テストと受入テストの違い

運用テストと受入テストは、どちらも最終チェックのステップとして行われるものですが、その違いはどこにあるのでしょうか。それぞれの目的や実施方法について解説します。
ほぼ同義のこともあるが目的は少し異なる
運用テストも受入テストも、本番環境と同様の環境でユーザー視点から評価が行われるため、ほぼ同義として認識されることもあります。しかし、厳密にはその目的は少し異なります。
運用テストは、ユーザ側の要求する機能が満たされていることを確認し、実際の運用において問題がないことを保証する目的で、対して受入テストは、このままソフトウェアがリリースされても問題がないかどうかをユーザ側(発注側)が検収する目的で実施されます。
そのため、自社内の開発チームが開発を行う場合は運用テストが、受託開発の場合は受入テストが最終テストとなることが多いでしょう。
テストの内容や観点も異なる場合がある
運用テストや受入テストは、ユーザの動作環境や実際のデータを用いて、商用環境を想定した操作方法・手順のもとに確認していきます。エラー処理や、高負荷での安定性など非機能要件についても検証します。
ただし、それぞれ重視するテスト内容や観点が異なる場合もあります。一般的に、運用テストでは要件定義書や仕様書と相違がないかという点を中心に、ソフトウェアの性能や操作性などについて確認します。ユーザー視点で行いますが、開発者の作成したテスト計画書とテスト仕様書、テストデータを用いることもあります。
一方受入テストでは、不具合が起きてはならない特に重要な機能や、開発中に仕様変更した機能などを重点的にチェックすることが多いです。テスト計画から実施までユーザ側が担います。

運用テスト・受入テスト実施時の注意点

運用テストや受入テストを行うにあたっては、注意すべきこともあります。それぞれのテストごとに、特に注意したいポイントを解説していきます。
運用テストの注意点
運用テストは開発者の責任により実施されます。しかし、求められる要件はユーザ環境で必要とされる事項です。したがって、ユーザ側の立場に立って計画立案・実施をすることが求められます。そのため、テストシナリオを事前に用意し、ユーザ環境に合わせたテストパターンを複数定義して適合性を確認します。
受入テストの注意点
ユーザ側では、開発者の品質確保のための各ステップを理解し、進捗報告を受けていきます。その進捗報告に従い、受入可能な品質かどうか、事前に評価を進めていきます。
ユーザ側の受入テストでは、合否判断のための受入基準を定めて、事前にユーザ側・開発者側双方が合意して進めていきます。本番稼働後の影響、障害発生の対策を意識し、重点的に確認したい項目を定義しておきます。
同時に、障害発生時の処理フローや、業務フローへの影響も調査します。これによって、運用時に発生する事態への対策を事前に講じ、運用時のリスク低減を図ります。
ITの普及によりテスト工程はますます重要に

近年の世界的なIT化の波により、IT製品の品質を担保するためのテスト工程はますます重要になっています。企業やそのサービスの根幹を担う部分がIT化されることも多々あり、トラブルが発生すると、重大な被害や損失に繋がってしまいます。
開発工程はもちろんですが、テスト工程でいかに良質なテストを行い、リリース前に改善点を洗い出せるかが、運用開始後のトラブル防止に貢献すると言えます。そのため、テスト工程全体で従来以上に慎重かつ詳細な作業が求められています。

テストエンジニアの重要性も増している
テスト工程を担うテストエンジニアの重要性も、同時に増しています。需要が高まり、年収にも影響していると考えられます。
テストエンジニアの年収は「マイナビエージェント職業別年収ランキング/職種図鑑」での「品質管理/QA/QC」を参考にすると、平均年収は526万円(※2024年10月執筆時点)、経済産業省2017年発表の「IT関連産業の給与等に関する実態調査結果」から近い職種の「SE・プログラマ(ソフトウェア製品の開発・実装)」を参考にすると、平均年収568.5万円と分かりました。
国税庁2020年発表の民間給与実態統計調査における民間企業平均年収は433万円なので、テストエンジニアは一般平均年収よりも、やや高めであると思われます。テストが重要な作業であること、良質なテストを行うために専門的なスキルが必要であることから、高年収も狙える職種です。
【参考】:マイナビエージェント職業別年収ランキング/職種図鑑/品質管理/QA/QC ※【平均年収 調査対象者】2020年1月~2020年12月末までの間にマイナビエージェントサービスにご登録頂いた方 【参考】:IT関連産業における給与水準の実態① ~ 職種別(P7) 【参考】:民間給与実態統計調査-国税庁
テストエンジニアへの転職もおすすめ
以上のように需要の高いテストエンジニアは、転職にもおすすめの職種です。ユーザのニーズを汲み取る力、プログラミングスキル、ドキュメンテーションスキルなど、テスト工程に携わることでさまざまなスキルが身につくため、ITエンジニアとしてスキルアップしたい方、そしてこれからIT業界を目指す方にもおすすめです。
ITエンジニアは経験などが重視される傾向にありますが、企業によっては就職後の教育が充実している場合もあるので、幅広く情報を集めれば自身のレベルに合った企業が見つかるでしょう。転職エージェントなどを利用して、効率よく転職活動を進めましょう。
エンジニア転職のご相談はぜひ
『マイナビIT エージェント』へ!
テスト工程を理解し、運用時の安定性を高めよう

各テスト工程が理解できると、関連仕様書をはじめとする成果物の理解度が高まります。同時に、顧客要件の理解が高まり、必要な確認事項が理解できます。理解度が高まるにつれて、自身の責任範囲も広がり、より多くの業務、高度な業務を任されるエンジニアとなるでしょう。
テストエンジニアになって実際にテスト工程を専門に扱うのも1つの選択肢です。テストエンジニアはIT化社会において重要な役割を担っており、市場ニーズも高い職種です。転職を考えている方は、テストエンジニアへの転向も視野に入れてみてはいかがでしょうか。
そこでぜひご活用いただきたいのがマイナビIT エージェントです。
マイナビIT エージェントは、IT・Webエンジニア向けの無料の転職⽀援サービスです。
IT・Webエンジニアの転職事情に詳しいキャリアアドバイザーが、あなたのご経験やスキルをお伺いし、転職活動のプランをご提案致します。
アドバイザーは企業側の人事担当者と直接連携を取れますので、求人票に載っていない企業情報も確認することができます。残業時間や給与面など、働き方などをしっかり確認の上で応募企業を選んでいくのが良いでしょう。
・資格やプログラミングの勉強をしているけれど、企業が求めるレベルに達しているのかわからない ・スキルアップをして市場価値を上げていける企業の選び方を知りたい ・数多くあるITエンジニアの職種の中で、自分に向いている仕事は何か知りたい
こうした悩みを抱えていらっしゃる方は、まずは無料登録でキャリアカウンセリングをおすすめ致します。
マイナビエージェントに無料登録して
転職サポートを受ける
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから