平成22年度 秋期 午前 問44
開発技術
プログラム実行中の特定の時点で成立する変数間の関係や条件を記述した論理式を埋め込んで,そのプログラムの正当性を検証する手法はどれか。
- アアサーションチェック
- イコード追跡
- ウスナップショットダンプ
- エテストカバレッジ分析
答えと解説を見る
✓ これが正解アアサーションチェック
解説
条件を論理式にして埋め込む手法です。
プログラムが正しく動いているかを確かめる道具は、大きく二通りに分かれます。一つはソースの中へ判定を書き込んでおく型、もう一つは動いているものを外から眺めたり数えたりする型です。判定の軸は、設問の言う手法がこの二つのどちらに属するかという一点になります。正解はアサーションチェックです。アサーションとは、ここでは必ずこうなっているはずだという断言を、プログラムの中に書き残すことを指します。たとえば割り算の直前に割る数がゼロでないこと、並べ替えた直後に先頭が末尾以下であることを、論理式として置きます。設問が示した特定の時点で成立する変数間の関係や条件が、まさにこの断言にあたります。式が成り立たなければその場で処理が止まるので、誤りが生まれた地点そのもので捕まえられます。ただし実行してその行を通らなければ働かないため、通らない経路の誤りには届きません。網羅の度合いを測る手立てと組み合わせると、互いの穴を埋め合えます。
ほかの選択肢はなぜ違うのか
- イコード追跡:実行の道筋や変数の値を記録しておき、後から順に追いかけるための道具です。動いた跡を残すだけなので、成り立っているはずの関係をプログラムの内側へ書き加えることはしません。
- ウスナップショットダンプ:指し示した時点でのレジスタや主記憶の中身を、そのまま出力するものです。出てきた内容が正しいかどうかを決めるのは人の側であって、機械がその場で真偽を判定するわけではありません。
- エテストカバレッジ分析:試験がどれだけの範囲を通ったかを測るもので、見ているのは網羅の度合いです。通った割合が高くても、通った先の結果が正しいかどうかは、また別に確かめる必要があります。
この問題の用語
- テスト決めたとおりに動くかを、実際に動かして確かめる作業のこと。何を確かめるかによって移行テスト、システムテストなどと呼び分けます。
- 分析集めたデータを細かく分けて、何がどう関わっているかを読み取ること。量が増えるほど、扱う道具も考え方も変わります。
出典:平成22年度 秋期 応用情報技術者試験 午前 問44
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)