エラー処理のロジックは品質を担保する。 - 入力チェックで採用試験 -

タイとラオスでシステム開発を行っています。

タイやラオスのプログラマーの採用を積極的に行っています。
その時に日本での採用と大きく異なるところがあります。
それは日本人の出来るとタイ人やラオス人のプログラマーの出来るはレベル差が大きいということです。

日本人のエンジニアの場合は、問題なく出来ることを履歴書に書きますが、
タイやラオスの場合は、少しかじった内容であっても履歴書に記載します。

インタビューのやり取りと実際の実力に大きな落差があることがしばしばあります。

私たちは人材の採用に当たっては必ずテストをするようにしています。
ポジションや分野によってテストは試行錯誤しながら改善しています。

入社後に日系企業としてシステム開発の仕事をするにあたって、注意深くコーディング作業をしてもらいたい項目としてエラー処理があります。

エラー処理の網羅性と柔軟性は納品するシステムの品質に直結します。

私たちは採用試験では、エラー処理のコーディングのロジックの立て方を評価するためにお問合せフォームの入力チェックを課題として出しています。

例えばお題は以下の様な感じです。

—————————————

■以下の項目は必須入力にする。
・お名前
・電話番号
・メールアドレス

■郵便番号を入力すると、「都道府県」以下の項目に該当住所が自動で反映される。

■入力画面で入力した内容のチェック処理を行い、
不備が存在すればエラーを表示させる。
チェックする内容は以下の通り。
・「お名前」に悪質サイトへ導くようなURLが入力されていないか?
・「フリガナ」に悪質サイトへ導くようなURLが入力されていないか?
・「郵便番号」はハイフンありの場合8桁、ハイフンなしの場合7桁で、
かつ数字のみで入力されているか?
・「年齢」3桁以内の数字で入力されているか?
・「性別」に存在しないものが含まれていないか?
※例えば、性別の項目は男・女のみなのに、それ以外の性別が入力画面から確認画面へPOSTされてきていないか?
・「電話番号」の形式は正しいか?
※「電話番号」は半角・全角数字のどちらで入力されていてもOK。
・「携帯番号」の形式は正しいか?
※「携帯番号」は半角・全角数字のどちらで入力されていてもOK。
・「メールアドレス」の形式は正しいか?
・「メールアドレス」が複数入力されていないか?
※メールアドレスの入力は1アドレスのみ。
・「ご希望の返信方法」で「電話」を選んでいる場合、「電話番号」を入力しているか?
・「ご希望の返信方法」で「携帯電話」を選んでいる場合、「携帯番号」を入力しているか?
・「ご希望の返信方法」で「メール」を選んでいる場合、「メールアドレス」を入力しているか?
・「ご希望の返信方法」に「電話」「携帯電話」「メール」以外の性別が入力画面から確認画面へPOSTされてきていないか?

■基本的なセキュリティ対策を施しておく
SQLインジェクション、クロスサイトスクリプティングへの対策など

■ユーザーがフォームに入力した内容をデータベースに保存しておく
保存しておく内容は以下の通り
・お名前
・フリガナ
・年齢
・性別
・ご住所(郵便番号)
・ご住所(都道府県)
・ご住所(市区町村)
・ご住所(町名・番地以下)
・電話番号
・携帯番号
・メールアドレス
・ご希望の返信方法
・お問合せ内容
・問合わせが行われた日時
・ユーザーエージェント

■お問合わせのメール送信が正常に完了すれば、
ユーザーへ自動返信メール(thanksメール)を送信する。

—————————————

タイやラオスではこのレベルの入力エラーチェックはやり過ぎと感じるようです。
海外のフォームでは取りあえず受け付けるという意味合いからも、
厳格に入力チェックをしているところはほとんどありません。
メールアドレスに@が入っているかどうかのレベルでのエラー処理のロジックですので、今までに経験したことのない課題となります。

ちなみに採用試験では画面の翻訳が予めできているシートを渡しますが、
実際のコーディングの画面は日本語のままです。

日本語の画面であっても、辞書を使いながら作業できるかも採用の一つの判断材料としています。