一、什么是软件测试
简单定义:验证软件产品是否满足需求,发现缺陷,保障质量的一系列活动。 不是单纯 “点点页面找 bug”,核心目标:
- 找出程序存在的缺陷(Bug)
- 确认功能符合用户 / 产品需求
- 评估软件质量、风险
- 保障上线后稳定可用
误区纠正: ✖ 测试就是找 bug,找到越多越好 ✔ 测试是预防 + 发现缺陷,把控整体质量,零 Bug 几乎无法实现。
二、测试核心术语
- Bug(缺陷)软件不满足需求、出现异常、结果和预期不一致都属于缺陷。 例:点击按钮无响应、文字错位、计算结果错误。
- 需求产品文档、原型、接口文档,是判断有没有 Bug 的标准。
- 预期结果 vs 实际结果测试用例两大核心:操作后应该出现什么;真实运行出现什么,不一致即为缺陷。
三、测试的阶段(V 模型常用划分)
- 单元测试:开发自测,测试单个函数、方法、组件
- 集成测试:多个模块组合在一起测试(模块间接口)
- 系统测试:完整软件整体测试(测试人员主要工作阶段)
- 验收测试
- α 测试:内部模拟用户使用
- β 测试:线上少量真实用户试用
四、常见测试分类
1. 按测试是否看代码
- 黑盒测试:不看源代码,只测功能(手工功能测试主流)
- 白盒测试:看懂代码逻辑,覆盖代码分支(开发、自动化 / 性能常用)
- 灰盒测试:兼顾功能 + 简单接口信息,互联网最普遍
2. 按测试类型
- 功能测试:验证业务能不能正常跑(最基础)
- 接口测试:直接测试前后端交互 API
- 性能测试:并发、响应速度、压力、负载
- 自动化测试:脚本代替手工重复操作
- 兼容性测试:不同浏览器、手机系统、分辨率
- 安全测试:防注入、越权、信息泄露等
- 回归测试:版本修改后,复测原有功能,防止改出新 bug
3. 按执行时机
- 冒烟测试:新版本第一遍简易测试,确认主干流程可用,不阻塞正式测试
- 回归测试
- 探索性测试:不预先写用例,自由操作、边测边思考
五、测试基础流程
需求熟悉 → 编写测试点 / 测试用例 → 执行测试 → 提交 Bug → 开发修复 →验证 Bug→ 关闭 / 重开 Bug → 测试总结、上线评估