グルーピングで楽に覚える情報処理試験用語

第13回 システム開発の工程で行われるテスト

この記事を読むのに必要な時間:およそ 2 分

分野

カテゴリ

マネジメント系

システム開発

今回は,システム開発工程の後半に行われるテストについて解説します。試験では,テストの種類とその目的や内容,テストで使われるテスト技法について出題されています(システム開発の各工程については第12回参照)⁠

テストの種類

システム開発を行う場合,まずシステムの全体象を決め,次にシステムをいくつかに分割してそれぞれの仕様を検討し,さらに細かい単位に分割してそれぞれの内容を設計する,という「全体→部分」という流れで設計していきます。最小の単位であるモジュール(ユニット)の設計が決定すると,モジュールごとにプログラミング(コーディング)を行い,その後はモジュールを順に結合させて,システム全体を組み立てる作業に入ります。

テストは,作成した個々のモジュールの検証からはじまり,設計工程とは逆に「部分→全体」という流れで検証していきます。ここでは,試験によく出題されるテストを,行われる順序に従って説明していきましょう。

①モジュールテスト(ユニットテスト)

モジュールごとに行うテストです。主にバグと呼ばれる論理上の誤りを検出して修正するために行われます。そのモジュールを作成したエンジニアが担当するテストで,テスト技法としてホワイトボックス法などが使われます。

②ソフトウェア結合テスト

モジュールを組み合わせ,モジュール間のインタフェースに不具合がないかどうかを検証するテストです。開発担当のエンジニアまたは専門のテスト担当者がテストを行います。テスト技法として,ボトムアップテスト・トップダウンテスト・ビッグバンテストなどが使われます。

③システム結合テスト(システムテスト)

システム全体を稼働させて行うテストで,必要な機能や性能が満たされているかどうかを検証します。専門のテスト担当者と共に,システムのユーザも参加して行われ,ブラックボックス法などのテスト技法が使われます。システム結合テストでは,具体的には次のようなテストが行われます。

機能テスト:必要な機能がすべて含まれ,正常に動作するかどうかを検証
性能テスト:要求される処理能力や応答時間を満たすかどうかを検証
例外処理テスト:エラー処理機能や回復機能が正常に動作するかどうかを検証
負荷テスト:大きな負荷(大量のデータ処理など)をかけても,正常に動作するかどうかを検証
操作性テスト:ユーザインタフェースが使いやすいかどうかを検証
退行テスト(レグレッションテスト):プログラムを修正した場合,修正箇所以外の機能が正常に動作するかどうかを検証

④承認テスト(受入れテスト)

開発側からユーザ側にシステムを引き渡す際に行われるテストで,ユーザ側の検収担当者が行います。システム要件をすべて満たしていることを検証し,ユーザ側として受け入れてよいかどうか(検収)を判断します。

⑤運用テスト(導入テスト)

システムを本稼働させる前に,実際の業務と同じ環境で稼働させ,システム運用を担当するユーザが行うテストです。定められた業務手順のとおりにシステムが稼働するか,業務の処理量の変化などによって不具合が起こらないかなど,実際の業務に使うデータを用いて検証します。

テスト技法

各テスト工程では,誤りを見逃すことなく,かつ効率よく検証を行うために,さまざまなテスト技法が用いられています。

ホワイトボックス法とブラックボックス法

チェックを行うために必要な値を含めたデータのことを,テストデータといいます。テストデータの作成技法として,プログラムを作成するエンジニア側の視点で作るホワイトボックス法と,システムを使うユーザ側の視点で作るブラックボックス法があります。

ホワイトボックス法では,プログラムの処理手順や処理内容などの内部構造を意識して,バグが発見できるようにテストデータを作り込みます。プログラムの作成者であるエンジニアが,モジュールテスト用のテストデータを作成するときに用いる技法です。

それに対して,ブラックボックス法は,プログラムの内部構造を意識せず,⁠入力データAを処理すると,Bが結果の値として返ってこなければならない」という要件をクリアするかを検証するテストデータを作るときに用いる技法です。ソフトウェア結合テスト以降のテストで,要件定義書に定められた機能を満たすことを検証するためのテストデータ作成などに使われる技法です。

同値分割法と限界値分析法

入力される可能性のある値をすべて網羅してテストデータを作れば,完璧にプログラムの機能をチェックできます。ただし,テストデータの量は莫大になり,テストデータの作成にも,そのデータをプログラムに処理させて結果を検証するにも,想像を絶する時間と手間が必要になります。

同値分割法・限界値分析法は,プログラムの不具合を見逃すことなく,しかも効率よくテストを行うことができるテストデータを作成するための技法です。

入力データをいくつかのグループ同値クラスに分け,そのグループを代表する値を選んでテストデータを作成する方法を同値分割法といいます。

また,各グループの境界となる値を選んでテストデータを作成する方法を限界値分析法といいます。年月日を入力する場面で,月の数値をチェックするテストデータを考えてみましょう。月の数値は1月~12月までですから,有効な値は1~12,それ以外はエラーとなる無効な値です。

トップダウンテスト・ボトムアップテスト・ビッグバンテスト

プログラミングの工程で作成したモジュールは,関連するモジュールと結合しながらシステム全体を組み上げていきます。結合したモジュールが正常に動作するかを検証するときに使われるテスト技法が,トップダウンテスト・ボトムアップテスト・ビッグバンテストです。

トップダウンテストは,上位のモジュールから順に下位のモジュールを結合させて,テストしていく方法です。上位モジュールが呼び出して使う下位のモジュールが未完成の場合には,下位モジュールの機能をシミュレート(真似)する,スタブと呼ばれるモジュールを用意します。

ボトムアップテストは,トップダウンテストとは逆に,下位のモジュールから順に上位のモジュールへと結合させて,テストを行う技法です。テストを行う下位モジュールを呼び出して動作させる役割を持つ上位モジュールが未完成の場合には,ドライバと呼ばれる上位モジュールの機能をシミュレートするモジュールを用意します。

ビッグバンテストは,ひとかたまりのモジュールを一気に結合してテストを行う方法です。モジュールを結合するごとにテストを行うトップダウンテストやボトムアップテストに比べて,テストにかかる時間や手間を軽減することが可能です。ただし,段階的にテストを行っている上記2つの手法とは異なり,テストの結果なんらかの不具合が出た場合,どのモジュールやモジュール間インタフェースが原因なのかを特定しづらいというデメリットもあります。

著者プロフィール

原山麻美子(はらやままみこ)

情報処理試験対策の書籍や雑誌等の企画・執筆・編集など,長年に渡りIT関連全般の出版に携わる。専門学校の講師や受験対策講座(ラジオ)でのアドバイザー経験もあり,受験者への具体的で細やかなアドバイスは,わかりやすくて実践的だと好評。

コメント

コメントの記入


自動採点機能付き 問題演習ソフト DEKIDASS デキダス

おすすめ書籍

平成29年度【春期】【秋期】情報処理安全確保支援士 合格教本

平成29年度【春期】【秋期】情報処理安全確保支援士 合格教本

平成29年4月からスタートする,新国家資格「情報処理安全確保支援士」試験対策の参考書。日々,重要性が高まるセキュリティ分野に関す...

平成29年度 データベーススペシャリスト 合格教本

平成29年度 データベーススペシャリスト 合格教本

試験に必要な知識と解法テクニックを本書1冊で完全網羅!概念データモデル,関係データモデル,SQL,DBMS関連技術など,頻出の用語・...

改訂3版 基本情報技術者 らくらく突破 表計算

改訂3版 基本情報技術者 らくらく突破 表計算

午後選択問題「表計算」の定番対策書としてロングセラーを続けている本書が改訂3版となりました。改訂3版では,平成27年度秋期試験か...

平成28-29年度 応用情報技術者 試験によくでる問題集【午前】

平成28-29年度 応用情報技術者 試験によくでる問題集【午前】

試験によくでる問題を厳選し,ていねいに解説したテーマ別問題集。本書では,最新の応用情報技術者本試験問題はもちろん,前身であるⅠ...

平成29年度【春期】【秋期】応用情報技術者 合格教本

平成29年度【春期】【秋期】応用情報技術者 合格教本

応用情報技術者試験の出題範囲を全網羅した午前・午後試験両対応の超定番テキストを最新の出題傾向に合わせて改訂しました。応用情報...

お試し試験ランキング

  • dairy
  • weekly
  • monthly

dairy

  名前 回数 ポイント

weekly

  名前 回数 ポイント

monthly

  名前 回数 ポイント