試験構築プロジェクト


10月 1, 2023



大手証券会社にて、試験の開発プロジェクトを実施。
税制改正などが基本的に3ヶ月ごとに走るので、社員がそういった税制改正の知識をちゃんと入れているかどうかをチェックするためのツールの開発を頼まれ、社員の金融の知識や税制改正のポイントなどをチェックするための社内用試験ツールを開発。

ポイントとしては、

  • ajaxによるデータの更新
  • 試験は15分で、15分
  • 問題のランダムサンプリング(問題の各分野から4問ずつをランダムサンプリング)
  • 選択肢を毎回違うものにする
  • ブラウザを閉じても、試験が経過中になるということ。(ブラウザ閉じて何回も再受験できないようにする)

5つ目がポイントで、ユーザーが
ただユーザーはcookieではなくログインした状態でもちろん受けていただくので、社員IDで試験結果なども管理をしていたため、試験開始と同時に試験開始時間をデータベースに入れておき、ユーザーがブラウザを閉じたとして改めて試験画面に行って残り時間がリセットされるということはなく、データベースから試験開始時間を引っ張ってきて、差分確認をして15分経っていたら自動的に試験結果判定をする仕組みを作りました。
基本的にブラウザの画面をほか押せないようにするとか調べれないようにするなどをすることはできないので、試験時間に対して問題数を多くし、1問30秒くらいにして調べてたら時間足りなくなるような試験時間配分を想定。基本的に知識系の問題になるので、知ってればすぐ答えれるようにする。

さらに証券会社の社員数が1万人を超える社員数ということもあるが、試験に1度合格した場合、

最終的には、クライアント様の別部署にてこのシステムを活用したいとの要望が出て他の部署では教育用として導入することが決定。
証券会社ではGitを使ってのコード管理をしていましたが、GithubはダメでローカルにGitをダウンロードしてとセキュリティがとにかく大事でネットに繋げる環境ではなかった。
そのため開発当時の2016年にも教育システムというか世の中には簡単にテストを作ることのできるサービスはあったと思うが、そういったツールを導入することがセキュリティ的にはできなかったので、この社内用としての試験システムは好評を頂きました。

自分自身社会人になって初めてのWebアプリケーション開発だったので、

その後、別の部署でもこのツールが人気で、プログラムの共有をし、別部署では勉強用としてこのツールを使っていたりしています。

社員からは「勉強するために試験問題と回答を全て共有してくれないか。」などを依頼してくる方々が多くいたが、課長に相談し却下。
みな自力で勉強して、(あまり良くないですが、営業トップの部長と一緒にあの課長さん全然点取れないですねとかを見て話してたのはいい思い出です。笑)

試験に合格すると、

保守運用性として、試験データベース内に

基本的には3画面構成で、
① 試験の範囲の説明、注意事項、試験内容、制限時間や何問中何点合格、不合格になった場合の再受験について、合格記録の有効期限(合格してからいつまでこの合格が有効か)の説明
② 試験の表示・選択肢の表示、残り時間の表示
③ 試験の合否(残り時間がなくなったら、自動採点し、結果表示)
の3つの画面を表示。②についてはajaxを使い、基本的には1画面構成。

負荷テストとして、同時に10人が試験を受けた場合にどうなるかを

開発言語

  • PHP
  • MySQL
  • HTML
  • CSS
  • Javascript(jQuery)
ー   試験構築プロジェクト   ー