
1. 等价类划分法从海量数据中提炼测试精华我第一次接触等价类划分是在测试一个用户注册系统时。当时产品经理要求测试6-18位字母数字组合的用户名如果按穷举法测试就算不吃不喝也测不完。这时候等价类划分就像救命稻草一样出现了——它让我明白测试不是蛮力活而是技术活。有效等价类和无效等价类是这种方法的核心概念。就像整理衣柜时你会把当季衣服有效和过季衣服无效分开存放。在测试中有效等价类符合需求的输入如6-18位合规用户名无效等价类超出范围的输入如5位或19位用户名具体操作时我常用这个套路拆解需求像解数学题一样标注所有输入条件画等价类表用表格列出所有可能情况见下表选代表值每个类别选1-2个典型数据输入条件有效等价类无效等价类用户名长度6-18位小于6位大于18位字符类型字母数字特殊字符、中文等最近测试一个电商价格输入框时发现开发同学在处理999.99这个边界值时漏了四舍五入逻辑。这就是典型的有效等价类中的边界值问题也引出了我们下个要讨论的方法。2. 边界值分析在悬崖边发现致命bug边界值就像走钢丝的临界点99%的bug都藏在这里。有次测试支付系统金额上限设为1万元当我输入9999.99元时一切正常但输入10000.01元时系统竟然崩溃了——这就是没处理好边界值的典型事故。7点变5点优化法是我的独门秘籍传统7点测试最小值-1、最小值、最小值1、正常值、最大值-1、最大值、最大值1优化为5点根据开内闭外原则开区间测内部闭区间测外部去掉重复测试点以测试1-100的整数输入为例闭区间[1,100]测试0,1,2,99,100,101开区间(1,100)测试1,2,3,98,99,100常见坑点时间边界23:59到00:00的跨日处理浮点数精度0.10.2≠0.3的经典问题多字段组合当A字段取最大值时B字段的边界会动态变化有次测试优惠券系统就栽在第三个坑里单张优惠券上限100元但没限制用户同时使用多张优惠券的总金额导致可以无限叠加。3. 判定表法破解多条件组合难题去年双十一前我们团队测试促销规则时差点崩溃——满300减50VIP用户再打9折新用户首单叠加免运费...这种多条件组合用传统方法测试用例会爆炸。这时候判定表就像瑞士军刀一样解决了问题。四步构建判定表列出所有条件桩如是否满300、是否VIP等写出所有动作桩如减50、打9折等填写条件项的全组合2^n种可能根据业务规则确定每个组合对应的动作项以简单的登录功能为例用户名密码验证码用户名密码验证码预期结果正确正确正确登录成功正确正确错误验证码错误正确错误正确密码错误............实用技巧超过4个条件时改用正交试验法使用工具如PICT快速生成组合灰色标注不可能出现的组合如未满300和使用满减券最近用判定表测试智能家居场景时发现当温度26℃且湿度70%时空调和除湿机竟然会打架——这就是条件组合产生的意外交互。4. 综合实战电商订单系统测试设计现在我们把三种方法融合解剖一个电商下单流程。假设需求如下商品价格范围10-1000元优惠券满200减30限品类运费0-50元按距离计算第一步等价类划分价格1010-10001000优惠券适用/不适用品类运费00-5050第二步边界值分析价格重点测9.991010.01999.9910001000.01优惠券门槛测199200201运费边界测00.0149.995050.01第三步判定表构建核心条件组合价格≥200 适用品类 → 应减30价格≥200 不适用品类 → 不减价格200 适用品类 → 不减价格200 不适用品类 → 不减最终测试点示例99元非适用品 10元运费 → 实付109元200元适用品 免运费 → 实付170元1000元非适用品 50元运费 → 实付1050元曾用这个方法发现过一个隐蔽bug当商品价格正好200元且运费为0时系统错误地减免了30元后又加了30元运费导致实付还是200元。这种边界条件组合的bug只有系统化方法才能捕捉到。测试设计就像破案需要方法和经验的结合。每次发现隐蔽bug时的快感就是测试工程师最好的奖励。记住好的测试不是找到bug而是让bug无处可藏。