首页/开发/软件测试速查/循环结构测试策略
用例设计方法62 条

循环结构测试策略

针对循环的经典策略:跳过循环、执行一次、执行两次、典型次数、上限次数与越界次数;边界次数是高频缺陷点。

软件测试速查开发更新于 2026-10-13

循环结构测试策略是什么

循环结构测试(loop testing)是白盒测试的经典策略,针对循环体执行次数设计用例:跳过整个循环(0 次)、只执行一次、执行两次、典型次数、上限次数以及越界次数。边界次数——0 次、1 次、上限与上限加一——是缺陷最集中的位置;循环常与集合处理一起出现,空集合与单元素场景要单独覆盖。

基本信息

测试对象while / for / do-while 循环与集合遍历
核心次数0 次、1 次、2 次、典型次数、上限 N、N+1
边界重点0 次(不进循环体)与上限附近
嵌套循环从内层开始逐步向外层叠加覆盖
配套场景空集合、单元素、超大集合与遍历中修改
典型缺陷off-by-one、循环变量初值错误、退出条件失效

次数序列与含义

次数序列与含义
次数序列:0 / 1 / 2 / 典型(如 3 页)/ N(上限)/ N+1(越界)
0 次:空集合,验证循环体完全不执行时的行为
1 次:单元素,验证初始化与退出路径
2 次:区分 0/1/多 的语义分界
N+1:请求越界页或注入超限输入,验证防御逻辑

典型使用场景

  • 分页与列表功能:空列表、单条、多页、最后一页与越界页码。
  • 白盒单测:按覆盖率要求补齐循环边界用例。
  • 缺陷定位:怀疑 off-by-one 时,用精确次数控制验证。
  • 批处理任务:0 条任务、1 条、满批次与超过批大小。
  • 数据导入:空文件、单行、恰好达到行数上限与超出。
  • 嵌套循环组合:内层边界固定后逐层向外层扩展覆盖。

场景与次数对照

场景次数关注点
空集合0 次(不进循环体)初始化与返回值是否正常
单元素1 次进入与退出路径、变量初值
一般情况2 次至 N-1 次(含典型 3 页)中间轮次的状态累积
满集合N 次(上限)资源与性能边界
越界N+1 次或请求越界页防御与报错是否友好
优先测边界与刚越过边界的一步:中间次数通常被相邻边界覆盖,重复测试收益有限。
嵌套循环从最内层开始覆盖边界,再逐层向外;直接做全组合会产生数量爆炸,也没有必要。
注意循环变量初值与步长:不少 off-by-one 不是次数问题,而是初值从 0 还是 1 开始。

易错点

  • 只测 1 次与典型次数,跳过与上限场景遗漏:0 次与 N+1 是缺陷高发区,必须各有用例。
  • 嵌套循环只覆盖内层边界,外层组合被忽略:按从内到外的顺序逐层补齐。
  • 遍历中修改集合造成跳过或死循环:为遍历中修改设计专门用例。
  • 把循环次数等同于集合大小:分页、过滤、去重会使实际执行次数不同,按业务语义设计次数。

数据来源与参考

  • ISTQB CTFL 4.0 大纲(白盒测试:循环测试)
  • Beizer《Software Testing Techniques》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌