開発の見積もりには、たいてい「テスト」の工程があります。削れるなら削りたい、と思われがちな部分ですが、テストが足りないシステムは、使い始めてから問題が次々に出てきます。そのたびに業務が止まり、調べて直す費用がかかります。

テストで何を確かめているのかを知っておくと、見積もりを比べるときにも、品質の話をするときにも役に立ちます。

テストで確かめていること

決めたとおりに動くか

画面に入力した内容が正しく保存されるか、計算が合っているか。基本的なことですが、機能ごとに確かめていきます。

おかしな使い方をしても壊れないか

必須の項目を空のまま送る、ありえない数字を入れる、ボタンを2回続けて押す。実際に使う人は、作った人の想定どおりには操作しません。こうした操作でデータが壊れたり、二重に登録されたりしないかを確かめます。

ボタンの2回押しは、実際によく起きます。通信が遅いと、押せていないと思ってもう一度押してしまうからです。注文や送信のボタンで二重に処理されると、取引先に同じメールが2通届く、同じ注文が2件登録される、といった問題になります。

境目で正しく動くか

月末と月初、年をまたぐとき、件数がちょうど上限のとき。境目は不具合が起きやすい場所です。

日付は特に注意が必要です。サーバーが日本以外の時間で動いていると、夜中の0時から朝の9時までの間、日付が前日として扱われる、といったことが起こります。

同時に使われても大丈夫か

複数の人が同じデータを同時に変更したとき、どちらかの変更が消えてしまわないか。人数が増えると、こうした問題が表に出てきます。

この種の問題は、一人で画面を操作して確かめるだけでは見つかりません。実際に同時に操作する状況を作って確かめる必要があります。

見てはいけない人に見えないか

権限のない人が、他の人のデータを見たり、変えたりできないか。画面に表示されていなくても、操作の仕方によっては見えてしまうことがあります。

テストで確かめていること
確かめること 例
決めたとおりに動くか 入力した内容が正しく保存されるか、計算が合っているか
おかしな使い方をしても壊れないか 必須の項目が空、ありえない数字、ボタンの2回押し
境目で正しく動くか 月末と月初、年をまたぐとき、件数がちょうど上限のとき
同時に使われても大丈夫か 同じデータを同時に変えても、どちらかの変更が消えない
見てはいけない人に見えないか 権限のない人が、他の人のデータを見たり変えたりできない

自動のテストという考え方

テストには、人が画面を操作して確かめるものと、プログラムで自動的に確かめるものがあります。

自動のテストを用意しておくと、機能を直したときに、ほかの部分が壊れていないかを短い時間で確かめられます。システムは、一か所を直すと、思わぬところに影響が出ることがあります。人の手で毎回すべてを確かめるのは現実的ではないため、自動のテストが役に立ちます。

当社では、自社で運用しているシステムで3,000を超える項目を自動で確かめてから、変更を公開しています。直すたびに全部を確かめられるので、安心して改修を続けられます。

テストを削るとどうなるか

テストの工程を削れば、見積もりは安くなります。しかし、使い始めてから不具合が見つかると、そのたびに業務が止まり、原因を調べて直す費用がかかります。使い始めてから見つかった不具合を直すほうが、作っている途中で見つけて直すより、手間がかかるのが一般的です。

発注する側が確かめておきたいこと

  • テストでどんなことを確かめるのか
  • 本番に近いデータでテストするのか
  • 自動のテストを用意するのか
  • 使い始めた後に見つかった不具合は、どう扱うのか

テストの中身を聞いてみると、その会社が品質をどう考えているかが見えてきます。