上篇:《三色侦查术:黑盒・白盒・灰盒深度精讲》
一、划分依据依据测试人员是否能够获取源代码、是否研究程序内部逻辑划分黑盒测试、白盒测试、灰盒测试。1. 黑盒测试定义把软件当作黑色盒子不看内部源代码只给定输入观察输出结果是否符合预期只关注功能表现。示例代码Pythonpython运行# 简易登录校验 def login(username, password): if username admin and password 123456: return 登录成功 else: return 账号或密码错误黑盒测试思路不需要看懂 if 代码只设计输入观察返回值输入 usernameadmin, password123456 → 预期登录成功输入 usernameadmin, password666666 → 预期账号或密码错误输入 username, password → 预期账号或密码错误✅特点不用理解代码逻辑站在用户视角 ❌缺点无法覆盖内部分支隐藏问题2. 白盒测试定义拿到完整源码分析代码分支、循环、条件保证代码每一条执行路径都被覆盖。 沿用上方登录代码python运行def login(username, password): if username admin and password 123456: return 登录成功 else: return 账号或密码错误白盒测试思路读懂代码结构代码存在 2 条分支 分支 1账号密码全部匹配 分支 2任意一项不匹配 设计用例覆盖两条路径合法账号密码 → 走分支 1密码错误 → 走分支 2拓展示例多分支场景python运行def get_vip(consume): if consume 1000: return VIP会员 else: return 普通用户白盒必须测试临界点consume999、consume1001覆盖两条分支。✅优点覆盖底层逻辑找到代码缺陷 ❌缺点需要看懂代码成本高3. 灰盒测试定义不完整阅读全部源码同时操作功能 查看接口、数据库、日志互联网主流测试方式。 测试场景调用登录函数接口 流程执行login(admin,123456)【黑盒看返回信息】额外查看数据库是否记录登录时间、接口请求参数是否正常只关注数据流转不需要逐行阅读后端全部源码✅特点兼顾效率与深度企业最常用