一、自动化的核心概念
- 定义:通过自动方式替代人工操作完成任务。生活中常见的自动洒水机、超市闸机等案例,都体现了'减少人力消耗、提升效率与质量'的特点。
- 软件自动化测试的核心目的:
- 用于回归测试:在软件迭代新版本时,验证新增功能是否影响历史功能的正常运行。
- 常见面试题解析:
- 自动化测试不能完全取代人工测试:需人工编写脚本,且功能变更后需维护更新,可靠性未必优于人工。
- 自动化测试不能'大幅度降低工作量':仅能'一定程度'减少重复工作,表述需严谨。
二、自动化测试的分类
自动化是统称,包含多种类型,核心分类及说明如下:
| 分类 | 说明 |
|---|---|
| 接口自动化 | 针对软件接口的测试,目的是验证接口的功能、性能、稳定性等。 |
| UI 自动化 | 针对软件界面的测试,包含移动端和 Web 端。 |
- 移动端自动化:通过模拟器在电脑上编写脚本,测试手机应用;稳定性较差(受设备、系统版本等环境因素影响)。
- Web 自动化:模拟浏览器操作(如自动打开百度、执行搜索),替代人工完成网页操作与验证。
以'百度搜索'为例,Web 自动化的执行逻辑是:自动打开浏览器→访问百度首页→在搜索框输入内容→执行搜索→验证结果,以此替代人工的重复操作,提升测试效率。
三、自动化测试金字塔
1. 理想的自动化测试金字塔
- 结构与逻辑:
- 从下到上依次为:单元测试 → API/集成/组件测试 → UI 自动化测试 → 手动/探索性测试。
- 核心特点:投入产出比从下到上递减。底层的单元测试消耗更少时间/精力,却能发现更多问题,投资回报率更高;上层的 UI 自动化、手动测试则需更多资源,但回报更低。
- 设计目的:倡导企业优先在底层(单元测试、接口测试)投入自动化,以更低成本保障软件质量。
2. 企业实际的'冰淇淋蛋筒模式'
- 结构与逻辑:与理想模型倒置。从下到上依次为:单元测试 → API/集成/组件测试 → UI 自动化测试 → 手动/探索性测试。
- 核心特点:投入产出比从下到上递增。企业实际中常将更多资源投入上层(UI 自动化、手动测试),但这些环节的投资回报率更低;底层的单元测试投入较少。
- 现实原因:自动化需大量初始投入(如脚本开发、框架搭建),企业往往优先选择'看得见效果'的上层测试,但长期来看,底层自动化的成本收益更优。


