設問3 予約管理機能の不具合について(1)~(4)に答えよ。

(4) 本文中の下線①の事象をテストにおいて再現させるための方法を60字以内で具体的に述べよ。
公式解答例:デバッガで、SQL文の発行直前にブレークポイントを設定して、二つの予約処理を並行して実行する。(47文字)
管理人解答:Webサーバをデバッグモードで起動し、表8の順序を再現するようにブレークポイント・ステップ実行機能を用いて試験を行う。(59文字)

解説

本文抜粋
 更に、①空き状態であった予約枠を、顧客αが画面2で選択して画面3に進むのと並行して、同一の予約枠を顧客βが画面2で選択した場合、表8に示す順序で各処理が完了すると、顧客βの個人情報が顧客αの画面4に表示されてしまうことが確認できた。

表8 個人情報の漏えいにつながる処理の順序

順序 対象の顧客 処理 備考
1 α 図5の60行目
2 α 図6の42行目 順序1の処理が完了し、10分以上経過してから実行される。
3 β 図【m】の【n】行目
4 α 図【o】の【p】行目
5 β 図【q】の【r】行目
6 α 図6の58行目

テスト手法に関する問題です。
 表8のような、シビアなタイミングを求められる不具合の確認を何度も試行して再現させる労力もかかり、再現できる可能性も低いため、IDEなどのデバッグ機能を利用して任意のポイントでプログラムの動作を停止させます。

 解答には、デバッグ機能を利用することと、顧客αβの最低2つの処理を並行して実行することが盛り込まれていればよいと思われます。管理人は顧客αβの記述を「表8の順序を再現するように」としました。