情報処理安全確保支援士試験 午前 無料問題 9 / 10 ・ 分野6: 科目A-2 データベース・開発技術
総合テストで、月末に日付をまたいで締め処理を動かしたときだけ、売上が二重に計上される障害が見つかった。開発事業者は「めったに起きない条件なので、その条件を検知したら処理を止める回避の処理を入れ、稼働後に様子を見たい」と提案している。DS-120 実践ガイドブックの考え方に沿った発注者の対応はどれか。
- 原因を突き止めて障害の起きたモジュールを直させ、直したモジュールの回帰テストが通った時点で障害を完了とする
- この欠陥を氷山の一角ととらえ、上流工程での混入を疑って原因を分析させ、似た作りの箇所に類似の不具合が無いかを横展開で確かめさせる
- 回避の処理の代わりに、障害の起きた条件をシナリオに加えて、全モジュールについて日付と締めの組合せを網羅するまで総合テストをやり直させる
- 回避の処理を入れさせ、条件を検知したときの運用手順を整えて、稼働後に同じ事象が起きても業務を続けられる態勢を作る
正解と解説を見る
正解: B
正解の理由
同書は、総合テストでの障害の原因は基本設計のような上流工程で混入したものが多いはずだとし、たまたま見つかった欠陥を氷山の一角と捉えて積極的に総点検を指示することが、回り道に見えても結果的には近道だと書いている。発注者は、事業者が類似バグが無いかという観点で横展開しているか、その横展開が形式的になっていないかを確かめる。レアケースだからと一時しのぎの回避策で閉じると、本稼働後に同じ事象をきっかけに障害が起きることがある。
違う選択肢
「回避の処理の代わりに、障害の起きた条件をシナリオに加えて、全モジュールについて日付と締めの組合せを網羅するまで総合テストをやり直させる」… 全モジュールでテストをやり直しても、見つかるのは用意した条件での症状であり、なぜ二重計上が起きたのかという原因や、同じ作りの箇所がほかに無いかは分からない。同書は、総合テストでの障害の原因は上流工程で混入したものが多いとして、原因をたどり、類似の不具合が無いかを横展開で確かめることを求めている。
「原因を突き止めて障害の起きたモジュールを直させ、直したモジュールの回帰テストが通った時点で障害を完了とする」… 原因を直すところまでは正しいが、同書は、総合テストの障害は上流工程で混入したものが多く、障害の内容によっては全モジュールの総点検が必要になるとしている。日付をまたぐ締めの扱いを基本設計で取り違えていたなら、同じ設計に沿って作られたほかの処理にも同じ誤りが入っているおそれがあり、そこを確かめずに完了とはできない。
「回避の処理を入れさせ、条件を検知したときの運用手順を整えて、稼働後に同じ事象が起きても業務を続けられる態勢を作る」… 同書は、障害のきっかけとなった事象がレアケースだからという理由で、パッチワークのような一時しのぎの回避策をとることは危険だとしている。安易に蓋をしたために、本稼働後に同じ事象をきっかけとする障害が起きた例もあると書かれている。運用手順を整えても、二重計上を生む作りそのものは残る。
押さえどころ
障害を完了として閉じる判断は、症状が消えたかではなく、原因が分かり、同じ原因の不具合がほかに残っていないと言えるかで行う。横展開では、事業者がどの範囲をどの観点で点検したのかを具体的に示させると、形式だけの横展開を見分けやすい。