软测学习笔记|2026.4.4|错误推测法|因果图(2)

张开发
2026/4/6 19:59:44 15 分钟阅读

分享文章

软测学习笔记|2026.4.4|错误推测法|因果图(2)
错误推测法理解概念 | 解释定义 | 基于测试人员的经验、直觉和对系统实现的理解推测程序中可能存在的错误然后针对性地设计测试用例别称 | 错误猜测法、经验法核心思想 | “什么地方最容易出错就重点测哪里”适用场景 | 作为其他测试方法等价类、边界值、场景法的补充快速发现典型缺陷优点 | 简单高效能发现那些“机器思维”难以覆盖的、人为容易犯的错误缺点 | 依赖个人经验不同人推测出的错误可能差别很大覆盖不全面通俗理解用生活例子生活类比你刚学会开车老司机对你说“新手最容易犯的错误是起步不松手刹、变道不打灯、倒车不看后视镜。”你听了之后练车时专门针对这三件事去练习每次起步前摸一下手刹、每次变道提醒自己打灯、每次倒车先看后视镜。这就是错误推测法——根据经验预判“哪里容易错”然后专门去测那里。软件中的例子测试一个“年龄输入框”要求1-120岁整数。等价类/边界值已经设计了很多用例0、1、50、120、121、负数、小数、字母等。但错误推测法会额外考虑用户可能复制粘贴一个带空格的数字如 18 系统有没有trim用户可能连续快速点击提交按钮系统会不会重复提交用户可能在输入框里粘贴一张图片系统会不会崩溃用户可能用浏览器开发者工具把maxlength属性改大系统后端有没有校验这些场景等价类边界值不一定能覆盖但凭经验知道“用户可能会这么干”或“程序员容易漏掉”就专门去测。常见错误推测方向按类别类别 | 具体推测 | 例子1输入为空 | 不输入任何内容直接提交 | 搜索框空提交、登录空密码2输入超长 | 输入超出字段长度限制的值 | 用户名100字符、评论1万字3输入特殊字符 | 输入 # $ % * / 等 | 搜索框输入#$看是否报错4输入脚本 | 输入HTML标签或JavaScript代码 | 输入5输入空格 | 输入一个或多个空格 | 用户名输入 6输入换行/制表符 | 输入\t或\n等不可见字符 | 地址栏输入换行符7重复提交 | 快速连续点击按钮 | 支付时双击提交按钮看是否重复扣款8并发操作 | 多用户同时操作同一数据 | 抢票时多人同时下单9异常中断 | 操作中途断网、断电、关浏览器 | 支付中途断网订单状态是否正确10数据类型错误 | 输入字母到数字框、上传图片到文档框 | 年龄输入abc11边界值附近组合 | 多个条件同时处于边界 | 单日取款接近限额时再取一笔12依赖外部系统 | 第三方接口超时、返回异常 | 支付网关超时系统是否有重试或提示13环境差异 | 不同浏览器、操作系统、分辨率 | 老版本IE下布局是否错乱14数据量 | 大量数据时性能或显示问题 | 列表页加载1万条记录15权限越权 | 普通用户访问管理员页面 | 修改URL绕过菜单16时间相关 | 闰年、2月29日、跨时区、系统时间修改 | 设置日期为2024-02-29错误推测法的使用步骤步骤 | 说明步骤1 | 分析需求、理解系统功能、了解可能易错的地方步骤2 | 凭经验或参考常见错误类型列出“可能存在的错误”清单步骤3 | 针对每个推测的错误设计一个或多个测试用例步骤4 | 执行用例验证是否真的存在该错误步骤5 | 补充回归测试如果修复了要验证是否引入新问题练习题例子:测试“用户注册”功能错误推测法推测的错误 | 对应的测试用例用户复制手机号带空格| 输入 13812345678 “前后有空格用户输入字母到手机号框 | 输入138abc45678”用户输入超长密码 | 输入20位字母数字组合用户粘贴验证码时带空格| 输入 123456 用户快速点击“获取验证码” |连续点击10次看是否限制频率用户用开发者工具修改手机号 | 前端限制11位但后端是否也校验用户提交时网络断开 | 点击提交后断网看提示是否友好用户提交后重复刷新页面 | 提交后按F5看是否重复注册练习题例子:电商搜索框错误推测法错误推测表电商搜索框推测的错误 | 对应的测试用例输入图片文件 | 在搜索框粘贴或拖入一张图片系统是否报错或忽略预期不接受图片提示“请输入文字”输入特殊号码如手机号、身份证号 | 输入“13812345678”系统是否当作商品关键词正常搜索预期正常搜索无特殊处理输入特殊字符 # $ % * | 输入“#$%”系统是否报错或返回空结果预期不报错返回空或转义后搜索输入的商品名中包含空格如“苹果 手机” | 输入“苹果 手机”系统是否忽略空格搜索到“苹果手机”预期正常搜索空格作为分隔或忽略输入超长商品名如500个字符 | 输入500个字符系统是否截断、报错或正常搜索预期不崩溃有长度限制提示或自动截断------分割线------因果图定义概念 | 解释因果图 | 一种图形化的测试设计方法通过分析输入条件因和输出结果果之间的逻辑关系与、或、非等画出因果图再转化为判定表最后生成测试用例。适用场景| 输入条件之间有逻辑约束、组合较多的系统如工单审批、价格计算、权限判断。核心图形符号 | 恒等条件成立结果就成立、非条件不成立结果成立、与所有条件成立结果才成立、或任一条件成立结果就成立。什么是因果图因果图是一种图形化分析工具用“箭头”连接输入条件因 和输出结果果并标注逻辑关系与、或、非、异或等最后转换成判定表或测试用例。通俗理解把多个条件组合的逻辑画成一张“路线图”每条路径对应一个测试场景。通俗理解生活类比生活类比你想去公园玩条件有两个天气好 和 有时间。结果去公园。逻辑关系与两个条件都满足才能去。画出因果图天气好 → 去公园有时间 → 去公园中间用“与门”连接。然后列出所有条件组合4种写出预期结果得到判定表再设计用例。软件中的例子工单审批条件有 金额5000、部门经理审批通过、财务审批通过。结果工单通过。逻辑金额5000 需要 部门经理财务都通过金额≤5000 只需要部门经理通过。画出因果图再转判定表。对比 | 因果图 | 判定表形式 | 图形节点逻辑门 | 表格条件桩动作桩优势 | 直观展示条件之间的逻辑关系 | 清晰列出所有组合和动作劣势 | 复杂系统图形庞大不易维护 | 组合数多时表格巨大使用步骤 | 分析因果 → 画图 → 转判定表 → 设计用例 | 直接列出条件组合 → 合并规则 → 设计用例实际应用 | 较少直接画图多用判定表 | 更常用面试常考因果图符号 | 名称 | 含义 | 示例C1—E— | 恒等 | 因成立则果成立因不成立则果不成立 | 条件“已登录” → 结果“可发表评论”C1—~—E | 非 | 因成立则果不成立因不成立则果成立 | 条件“已禁用” → 结果“不能登录”C1—∧—E与 | 与 | 所有条件都成立结果才成立 | 天气好 ∧ 有时间 → 去公园C1—∨—E或 | 或 | 任一条件成立结果就成立 | 周末 ∨ 节假日 → 放假因果图设计步骤步骤 | 说明步骤1 | 分析需求找出输入条件因和输出结果果步骤2 | 分析条件与结果之间的逻辑关系与、或、非、恒等步骤3 | 画出因果图可用节点和逻辑门步骤4 | 检查图中是否有约束条件如互斥、唯一等步骤5 | 将因果图转化为判定表列出所有条件组合步骤6 |合并相似规则设计测试用例因果图设计步骤举例4步购物免运费步骤 | 说明 | 示例购物免运费确定因输入条件 | 列出所有影响结果的独立条件 | ①商品有货 ②余额足够 ③金额≥100确定果输出结果 | 列出所有可能的输出 | ①免运费 ②收运费画出因果图 | 用符号连接因和果标注逻辑关系 | 有货且余额足够且金额≥100 → 免运费否则收运费转化为判定表 | 因果图本质上就是判定表的图形化可转换为判定表 | 见下表练习题示例购物免运费因果图 → 判定表一、需求如果 商品有货 且 用户余额足够 且 订单金额≥100则 免运费否则 收运费二、因输入条件A 商品有货1是0否B 用户余额足够1是0否C 订单金额≥1001是0否三、果输出结果D 免运费1免0不免即收运费四、因果图逻辑用文字与符号D A 且 B 且 C即只有三个条件同时为1D才为1否则D为0五、判定表完整8条规则六、简化判定表合并相同结果七、测试用例每条单独一行用例1有货是余额足是金额≥100是 → 免运费用例2有货是余额足是金额≥100否 → 收运费用例3有货是余额足否金额≥100是 → 收运费用例4有货否余额足是金额≥100是 → 收运费练习题奖学金评定因果图需求如果 平均分≥85 且 无挂科记录则 一等奖学金如果 平均分≥85 但 有挂科记录则 二等奖学金如果 平均分85 但 平均分≥70 且 无挂科记录则 三等奖学金其他情况 无奖学金任务列出因输入条件至少2个列出果输出结果至少3个写出判定表可以用简化后的表格每行一条规则因条件1 平均分≥85 (90)条件2 平均分85且平均分≥70(75)条件3 有挂科记录条件4无挂科记录果结果1 一等奖学金结果2 二等奖学金结果3 三等奖学金结果4 无奖学金判定表规则1 平均分≥85 且有挂科记录。结果二等奖学金规则2 平均分≥85且无挂科记录。结果一等奖学金规则3 平均分平均分85且平均分≥70且有挂科记录 无奖学金规则4 平均分85且平均分≥70且无挂科记录 三等奖学金规则5 其他情况无奖学金优化将“平均分”作为一个条件高/中/低而不是拆成两个互斥条件。------分割线------正交实验法什么是正交实验法一句话当有多个因素如浏览器、操作系统、分辨率每个因素有多个取值水平时用正交表挑选少量有代表性的组合进行测试而不是穷举所有组合。通俗理解你要测试一个网站在不同环境下的兼容性3种浏览器 × 2种操作系统 × 2种分辨率 12种组合。穷举12种太耗时用正交实验法可以选出4-6种有代表性的组合覆盖大部分问题。核心思想用最少的测试用例覆盖最多的两两组合或更多维度的组合。关键术语术语 | 解释 | 示例因素| 影响结果的变量测试的维度 | 浏览器、操作系统、分辨率水平| 每个因素的具体取值 | 浏览器Chrome、Firefox、Safari3个水平正交表| 一种数学表格保证任意两个因素的所有水平组合出现次数相等 | L9(3^4) 表示9行4个因素每个因素3水平正交实验法步骤步骤 | 说明 | 示例兼容性测试确定因素 | 列出所有影响结果的变量 | 浏览器、操作系统、分辨率确定水平 | 列出每个因素的取值个数 | 浏览器3个操作系统2个分辨率2个选择正交表 | 根据因素数和水平数选择合适的正交表 | 选 L4(2^3) 或 L8(4×2^2) 等映射取值 | 将实际值填入正交表的每一列 | 第1列Chrome/Firefox/Safari…设计测试用例 | 正交表的每一行对应一个测试用例 | 第1行ChromeWin101920x1080补充用例 | 根据需要补充一些典型或高风险组合 | 最常用的组合、最易出错的组合L₄(2³)理解L₄(2³) 是标准正交表记号用于正交试验设计软件测试、实验设计。L代表 Orthogonal Array正交表4行数即 4 次试验 / 测试用例2³表示 3 个因素 (Factors)每个因素 2 个水平 (Levels)2每个因素的取值数水平数3因素的总数列数一个生活例子你要给一家奶茶店设计新品试喝活动。影响顾客评价的因素有三个甜度少糖、正常、多糖3种温度冰、热2种小料珍珠、椰果2种全测3×2×2 12种组合全部做一遍太费时。你想偷懒只测几杯但又要保证“每种甜度都搭配过冰和热”、“每种小料都搭配过冰和热”……总之任意两个因素的组合至少要出现一次。正交实验法就是一张“偷懒说明书”告诉你只需要测 4杯就能覆盖所有两两搭配。练习 | 测试“登录”功能 |全组合2×2×28种。但正交表 L4(2^3) 告诉你只需测4种。正交表 L4(2^3) 的4条用例用例1密码8位 大写锁定开 WiFi用例2密码8位 大写锁定关 4G用例3密码16位 大写锁定开 4G用例4密码16位 大写锁定关 WiFi练习 | 测试一个视频播放器影响播放效果的因素映射清晰度1480P2720P31080P网络1WiFi24G35G设备1手机2平板3电视所以9条测试用例为用例1480P WiFi 手机用例2480P 4G 平板用例3480P 5G 电视用例4720P WiFi 平板用例5720P 4G 电视用例6720P 5G 手机用例71080P WiFi 电视用例81080P 4G 手机用例91080P 5G 平板练习 | 举例 | 网站兼容性测试因素1浏览器2水平Chrome、Firefox因素2操作系统2水平Windows、macOS因素3分辨率2水平1920x1080、1366x768如果穷举2×2×28个用例。正交实验法L4(2^3)给出4个用例就能覆盖所有两两组合。L4(2^3)正交表数字1、2代表水平可以映射到实际值如图L4(2^3) 适用情况因素个数最多3个每个因素的水平数都是2水平如是/否高/低启用/禁用测试用例数4条典型场景3个二选一的因素如浏览器Chrome/Firefox操作系统Win/Mac网络有线/无线L9(3^4) 适用情况因素个数最多4个每个因素的水平数都是3水平如小/中/大低/中/高Chrome/Firefox/Safari测试用例数9条典型场景4个或更少因素每个因素有3种取值如清晰度480P/720P/1080P网络WiFi/4G/5G设备手机/平板/电视如何确定用哪张正交表步骤统计因素个数有多少个变量统计每个因素的水平数每个变量有几种取值查找匹配的正交表不需要背用的时候查表即可。网上搜索“正交表”能找到现成的表。如果没有完全匹配的正交表怎么办**方法1选择容纳更多因素和水平的表加空列或忽略多余列例如你有2个因素2水平 1个因素3水平没有标准表。可以选择 L12(2^11) 或 L9(3^4)把3水平因素放3水平列2水平因素放2水平列在3水平表中将3水平列的3映射为2水平中的某一值。方法2全组合测试如果总组合数不多比如小于203×2×212种直接全测不用正交表。方法3使用混合水平正交表如 L8(4×2^4)举例说明如何选择场景1测试手机App在不同环境下的兼容性因素品牌苹果/华为/小米3水平、系统版本iOS16/iOS17/Android13/Android144水平、网络WiFi/5G2水平总组合3×4×224选择L16(41×211) 或 L12(2^11) 不匹配可以自定义或选择 L16(2^15) 忽略部分组合或直接全测24条不多。场景2测试搜索功能因素关键词长度短/中/长3水平、搜索类型精确/模糊2水平、排序相关度/时间2水平总组合12种选择直接全测12种因为12条用例可以接受或者用 L9(3^4) 表将2水平映射到3水平产生9条用例。总结面试回答“正交表的选择取决于因素个数和水平数。常用的有 L4(2^3) 用于3个二选一因素L9(3^4) 用于4个三选一因素。如果没有匹配的我会考虑全组合测试或使用混合水平表。”正交实验法面试题常见问答Q1什么是正交实验法它的主要作用是什么回答正交实验法是一种从多因素多水平的组合中挑选少量有代表性组合的测试设计方法。它的主要作用是用最少的测试用例覆盖任意两个因素的所有水平组合从而在保证测试覆盖度的前提下大幅减少用例数量。Q2举例说明如何用正交实验法设计测试用例回答例如测试一个网站兼容性有三个因素浏览器Chrome、Firefox、操作系统Win、Mac、分辨率1920x1080、1366x768。全组合需要8个用例。使用 L4(2^3) 正交表只需4个用例Chrome Win 1920x1080Chrome Mac 1366x768Firefox Win 1366x768Firefox Mac 1920x1080这四个用例覆盖了所有两两组合。Q3正交表 L4(2^3) 中的数字代表什么回答L4 表示有4行即4个测试用例。2^3 表示有3个因素每个因素有2个水平取值。常见正交表还有 L9(34)、L8(27) 等。Q4使用正交实验法有什么局限性回答正交实验法只能保证任意两个因素的所有水平组合被覆盖但无法覆盖三因素或更高阶的交互作用。此外如果因素的水平数不一致可能没有完全匹配的正交表需要采用混合水平正交表或补充测试用例。Q5如果没有合适的正交表你会怎么做回答如果全组合数量不大例如小于20我会直接进行全组合测试。如果全组合数量很大我会尝试使用混合水平正交表或者根据经验挑选一些典型组合再配合错误推测法补充高风险场景。Q6你在项目中用过正交实验法吗回答在测试配置兼容性时用过。例如测试一个App在不同品牌手机、系统版本、网络环境下的表现使用正交表挑选组合节省了测试时间并且后续用户反馈中未出现因组合遗漏导致的严重缺陷。建议面试时重点说出“用最少的用例覆盖最多的两两组合”这句话并能够举出 L4(2^3) 的例子即可。不需要深入数学原理。

更多文章