第4部分:语句
第4部分语句:把控制流目标接到顺序、条件、循环和异常状态,让分支与终止条件可预测。
学习目标
- 能从语句目标写出顺序、分支、循环、异常和状态结果。
- 能为每条控制流说明输入、覆盖条件、终止条件和失败路径。
- 能通过边界与故障重放发现隐藏分支,并让另一位实践者解释同一控制流。
为什么需要这一部分
语句把意图变成执行顺序。真正难的不是记住语法,而是让读者知道条件何时成立、循环何时终止、异常如何传播,以及状态在每一步怎样变化。只测正常路径会把未覆盖的分支伪装成稳定。
先避开三个控制流误区
核心合同与操作术语
↡语句要改变的对象、状态或可观察结果决定动作;↡语句按什么先后读取、修改和返回状态决定因果。↡输入满足何种条件时选择哪条路径定义分支;↡重复执行的前置条件、不变量和终止条件约束重复;↡失败输入如何改变状态、传播信息并恢复把拒绝路径接到验收。
目录节点逐项深读
第4部分 语句
本部分的阅读合同是:先声明语句目标,再画出顺序、条件和循环,最后说明异常与状态。控制流的每一条边都应能由输入触发,也应能被测试或复查。
最小可重放实现
baseline = freeze(input, version, expectedState)
trace = execute_sequence_condition_loop(baseline)
trace += execute_boundary_and_fault(baseline)
record(firstDeviation, terminalState, recovery)
reset()
assert replay(baseline) == baseline.trace正常轨迹验证目标;边界轨迹使用空集、恰好值和最大值;故障轨迹触发异常或不满足前置条件;复位轨迹确认状态不会从上一条路径泄漏。
先预测,再操作证据实验
先预测顺序、条件、循环或异常状态改变后哪个节点会先变化,再只切换一个场景。专属面板是控制流证据链,不是编译器的完整分析。
第4部分 语句 · 证据实验
语句目标 → 顺序 → 条件 → 循环 → 异常与状态证据
固定版本、输入和观察窗口,只改变一个条件;先预测首个偏离,再用同一基线复位。
练习与答案
练习
问题 1:补齐分支。 一段代码只测试成功响应,如何设计最小边界集?
问题 2:检查循环。 如何证明一个循环不会在空输入时访问无效元素?
问题 3:处理异常。 异常抛出后共享状态仍被修改,如何复位?
术语表
名词解释
本章出现的专业名词,用大白话再讲一遍。
- 语句目标
- 语句要改变的对象、状态或可观察结果。
- 顺序
- 读取、修改和返回状态的执行先后。
- 条件
- 选择控制流路径的输入约束。
- 循环
- 包含前置条件、不变量和终止条件的重复结构。
- 异常状态
- 失败输入引发的状态、传播和恢复契约。
本页小结
可靠语句把目标、顺序、条件、循环和异常状态连成可重放控制流。正常路径只是起点;边界、故障和复位证据才能说明分支和终止条件真的成立。
讨论
评论区加载中…