システム開発におけるテスト工程とは?特徴や種類についても紹介
- システム
エンジニア - STテストとは、どのようなテストですか?
- プロジェクト
マネージャー - システムの品質について、評価・確認したり負荷のかかり具合を検証するテストです。
システム開発におけるテスト工程とは?
初めに、システム開発におけるテスト工程とはなにかについて紹介します。
システム開発におけるテスト工程とは、プログラミング工程が終わった後、その工程が要件定義で決めた通りに動いてくれるかを確認するためのものです。
テスト工程には、単体テスト・結合テスト・総合テストなどがあり、それぞれのテストによって工程が異なります。この記事では、特に総合テスト(ST)について紹介するので、興味がある方はぜひ読んでみてください。
システム開発におけるテスト工程の特徴5選
次にシステム開発におけるテスト工程の特徴についてです。
ここでは、単体テストの目的、結合テストの目的、総合テストの目的、ユーザー受け入れテストの目的、運用テストの目的の5つについて紹介します。
1:単体テストの目的
主に最初に行うテストが単体テストです。
単体テストは、工程に不具合が見つかった場合に、修正を行ったり、結果のフィードバックを行ったりすることで、プログラムを完成させていくためのテストです。
2:結合テストの目的
単体テストの次に行うテストとして、結合テストがあります。
結合テストは、単体テストで特に問題がないことを確認した後、サブシステムに不具合が生じないか、そしてインターフェースにズレがないかについて確認するためのテストです。さらに結合テストでは、システムの連携がうまくいくかといったことも確認します。
3:総合テスト(システムテスト)の目的
ST(SystemTest)は、開発したシステムが発注者の希望した機能や能力を満たしているか検証するためのテストです。
ST(SystemTest)は、観点によって異なる手法やテストの種類があり、システムの品質を担保するために行います。総合テストとも呼ばれます。
4:ユーザー受け入れテストの目的
総合テストの次に紹介するのは、ユーザー受け入れテストです。
ユーザー受け入れテストは、システムの開発を開発会社に注文して納品された際に、発注者側が想定していた目的通りに稼働するか、発注者の意図通りに稼働するかを確認するテストです。
5:運用テストの目的
最後に、最終テストとなる運用テストについて紹介します。
運用テストは、顧客の要望を満たした上で、その機能が正常に稼働するか、誤った操作が生じやすい仕様になっていないか、これ以上操作性を上げる手段はないかなど、ユーザーが使う際に起こる可能性があるトラブル・不具合といったものを想像してチェックするテストです。
総合テストの種類3つ
STのテストの種類を3つ紹介していきます。
評価テスト・確認テスト・負荷テストがあり、各テストの中でさらにいくつかの手法に分類されています。それぞれのテストについて解説していきます。
評価テスト
性能の評価をするST(SystemTest)を評価テストと言います。
評価テストは、3つの手法があります。
1つ目は、セキュリティに関する評価を行うセキュリティテストです。2つ目は、ユーザーの視点で、見やすさや使いやすさを評価するユーザビリティテストです。そして3つ目は、障害が発生した際に、最低限の機能が維持され、動作できるかを評価する障害許要性テストがあります。
確認テスト
プログラム変更をした際に起きる挙動や不具合を検証するST(SystemTest)を確認テストと言います。
確認テストには、2つの手法があります。
1つ目は、プログラムの変更によって起きる、他の部分への不具合の検証をするリグレッションテストです。
2つ目は、プログラム変更によって、修正済みの部分に不具合が再発生したり、実装できていた機能が失われたりなど、デグレーションが起きていないかを検証するデグレードチェックテストです。
負荷テスト
敢えてシステムへ負荷をかけ、処理能力や耐久性を検証するST(SystemTest)を負荷テストと言います。
負荷テストには、観点によっていくつかの種類があります。要件定義の仕様書通りに処理能力が満されているかを検証する性能テストや、長時間の稼働に対する処理能力を確認するロングランテストがあります。
他にも、想定以上の負荷をかけた際の挙動を確認するストレステストやロードテスト、キャパシティテストなどのテストがあります。
開発までのテストの手順4つ
ST(SystemTest)は、要件定義、基本設計、詳細設計、要求分析の各工程に応じたテスト工程で、検証を実施します。
ウォーターフォールモデルの場合、V字モデルと呼ばれる手順で検証を行うことが多いです。
では、ST(SystemTest)の4つの手順と特徴について、説明します。
1:単体テスト
単体テストとは、個々のモジュールが要求通りに動作するかを検証するテストです。
ST(SystemTest)の中で最初に行うテストで、ut(Unit Test)とも呼ばれます。開発環境でテストを行い、詳細設計の内容が満たされているかを確認します。
2:結合テスト
結合テストとは、複数のモジュールを組み合わせて検証するテストです。
単体テストの次に行うテストで、ct(Combined Test)とも呼ばれます。結合したモジュールを動作した際に、不具合が発生しないか、データの受け渡しが正しくできているかなどを検証します。
3:システムテスト
ST(SystemTest)は、要件定義で決めた必要な機能が全て含まれているか、処理速度が適正であるかなど、システム全体の機能と能力を検証するテストです。
pt(Product Test)や総合テストとも呼ばれます。結合テストを行った後、データ量やアクセス数など、実際に運用する際と同様の負荷をかけることで、動作に問題が発生しないかなども検証します。
4:ユーザーテスト
開発されたシステムが要件通りの機能や能力を満たし、正しく動作するかを、発注者が判断するためのテストです。
ST(SystemTest)後に行うテストで、ut(User Test)とも呼ばれます。実際の運用と同様の条件でシステムを使用し、使用方法や利便性、品質基準を満たしているかなどを検証します。
総合テストにおける結合テストの概要
ST(SystemTest)の1つである結合テストは、開発したモジュールを組み合わせて行うテストですが、検証方法には内部結合テストと外部結合テストの2つの種類があります。
2つの方法に分けてテストを行う場合、内部結合テストをITa(Integration Test A)、外部結合テストをITb(Integration Test B)とも呼びます。では2つの違いについて見ていきましょう。
内部結合テスト
内部結合テストは、サブシステム内部で機能を結合させ検証するテストです。システム内の機能間で処理に不具合が生じないかを検証します。
また、開発が発注元と発注先に分かれており、テストを実施する主体が違う場合に、発注元が行うテストを内部結合テストと言います。
外部結合テスト
外部結合テストは、サブシステム間や他のシステムの機能と連携させ検証するテストです。機能の連携によって処理に不具合が生じないかを検証します。
また、開発が発注元と発注先に分かれており、テストを実施する主体が違う場合に、発注先が行うテストを外部結合テストと言います。
テストにおける注意点
ST(SystemTest)を実施する上で大切なことは、事前の計画と準備です。
事前準備として、テスト駆動開発という手法を使ったテストコードの作成や、テストケース、テストデータの作成があります。検証を行うにあたって、スタブやドライバから構成されるテストハーネスなど、ツールの準備も必要になります。
また、ST(SystemTest)で生じたバグの発生原因と対策を、台帳などで管理していくことも品質の担保のために大切です。
- システム
エンジニア - お客様が利用するシステムが正しく動作するか手順をふんで進め、記録を残す大切なテストだとわかりました。
- プロジェクト
マネージャー - 発注者の要望通りのシステムを実現するのに欠かせないテストです。
STを知ってシステム開発の知識を深めよう
ご覧いただいたようにST(SystemTest)には様々に種類や方法があります。テストを実施後、各テスト工程の概要や、テストケース数と不具合が発生した件数など、テスト結果をお客様へ報告することになります。
ST(SystemTest)について、テスト工程やテスト内容を正しく理解することで、要件を満たし、より品質の高いシステム開発を実現していきましょう。
FEnet.NETナビ・.NETコラムは株式会社オープンアップシステムが運営しています。
株式会社オープンアップシステムはこんな会社です
秋葉原オフィスには株式会社オープンアップシステムをはじめグループのIT企業が集結!
数多くのエンジニアが集まります。
-
スマホアプリから業務系システムまで
スマホアプリから業務系システムまで開発案件多数。システムエンジニア・プログラマーとしての多彩なキャリアパスがあります。
-
充実した研修制度
毎年、IT技術のトレンドや社員の要望に合わせて、カリキュラムを刷新し展開しています。社内講師の丁寧なサポートを受けながら、自分のペースで学ぶことができます。
-
資格取得を応援
スキルアップしたい社員を応援するために資格取得一時金制度を設けています。受験料(実費)と合わせて資格レベルに合わせた最大10万円の一時金も支給しています。
-
東証プライム上場企業グループ
オープンアップシステムは東証プライム上場「株式会社オープンアップグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
株式会社オープンアップシステムに興味を持った方へ
株式会社オープンアップシステムでは、開発系エンジニア・プログラマを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
まずは話だけでも聞いてみたい場合もOK。お気軽にご登録ください。
新着案件New Job
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅) -
PMO/東京都豊島区/【WEB面談可】/在宅勤務
月給55万~55万円東京都豊島区(池袋駅)