テストが大事ってプログラマーさんは言うけど、テストって一体何をしているのかしら??
テストとは?
システム開発におけるテストとは、開発したプログラムが要件や設計書通りに作られているか、また不具合がないかを確認する作業のことです。
システムはいくつかの機能がまとまったものを指し、1つ1つの機能は小さなプログラムの部品の集まりです。プログラムの作成とはこの小さなプログラムの部品作りに他なりません。通常、プログラマーは設計、実装、テストという順番で部品を作っていきます。どんな大きな機能であってもそれを小さな部品に分解し、設計、実装、テストというサイクルを回して組み上げていきます。
通常、実装よりも設計やテストにかかる時間の方が大きいです。特にテストはバグが出ないようにいろいろなケースを想定して何回も行います。テストが不十分な場合、バグやシステムエラーに繋がりますので、テスト工程はとても重要です。
しかし、部品のテストはプログラマーにとっては重要でも、お客様にとっては機能やシステムがきちんと動いているかの方が大切です。そこで今回はプログラマーがどのように機能やシステムをテストしているかをお伝えしたいと思います。
結合テスト
結合テストとは、プログラムの部品をまとめた機能や、機能をまとめたシステムがきちんと動作するかを確認するテストです。システムや機能を作成するにあたって必ず行われます。
通常、システムは複数の画面や機能から構成されますので、それらをまたいでテストが行われます。例えば、商品の登録システムを考えてみましょう。まず画面は下記の3つが考えられます。
- 入力画面
- 確認画面
- 完了画面
機能としては大きく2つ考えられます。
- データチェック機能
- データ保存機能
これらを1つのシステムとして検証します。入力するデータは下記の3つとしましょう。
- 商品名
- メーカー
- 価格
テストを行う際は、予めシナリオを作っておきます。シナリオは大きく分けて2つあります。まず1つ目のシナリオは正しいデータを入力して正しく保存されるかをテストします。2つ目のシナリオは正しくないデータを入力して保存されないことをテストします。
1つ目のシナリオは正しくデータを入力するのでパターンはそれほどありませんが、2つ目のシナリオは考えられる限りの正しくないデータを入力してテストしますのでパターンがたくさんあります。例えば、商品名を空白にして登録しようとした時にエラーメッセージが表示されるか、あるいは価格に数値以外のデータを入力したときにエラーメッセージが表示されるか等です。2つ目のシナリオをできるだけ多く網羅できればバグの少ないシステムになります。プログラマーの腕の見せ所です。
受け入れテスト
実は、テストを行うのはプログラマーだけではありません。ユーザーにもテストをお願いすることがあります。それが受け入れテストと呼ばれるものです。受け入れテストでは実際のユーザーにシステムの操作感を確認していただいたり、要件を満たしているかを確認していただきます。仕様を満たしていても使い勝手が悪いとうことが分かったり、プログラマーの想定とは異なった操作が行われバグの発見に繋がったり、とても重要です。
結合テストと受け入れテストをクリアして初めてシステムは納品可能な状態となります。
おわりに
いかがだったでしょうか?テスト工程にしっかり工数をかけることができればバグの少ないシステムを作ることができます。システム屋さんの見積もりに動作確認や動作検証といった項目がしっかり記載されていれば信頼できる一つの目安になりますので、開発会社選びの参考にしてくださいね。
コメント