ちゃんと使えるか試したい!テストで問題を解決する方法

プログラミングはコードを書けば終わりというものではなく、実際に作成したプログラムがしっかり動くかどうかを確かめる必要があります。

いわゆるテストというもので、自身が作成したソフトを公開する際に、誰もが使えるようにしなければならず、欠陥を放置した状態で公開することはよくありません。

テストで見つかった欠陥を修正する方法をデバッグといい、欠陥がない状態で公開できるようにして、その後にまた欠陥が出てきたら、修正していくことも大事です。

プログラミングにおけるテストは、ソフトウェアで使用されるデータをもとにテストデータを用意し、それが適切に処理できるかを確かめていきます。

テストでは、システムに欠陥が出てくるか、またはチェックする項目にそれぞれ合格しているかを確かめ、ちゃんと使えることが最大の目標です。

実際に書いたプログラムをテストする方法には、プログラムを実際に動かす動的テストと、プログラムを動かさずにソースコードを検証する静的テストがあります。

静的テストは、専用のツールを使用して行うコード解析をはじめ、人手で行うコードレビューやウォークスルーなどの手法があります。

大規模なシステムを作成した際は、単体テストから結合テストまで一通り行うことが重要で、この手法にはトップダウンテストとボトムアップテストがあります。

トップダウンテストは、単体テストが完了した仕組みのうち上位から順に結合テストを行い、機能がうまく動かせるかを確かめ、早期に問題が発見できる手法です。

ボトムアップテストは、前述とは逆に単体テストが完了した仕組みのうち下位から順に結合テストを行い、開発とテストが平行して行うことができます。

入出力に関するテストにおいては、プログラムの内部に注目するかどうかで手法が異なり、実際に適切な処理ができるかを確かめます。

プログラムの内部構造に注目したテストは、ホワイトボックステストと呼ばれ、注目する部分には命令や分岐があるので、それがしっかり網羅できるかを検証します。

すべての条件が実行できるかを確かめるには命令網羅、分岐が機能しているかは判定条件網羅、各条件のうち少なくとも1回は実行できるかを確かめるには条件網羅という手法で行います。

実際に網羅できるかは、それぞれの手法に応じたテストケースを用意する必要があり、テストケースが実際に実行できるかを確かめていきます。

それとは逆に、プログラムの入出力だけに注目したテストは、ブラックボックステストと呼ばれ、仕様通りに実行できるかを確かめていきます。

このテストでは、まず同値分割という手法があり、入出力が同じように扱える値を同値クラスにして、それぞれの代表値を使って検証し、有効か無効かを分析します。

もう1つは限界値分析というものがあり、入出力できる範囲の境界にあたる値を使用して、入出力ができることを確かめていき、同値分割よりも多い欠陥を見つけることができます。