こんにちは。株式会社8bitの高本です。
先週、Webサイト制作やWebサービスの品質管理をサポートすることを目的としたWebサービス「COLORBOX」をリリースしたのですが、それにちなんで今回はWebサービスなどのテストについて書いてみたいと思います。
Webサイトの制作や中小規模のWebサービスやシステムの開発をする際、システム周りのテストだけを担当するメンバーはなかなかいなかったりします。
とある勉強会でも少人数制でやっていると、開発している時に基本的な部分は確認して、ディレクターなどの管理する方がテストをすることが多いというお話を聞きました。
(確かに、Web業界でテスターという位置づけでプロジェクトに携わっている人をあまり見た事ありません。
ディレクターがチェック作業も兼任しているような気がします。)
テストはシステム面にも精通している人が項目を立てないと、手が空いたからチェックする程度では、テストが漏れてしまう部分もあります。
そこで、テストする際に見えて基本的なポイントと、ちょっと知っていないとチェック漏れするであろうポイントをまとめてみました。
分かっている方には当たり前すぎることですが、システム的な面を理解していない方がやると抜けることが多いと思われる項目です。
もちろん、サービスやサイトの仕様があるので、これですべて事足りるわけではありませんが、参考までに。
(抜けがあったら教えてください。)
■ 目で見て明らかな基本的なテストポイント
・必須や任意の項目がきちんと入力されているか問い合わせでも入会でもフォームがある場合、必須と任意の項目があります。
見たままですが、必須なら入力されていなければエラーで再入力を促す必要がありますし、任意であればその必要はありません。
・入力可能文字以外の文字はエラーではじかれるか
フリガナが全角カタカナだったり、電話番号が数字のみだったり、入力して欲しい文字の種類が指定してある場合は、それ以外の種類の文字を入れてもエラーで再入力を促す必要があります。
・最大入力文字数のチェック
意外と抜がちなのですが、実際に4文字までの入力なのに、5文字以上の文字が入力できてしまったするときがあります。
(実際リリースされているものにはないと思いますが、制作段階だとちょんぼしている場合があります。)
これはマークアップする方とHTMLにプログラムを埋め込むエンジニアが別々の場合に起こったりします。
双方が「maxlength」を指定しないで作業していたりすると、文字チェックではエラーで表示しているのですが、実際は制限文字数より多く入力はできてしまう。という現象が起きるのです。
■ 知ってないと見逃しがちなテストポイント
・URLやメールアドレスなどの入力形式がきちんとチェックされているかURLやメールアドレスは正規表現というチェック方式で、プログラム内でチェックされています。
このチェックがきちんとされていないと、たとえばURLで「http://colorbox」などのありえないURLが通ってしまいます。
URLは「http://またはhttps://」から始まって「colobox.info」など少なくともドットがひとつ以上入ったドメインで成り立っていますので、そのチェックは必要です。
メールアドレスも、使えない文字などありますので、すべてチェックする必要はあります。
・HTMLタグやSQLに利用されるシングルコーテーションなどの入力チェックをしているか
これは結構重要です。
「<」「>」「&」「”」などHTMLタグに利用される文字や、「’」「\」などSQLに利用される文字の入力チェックです。
「<」「>」「&」「”」は入力されたら何も処理していないと画面を構成するタグ自体を壊されてしまう可能性がありますので、きちんと文字をタグの一部とせずに認識して処理していなくてはなりません。
クロスサイトスクリプティング
「’」「\」はデータベースを操作するSQLという構文に利用されるので、これを悪用されると思ってもいないデータベース操作をされてシステム全体に影響を及ぼします。
SQLインジェクション
開発者はもちろん意識していますが、チェックする側も理解していないとチェックしていなかったりするのではないでしょうか?
・送信完了画面での二重登録や二重送信チェック
これは作りの問題ですが、メールフォームなど送信完了画面で処理をしている場合、完了画面で何度もF5キーなどで、画面を更新されると何度もメールを送信してしまうという現象。
しっかり考えて作っていれば問題ないのですが、開発の仕方は人それぞれですので、チェックしておいたほうが良いかと思います。
——
冒頭で書きましたが、そのサービスによって仕様はまちまちなので、これは基本中の基本です。
ちなみにCOLORBOXでは、テスト項目自動生成機能で、項目の条件を指定するだけで上記のような基本的なテスト項目を生成することができます!
============
Webサイト、Webサービスの品質管理をサポートする「COLORBOX」
http://colorbox.info/