2006年05月19日

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

ウォーターフォールモデルとは

 システムの開発手順を示すモデルの一つ。システム開発モデルとしては古典的なものである。システム全体を一括して管理し、分析・設計・実装・テスト・運用をこの順に行っていく(実際はもう少し細かく分ける)。各工程が完了する際に、前の工程への逆戻りが起こらないよう、綿密なチェックを行なう。水が瀧を流れ落ちるように開発が進んでいくことから、このような名称になった。しかし、実際の開発作業では頻繁に逆戻りが発生するため、ウォーターフォールモデルから派生する形で、逆戻りを考慮に入れたモデルが考案されている。



スパイラルモデル

スパイラルモデルとは

 システムの開発手順を示すモデルの一つで、システムの一部分について設計・実装を行い、仮組みのプログラムを元に顧客からのフィードバックやインターフェースの検討などを経て、さらに設計・実装を繰り返していく手法のこと。

 仕様の修正や再設計を考慮したモデルなので、ウォーターフォールモデルと比べて顧客の要求と最終実装が乖離しないという特長をもつ。

 ただし、プロトタイプの作成に時間を要する分開発効率が低くなるほか、どの段階でプロトタイプから最終実装に格上げするかの判断が難しいといわれる。



単体テスト

単体テストとは

 システムのテスト手法の一つで、個々のモジュール(部品)のみを対象としたテスト。対象のモジュールが仕様書で要求された機能や性能を満たしているかどうかをテストする。

 複数のモジュールを組み合わせて行なうテストは結合テスト、システム全体を対象に行なうテストはシステムテストという。



モジュール

モジュールとは

 機能単位、交換可能な構成部分という意味の英単語。システムへの接合部(インターフェース)が規格化・標準化されていて、容易に追加や削除ができ、ひとまとまりの機能を持った部品のこと。

 パソコンのマザーボードなどは主要な部品がモジュール化されており、後から最新の部品に交換して全体を買い換えなくても性能を向上させられるようになっている。最近のソフトウェアやプログラミング言語は、あらかじめモジュールを組み込めるようなインターフェースを用意しておき、ユーザが自由に追加機能を開発して公開したり、全体を入れ替えることなく機能を強化するのに利用しているものが多い。



ボトムアップテスト

ボトムアップテストとは

 複数のモジュールを結合させたプログラムを、下位モジュールから順に結合しながら検証していくテスト方法。

 複数のモジュールを使用したプログラムを開発する場合、バグの発生個所を特定しやすくするために、全てのモジュールを組み合わせて一気にテストするのではなく少しずつ組み合わせながら順次テストしていく方式が一般的である。

 このときにボトムアップテスト方式では、「ドライバ」と呼ばれるダミーの上位モジュールを用意して下位モジュールから順にテストしていく。

 下位モジュールに問題がなければドライバを本物の(単体テストの完了した)上位モジュールと入れ替えて再びテストが行われ、以下問題が発見されるか全てのモジュールが結合された状態でテストが完了するまで、同様の手順が繰り返される。

 最下位モジュールからテストしていくため、並行作業に向いているという利点がある。

 なお、これとは逆に、上位モジュールから順に結合しながらテストする方法を「トップダウンテスト」という。



トップダウンテスト

トップダウンテストとは

複数のモジュールを結合させたプログラムを、上位モジュールから順に結合しながら検証していくテスト方法。

 複数のモジュールを使用したプログラムを開発する場合、バグの発生個所を特定しやすくするために、全てのモジュールを組み合わせて一気にテストするのではなく少しずつ組み合わせながら順次テストしていく方式が一般的である。

 このときにトップダウンテスト方式では、「スタブ」と呼ばれるダミーの下位モジュールを用意して上位モジュールから順にテストしていく。

 上位モジュールに問題がなければスタブを本物の(単体テストの完了した)下位モジュールと入れ替えて再びテストが行われ、以下問題が発見されるか全てのモジュールが結合された状態でテストが完了するまで、同様の手順が繰り返される。

 最上位モジュールからテストしていくため、重要な中核部分のエラーを早期に発見しやすいという利点がある。

 なお、これとは逆に、下位モジュールから順に結合しながらテストする方法を「ボトムアップテスト」という。



スタブ

スタブとは

 あるプログラムが他のプログラムを呼び出す際に仲介となるプログラム。スタブの仲介を受けることで、プロセス間通信やクライアント・サーバ間でのオブジェクト呼び出しなどを、通常の手続き呼び出しと同様に扱うことができるようになる。

 アプリケーションがOSの機能であるシステムコールなどを利用する場合、直接目的のシステムコールを呼び出すのではなく、スタブを呼び出してシステムコールの呼び出しはスタブに任せることが多い。

 また、分散環境のプログラムがサーバ上のオブジェクトを呼び出す場合に仲介するプログラムも、同じくスタブと呼ばれる。こちらはC言語やC++、Javaなどの環境で利用でき、プログラム本体から独立してインターフェースが提供されることで、プログラム自体では通信を意識しなくともサーバ上のオブジェクトが呼び出せるようになっている。



ブラックボックステスト

ブラックボックステストとは

 システムの内部構造とは無関係に、外部から見た機能を検証するプログラムのテスト方法。

 入力と出力だけに着目し、様々な入力に対して仕様書通りの出力が得られるかどうかを確認する。その間、システム内部でどういった処理が行われているかは一切問題としない。

 限界値分析や同値分割などの方式があり、仕様と実際のプログラムとの差を調べることができるが、限定された状態でのみ起こるバグなどを完全に取り除くのは難しいとされる。

 なお、これとは逆に、プログラムの機能よりも内部構造に着目して行なうテスト方法を「ホワイトボックステスト」という。



ホワイトボックステスト

ホワイトボックステストとは

 システム内部の構造を理解した上でそれら一つ一つが意図した通りに動作しているかを確認する、プログラムのテスト方法。

 「命令網羅」「判定条件網羅」「条件網羅」「複数条件網羅」「経路組み合わせ網羅」などの方式があるが、基本的にはプログラム内の全ての命令、全てのルーチンが最低一回は実行され、検証されるようになっている。

 つまり、プログラムの全ての部分が、プログラム記述者の意図通りに動作していることを確認するテストである。システムの機能よりも内部構造の整合性を重視したテストとも言える。

 網羅的なテストであるため珍しい事態に対しても動作確認できるのが利点だが、あくまでプログラム記述者の意図との整合性を確認するだけなので、記述者自身に誤解があった場合は対処できないという欠点も持つ。

 これに対して、プログラムの内部構造とは関係なく、外部から見て仕様書通りの機能を持っているか確認するテストを「ブラックボックステスト」という。



 

ハワイ旅行| サトピの子連れグアム旅行記| グアム旅行の情報サイト| ガーデニング|

Copyright (C) 2009 Anne Corporation. All Rights Reserved.