情報処理のWeb教科書―IPA情報処理試験対策のお供に!

単体テスト―分岐網羅などのホワイトボックステストの観点、その他。

トップ 情報処理の知識体系 テクノロジ系 技術要素 開発技術 システム開発技術 ソフトウェア構築 単体テスト

単体テスト(ソフトウェアユニットのテスト)についてまとめています。テストの目的、実施と評価、分岐網羅などのホワイトボックステストの観点やテスト手法について解説しています。

目次

この記事の目次になります。

1. 単体テストの目的

2. 単体テストの手順

3. 単体テストの実施と評価

4. 単体テストの手法

単体テストに関連したIPA情報処理試験の過去問

単体テストに関連した参考書籍

もっと知識を広げるための参考

更新履歴

1. 単体テストの目的

単体テストは、ソフトウェア詳細設計で定義したテスト仕様に従っ て行い、要求事項を満たしているかどうかを確認することが目的です。

2. 単体テストの手順

単体テストは、テストの目的、方針、スケジュール、体制、使用するテストツールなどを決定してテスト計画を立て、 次にテスト項目、テストデータの作成、テスト環境の用意などのテスト準備を行い、 テストを実施し、テスト結果を評価するという一連の手順で行います。

3. 単体テストの実施と評価

テストの目的、実施方法、留意事項、テストで使用されるテストツールの役割を理解し、 また、テストの実行後には、テスト結果の記録、結果分析、プログラムの修正や改良作業を行います。

バグ曲線

バグ曲線とは、縦軸にバグの検出数の累積、横軸に時間で表したグラフのことをいいます。

テストで検出されるバグの数を時間を追って記録していくと、S字型の曲線になるというものです。 バグ曲線はもっと一般的な言葉で言うと信頼度成長曲線(ゴンぺルツ曲線)といいます。

バグ曲線の仮説

テスト開始段階ではバグが多数発見されます。 バグが修正されないと確認ができないところもあり、テスト回数の経過とともに検出数が増えます。 しかし、さらにテスト回数の経過に従って、発見されるバグの数は減って行きます。 最終的にはバグの数が収束に近づきます。 このような仮説よりバグ曲線はS字型の曲線に従っていると考え、現状の状況と比較して分析します。

バグ曲線の分析例

具体的なバグ曲線の分析例になります。

あるシステムをサブシステムa、bに分けて開発していて、ともにテストが終了した段階のデータが以下の表です。

サブシステム名開発規模テスト項目数未解決バグ数
a30kステップ3000
b20kステップ2000

現在までのバグ検出状況が以下のようなグラフで示されています。

平成18年春 問44 バグ検出状況分析―基本情報技術者 午前

2つのサブシステムとも、表より未解決バグ数は0件となっております。 しかし、グラフを見るとサブシステムaの方はバグ検出数が減少しており、サブシステムbの方はバグ検出数が減少していません。 サブシステムbのバグの検出数は、今後も同じ数出てくるのではないかと予想されます。

したがって、十分にテストされているとはいえませんが、サブシステムaの方が、サブシステムbよりもバグの検出数が収束しており、品質は高いと判断できます。

4. 単体テストの手法

一般的にシステムテストや運用テストはブラックボックステスト、単体テストはホワイトボックステストで行われます。

ブラックボックステスト

ブラックボックステストとは、入力と出力の関係だけ注目して行うテストです。 仕様によるテストとも呼ばれ、機能仕様からテストケースを作ります。

また、ブラックボックステストのテストデータは、 機能仕様から同値クラスや限界値を識別し、テストデータを作成します。

ホワイトボックステスト

ホワイトボックステストとは、プログラム内部の論理構造に着目してテストする方法です。

ホワイトボックステストでは、モジュール内部で正常に動作が行われているかをチェックします。 入力と出力の対応が正しいかどうかをチェックするだけでなく、正しい手順で計算が行われるかどうかなど、内部構造のアルゴリズムも考慮してテストします。

ホワイトボックステストで使用されるテストケースの作成方法

ホワイトボックステストで使用されるテストケースの作成方法には、網羅のレベルによって、命令網羅法、分岐網羅法、条件網羅法、複数条件網羅法などがあります。

命令網羅法

命令網羅法は、プログラム中の各文を少なくとも1度実行させるテスト方法です。 if-else文でelseでは何も行わない場合、ifの条件1回通せばOKとなります。

分岐網羅法

分岐網羅法は、分岐を少なくとも1度実行させるテスト方法です。 if-else文でelseでは何も行わない場合、ifとelse両方の条件1回ずつ通せばOKとなります。

条件網羅法

条件網羅法は、判定条件を網羅するテスト方法です。 判定条件が複数からなる場合は各条件の真偽を少なくとも1回は実行させます。

複数条件網羅法

複数条件網羅法は、判定条件が複数条件から成り立つ場合、各条件のすべての真偽の組み合わせを実行させるテスト方法です。

限界値分析

限界値分析は、テストケース作成技法の一つで、境界値に隣接する値を入力値としてテストを行う方式です。

プログラムの誤りの一つに、繰返し処理の終了条件としてA≧aとすべきところをA>aとコーディングしたことに起因するものがある(Aは変数、aは定数)、 このような誤りを見つけ出すために有効なテストケース設計技法は限界値分析です。

単体テストに関連したIPA情報処理試験の過去問

以下では単体テストに関連したIPA情報処理試験の過去問とその解説をまとめています。

単体テストに関連した参考書籍

単体テストに関連した参考書籍です。目次や参考いたしました内容をまとめています。

もっと知識を広げるための参考

更新履歴

戻る

スポンサーリンク

情報処理の知識体系

各試験の問題と解説

ランダム出題・採点アプリ

プログラミング

スポンサーリンク