跳到正文

平成22年度 秋期 ITパスポート試験 問89

这道题的解析和你的作答记录。

問89
頻出度★★★

M さんは,総務課の N さんから宅配荷物の発送業務で利用する料金計算プログラム(以下,プログラムという)の作成を依頼された。そこで,N さんから聞いた料金計算の方法を基に次のように要件をまとめ,プログラムを作成した。 (1) 料金はサイズ区分と発送先の地区から表1の料金表で求める。サイズ区分は荷物の3辺計(荷物の縦,横,高さの長さの合計で1cm単位)と重量(1kg単位)を比較し,どちらか大きい方の区分を適用する。 なお,3辺計が140cm又は重量が20kgを超える荷物は受け付けない。 (2) 荷物の3辺計と重量,発送先の地区(A~D)を入力すると,料金を出力する。 表1 料金表(単位 円)

区分3辺計(cm)重量(kg)ABCD
180まで5まで1,3009501,1501,800
2100まで10まで1,6001,2001,4002,350
3140まで20まで2,0001,6001,8003,400

M さんは,プログラムを N さんに引き渡す前にテストを行うことにした。 テストに当たり,表2の出力結果表を作成し,これに基づいてテストデータを準備した。表2は,入力データが各列に示す Yes の組合せに該当する値であるときの正しい出力を,欄“予想出力”に記入したものである。 表2 出力結果表

123456…36
地区AYesYesYesYesYesYes…
B…
C…
D…Yes
3辺計(cm)80までYesYesYes…
100までYesYesYes…
140まで…Yes
重量(kg)5までYesYes…
10までYesYes…
20までYesYes…Yes
予想出力(円)a…
↑ b↑ c

注 網掛けの部分は,表示していない。 M さんがプログラムのテストに使うデータを準備するために表2の出力結果表を作成した理由として,適切なものはどれか。

出典 平成22年度 秋期 ITパスポート試験 問89
解説

問 89

  • 错误ア

    「找出容易发生处理错误的情形」说的是凭经验和直觉去针对性瞄准可能出现缺陷之处的 错误推测(error guessing)思路,是只挑选可疑情形的手法。但表2 是把 36 种组合机械地全部排列出来的表,其中任何地方都没有区分哪些列可疑、哪些列不可疑。表2 是「全部排列」而不是「找出并挑选」的表,因此这一项无法说明制作表2 的理由。

  • 错误イ

    追踪指令的执行顺序、查看指令是否按照设计的顺序执行,这是以程序的内部结构(代码)为依据的 白盒测试。而表2 中写的只有输入条件的组合与预期的运费,指令和处理流程完全没有出现。从表2 无法追踪执行顺序,因此这不能成为制作该表的理由。

  • 错误ウ

    「选出发生频率较高的情形」「用较少的测试数据高效地进行测试」说的是把所能设想的情形缩减为其中一部分。可是表2 拥有全部 36 种组合的列,一件也没有削减。而且表中根本没有表示发生频率的信息,缩减的依据并不存在。这与以全面覆盖为目的的表2 恰好相反。

  • エ

    正解 正确答案是 エ。只要读懂表2 究竟是一张什么表,答案就确定了。输入条件中,「地区」有 A〜D 共 4 种,「三边合计」有 80 以内・100 以内・140 以内 共 3 种,「重量」有 5 以内・10 以内・20 以内 共 3 种,组合数为 4 × 3 × 3 = 36 种。表2 的列从 1 编号到 36,正是把这 36 种组合一个不漏地全部排列出来。每一列在 地区・三边合计・重量 三个分组中各恰好立起 1 个 Yes,该列即代表一种输入模式(例如:第 1 列为 地区A・三边合计80 以内・重量5 以内)。而且「预期输出」栏并不是运行程序所得到的结果,而是事先依据需求(表1 的运费表)求出的正确输出。也就是说,M 先生把依据需求所能设想的输入组合无遗漏地全部列举出来,并在测试前先确定各自的期望值,然后据此准备测试数据。这种做法完全不看程序内部(指令与分支),只凭输入与输出的对应关系来验证正确性,其目的就是「对所有情形进行无遗漏的测试」。表述了这一点的 エ 是恰当的。

ここがポイント
  • 使用输出结果表(即判定表/决策表的思路)进行测试设计,是指依据需求把输入条件的组合全部列举出来,并先从需求一侧确定每种组合的期望值,然后再进行测试。组合的总数等于各条件可选项数的乘积(本题为 地区4 × 三边合计3 × 重量3 = 36 种)。
  • 测试技法的区分:只看输入与输出的对应关系、不追究内部结构的是 黑盒测试(表2 属于这一类);追踪指令与分支执行路径的是 白盒测试。另外,错误推测以及按发生频率进行的缩减,都是对情形进行「筛选」的手法,而不是「覆盖」的手法。
用語
解答問89エ
练这一题

作答记录