開発の見積もりには、たいてい「テスト」の工程があります。削れるなら削りたい、と思われがちな部分ですが、テストが足りないシステムは、使い始めてから問題が次々に出てきます。そのたびに業務が止まり、調べて直す費用がかかります。
テストで何を確かめているのかを知っておくと、見積もりを比べるときにも、品質の話をするときにも役に立ちます。
テストで確かめていること
決めたとおりに動くか
画面に入力した内容が正しく保存されるか、計算が合っているか。基本的なことですが、機能ごとに確かめていきます。
おかしな使い方をしても壊れないか
必須の項目を空のまま送る、ありえない数字を入れる、ボタンを2回続けて押す。実際に使う人は、作った人の想定どおりには操作しません。こうした操作でデータが壊れたり、二重に登録されたりしないかを確かめます。
ボタンの2回押しは、実際によく起きます。通信が遅いと、押せていないと思ってもう一度押してしまうからです。注文や送信のボタンで二重に処理されると、取引先に同じメールが2通届く、同じ注文が2件登録される、といった問題になります。
境目で正しく動くか
月末と月初、年をまたぐとき、件数がちょうど上限のとき。境目は不具合が起きやすい場所です。
日付は特に注意が必要です。サーバーが日本以外の時間で動いていると、夜中の0時から朝の9時までの間、日付が前日として扱われる、といったことが起こります。
同時に使われても大丈夫か
複数の人が同じデータを同時に変更したとき、どちらかの変更が消えてしまわないか。人数が増えると、こうした問題が表に出てきます。
この種の問題は、一人で画面を操作して確かめるだけでは見つかりません。実際に同時に操作する状況を作って確かめる必要があります。
見てはいけない人に見えないか
権限のない人が、他の人のデータを見たり、変えたりできないか。画面に表示されていなくても、操作の仕方によっては見えてしまうことがあります。
| 確かめること | 例 |
|---|---|
| 決めたとおりに動くか | 入力した内容が正しく保存されるか、計算が合っているか |
| おかしな使い方をしても壊れないか | 必須の項目が空、ありえない数字、ボタンの2回押し |
| 境目で正しく動くか | 月末と月初、年をまたぐとき、件数がちょうど上限のとき |
| 同時に使われても大丈夫か | 同じデータを同時に変えても、どちらかの変更が消えない |
| 見てはいけない人に見えないか | 権限のない人が、他の人のデータを見たり変えたりできない |
自動のテストという考え方
テストには、人が画面を操作して確かめるものと、プログラムで自動的に確かめるものがあります。
自動のテストを用意しておくと、機能を直したときに、ほかの部分が壊れていないかを短い時間で確かめられます。システムは、一か所を直すと、思わぬところに影響が出ることがあります。人の手で毎回すべてを確かめるのは現実的ではないため、自動のテストが役に立ちます。
当社では、自社で運用しているシステムで3,000を超える項目を自動で確かめてから、変更を公開しています。直すたびに全部を確かめられるので、安心して改修を続けられます。
テストを削るとどうなるか
テストの工程を削れば、見積もりは安くなります。しかし、使い始めてから不具合が見つかると、そのたびに業務が止まり、原因を調べて直す費用がかかります。使い始めてから見つかった不具合を直すほうが、作っている途中で見つけて直すより、手間がかかるのが一般的です。
発注する側が確かめておきたいこと
- テストでどんなことを確かめるのか
- 本番に近いデータでテストするのか
- 自動のテストを用意するのか
- 使い始めた後に見つかった不具合は、どう扱うのか
テストの中身を聞いてみると、その会社が品質をどう考えているかが見えてきます。
