题库系统集成项目管理工程师

系统集成项目管理工程师 · 第三版 · 第5章 软件工程

类的方法单独测过,为什么还要测调用顺序?

6 道章节练习题
单选题5.4 软件实现3 / 6

Session类要求登录后才能查询,退出后再次查询应被拒绝。测试每个方法时都重新创建对象并单独准备所需状态,结果均通过。最值得补充的测试是()。

选择答案
未作答
答案与解析

正确答案 D

单独准备状态会绕过真实调用之间的状态传递。应在同一对象上验证登录到退出的连续过程,以及退出后查询被拒绝的要求,选D。

假设退出方法返回了“成功”,却忘记清除内部登录标记。若下一次查询测试重新创建对象并准备未登录状态,这个错误就可能被掩盖。让同一个对象连续经历登录、查询、退出、再查询,才能检查前一步留下的状态是否正确影响后一步。最后一次查询应被拒绝,这是题设的预期结果,不是测试失败。方法独立测试仍然有用,本题只是说明它不能包办状态相关的测试;也不意味着要枚举所有无限长的调用组合,应围绕明确的状态和重要转移设计序列。

选项分析

A
重复同样的独立准备方式不会自动覆盖方法之间的状态传递,增加次数未必补到当前缺口。
B
命名检查有助于可读性,但无法发现退出后仍保留登录状态这样的行为错误。
C
代码行数是规模信息,不能替代检查同一对象在连续调用中的状态变化和输出。
D
保留同一对象的状态连续性,并包含退出后的受限操作,直接覆盖题干遗漏的行为。

容易混淆的地方

认为每个方法各测一次就等于类的行为已测完整,忽略方法调用会改变后续操作的条件。

再巩固一步

  • 复习对象测试时写一条合法流程,再写一条不允许的操作序列,并分别列出预期结果。
原创章节练习题 · 第三版 · 《系统集成项目管理工程师教程》第3版 · 5.4.3 · 纸书第224页

练习小结

题目纠错

未发送。正式接收渠道尚未接通。

查看纠错信息