テストを次の順序で行う場合, システムテストの目的として, 最も適切なものはどれか。 単体テスト → 結合テスト → システムテスト → 運用テスト
平成23年度 特別試験 ITパスポート試験 問54
这道题的解析和你的作答记录。
問 54
- ア
正解 正确答案是ア。题目给出的「单元测试 → 集成测试 → 系统测试 → 运行测试」这一顺序,是把验证范围由下而上逐级扩大的软件测试标准推进方式。单元测试的对象是一个个程序(模块),集成测试的对象是把模块和程序连接起来的部分,而系统测试的对象则是把全部程序集成起来的「整个系统」。系统测试是开发方进行的最后一道测试工序,是综合确认所开发的系统能否按照需求定义所确定的规格运行的环节。确认的对象大致分为两类。一类是功能需求,即是否具备了全部必要的业务功能并给出正确结果、输入异常数据时能否得到恰当处理等;另一类是非功能需求,即响应时间和吞吐量等性能、能否承受大量数据和并发访问(负载测试)、发生故障时能否恢复、有无安全缺陷等。ア 的「由开发者验证整个系统的功能和性能」把对象范围(整个系统)和验证视角(功能与性能)两方面都说准了,因此作为系统测试的目的最为恰当。另外还要一并记住:开发者在系统测试中确认完质量之后,再由用户方在接下来的运行测试中从业务视角做最终确认,二者是这样的分工关系。
错误イ
「确认程序之间的接口没有问题」是系统测试前一道工序——集成测试(统合测试)的目的。在集成测试中,把通过了单元测试的模块和程序组合起来,确认调用方式是否正确、传递的数据在项目、类型、条数、顺序上有无不一致。它的验证范围仅限于程序之间的接合处,并不综合评价整个系统的功能和性能,因此作为系统测试的目的并不恰当。
错误ウ
「着眼于程序的内部结构,确认程序正确运行」是第一道工序——单元测试的目的。着眼于内部结构的测试称为白盒测试,它设计测试用例以走遍分支、循环等控制流程(语句覆盖、判定条件覆盖等)。其对象是单个程序,并不是审视整个系统的工序,因此不属于系统测试的目的。
错误エ
「由用户使用生产环境中的系统,验证业务能够正常开展」是系统测试之后进行的运行测试(相当于验收测试)的目的。这里的主体不是开发者而是用户方,要在实际的业务流程、业务数据和运维体制下,确认使用该系统能否让日常业务顺畅运转。它与开发者确认系统质量的系统测试在实施主体和验证视角上都不同,因此是错误的。
- 测试工序与目的的对应关系 —— 单元测试着眼于内部结构验证单个程序(白盒测试);集成测试验证模块与程序之间的接口;系统测试由开发者综合验证整个系统的功能需求和非功能需求(性能、负载、安全等);运行测试由用户在实际业务环境中验证能否开展业务。诀窍是按「由谁做」「验证到多大范围」「从什么视角看」来区分。
- 系统测试的验证视角 —— 系统测试是开发者进行的最终测试,除了确认功能是否按规格运行之外,还要把响应时间和吞吐量等性能、对大量数据和并发访问的承受能力、故障时的恢复、安全性等非功能需求也纳入验证对象。性能测试和负载测试就是在这道工序中实施的。