ソフトウェア結合テストに関して説明したものはどれか。
平成22年度 春期 ITパスポート試験 問34
这道题的解析和你的作答记录。
問 34
错误ア
「与执行相关业务处理的系统进行结合,确认其能够正常运行」所描述的,是超出所开发软件本身、把周边的既有系统也包括进来,考察整体作为业务能否运转起来的工作,属于比集成测试更靠后的系统测试(综合测试)/运行测试。集成测试所考察的,始终是开发对象软件内部各程序之间的衔接处,而不是与外部其他系统的对接,也不是整体业务的运行确认。由于验证的范围大了一级,所以它不能成为集成测试的说明。
错误イ
「通过覆盖所有语句和分支条件等的白盒测试」着眼于程序的内部结构和处理路径,按照语句覆盖、分支覆盖等覆盖准则来设计测试用例,是逐个模块检验其内部的单元测试的说明。集成测试是以各个模块已能正确运行为前提,考察它们的组合和接口的工序,因此这种覆盖内部逻辑的描述指向的是前一道工序,属于错误。
错误ウ
「程序员利用验证工具和检查清单,确认程序是按照编码标准编写的」指的是不运行程序、直接检查源代码本身的静态测试(代码评审、静态分析),考察的是命名规则、缩进、禁用语法等对编码标准的符合情况。集成测试是实际运行程序、确认其行为的动态测试,二者在确认的手段和确认的对象上都不相同,因此属于错误。
- エ
正解 正确答案是エ。软件集成测试(结合测试、统合测试,integration test)是把通过了单元测试的各个模块和程序组合起来运行、确认它们的「衔接处」能否正确啮合的工序。这里要确认的是程序之间的接口,也就是调用方与被调用方之间传递的参数的个数、顺序、数据类型、单位、取值范围,返回值和错误代码的传递,以及通过共享文件或数据库进行的数据传递的格式等,是否与设计保持一致。即使各个模块单独运行时都符合规格,如果一方按厘米为单位传出、另一方却按米为单位接收,这类不一致在单元测试中是发现不了的,只有结合起来之后才会暴露出来。因此,说明「确认程序之间的接口相互一致」的エ,才是对集成测试的正确说明。另外,推进结合的方式有两种:从上层模块开始依次连接、对尚不存在的下层用桩模块(stub)代替的自顶向下测试;以及从下层开始依次连接、对上层用驱动模块(driver)代替的自底向上测试。
- 测试工序按 单元测试 → 集成测试 → 系统测试 → 运行测试 的顺序,验证范围逐级扩大。集成测试的目的,是确认把已通过单元测试的模块/程序连接起来时,接口(参数的个数、类型、单位,返回值,所传递数据的格式)是否相互一致。它正是用来排查那些单独运行时正常、只有结合之后才会出现的不一致的工序。
- 容易混淆的工序与手法的区分:语句覆盖/分支覆盖等白盒测试是查看模块内部的单元测试;用工具和检查清单点检是否符合编码标准的,是不伴随程序运行的静态测试(代码评审);与其他业务系统结合、考察业务能否运转的,是系统测试/运行测试。只有集成测试是以「程序之间的衔接处」为对象的。