世界杯2022是哪个国家_国足世界杯出线 - dtfyjq.com

  • 首页
  • 北京世界杯
  • 世界杯新秀
  • 世界杯16强名单

最新发表

  • 【湉】的拼音、怎么读
  • 浪漫传说漫画免费阅读「下拉观看」
  • 免费网页加速器推荐:科学上外网加速工具分享
  • EDG冠军皮肤选择 芙兰朵男枪jiejie皇子
  • 飞聊“停飞”,字节社交的首场败仗 飞聊停飞,是字节社交的开始还是结束?字节吃了社交赛道上的首个败仗。近日,Tech星球获悉,字节跳动两年前重磅推出的社交产...
  • 结婚请柬怎么写及范文
  • 街霸4(街头霸王4)点评
  • tiktok为何热门清空,探究tiktok热门背后的缘由
  • 碣字的寓意
  • 「我们读诗」鲍勃·迪伦:一个人要走多少路,别人才把他称为人?一只白鸽要飞越多少海,才能在沙滩沉睡?

友情链接

Copyright © 2022 世界杯2022是哪个国家_国足世界杯出线 - dtfyjq.com All Rights Reserved.

软件测试完整学习指南:从入门到自动化、性能与安全测试实战

世界杯16强名单 · 2026-06-13 07:35:45

软件测试完整学习指南:理论、流程、技术、工具与项目实战 🚀

适合人群:软件测试入门者、功能测试工程师、自动化测试工程师、测试开发/SDET、想系统补全测试知识的开发人员。

更新时间:2026-06-08

文档目标:系统讲清楚软件测试是什么、怎么测、用什么工具、需要掌握哪些技术、如何从 0 到项目实战与面试准备。

目录 📌

一、软件测试是什么?

二、为什么软件测试很重要?

三、软件测试岗位与发展方向

[四、软件测试核心流程 STLC](#四、软件测试核心流程 STLC)

五、测试分类详细讲解

六、测试级别:从代码到系统验收

七、测试方法:黑盒、白盒、灰盒、静态、动态

八、测试用例设计方法

[九、缺陷 Bug 管理完整流程](#九、缺陷 Bug 管理完整流程)

十、测试需要掌握的技术体系

十一、测试工具体系总览

十二、重点测试工具详细讲解

十三、接口测试详细讲解

十四、性能测试详细讲解

十五、安全测试详细讲解

十六、自动化测试详细讲解

十七、移动端测试详细讲解

十八、测试文档模板

十九、项目实战:电商系统测试方案

二十、学习路线规划

二十一、面试题与参考答案

二十二、官方资源与文档链接

一、软件测试是什么?

软件测试是通过人工检查、工具验证、自动化脚本、性能压测、安全扫描、代码级测试、用户场景验证等方式,判断软件是否满足需求,并尽可能发现其中的缺陷和风险。

简单理解:

软件测试不是单纯"找 Bug",而是围绕质量、风险、用户体验和交付稳定性进行系统验证。

软件测试通常关注以下问题:

关注点

说明

示例

功能是否正确 ✅

是否符合需求文档

登录成功、下单成功、退款成功

数据是否准确 📊

数据写入、查询、统计是否正确

订单金额、库存数量、用户积分

接口是否稳定 🔗

API 请求和响应是否符合约定

状态码、参数校验、返回结构

性能是否达标 ⚡

高并发下是否卡顿、崩溃

1000 人同时下单

安全是否可靠 🔐

是否存在注入、越权、泄露

普通用户访问管理员接口

兼容性是否良好 📱

不同浏览器、系统、设备是否正常

iOS、Android、Windows、macOS

体验是否合理 🎨

页面提示、交互流程是否清晰

错误提示、加载状态、空状态

可维护性是否良好 🧩

代码、用例、环境是否方便维护

自动化脚本是否稳定

二、为什么软件测试很重要?

软件一旦上线,问题成本会被放大。一个小 Bug 可能导致:

用户无法登录 😵

支付失败或重复扣款 💸

数据丢失或数据错乱 📉

权限泄露,用户看到不该看的数据 🔓

系统高峰期崩溃 🚨

品牌和业务损失 📉

1. 测试的核心价值

价值

说明

降低上线风险

提前发现问题,避免线上事故

保障核心业务

登录、支付、订单、数据等主流程稳定

提升用户体验

减少卡顿、闪退、错位、提示不清等问题

辅助产品决策

通过测试报告判断是否具备上线条件

促进团队协作

帮助开发、产品、运维共同理解质量风险

提升交付效率

自动化测试能减少重复回归成本

2. 软件测试的七个常见原则

原则

解释

测试能发现缺陷,但不能证明完全无缺陷

测试只能提高信心,无法证明软件绝对没有 Bug

穷尽测试通常不现实

所有输入、所有组合都测一遍成本极高

测试越早介入越好

需求阶段发现问题比上线后修复成本低很多

缺陷具有集群性

大量 Bug 往往集中在少数复杂模块

杀虫剂悖论

同一批用例反复执行,会越来越难发现新 Bug

测试活动依赖上下文

金融、电商、游戏、医疗系统的测试重点不同

无错误谬误

软件即使没有明显 Bug,也可能不满足用户真实需求

三、软件测试岗位与发展方向

1. 功能测试工程师 🧪

功能测试是测试入门最常见方向,主要通过人工方式验证需求。

工作内容

阅读需求文档、原型图、接口文档

编写测试计划和测试用例

执行功能测试、兼容性测试、回归测试

提交 Bug,跟踪 Bug 修复

输出测试报告

能力要求

能力

要求

需求理解

能看懂业务规则、流程、边界条件

用例设计

会等价类、边界值、场景法、判定表

Bug 表达

能写清楚复现步骤、实际结果、预期结果

沟通协作

能和产品、开发、运维沟通质量问题

工具使用

会禅道、Jira、TestRail、Postman 等

2. 接口测试工程师 🔗

接口测试主要验证后端 API 的正确性、稳定性、安全性和性能。

工作内容

根据接口文档设计接口测试用例

使用 Postman、Apifox、curl 调试接口

验证请求参数、返回字段、状态码、错误码

测试登录鉴权、Token、权限、幂等性

编写接口自动化脚本

常见接口测试点

测试点

示例

请求方式

GET、POST、PUT、DELETE 是否正确

参数校验

必填、类型、长度、格式、边界值

返回结构

JSON 字段是否完整、类型是否正确

状态码

200、400、401、403、404、500

业务逻辑

库存扣减、订单状态、支付状态

权限控制

未登录、普通用户、管理员

异常处理

参数错误、服务异常、数据库异常

安全风险

越权、重放、敏感信息泄露

3. 自动化测试工程师 🤖

自动化测试使用脚本和工具代替人工重复执行测试。

工作内容

选择自动化测试框架

编写 Web、接口、移动端自动化脚本

管理测试数据和测试环境

生成自动化测试报告

接入 Jenkins、GitLab CI、GitHub Actions

维护自动化脚本稳定性

适合自动化的场景

适合

不适合

高频回归测试

一次性临时需求

稳定核心流程

需求频繁变动功能

接口自动化

强主观 UI 视觉判断

主流程冒烟测试

极复杂且低频操作

多数据组合测试

尚未稳定的原型功能

4. 性能测试工程师 ⚡

性能测试关注系统在不同负载下的响应速度、并发能力和稳定性。

工作内容

设计性能测试场景

使用 JMeter、k6、Locust 压测

分析响应时间、吞吐量、TPS、QPS、错误率

监控 CPU、内存、磁盘、网络、数据库

定位性能瓶颈

输出性能测试报告

5. 安全测试工程师 🔐

安全测试关注系统是否存在漏洞和攻击风险。

工作内容

测试 SQL 注入、XSS、CSRF、越权、文件上传漏洞

使用 Burp Suite、OWASP ZAP 等工具

进行安全扫描和手工验证

分析敏感信息泄露风险

输出安全测试报告

6. 测试开发 / SDET 🧑‍💻

测试开发是更偏技术的测试岗位,要求具备编码、框架设计、平台开发和质量工程能力。

工作内容

搭建自动化测试框架

开发测试平台、Mock 平台、质量看板

维护测试基础设施

做 CI/CD 质量门禁

推动研发流程质量改进

技术栈

方向

常用技术

编程语言

Python、Java、JavaScript、TypeScript、Go

自动化框架

Selenium、Playwright、pytest、JUnit、TestNG

接口测试

Postman、Apifox、requests、RestAssured

性能测试

JMeter、k6、Locust

平台开发

Django、FastAPI、Spring Boot、Vue、React

DevOps

Jenkins、GitLab CI、Docker、Kubernetes

数据库

MySQL、PostgreSQL、Redis、MongoDB

四、软件测试核心流程 STLC

STLC 是 Software Testing Life Cycle,即软件测试生命周期。常见流程如下:

text

复制代码

需求分析 → 测试计划 → 测试设计 → 测试环境准备 → 测试执行 → 缺陷管理 → 回归测试 → 测试报告 → 测试关闭

1. 需求分析 📄

测试首先要理解需求,而不是拿到系统就开始乱点。

需要看的资料

资料

作用

PRD 产品需求文档

明确业务规则、流程、边界

原型图

明确页面结构和交互

UI 设计稿

明确视觉规范

接口文档

明确 API 入参、出参、状态码

数据库设计

明确数据表关系和数据流

埋点文档

明确统计事件和数据上报

权限矩阵

明确不同角色能做什么

需求评审要关注的问题

问题类型

示例

需求不明确

"适当提示用户"具体提示什么?

逻辑冲突

优惠券和满减能不能叠加?

边界缺失

最大上传文件是多少 MB?

权限不清

普通管理员能否删除用户?

异常未说明

支付失败后订单是什么状态?

数据规则缺失

手机号是否允许海外号码?

2. 测试计划 🗓️

测试计划说明本次测试怎么做、谁来做、测什么、不测什么、什么时候完成。

测试计划内容

内容

示例

项目背景

电商 App 订单模块 V2.0 测试

测试范围

登录、购物车、下单、支付、退款

不测范围

第三方支付平台内部逻辑

测试类型

功能、接口、兼容、性能、安全

测试环境

测试环境、预发布环境

人员分工

A 测订单,B 测支付,C 测接口

时间安排

提测、测试、回归、上线时间

准入标准

开发自测通过、环境可用、接口文档完整

准出标准

P0/P1 Bug 清零,核心用例通过率 100%

风险说明

支付接口依赖第三方,可能影响进度

3. 测试设计 🧠

测试设计就是把需求转换成可执行的测试点和测试用例。

测试设计产物

测试点清单

测试用例

测试数据

测试场景图

接口测试集合

自动化测试脚本设计

性能测试场景设计

4. 测试环境准备 🧰

测试环境包括服务器、数据库、应用版本、账号权限、测试数据、第三方依赖等。

环境检查清单

text

复制代码

□ 测试地址是否可访问

□ 前端/后端版本是否正确

□ 数据库是否连接正常

□ Redis、消息队列是否正常

□ 测试账号是否可登录

□ 权限角色是否配置完成

□ 测试数据是否准备好

□ 第三方支付/短信/邮件是否可用

□ 日志是否可查看

□ 接口文档是否更新

5. 测试执行 🧪

测试执行一般包括:

阶段

说明

冒烟测试

快速判断版本是否可测

系统测试

按用例全面验证功能

探索性测试

根据经验自由测试隐藏问题

接口测试

验证接口逻辑和数据

兼容性测试

验证浏览器、系统、设备

回归测试

验证修复后是否影响旧功能

验收测试

判断是否符合上线要求

6. 测试报告 📊

测试报告是上线决策的重要依据。

测试报告通常包括

内容

示例

测试结论

通过 / 有条件通过 / 不通过

测试范围

本次测试了哪些模块

用例执行情况

总 300 条,通过 285 条,失败 10 条,阻塞 5 条

Bug 统计

P0 0 个,P1 1 个,P2 8 个

遗留问题

说明未修复问题和影响范围

风险说明

支付回调偶发延迟,有线上风险

上线建议

是否建议上线

五、测试分类详细讲解

1. 功能测试 ✅

验证软件功能是否符合需求。

示例:登录功能测试点

场景

测试点

正常登录

正确账号密码登录成功

错误密码

提示密码错误

账号不存在

提示账号不存在

空账号

提示请输入账号

空密码

提示请输入密码

账号禁用

提示账号已禁用

多次输错

是否锁定账号或触发验证码

登录态

刷新页面是否保持登录

退出登录

Token 是否清除

权限跳转

未登录访问内部页面是否跳转登录

2. 接口测试 🔗

接口测试验证服务端 API 是否按约定工作。

接口测试重点

请求方法是否正确

请求参数是否完整

参数类型、长度、边界是否校验

返回状态码是否正确

返回字段是否符合接口文档

错误码和错误信息是否统一

权限、Token、签名是否正确

是否存在越权访问

是否支持幂等处理

是否存在重复提交问题

3. UI 测试 🎨

UI 测试关注界面展示和交互体验。

测试点

类型

示例

布局

是否错位、遮挡、溢出

文案

是否有错别字、语言不统一

图片

是否变形、模糊、加载失败

按钮

是否可点击、状态是否正确

表单

输入、校验、提示是否正常

弹窗

打开、关闭、遮罩、层级是否正常

加载状态

请求中是否有 loading

空状态

无数据时是否有提示

错误状态

接口失败是否提示

4. 兼容性测试 📱

验证软件在不同环境中是否正常。

兼容性测试维度

维度

示例

浏览器

Chrome、Edge、Firefox、Safari

操作系统

Windows、macOS、Linux、iOS、Android

设备

手机、平板、PC、折叠屏

分辨率

1920x1080、1366x768、375x812

网络

Wi-Fi、4G、5G、弱网、断网

WebView

微信、支付宝、App 内嵌浏览器

数据库

MySQL、PostgreSQL、Oracle

5. 回归测试 🔁

回归测试用于验证修改代码后,旧功能是否被影响。

什么时候需要回归?

Bug 修复后

新功能合并后

版本上线前

公共组件修改后

数据库结构调整后

配置文件修改后

依赖库升级后

6. 冒烟测试 💨

冒烟测试是快速判断版本是否"可测"。

例如后台系统冒烟用例:

text

复制代码

□ 系统可以打开

□ 用户可以登录

□ 菜单可以正常加载

□ 核心列表可以打开

□ 新增功能可以保存

□ 编辑功能可以保存

□ 删除功能可以删除

□ 退出登录正常

冒烟测试失败,通常说明版本质量太差,不适合进入全面测试。

7. 探索性测试 🔍

探索性测试不完全依赖测试用例,而是依靠测试人员经验自由探索。

常见探索操作

操作

可能发现的问题

连续快速点击按钮

重复提交、状态错乱

输入超长文本

页面撑破、数据库报错

输入特殊字符

XSS、SQL 错误、编码异常

网络中断再恢复

数据丢失、状态异常

多标签页同时操作

登录态、数据同步问题

修改浏览器本地存储

权限绕过、状态异常

清除 Token 后操作

401 处理异常

8. 性能测试 ⚡

性能测试用于验证系统在压力下是否稳定。

常见类型

类型

说明

负载测试

验证预期用户量下是否稳定

压力测试

找出系统最大承受能力

并发测试

多用户同时操作同一业务

稳定性测试

长时间运行是否稳定

容量测试

数据量增大后是否变慢

峰值测试

突发流量下系统表现

基准测试

建立性能基线,用于后续对比

9. 安全测试 🔐

安全测试用于发现系统被攻击或数据泄露的风险。

常见安全测试点

类型

示例

SQL 注入

输入 ' OR 1=1 -- 绕过查询

XSS

输入

CSRF

伪造用户请求

越权

A 用户访问 B 用户订单

文件上传

上传 php、jsp、exe、脚本文件

暴力破解

登录接口无限尝试密码

敏感信息泄露

返回身份证、密码、Token

弱密码

123456、admin123

目录遍历

访问 ../../etc/passwd

10. 易用性测试 👥

易用性测试关注用户是否容易理解和操作。

测试点

操作流程是否顺畅

提示信息是否清楚

错误提示是否能指导用户修正

页面是否有必要的确认提醒

重要操作是否防误触

新用户是否能快速上手

11. 可访问性测试 ♿

可访问性测试关注残障用户或特殊场景下是否可用。

测试点

是否支持键盘操作

图片是否有替代文本

颜色对比度是否足够

表单控件是否有关联标签

屏幕阅读器是否能识别内容

错误提示是否清晰

12. 国际化与本地化测试 🌍

适用于多语言、多地区系统。

测试点

类型

示例

文案翻译

是否漏翻、错翻

日期格式

2026-06-08 / 06/08/2026

货币格式

¥、$、€

时区

北京时间、UTC、东京时间

字符长度

德语、俄语文案较长是否撑破布局

方向

阿拉伯语等 RTL 语言

六、测试级别:从代码到系统验收

1. 单元测试 Unit Testing

测试最小代码单元,例如函数、方法、类。

特点

说明

执行快

通常几秒内完成

成本低

适合开发阶段快速反馈

定位准

哪个函数错了容易发现

自动化程度高

适合 CI 中频繁运行

常用工具:JUnit、TestNG、pytest、NUnit、Jest、Vitest。

2. 集成测试 Integration Testing

验证多个模块之间是否能正确协作。

例如:

text

复制代码

用户服务 → 订单服务 → 库存服务 → 支付服务 → 消息通知服务

关注点:

接口契约是否一致

数据传递是否正确

异常是否能被正确处理

第三方服务异常时是否降级

3. 系统测试 System Testing

从完整系统角度验证功能和非功能需求。

包括:

功能测试

接口测试

性能测试

安全测试

兼容性测试

可用性测试

4. 验收测试 Acceptance Testing

验证系统是否满足用户或业务方要求。

类型:

类型

说明

UAT 用户验收测试

业务方按照真实业务场景验收

Alpha 测试

内部用户测试

Beta 测试

外部真实用户试用

合同验收

按合同条款验收

七、测试方法:黑盒、白盒、灰盒、静态、动态

1. 黑盒测试 ⚫

不看内部代码,只根据输入和输出判断系统是否正确。

适合:

功能测试

接口测试

UI 测试

验收测试

2. 白盒测试 ⚪

了解代码内部逻辑,基于代码结构设计测试。

关注:

语句覆盖

分支覆盖

条件覆盖

路径覆盖

异常路径

代码安全风险

3. 灰盒测试 🔘

介于黑盒和白盒之间,测试人员了解部分系统内部结构。

常见场景:

接口测试时查看数据库数据

测试订单状态流转时查看日志

测试权限时查看角色配置

测试异步消息时查看消息队列

4. 静态测试 📖

不运行程序,通过审查文档和代码发现问题。

包括:

需求评审

设计评审

代码评审

测试用例评审

静态代码扫描

5. 动态测试 ▶️

运行软件,通过输入和操作验证结果。

包括:

功能测试

接口测试

自动化测试

性能测试

安全扫描

八、测试用例设计方法

1. 等价类划分

把输入划分为有效等价类和无效等价类。

示例:手机号输入框

类型

测试数据

预期

有效等价类

13800138000

通过

无效等价类

12345

不通过

无效等价类

abcdef

不通过

无效等价类

空值

不通过

无效等价类

138001380001

不通过

2. 边界值分析

很多问题出现在边界。

示例:用户名长度 6-20 位

数据

预期

5 位

不通过

6 位

通过

7 位

通过

19 位

通过

20 位

通过

21 位

不通过

3. 判定表

适合多条件组合。

示例:优惠券使用条件

已登录

满 100 元

优惠券有效

是否可用

是

是

是

可用

是

是

否

不可用

是

否

是

不可用

否

是

是

不可用

否

否

否

不可用

4. 因果图

适合复杂条件之间存在因果关系的业务。

例如注册功能:

text

复制代码

原因:手机号合法、验证码正确、密码合规、协议已勾选

结果:注册成功

只要其中任意关键条件不满足,结果就是注册失败。

5. 状态迁移法

适合测试状态流转。

示例:订单状态

text

复制代码

待支付 → 已支付 → 已发货 → 已收货 → 已完成

待支付 → 已取消

已支付 → 退款中 → 已退款

测试重点:

合法状态能否正确流转

非法状态是否禁止流转

状态变更后数据是否一致

状态变更是否有日志记录

6. 场景法

模拟用户真实业务流程。

示例:电商下单

text

复制代码

注册 → 登录 → 搜索商品 → 加入购物车 → 提交订单 → 支付 → 查看订单 → 申请退款

7. 正交实验法 / Pairwise

当参数组合很多时,用较少用例覆盖大部分两两组合。

示例

浏览器、系统、语言、支付方式组合很多,不可能全测,可以用 Pairwise 生成代表性组合。

8. 错误推测法

根据经验推测容易出问题的地方。

常见高风险点:

金额计算

权限控制

文件上传

分页边界

搜索过滤

弱网重试

重复提交

并发扣库存

Token 过期

缓存不一致

九、缺陷 Bug 管理完整流程

1. Bug 生命周期

text

复制代码

新建 → 指派 → 确认 → 修复 → 待回归 → 回归通过 → 关闭

↘ 回归失败 → 重新打开

2. Bug 报告模板

text

复制代码

标题:支付成功后订单状态仍显示"待支付"

环境:

- 测试环境:https://test.example.com

- App 版本:2.3.0

- 设备:iPhone 15 / iOS 18

- 账号:test001

前置条件:

- 用户已登录

- 商品库存充足

- 支付渠道可用

复现步骤:

1. 打开商品详情页

2. 点击立即购买

3. 提交订单

4. 使用测试支付方式完成支付

5. 返回订单详情页

实际结果:

订单状态仍显示"待支付"。

预期结果:

支付成功后订单状态应显示"已支付"。

附件:

- 截图

- 接口请求记录

- 日志片段

严重程度:严重

优先级:高

3. 严重程度 Severity

等级

说明

示例

致命 Blocker

系统无法使用

服务崩溃、无法登录、数据丢失

严重 Critical

核心流程不可用

支付失败、订单无法提交

一般 Major

主要功能异常但有绕过方案

搜索结果错误

轻微 Minor

局部问题

文案错误、样式错位

建议 Trivial

优化建议

交互体验可改善

4. 优先级 Priority

等级

说明

P0

必须立即修复,影响上线

P1

本版本必须修复

P2

可排期修复

P3

低优先级,有时间处理

严重程度表示影响有多大,优先级表示多快修。二者有关联,但不是一回事。

十、测试需要掌握的技术体系

1. 测试理论基础 🧠

必须掌握:

软件测试概念

STLC 测试流程

SDLC 软件开发生命周期

测试计划、测试用例、测试报告

黑盒、白盒、灰盒测试

等价类、边界值、判定表、状态迁移

缺陷管理流程

回归测试、冒烟测试、验收测试

2. 业务分析能力 📌

测试不是机械点页面,而是要理解业务。

需要掌握:

需求分析

流程图分析

权限矩阵分析

数据流分析

异常流程设计

风险识别

3. HTTP / 网络基础 🌐

接口测试、性能测试、安全测试都离不开网络基础。

必须掌握:

知识点

说明

HTTP 方法

GET、POST、PUT、DELETE、PATCH

状态码

200、201、301、302、400、401、403、404、500

请求头

Content-Type、Authorization、Cookie

请求体

JSON、FormData、x-www-form-urlencoded

Cookie / Session / Token

登录态和鉴权

HTTPS

加密传输、证书

DNS

域名解析

跨域

CORS、预检请求

WebSocket

实时通信测试

4. 数据库与 SQL 🗄️

测试人员至少要会基本 SQL。

常用能力:

sql

复制代码

-- 查询用户

SELECT * FROM users WHERE phone = '13800138000';

-- 查询订单

SELECT * FROM orders WHERE user_id = 1001 ORDER BY created_at DESC;

-- 查询某状态订单数量

SELECT status, COUNT(*) FROM orders GROUP BY status;

-- 更新测试数据

UPDATE users SET status = 1 WHERE id = 1001;

-- 删除测试垃圾数据

DELETE FROM test_orders WHERE created_at < '2026-01-01';

需要掌握:

SELECT / INSERT / UPDATE / DELETE

WHERE / ORDER BY / GROUP BY / LIMIT

JOIN 联表查询

索引基本概念

事务 ACID

锁、死锁、隔离级别基础

慢查询分析

5. Linux 基础 🐧

测试环境、日志排查、部署验证经常用 Linux。

常用命令:

bash

复制代码

# 查看日志最后 200 行

tail -n 200 app.log

# 实时查看日志

tail -f app.log

# 搜索错误日志

grep "ERROR" app.log

# 查看进程

ps aux | grep java

# 查看端口

netstat -tunlp

# 查看磁盘空间

df -h

# 查看内存

free -h

# 查看 CPU 和内存使用

top

6. 编程语言 💻

测试进阶必须会一门编程语言。

方向

推荐语言

接口自动化

Python、Java、JavaScript

Web 自动化

Python、Java、JavaScript、TypeScript

移动端自动化

Java、Python、JavaScript

性能测试

Java、JavaScript、Python

测试平台开发

Python、Java、Go

推荐优先级

text

复制代码

Python → SQL → Linux → HTTP → 自动化框架 → CI/CD → Docker → 测试平台

7. Git 与版本管理 🌿

测试人员也需要懂 Git。

常用命令:

bash

复制代码

# 克隆代码

git clone https://github.com/example/project.git

# 查看分支

git branch

# 切换分支

git checkout test

# 拉取最新代码

git pull

# 查看提交记录

git log --oneline

测试场景:

确认当前测试版本

对比两个版本差异

拉取自动化测试代码

配合 CI/CD 执行测试

8. Docker 基础 🐳

测试环境越来越多使用 Docker。

需要掌握:

镜像 image

容器 container

Dockerfile

docker run / ps / logs / exec

docker-compose

环境隔离

快速搭建 MySQL、Redis、Mock 服务

常用命令:

bash

复制代码

# 查看容器

docker ps

# 查看日志

docker logs -f container_name

# 进入容器

docker exec -it container_name bash

# 启动 docker-compose

docker compose up -d

9. CI/CD 基础 🚀

测试自动化要接入持续集成。

需要理解:

持续集成 CI

持续交付 CD

Pipeline 流水线

构建、测试、部署阶段

自动化测试报告

质量门禁

失败通知

常见工具:Jenkins、GitLab CI、GitHub Actions。

10. 日志与监控 📈

测试不仅要发现问题,还要能定位问题。

需要掌握:

应用日志

Nginx 日志

数据库日志

接口请求日志

链路追踪

Prometheus 指标

Grafana 监控面板

ELK 日志检索

十一、测试工具体系总览

分类

工具

主要用途

测试管理

禅道、Jira、TestRail、TAPD

需求、用例、Bug、测试计划、报告

接口测试

Postman、Apifox、Swagger、curl

API 调试、接口用例、Mock、自动化

Web 自动化

Selenium、Playwright、Cypress

浏览器 UI 自动化、E2E 测试

移动端自动化

Appium、Airtest

Android/iOS App 自动化

单元测试

JUnit、TestNG、pytest、NUnit、Jest

代码级测试

性能测试

JMeter、k6、Locust

负载、压力、并发、稳定性测试

安全测试

Burp Suite、OWASP ZAP、Nmap

Web 安全扫描、渗透测试辅助

抓包调试

Charles、Fiddler、Wireshark

请求抓包、代理、网络分析

Mock 工具

WireMock、MockServer、Apifox Mock

模拟接口返回

报告工具

Allure Report、ExtentReports

自动化测试报告

CI/CD

Jenkins、GitLab CI、GitHub Actions

自动执行测试和部署

数据库工具

DBeaver、DataGrip、Navicat、MySQL Workbench

数据库查询和验证

兼容性云测

BrowserStack、Sauce Labs

多设备、多浏览器云测试

代码质量

SonarQube

静态代码扫描、质量门禁

监控日志

Grafana、Prometheus、ELK

性能和日志分析

十二、重点测试工具详细讲解

1. Postman:接口测试核心工具 🔗

官方文档:https://learning.postman.com/

Postman 是接口测试最常用工具之一,适合接口调试、接口集合管理、环境变量、断言、自动化执行和 CI 集成。

适用场景

调试 HTTP API

管理接口集合 Collection

管理测试环境 Environment

编写接口断言 Test Script

做接口回归测试

生成接口文档

接入 CI/CD 执行接口测试

核心概念

概念

说明

Request

单个接口请求

Collection

一组接口请求集合

Environment

环境变量,如测试环境、预发环境

Variables

变量,如 token、baseUrl

Pre-request Script

请求前执行脚本

Tests

响应后执行断言

Runner

批量运行集合

Postman CLI

命令行执行集合,适合 CI/CD

常用断言示例

javascript

复制代码

pm.test("状态码应为 200", function () {

pm.response.to.have.status(200);

});

pm.test("返回 code 应为 0", function () {

const jsonData = pm.response.json();

pm.expect(jsonData.code).to.eql(0);

});

pm.test("响应时间小于 500ms", function () {

pm.expect(pm.response.responseTime).to.be.below(500);

});

学习重点

text

复制代码

1. 会发送 GET / POST / PUT / DELETE 请求

2. 会配置 Header、Body、Params

3. 会使用环境变量 baseUrl、token

4. 会写断言

5. 会提取接口返回值给下一个接口使用

6. 会批量运行 Collection

7. 会使用 Postman CLI 接入 CI/CD

优点

上手简单

生态成熟

适合接口调试和团队协作

支持自动化断言

支持命令行运行

局限

复杂测试框架能力不如代码灵活

大规模自动化维护成本较高

高级协作能力部分依赖商业版本

2. Apifox:接口文档、调试、Mock、测试一体化 🦊

官方文档:https://docs.apifox.com/help

Apifox 更适合团队统一管理 API,集接口文档、接口调试、Mock、自动化测试于一体。

适用场景

接口文档管理

接口调试

Mock 数据

接口自动化测试

团队协作

前后端联调

核心能力

能力

说明

API 文档

统一维护接口路径、参数、响应结构

API 调试

类似 Postman 发送请求

Mock

后端未完成时模拟接口返回

自动化测试

组织多个接口为测试场景

数据模型

统一维护 Schema

团队协作

多人维护同一套接口文档

学习重点

text

复制代码

1. 创建项目和接口

2. 定义请求参数和响应模型

3. 发送接口请求

4. 配置环境变量

5. 使用 Mock 服务

6. 创建测试场景

7. 导入/导出 OpenAPI/Swagger

3. Swagger / OpenAPI:接口规范与文档 📘

OpenAPI 官方规范:https://spec.openapis.org/oas/latest.html

Swagger 文档:https://swagger.io/docs/

OpenAPI 是描述 HTTP API 的标准规范,Swagger 是围绕 OpenAPI 的工具生态。

能做什么?

描述接口路径、方法、参数、响应

生成交互式接口文档

生成客户端 SDK

生成服务端代码骨架

支持接口契约测试

支持 Mock 和接口测试

测试人员为什么要懂?

原因

说明

看接口文档

理解接口入参、出参和状态码

做契约测试

判断接口是否符合规范

自动生成测试

基于规范生成接口测试用例

减少沟通成本

接口变更可直接从文档看出

4. JMeter:性能测试经典工具 ⚡

官网:https://jmeter.apache.org/

用户手册:https://jmeter.apache.org/usermanual/index.html

JMeter 是最常见的性能测试工具之一,适合接口压测、Web 服务压测、数据库压测等。

适用场景

HTTP/HTTPS 接口压测

REST API 压测

SOAP WebService 压测

数据库 JDBC 压测

并发登录测试

秒杀、抢购、下单测试

稳定性测试

核心组件

组件

说明

Test Plan

测试计划,所有组件的根节点

Thread Group

线程组,模拟并发用户

Sampler

采样器,发起请求,如 HTTP Request

Controller

控制器,控制请求执行逻辑

Listener

监听器,查看结果,如聚合报告

Assertion

断言,判断响应是否正确

Config Element

配置元件,如 Header、Cookie、CSV 数据

Timer

定时器,控制请求间隔

Pre/Post Processor

请求前后处理器

性能指标

指标

说明

响应时间

用户请求到返回的时间

TPS

每秒处理事务数

QPS

每秒请求数

吞吐量

单位时间处理数据量

错误率

请求失败比例

并发数

同时在线或同时请求的用户数

90/95/99 分位

大多数用户的响应时间表现

JMeter 学习重点

text

复制代码

1. 创建线程组

2. 添加 HTTP 请求

3. 配置 Header、Cookie、Token

4. 使用 CSV 参数化

5. 添加断言

6. 查看聚合报告

7. 设计阶梯压测场景

8. 命令行运行 JMeter

9. 分布式压测

10. 结合服务器监控分析瓶颈

命令行运行示例

bash

复制代码

jmeter -n -t test_plan.jmx -l result.jtl -e -o report

优点

免费开源

插件丰富

支持协议多

图形界面适合入门

社区资料多

局限

GUI 大压测不适合长期运行

脚本维护不如代码灵活

分布式压测配置需要经验

5. k6:现代性能测试工具 📈

官网:https://k6.io/

文档:https://grafana.com/docs/k6/latest/

k6 使用 JavaScript 编写性能测试脚本,适合开发和测试团队在 CI/CD 中做性能门禁。

示例脚本

javascript

复制代码

import http from 'k6/http';

import { check, sleep } from 'k6';

export const options = {

vus: 20,

duration: '30s',

thresholds: {

http_req_duration: ['p(95)<500'],

http_req_failed: ['rate<0.01'],

},

};

export default function () {

const res = http.get('https://test.example.com/api/products');

check(res, {

'状态码是 200': (r) => r.status === 200,

});

sleep(1);

}

适用场景

API 性能测试

CI/CD 性能门禁

云原生压测

脚本化压测

与 Grafana 监控结合

6. Locust:Python 性能测试工具 🐍

官网:https://locust.io/

文档:https://docs.locust.io/

Locust 使用 Python 写压测脚本,适合喜欢代码化、需要复杂业务流程的性能测试。

示例脚本

python

复制代码

from locust import HttpUser, task, between

class WebsiteUser(HttpUser):

wait_time = between(1, 3)

@task

def product_list(self):

self.client.get("/api/products")

优点

Python 编写,灵活

支持复杂业务流

支持分布式压测

Web UI 直观

7. Selenium:经典 Web 自动化工具 🌐

官网:https://www.selenium.dev/

WebDriver 文档:https://www.selenium.dev/documentation/webdriver/

Selenium 是浏览器自动化的经典工具,支持多语言、多浏览器、多平台。

适用场景

Web UI 自动化

回归测试

跨浏览器测试

老项目自动化维护

与 Selenium Grid 做分布式浏览器测试

核心概念

概念

说明

WebDriver

驱动浏览器的核心接口

Locator

元素定位方式,如 id、name、css、xpath

WebElement

页面元素对象

Wait

等待元素加载或状态变化

Grid

分布式运行测试

Python 示例

python

复制代码

from selenium import webdriver

from selenium.webdriver.common.by import By

browser = webdriver.Chrome()

browser.get("https://example.com/login")

browser.find_element(By.ID, "username").send_keys("admin")

browser.find_element(By.ID, "password").send_keys("123456")

browser.find_element(By.CSS_SELECTOR, "button[type='submit']").click()

优点

历史悠久,资料多

支持语言多

支持浏览器多

企业中应用广泛

局限

等待处理容易导致脚本不稳定

配置和维护成本相对高

对现代 Web 的某些体验不如 Playwright 简洁

8. Playwright:现代 Web 自动化工具 🎭

官网:https://playwright.dev/

写测试文档:https://playwright.dev/docs/writing-tests

Playwright 支持 Chromium、Firefox、WebKit,适合现代 Web E2E 测试。

适用场景

Web E2E 自动化测试

多浏览器测试

截图、视频、Trace 调试

自动等待元素可操作

CI/CD 自动化回归

示例

javascript

复制代码

import { test, expect } from '@playwright/test';

test('用户可以登录系统', async ({ page }) => {

await page.goto('https://example.com/login');

await page.getByLabel('用户名').fill('admin');

await page.getByLabel('密码').fill('123456');

await page.getByRole('button', { name: '登录' }).click();

await expect(page).toHaveURL(/dashboard/);

});

学习重点

text

复制代码

1. 安装和初始化

2. 页面跳转 page.goto

3. 元素定位 locator

4. 点击、输入、选择

5. expect 断言

6. 截图、视频、Trace

7. 多浏览器运行

8. Page Object Model

9. 登录态复用

10. CI/CD 集成

9. Cypress:Web E2E 与组件测试工具 🧪

官网:https://www.cypress.io/

文档:https://docs.cypress.io/app/get-started/why-cypress

Cypress 常用于现代 Web 应用测试,提供可视化运行界面和良好的调试体验。

优点

调试体验好

可视化运行过程

适合 E2E 和组件测试

断言语法清晰

局限

跨浏览器和多标签页场景限制较多

与 Playwright 相比,某些复杂浏览器能力较弱

10. Appium:移动端自动化工具 📱

官网文档:https://appium.io/docs/en/

Appium 用于 Android、iOS、桌面、浏览器等多平台 UI 自动化。

适用场景

Android App 自动化测试

iOS App 自动化测试

H5 混合 App 测试

多设备自动化回归

核心概念

概念

说明

Appium Server

自动化服务端

Client

Java/Python/JS 测试代码

Driver

Android/iOS 自动化驱动

Capability

设备、App、系统配置

Inspector

查看元素层级和定位信息

学习重点

text

复制代码

1. Android SDK / Xcode 环境

2. Appium Server 安装

3. 设备连接与调试

4. 元素定位

5. 点击、输入、滑动

6. Toast、弹窗、权限处理

7. 真机与模拟器测试

8. 多设备并发运行

11. pytest:Python 自动化测试框架 🐍

文档:https://docs.pytest.org/

pytest 是 Python 生态中非常常用的测试框架,适合接口自动化、单元测试、自动化框架封装。

示例

python

复制代码

import requests

def test_get_user():

res = requests.get("https://test.example.com/api/users/1")

assert res.status_code == 200

assert res.json()["code"] == 0

核心能力

assert 断言

fixture 前后置处理

参数化测试

插件机制

测试报告

与 Allure 集成

与 Jenkins / GitLab CI 集成

12. JUnit / TestNG:Java 测试框架 ☕

JUnit 官网:https://junit.org/

TestNG 文档:https://testng.org/

Java 技术栈中常用 JUnit 和 TestNG 做单元测试、接口自动化和集成测试。

JUnit 适合

Java 单元测试

Spring Boot 测试

开发自测

CI 中快速反馈

TestNG 适合

更复杂的测试组织

分组测试

依赖测试

参数化测试

自动化测试框架

13. Robot Framework:关键字驱动自动化 🤖

官网:https://robotframework.org/

用户指南:https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html

Robot Framework 是关键字驱动测试框架,适合验收测试、接口测试、UI 自动化和 RPA。

特点

语法接近自然语言

适合非纯代码人员参与

关键字复用性强

支持 Web、API、数据库、文件等扩展库

14. Burp Suite:Web 安全测试工具 🔐

官网:https://portswigger.net/burp

Burp Suite 是 Web 安全测试中非常重要的工具,常用于抓包、修改请求、漏洞验证、扫描。

核心模块

模块

说明

Proxy

代理抓包,拦截请求和响应

Repeater

手工重复发送和修改请求

Intruder

参数爆破、模糊测试

Scanner

自动漏洞扫描,专业版功能更强

Decoder

编码解码

Comparer

对比请求或响应差异

学习重点

text

复制代码

1. 配置浏览器代理

2. 安装 HTTPS 证书

3. 抓取请求

4. 修改参数重放

5. 测试越权

6. 测试 SQL 注入、XSS

7. 分析 Cookie、Token、Header

15. OWASP ZAP:开源安全测试工具 🕷️

官网:https://www.zaproxy.org/

快速入门:https://www.zaproxy.org/getting-started/

ZAP 是 OWASP 旗下开源 Web 安全测试工具,适合安全测试入门和自动化安全扫描。

适用场景

Web 安全扫描

API 安全测试

安全回归测试

CI/CD 中进行基础 DAST 扫描

16. Jira / 禅道 / TestRail:测试管理工具 📋

Jira:https://www.atlassian.com/software/jira

禅道:https://www.zentao.net/

TestRail:https://www.testrail.com/

主要用途

工具

适合场景

Jira

敏捷项目管理、Bug 跟踪、任务流转

禅道

国内团队常用,需求、任务、Bug、用例一体化

TestRail

专业测试用例管理、测试计划、测试执行、报告

测试管理核心能力

需求管理

测试用例管理

测试计划管理

测试执行记录

缺陷跟踪

报表统计

版本管理

权限管理

17. Allure Report:自动化测试报告工具 📊

官网:https://allurereport.org/

Allure Report 常用于自动化测试报告展示。

能展示什么?

测试通过率

失败用例

执行耗时

用例步骤

截图和日志

历史趋势

分类统计

flaky 不稳定用例

适合结合

pytest

JUnit

TestNG

Playwright

Selenium

Jenkins

GitLab CI

18. Jenkins / GitLab CI / GitHub Actions:持续集成 🚀

Jenkins:https://www.jenkins.io/

GitLab CI:https://docs.gitlab.com/ci/

GitHub Actions:https://docs.github.com/actions

测试在 CI/CD 中的作用

text

复制代码

提交代码 → 拉取代码 → 安装依赖 → 构建 → 单元测试 → 接口测试 → UI 自动化 → 生成报告 → 通知结果 → 部署

质量门禁示例

门禁

要求

单元测试

通过率 100%

接口测试

核心接口全部通过

覆盖率

不低于 80%

安全扫描

无高危漏洞

性能测试

95% 响应时间小于 500ms

十三、接口测试详细讲解

1. 接口测试流程

text

复制代码

阅读接口文档 → 设计测试点 → 准备测试数据 → 发送请求 → 校验响应 → 校验数据库 → 异常测试 → 自动化回归

2. 接口测试用例模板

字段

示例

用例编号

API_LOGIN_001

接口名称

用户登录

请求地址

/api/login

请求方式

POST

前置条件

用户已注册

请求参数

username、password

测试数据

admin / 123456

预期状态码

200

预期业务码

code = 0

预期结果

返回 token

数据库校验

登录日志写入成功

3. 接口测试重点场景

正常场景

参数正确

权限正确

数据存在

状态合法

异常场景

缺少必填参数

参数类型错误

参数超长

参数为空

参数格式错误

数据不存在

Token 过期

权限不足

重复提交

服务异常

安全场景

越权访问

SQL 注入

XSS 参数

重放攻击

敏感字段泄露

Header 伪造

4. 接口断言维度

维度

示例

HTTP 状态码

200、401、403、500

业务状态码

code = 0

响应字段

token、userId、orderId

字段类型

id 是 number,name 是 string

字段长度

手机号 11 位

响应时间

小于 500ms

数据库

订单状态是否变更

缓存

Redis 是否写入

消息队列

是否发送消息

十四、性能测试详细讲解

1. 性能测试核心指标

指标

说明

响应时间 RT

一次请求从发出到返回耗时

TPS

每秒完成事务数

QPS

每秒请求数

并发用户数

同时操作系统的用户数

吞吐量

单位时间处理的数据量

错误率

失败请求占比

CPU 使用率

服务器 CPU 压力

内存使用率

是否内存泄漏

磁盘 IO

是否磁盘读写瓶颈

网络 IO

带宽是否打满

数据库慢查询

SQL 是否拖慢系统

2. 性能测试类型

类型

目标

基准测试

建立当前系统性能基线

负载测试

验证预期压力下表现

压力测试

找系统极限

稳定性测试

长时间运行是否稳定

峰值测试

突发流量是否能抗住

容量测试

数据量增长后的性能表现

3. 性能测试流程

text

复制代码

明确目标 → 选择场景 → 准备数据 → 编写脚本 → 试运行 → 正式压测 → 监控资源 → 分析瓶颈 → 输出报告 → 优化复测

4. 性能测试报告关注

测试目标

测试环境

测试数据量

并发模型

响应时间统计

TPS / QPS

错误率

服务器资源

数据库表现

瓶颈分析

优化建议

5. 常见性能瓶颈

层级

问题

前端

静态资源过大、请求过多

网关

限流配置不合理

应用服务

线程池不足、代码同步阻塞

数据库

慢 SQL、索引缺失、锁等待

缓存

缓存穿透、击穿、雪崩

消息队列

消费速度低于生产速度

服务器

CPU、内存、磁盘、网络瓶颈

十五、安全测试详细讲解

1. 安全测试基础流程

text

复制代码

信息收集 → 认证测试 → 授权测试 → 输入验证测试 → 会话测试 → 文件上传测试 → 业务逻辑测试 → 漏洞验证 → 报告输出

2. 常见安全漏洞

SQL 注入

风险:攻击者通过输入特殊 SQL 修改查询逻辑。

测试输入:

text

复制代码

' OR '1'='1

' OR 1=1 --

admin' --

XSS

风险:恶意脚本在用户浏览器执行。

测试输入:

html

复制代码

越权访问

风险:用户访问不属于自己的数据。

示例:

text

复制代码

用户 A 订单:/api/orders/1001

用户 B 修改请求中的 orderId=1001

如果 B 能看到 A 的订单,就是越权漏洞。

文件上传漏洞

测试点:

是否限制文件类型

是否校验文件内容

是否限制文件大小

是否重命名文件

上传目录是否可执行脚本

是否能上传 php、jsp、exe、html

3. 安全测试工具

工具

用途

Burp Suite

抓包、重放、漏洞验证、渗透测试辅助

OWASP ZAP

开源 Web 安全扫描和代理测试

Nmap

端口扫描、服务识别

SQLMap

SQL 注入自动化检测

Wireshark

网络包分析

4. 安全测试学习参考

OWASP WSTG:https://owasp.org/www-project-web-security-testing-guide/

OWASP Top 10:https://owasp.org/www-project-top-ten/

OWASP MASTG:https://mas.owasp.org/MASTG/

十六、自动化测试详细讲解

1. 自动化测试分层

text

复制代码

UI / E2E 自动化

接口自动化 / 集成测试

单元测试 / 组件测试

建议:

单元测试数量最多

接口测试覆盖核心业务

UI 自动化只覆盖核心主流程

2. 自动化测试框架组成

模块

说明

用例层

测试用例脚本

业务层

封装业务操作

页面层

页面元素和操作封装

数据层

测试数据管理

配置层

环境地址、账号、数据库配置

工具层

日志、截图、请求、数据库工具

报告层

Allure、HTML 报告

CI 层

Jenkins、GitLab CI 自动执行

3. 自动化测试设计原则

原则

说明

稳定优先

不稳定脚本会降低团队信任

分层封装

降低维护成本

数据独立

每条用例尽量不互相依赖

断言明确

不只看页面没报错,要验证结果

可重复执行

本地和 CI 都能运行

日志清晰

失败时能快速定位

只自动化高价值场景

不追求 100% UI 自动化

4. 自动化测试适合场景

登录、注册、下单、支付等主流程

核心接口回归

数据驱动批量验证

多浏览器兼容回归

每日构建冒烟测试

上线前回归测试

5. 自动化测试不适合场景

需求频繁变化的功能

一次性活动页面

强视觉主观判断

需要人工判断体验的问题

环境极不稳定的系统

十七、移动端测试详细讲解

1. 移动端测试范围

类型

测试点

安装卸载

首次安装、覆盖安装、卸载重装

启动

冷启动、热启动、启动时间

功能

登录、业务流程、表单、支付

兼容性

不同品牌、系统版本、分辨率

网络

Wi-Fi、4G、5G、弱网、断网

权限

相机、相册、定位、通知、麦克风

中断

电话、短信、切后台、锁屏

性能

CPU、内存、电量、流量、卡顿

安全

本地存储、抓包、证书、越权

升级

版本升级、数据兼容

2. Android 测试重点

不同厂商系统差异

权限弹窗

后台保活

安装包兼容

WebView 差异

返回键逻辑

通知权限

3. iOS 测试重点

系统权限弹窗

刘海屏、灵动岛、安全区域

App Store 审核规则相关

后台切换

推送通知

Safari / WKWebView 差异

4. 移动端常用工具

工具

用途

Appium

移动端自动化

Android Studio

模拟器、日志、调试

Xcode

iOS 调试和模拟器

Charles

抓包

Fiddler

抓包

ADB

Android 设备调试

TestFlight

iOS 测试分发

Firebase Test Lab

云端设备测试

十八、测试文档模板

1. 测试用例模板

字段

示例

用例编号

TC_ORDER_001

模块

订单模块

用例标题

用户提交普通商品订单成功

前置条件

用户已登录,商品有库存

测试步骤

选择商品 → 提交订单 → 支付

测试数据

商品 ID、用户账号、地址

预期结果

订单创建成功,状态为待支付

实际结果

执行后填写

优先级

P0

执行状态

通过 / 失败 / 阻塞

备注

记录特殊说明

2. 测试计划模板

text

复制代码

1. 项目背景

2. 测试目标

3. 测试范围

4. 不测试范围

5. 测试类型

6. 测试环境

7. 测试数据

8. 人员分工

9. 时间计划

10. 准入标准

11. 准出标准

12. 风险与应对

3. 测试报告模板

text

复制代码

1. 测试版本

2. 测试时间

3. 测试人员

4. 测试范围

5. 用例执行统计

6. 缺陷统计

7. 遗留问题

8. 风险说明

9. 测试结论

10. 上线建议

十九、项目实战:电商系统测试方案

1. 系统模块

text

复制代码

用户模块

商品模块

购物车模块

订单模块

支付模块

优惠券模块

库存模块

物流模块

退款模块

后台管理模块

2. 用户模块测试点

功能

测试点

注册

手机号、验证码、密码规则、协议勾选

登录

账号密码、验证码、Token、错误次数限制

修改资料

昵称、头像、手机号、邮箱

地址管理

新增、编辑、删除、默认地址

权限

普通用户、会员、管理员

3. 商品模块测试点

功能

测试点

商品列表

分类、筛选、排序、分页

商品详情

图片、价格、库存、规格

搜索

关键词、空搜索、特殊字符

上下架

下架商品是否不可购买

库存

库存为 0 是否禁止下单

4. 购物车测试点

场景

测试点

加入购物车

单规格、多规格、重复添加

修改数量

加、减、超库存、最小值

删除商品

单个删除、批量删除

勾选商品

全选、反选、部分选择

价格计算

商品金额、优惠金额、合计金额

5. 订单模块测试点

场景

测试点

提交订单

地址、商品、库存、优惠券

订单状态

待支付、已支付、已发货、已完成、已取消

取消订单

未支付订单取消后库存恢复

超时关闭

超时未支付自动取消

并发下单

库存不能超卖

6. 支付模块测试点

场景

测试点

支付成功

订单变为已支付

支付失败

订单保持待支付或失败状态

重复支付

防止重复扣款

支付回调

回调幂等处理

金额校验

前端金额不能篡改

7. 性能测试场景

场景

目标

首页访问

验证高峰访问能力

商品详情

验证热点商品访问

提交订单

验证并发下单能力

支付回调

验证回调处理能力

秒杀抢购

验证库存扣减和限流

8. 安全测试场景

场景

风险

修改订单金额

低价购买

修改 userId

越权查看订单

重放支付回调

重复修改订单状态

暴力破解登录

账号安全风险

上传头像

文件上传漏洞

二十、学习路线规划

阶段 1:测试基础,1-2 周 🧱

学习内容:

text

复制代码

软件测试概念

STLC 测试流程

测试用例设计

Bug 管理

功能测试

冒烟测试

回归测试

兼容性测试

练习:

text

复制代码

测试登录注册页面

测试商品列表页面

测试表单提交功能

测试文件上传功能

阶段 2:接口测试,2-4 周 🔗

学习内容:

text

复制代码

HTTP 协议

状态码

JSON

Cookie / Session / Token

Postman / Apifox

接口断言

接口测试用例

SQL 数据校验

练习:

text

复制代码

测试登录接口

测试新增/编辑/删除接口

测试分页接口

测试 Token 过期

测试权限接口

阶段 3:数据库、Linux、日志,2-4 周 🐧

学习内容:

text

复制代码

SQL 查询

多表 JOIN

Linux 常用命令

日志查看

Nginx 基础

Redis 基础

练习:

text

复制代码

通过数据库验证订单状态

通过日志定位接口报错

通过 Linux 查看服务状态

阶段 4:自动化测试,1-2 个月 🤖

学习内容:

text

复制代码

Python 或 Java

pytest / JUnit / TestNG

Selenium / Playwright

接口自动化框架

数据驱动

Allure 报告

CI/CD 集成

练习:

text

复制代码

写登录接口自动化

写订单接口自动化

写 Web 登录自动化

生成 Allure 测试报告

接入 Jenkins 自动运行

阶段 5:性能测试,1 个月 ⚡

学习内容:

text

复制代码

JMeter

k6

性能指标

线程组

参数化

断言

监控

瓶颈分析

练习:

text

复制代码

压测登录接口

压测商品列表接口

压测下单接口

分析 TPS、响应时间、错误率

阶段 6:安全测试基础,1 个月 🔐

学习内容:

text

复制代码

OWASP Top 10

Burp Suite

OWASP ZAP

SQL 注入

XSS

CSRF

越权

文件上传漏洞

练习:

text

复制代码

抓包修改参数

测试越权访问

测试 XSS 输入

测试文件上传限制

阶段 7:测试开发进阶,长期 🚀

学习内容:

text

复制代码

自动化测试框架封装

测试平台开发

Mock 平台

质量看板

Docker

Kubernetes

持续测试

质量门禁

目标岗位:

text

复制代码

高级测试工程师

自动化测试工程师

性能测试工程师

安全测试工程师

测试开发工程师

SDET

质量工程师

二十一、面试题与参考答案

1. 软件测试的目的是什么?

答:软件测试的目的是发现缺陷、验证需求、降低上线风险、提升软件质量,并为是否上线提供质量依据。测试不能证明软件完全没有 Bug,只能在有限资源下尽可能发现问题并评估风险。

2. 测试用例包含哪些内容?

答:测试用例通常包含用例编号、模块、标题、前置条件、测试步骤、测试数据、预期结果、实际结果、优先级、执行状态、备注等。

3. 冒烟测试和回归测试有什么区别?

答:冒烟测试用于快速判断版本是否具备进一步测试条件;回归测试用于验证修改后旧功能是否受影响。

4. 黑盒测试和白盒测试有什么区别?

答:黑盒测试不关注代码内部实现,只验证输入和输出;白盒测试关注代码结构、分支、路径和内部逻辑。

5. 你如何设计登录功能测试用例?

答:从正常登录、错误账号、错误密码、空值、验证码、账号禁用、多次失败锁定、Token 过期、退出登录、权限跳转、安全风险、兼容性等方面设计。

6. Bug 的严重程度和优先级有什么区别?

答:严重程度表示 Bug 对系统影响有多大,优先级表示 Bug 应该多快修复。严重程度高的 Bug 通常优先级也高,但也有例外。

7. 接口测试主要测什么?

答:接口测试主要验证请求方法、参数校验、状态码、返回结构、业务逻辑、权限鉴权、异常处理、性能、安全和数据一致性。

8. 接口自动化怎么做?

答:先整理接口文档,设计测试用例,然后使用 Postman、pytest、requests、RestAssured 等工具编写脚本,加入参数化、断言、测试数据管理和报告,最后接入 CI/CD 自动执行。

9. 性能测试关注哪些指标?

答:响应时间、TPS、QPS、并发数、吞吐量、错误率、CPU、内存、磁盘 IO、网络 IO、数据库慢查询、95/99 分位响应时间等。

10. 什么是压力测试和负载测试?

答:负载测试是在预期负载下验证系统是否稳定;压力测试是不断增加压力,找出系统极限和崩溃点。

11. 什么是 SQL 注入?如何测试?

答:SQL 注入是攻击者通过输入恶意 SQL 改变查询逻辑。可以输入 ' OR 1=1 -- 等特殊字符串,观察是否绕过登录或导致数据库异常。

12. 什么是越权测试?

答:越权测试验证用户是否能访问或操作不属于自己的资源。例如用户 B 修改订单 ID 访问用户 A 的订单,如果能访问就是越权漏洞。

13. 自动化测试适合哪些场景?

答:适合稳定、高频、重复、核心流程、数据驱动、回归测试场景。不适合频繁变化、一次性需求、强主观判断的场景。

14. 如何提高自动化测试稳定性?

答:使用显式等待、稳定定位方式、合理封装、测试数据隔离、环境稳定、失败截图和日志、减少用例间依赖、避免固定 sleep。

15. JMeter 线程组是什么?

答:线程组用于模拟虚拟用户,控制并发用户数、启动时间、循环次数等,是 JMeter 性能测试的核心组件。

16. 如何判断一个版本是否可以上线?

答:要看核心用例是否通过,P0/P1 Bug 是否清零,遗留问题是否可接受,性能和安全是否达标,业务方是否验收通过,测试报告是否给出明确结论。

17. 什么是测试准入和准出?

答:准入是进入测试前必须满足的条件,例如需求明确、版本部署成功、开发自测通过;准出是测试结束或上线前必须满足的条件,例如核心用例通过、严重 Bug 清零。

18. 如何测试文件上传?

答:测试文件格式、大小、文件名、中文名、特殊字符、重复上传、非法格式、空文件、大文件、上传中断、预览、删除、安全限制等。

19. 如何测试分页?

答:测试第一页、最后一页、中间页、无数据、每页条数、跳页、排序后分页、搜索后分页、删除最后一条后的分页表现。

20. 如何测试搜索功能?

答:测试精确搜索、模糊搜索、空搜索、特殊字符、大小写、空格、超长关键词、无结果、多条件组合、搜索后分页和排序。

21. 如何做兼容性测试?

答:根据用户设备占比和业务场景,选择主流浏览器、操作系统、手机品牌、分辨率和网络环境,覆盖核心功能和高风险页面。

22. 如何定位一个接口 500 错误?

答:先确认请求参数、Header、Token、环境和接口地址是否正确,再查看后端日志、数据库日志、异常堆栈,必要时和开发确认代码逻辑。

23. 什么是幂等性?怎么测试?

答:幂等性指同一请求执行多次结果一致,不应产生重复副作用。比如支付回调重复发送,不应重复扣款或重复发货。

24. 如何设计订单系统测试?

答:从用户、商品、购物车、订单、支付、库存、优惠券、物流、退款、权限、性能、安全、并发、数据一致性等方面设计。

25. 你常用哪些测试工具?

答:测试管理可用禅道/Jira/TestRail,接口测试可用 Postman/Apifox,性能测试可用 JMeter/k6,自动化可用 Selenium/Playwright/pytest/JUnit,安全测试可用 Burp Suite/OWASP ZAP,报告可用 Allure,CI/CD 可用 Jenkins/GitLab CI/GitHub Actions。

二十二、官方资源与文档链接

下面所有链接均显示完整 URL,并使用 Markdown 链接格式,点击即可跳转。

1. 测试理论与标准

资源

链接

ISTQB 官方认证体系

https://istqb.org/

ISTQB CTFL Foundation Level

https://istqb.org/certifications/certified-tester-foundation-level-ctfl-v4-0/

ISO/IEC/IEEE 29119 软件测试标准

https://www.iso.org/standard/81291.html

ISO/IEC/IEEE 29119 介绍站点

https://softwaretestingstandard.org/

2. 接口测试与 API 文档

资源

链接

Postman 官方文档

https://learning.postman.com/

Postman CLI 文档

https://learning.postman.com/docs/postman-cli/postman-cli-run-collection/

Apifox 帮助文档

https://docs.apifox.com/help

OpenAPI Specification

https://spec.openapis.org/oas/latest.html

Swagger 官方文档

https://swagger.io/docs/

curl 官方站点

https://curl.se/

3. Web 自动化测试

资源

链接

Selenium 官网

https://www.selenium.dev/

Selenium WebDriver 文档

https://www.selenium.dev/documentation/webdriver/

Playwright 官网

https://playwright.dev/

Playwright 写测试文档

https://playwright.dev/docs/writing-tests

Cypress 官网

https://www.cypress.io/

Cypress 官方文档

https://docs.cypress.io/

4. 移动端自动化测试

资源

链接

Appium 官方文档

https://appium.io/docs/en/

Android Debug Bridge ADB

https://developer.android.com/tools/adb

Android Studio

https://developer.android.com/studio

Xcode

https://developer.apple.com/xcode/

TestFlight

https://developer.apple.com/testflight/

5. 单元测试与测试框架

资源

链接

pytest 文档

https://docs.pytest.org/

JUnit 官网

https://junit.org/

TestNG 文档

https://testng.org/

Robot Framework 官网

https://robotframework.org/

Robot Framework 用户指南

https://robotframework.org/robotframework/latest/RobotFrameworkUserGuide.html

Cucumber BDD 文档

https://cucumber.io/docs/bdd/

6. 性能测试

资源

链接

Apache JMeter 官网

https://jmeter.apache.org/

JMeter 用户手册

https://jmeter.apache.org/usermanual/index.html

k6 官网

https://k6.io/

k6 官方文档

https://grafana.com/docs/k6/latest/

Locust 官网

https://locust.io/

Locust 文档

https://docs.locust.io/

7. 安全测试

资源

链接

OWASP WSTG Web 安全测试指南

https://owasp.org/www-project-web-security-testing-guide/

OWASP Top 10

https://owasp.org/www-project-top-ten/

OWASP MASTG 移动安全测试指南

https://mas.owasp.org/MASTG/

OWASP ZAP 官网

https://www.zaproxy.org/

OWASP ZAP 快速入门

https://www.zaproxy.org/getting-started/

Burp Suite 官网

https://portswigger.net/burp

PortSwigger Web Security Academy

https://portswigger.net/web-security

8. 测试管理与缺陷管理

资源

链接

Jira 官网

https://www.atlassian.com/software/jira

Jira Bug Tracking

https://www.atlassian.com/software/jira/features/bug-tracking

禅道官网

https://www.zentao.net/

TestRail 官网

https://www.testrail.com/

TestRail 介绍文档

https://support.testrail.com/hc/en-us/articles/7076810203028-Introduction-to-TestRail

9. 测试报告与 CI/CD

资源

链接

Allure Report 官网

https://allurereport.org/

Jenkins 官网

https://www.jenkins.io/

GitLab CI/CD 文档

https://docs.gitlab.com/ci/

GitHub Actions 文档

https://docs.github.com/actions

10. 数据库、日志、监控与辅助工具

资源

链接

DBeaver 官网

https://dbeaver.io/

MySQL 文档

https://dev.mysql.com/doc/

PostgreSQL 文档

https://www.postgresql.org/docs/

Redis 文档

https://redis.io/docs/latest/

Grafana 文档

https://grafana.com/docs/

Prometheus 文档

https://prometheus.io/docs/introduction/overview/

Elastic 文档

https://www.elastic.co/docs

Wireshark 官网

https://www.wireshark.org/

Charles 官网

https://www.charlesproxy.com/

Fiddler 官网

https://www.telerik.com/fiddler

总结 🎯

软件测试是一套完整的质量保障体系,不只是功能点验证。完整的软件测试能力应包括:

text

复制代码

测试理论 + 需求分析 + 用例设计 + Bug 管理

接口测试 + 数据库 + Linux + 日志分析

自动化测试 + 性能测试 + 安全测试

测试管理工具 + CI/CD + 测试报告 + 质量门禁

建议学习顺序:

text

复制代码

测试基础 → 测试用例 → Bug 管理 → 接口测试 → SQL/Linux → 自动化测试 → 性能测试 → 安全测试 → CI/CD → 测试开发

如果目标是就业,优先掌握:

text

复制代码

功能测试 + 接口测试 + SQL + Linux + Postman/Apifox + JMeter + Selenium/Playwright + pytest/JUnit + Jenkins

如果目标是高薪方向,继续深入:

text

复制代码

自动化框架设计 + 性能瓶颈分析 + 安全测试 + 测试平台开发 + DevOps 质量工程


2019篮球世界杯完整赛程表 2019篮球世界杯怎么看直播?
如何删除电脑桌面上的空白文件 删除电脑桌面上的无效文件方法