案件評判
テスト工程を理解する!テストの種類や役割、技法について解説します!

テスト工程を理解する!テストの種類や役割、技法について解説します!

最終更新:2021/08/05 投稿:2019/11/21
テスト工程を理解する!テストの種類や役割、技法について解説します!

システム開発工程においてテスト工程はお客様の要望に沿った品質の担保されたシステム納品を行うために様々な観点でテストの種類が設けられております。テスト工程にはどんな種類のテストがあるのか?またその役割や特徴はどういったことか見ていきましょう。
この記事ではシステム開発におけるテスト工程を理解するために様々なテストの種類やその役割を解説していきます。

システム開発におけるテストとは

システム開発におけるテストの意義とは、開発されたシステムが要件、仕様書通りに作成をされているか、品質に問題はないかなどの確認を行うための作業を意味します。ウォーターフォールモデルを用いたシステム開発を実施する際には『V字モデル』という検証方法を実行することが一般的です。

V字モデル

ウォーターフォールモデルの特徴とメリットについて解説された記事はこちら>>

Hack'en

単体テストとは

単体テストとは作成したモジュール単位で設計書にて要求された要件・機能を満たしているかどうかを確認、検証するテスト工程です。不具合が見つかった場合には製造工程(プログラム)へと戻り、修正対応を実行し、テスト結果のフィードバックを実施します。単体テストが完了し問題ないことが実証された後に結合テスト(後述)へと移行します。

英語表記は“Unit Test”
略式は”UT”
となっております。
※英語で表現される機会もあるため参考までに

また単体テストについて、“ユニットテスト”や”モジュールテスト”と表現する場合もあります。

単体テストの特徴
・モジュール単位での問題の早期解決が可能
・後工程のテストに対する効率化

単体テストの一般的な取り組みや必要な要素について解説された記事はこちら>>

結合テストとは

結合テストとは複数のモジュールを組み合わせてシステムが正しく連携し合い、不具合なく動作するかを確認、検証するテスト工程です。主にモジュール間のインターフェイスが正しく機能するかやモジュールを結合した状態でのブラックボックステストの2つの種類を確認します。結合テストが完了し問題ないことが実証された後に総合テスト(後述)へと移行します。

英語表記は“Integration Test”
略式は”IT”
となっております。
※英語で表現される機会もあるため参考までに

また結合テストについて、“連結試験”や”結合試験”や”統合試験”と表現する場合もあります。

結合テストの特徴
・モジュール間の構造問題の早期解決が可能
・モジュールを結合した状態でのデータ取引が正常か確認

結合テストの一般的な取り組みや必要な要素について解説された記事はこちら>>

システムテストとは

システムテストとはシステムが全体をとして要求された機能や性能を満たしているかどうかを検証を行うシステム開発工程におけるテストフェーズの最終段階のテスト工程です。システムテストを実施する際は、本番に近い環境を用いてテストを実施します。

英語表記は“Product Test”
略式は”PT”
となっております。
※英語で表現される機会もあるため参考までに

またシステムテストについて、“総合テスト”と表現する場合もあります。

主な目的
・要件通りに機能と性能は満たしているか
・不具合やそのリスクを徹底排除
・品質レベルは基準を満たしているか

システムテストの一般的な取り組みや必要な要素について解説された記事はこちら>>

受け入れテストとは

受け入れテストとは開発者によって作成されたシステムが要件通りに仕上がっているかお客様が判断をするためのテスト工程です。そのために実際に使用するデータや業務上使用する操作方法を用意してテストを実施します。テスト工程における最後の関門です。

英語表記は
“User Acceptance Test”
略式は”UAT”
となっております。
※英語で表現される機会もあるため参考までに

受け入れテストについて、“承認テスト”や”検収テスト”と表現する場合もあります。
またこの受け入れテストは運用テストと合わせて実施される場合もあります。

主な目的
・業務全体を通じての使用方法と利便性の確認
・要件通りに機能と性能は満たしているか確認
・品質基準値を満たしているかの確認

受け入れテストの一般的な取り組みや必要な要素について解説された記事はこちら>>

運用テストとは

運用テストとは業務上の操作に対する確認だけでなく、操作に対する応答時間などシステムの処理性能の計測やシステムに対する負荷への耐久力の計測なども実行します。
またイレギュラーなケースなど想定されるものは確率が低かろうとも網羅的テストすべき観点を作成しに様々な業務視点で処理を行います。運用テストの工程は前述の受入テストと合わせて実行されるケースもあります。

英語表記は“Operation Test”
略式は”OT”
となっております。
※英語で表現される機会もあるため参考までに

・要件通りに機能と性能は満たしているか確認
・運用手順の理解と操作性の確認
・運用マニュアルの確認

運用テストの一般的な取り組みや必要な要素について解説された記事はこちら>>

その他のテスト

これまで上記で説明をさせていただいた5つの主要なテスト以外にどのようなテストが存在するのか見ていきましょう。

Hack'en

確認テスト

確認テストとはプログラムへなんらかの変更を加えた際に不具合が生じないかやどんな挙動が起きるのかを確認するテストです。確認テストにおけるテスト手法をご紹介します。

・リグレッションテスト
プログラムの変更を加えた際に、他の箇所に不具合が生じないかを確認するためのテスト

・デグレードチェックテスト
プログラムの変更によりデグレーションが起こっていないかどうかを確認するためのテスト

評価テスト

評価テストとはセキュリティやユーザビリティなどの性能を評価するテストです。
評価テストにおけるテスト手法をご紹介します。

・セキュリティテスト
不特定多数の利用者が想定されるや外部のネットワークと連携を行うシステムにおいて、不正アクセスや情報漏えいの防止などセキュリティに関する要件を仕様書通りに満たしているかを確認するテスト

・ユーザビリティテスト
システムを実際に利用するユーザにとって操作性や見やすさなどの使いやすさを確認するテスト

・障害許容性テスト
障害が発生した場合でも、予め指定した最低限の機能が維持された状態でシステムが稼働するかを確認するテスト

負荷テスト

負荷テストとはシステムの耐久性を測定し、負荷が生じた際の処理能力などを確認するテストです。負荷テストにおけるテスト手法をご紹介します。

・性能テスト
システムの処理能力が仕様を満たしているかどうかを確認するテスト

・ロングランテスト
長時間のシステム稼働による処理能力や稼働率の判定を行い問題がないか確認するテスト

・ストレステスト
想定を超える高い負荷をかけた際にどのような挙動を示すのかを確認するテスト

・ロードテスト
システムの性能や耐久性を計測するため、通常稼働時、ピーク稼働時のそれぞれの場面を想定し負荷をかけて確認をするテスト

・キャパシティテスト
ユーザやデータ量が増えた際にどのような挙動をし、どのような対処をすればよいのかを確認するテスト

テスト工程の違い早見表

数あるテスト工程のそれぞれの役割を一言で説明するためにご活用ください。

単体テスト モジュール単位で性能を確認するテスト
結合テスト 複数のモジュールを組み合わせて性能を確認するテスト
システムテスト システム全体の機能や性能を確認するテスト
運用テスト 実際の業務を通じて確認するテスト
受け入れテスト 顧客がシステムに合否を下す最終テスト
リグレッションテスト(確認テスト) プログラム変更に伴い、不具合が生じないか確認するテスト
デグレートチェックテスト(確認テスト) プログラム変更に伴い、デグレーションが発生しないか確認するテスト
セキュリティテスト(評価テスト) システムのセキュリティを確認するテスト
ユーザビリティテスト(評価テスト) ユーザ目線でシステムの使いやすさを確認するテスト
障害許容性テスト(評価テスト) 障害発生時のシステム稼働状況を確認するテスト
性能テスト(負荷テスト) システムの処理能力を確認するテスト
ロングランテスト(負荷テスト) システムが長時間稼働の際の処理能力を確認するテスト
ストレステスト(負荷テスト) システムに高い負荷を掛けた際の挙動を確認するテスト
ロードテスト(負荷テスト) システムの稼働状況に応じた性能や処理能力を確認するテスト
キャパシティテスト(負荷テスト) ユーザやデータ量が増えた際の挙動を確認するテスト

テストの技法について

テスト工程において用いられる有名な4つの手法を紹介させて頂きます。

ホワイトボックステスト

『内部構造を理解する開発者がテストを実施』
ホワイトボックステストとはシステムの内部構造をしっかりと把握し理解した開発者が対象のシステムの論理構造が正しいかどうか解析するテスト手法です。

ホワイトボックステストに用いられる技法

・制御フローテスト
処理動作を確認するテストです。制御フローとは、処理に対してソフトウェアの動きを図で示したものです。

・データフローテスト
データの流れを確認するテストです。データフローとは、モジュール内のデータや変数処理の流れを意味します。

参考:e-words

ブラックボックステスト

『内部構造に着目せず、第三者がテストを実施』
ブラックボックステストとはシステムの内部構造を把握しない第三者が対象となるシステムの操作性や性能を正しいかどうか解析するテスト手法です。

ブラックボックステストに用いられる技法

・同値分析
同じ値の範囲やグループを呼び出して、それぞれの範囲から代表値を選定しテストする手法

・限界値分析
範囲の境界線付近が正しく処理されるかを確認するテスト手法

参考:e-words

トップダウンテスト

『上位のモジュールから順に動作検証を実施するテスト手法』
トップダウンテストとは不具合などの問題発生箇所の特定や判断を効率よく行うために上位のモジュールから順に動作検証を実施していくテスト手法です。主に結合テスト工程にて活用されます。

特徴(メリット):
・機能漏れを発見しやすい
・モジュール間のインターフェースの信頼度が高くなる

参考:e-Words

ボトムアップテスト

『下位のモジュールから順に動作検証を実施するテスト手法』
ボトムアップテストとは下位のモジュール(特定の機能)から動作検証を実施していくテスト手法です。主に結合テスト工程にて活用されます。

特徴(メリット):
・優先度の高い機能から着手が可能
・ブロック単位で並行したテストが可能

参考:e-Words

テストの自動化について

テストの自動化とは、これまで人的リソースを活用して行っていたテストケースの作成、テストの実行と確認、レポートの作成などの作業の一部をテストツールを活用することで自動化することです。特にルールに則って繰り返し検証作業が必要なテストにおいてはシステマチックな作業の方が効率よく進められることがあります。限られた開発の人的リソースを大切に扱うためにも、人の手を頼らずして作業を効率的に進められるものはテスト自動化の対象になります。

テスト自動化の利点
・テスト作業の効率化と工数の削減
・品質の数値化が可能なため、改善に対する策を定量的に算出可能
・ヒューマンエラーの排除
・手動では実現できなかったテスト作業を実現

まとめ

テスト工程の全体像を理解するために各テストの種類や特徴を紹介させて頂きました。
単体テスト、結合テスト、システムテストを筆頭にテストには主要なものだけでも5つ以上の工程が存在します。お客様の要望通りにシステムを仕上げるにはそれだけの確認事項を満たさないとならないということです。それぞれの工程の目的や観点を正しく理解し、テスト工程を円滑に進めて品質の高いシステム納品を実現しましょう。

案件評判
常駐する会社が、実際どんな会社で、どんな案件が動いているか詳しく知りたい。
これは常駐形態で働く方なら誰もが感じていることだと思います。 常駐の働き方をされている方は是非一度「案件評判」で案件についての評判をチェックしてみてください。