問47
頻出度★★★
プログラムの単体テストに関する記述のうち, 適切なものはどれか。
这道题的解析和你的作答记录。
プログラムの単体テストに関する記述のうち, 適切なものはどれか。
把多个程序组合起来一并测试,说的是单元测试的下一道工序——集成测试(整合测试)。单元测试正如其名是按程序逐个单独进行的,所以「不对每个程序分别进行测试」这一点与定义完全相反。而且在没有验证各个程序的情况下就组合起来,一旦出现缺陷就无法区分是哪个程序引起的,修改的工作量反而会膨胀。
单元测试的规格,要基于确定程序内部结构的程序设计(详细设计)的内容来编写。在 V 模型中,与系统需求定义相对应的是系统测试(综合测试),在定义系统需求的阶段编写的是系统测试的规格。该选项弄错了「各测试规格分别在与之对应的设计工序中编写」这一对应关系。
测试数据由系统的使用者编写、并站在使用者的立场进行确认,这是验收测试(运行测试)的做法。单元测试的数据,是由掌握程序逻辑的开发者考虑要走通哪些语句和分支这样的覆盖性之后自行准备的。使用者通常并不了解程序内部的逻辑,因此无法编写以覆盖性为目标的数据。
正解 正确答案是 エ。单元测试(模块测试)是把编写好的程序一个一个取出来、确认该程序单体是否按设计正常工作的开发工序中最早的测试。承担测试的是了解程序内部的开发者本人,所以除了只看输入输出的黑盒测试之外,以沿着内部处理步骤逐步验证的白盒测试为中心。因此要设定诸如是否让所有语句都至少执行过一次(语句覆盖)、是否让条件分支的真与假两侧都走到过(分支覆盖)这样的覆盖标准,准备连逻辑的覆盖性也包含在内的测试数据。エ 的描述正是原样陈述了单元测试的本质,因而恰当。在这一步把内部逻辑的遗漏消除掉,后续的集成测试及之后的工序就不必再去追查各个程序简单的编写失误,而能把缺陷排查集中到程序之间的衔接部分。