
応用情報技術者試験基礎・応用
条件を読む・根拠を説明する
期限判定を繰り返し検証する
条件を整理し、答えを選んでから解き方を確認しましょう。
利用期限の判定関数が内部で現在時刻を直接取得し、テストは実時刻に依存して結果が変わる。設計上の改善はどれか。
答え・解き方を読む
時刻を得る依存を外から渡しテスト時は固定時刻に差し替える
考える順序
- 1変わる外部条件を判定ロジックから分離
- 2時刻取得の役割を抽象化し注入
- 3直前・一致・直後を再現して試せる
選択肢ごとの理由
- 比較 · 期待値をテスト実行時刻から作るだけで境界条件も毎回同じにできる
実行時刻に依存したままでは任意の境界条件を再現しにくいままです。
- 比較 · 実時間で期限が過ぎるまで待つテストだけで任意の時点を再現する
実時間待ちは任意の時点を速く安定して再現する方法ではありません。
- 比較 · 時刻取得を処理の各所へ分散させれば同一時点の一貫性が高まる
取得箇所が分散すると処理中の時点の違いも生じます。
- 正解 · 時刻を得る依存を外から渡しテスト時は固定時刻に差し替える
変わる外部条件を判定ロジックから分離。時刻取得の役割を抽象化し注入。直前・一致・直後を再現して試せる。