目指せ!電気主任技術者~解説ノート~

第一種電気主任技術者の免状保有者がまとめた電気主任技術者試験の解説ノートです。

ソフトウェア開発におけるプログラムテスト方法

ソフトウェア開発には,いくつかのプロセスモデルがある。

要求定義,設計,実装(プログラミング),テストなどの工程を上流工程から下流工程へ逐次的に遂行していくウォータフォールモデルにおいて,開発者のプログラムテストは,システムの最も小さな構成単位であるモジュールの単体テストから開始し,結合テストシステムテストへとボトムアップ的に行う。

図 ウォーターフォールモデル

図 ウォーターフォールモデル

しかしこの進め方においては,最上流の要求定義に起因する欠陥が,最後のシステムテストの段階にならないと検出されないという構造的問題がある。

この開発リスクを回避するために,現在では比較的短時間で分析や設計,評価を繰り返し行う反復的なプロセスモデルも用いられている。

テスト工程では,静的解析ツールを用いたプログラム構造解析も行われるが,実行による正しさを確認するためには,実際にソフトウェアを実行環境で動作させる必要がある。

単体テストの場面では,プログラムの一部モジュールだけを実行可能なようにテスト環境を整えなければならないため,本来のプログラムに代わって,被テストも受ウールを模擬的に呼び出すドライバや被テストモジュールから呼び出され模擬的な応答をするスタブを準備することが行われる。

テストを網羅的に行うためには,初めの段階ではプログラムの内部構造に基づいてテスト項目を選ぶ方法で行われる。

その後,結合テストシステムテストと進み,対象のプログラム量が大きくなるに従って,内部構造には関知せずに,インターフェースの仕様からテスト項目を選ぶブラックボックステストの比重が大きくなる。

参考文献

masassiah.web.fc2.com

 

更新履歴

  • 2022年1月27日 新規作成