软件测试工程师学习路线

软件生命周期(SDLC)

定义:软件从立项到下线全流程的阶段管控框架。

阶段流:需求→设计→编码→测试→发布→运维→退役

核心价值:明确分工与节点,降低返工成本,避免无设计、无测试导致的线上事故。

易混区分

  • SDLC vs 测试生命周期:前者管全流程,后者仅覆盖测试段(计划→执行→报告→收尾)。
  • SDLC vs 瀑布/敏捷:前者是阶段清单,后者是执行模式。
  • SDLC vs DevOps:后者是开发运维协同机制,不替代生命周期。

    阶段矩阵

    | 阶段 | 负责人 | 产出物 | 常见坑 |

    |——|——–|——–|——–|

    | 需求 | 产品+测试 | 需求说明书 | 口头需求漏场景 |

    | 设计 | 架构+测试 | 设计文档 | 接口不兼容 |

    | 编码 | 开发 | 代码/单测报告 | 自测走过场 |

    | 测试 | 测试 | 用例/缺陷报告 | 覆盖不足 |

    | 发布 | 运维+测试 | 发布清单 | 全量发布无回滚 |

    | 运维 | 运维+测试 | 运维报表/热修复 | 忽视旧功能回归 |

    | 退役 | 架构+数据 | 下线公告/迁移脚本 | 历史数据丢失 |

测试分类

定义:按代码可见性(黑白盒)和测试粒度(单元→集成→系统→验收)分层验证。

层级定位

单元测试(白盒,开发)→集成测试(混合,开发+QA)→系统测试(黑盒,QA)→验收测试(黑盒,业务)

核心价值:分层匹配人员与方法,平衡成本与覆盖率,最小化漏测。

易混区分

  • 黑盒≠功能测试:黑盒是方法,功能测试是类型。
  • 单元≠集成:单元测独立函数,集成测多组件协作。
  • 系统≠验收:系统测试由QA验证功能,验收测试由业务方确认可用性。

    黑白盒对比

    | 维度 | 黑盒 | 白盒 |

    |——|——|——|

    | 看代码 | 否 | 是 |

    | 关注点 | 功能/流程 | 分支/路径 |

    | 适用层 | 系统、验收 | 单元、集成 |

    阶段矩阵

    | 阶段 | 负责人 | 产出物 | 常见坑 |

    |——|——–|——–|——–|

    | 需求 | 产品+QA | 验收标准 | 需求模糊难写用例 |

    | 设计 | 架构+QA | 测试点清单 | 接口未定义就开测 |

    | 编码 | 开发 | 单测报告 | 仅覆盖正常流程 |

    | 测试 | QA/业务 | 缺陷单/UAT签认 | 遗漏边界/并发问题 |

    | 发布 | QA+运维 | 发布门禁记录 | 冒烟通过即误判无风险 |

测试用例设计方法

定义:筛选测试样本的规范,用最少用例覆盖最多缺陷。

定位:测试设计阶段核心输出,上游依赖需求文档,下游支撑测试执行。

核心价值:将随机测试转为结构化抽样,减少漏测与重复劳动。

核心方法

  • 等价类划分:输入域分类抽样(如手机号分合法/非法/空)。
  • 边界值分析:验证类别临界值(如密码长度0/1/10/11位)。
  • 场景法:覆盖多步骤操作路径(如下单→支付→退款)。

    易混区分
  • 等价类≠边界值:前者解决类内代表性,后者解决类间缝隙,需配合使用。
  • 决策表vs场景法:前者处理静态条件组合,后者处理动态流程流转。

    常见误区:等价类划分后无需单独设计边界值(大量缺陷集中在临界值)。

标准测试流程

定义:按需求逐条验证、缺陷闭环整改的标准化流水线。

流程定位

需求分析→编写用例→执行测试→提交Bug→回归测试→测试报告→上线

核心价值:防漏测、保质量、留依据,避免口头沟通遗漏问题。

关键区分

  • 测试用例vs测试计划:前者是检查清单,后者是日程安排。
  • 回归测试vs冒烟测试:前者是修复后复验,后者是初装快检。

    阶段矩阵

    | 阶段 | 负责人 | 产出物 | 常见坑 |

    |——|——–|——–|——–|

    | 需求 | 测试+产品 | 需求分析笔记 | 需求未吃透就开测 |

    | 设计 | 测试+UI/UX | 评审意见 | 重视觉轻体验 |

    | 编码 | 测试 | 测试用例 | 覆盖不全 |

    | 测试 | 测试 | Bug单/执行记录 | 漏测异常场景 |

    | 发布 | 测试 | 测试报告 | 结论模棱两可 |

测试用例与Bug管理

定义:测试用例是可执行验证清单,Bug管理是缺陷跟踪闭环流程。

流程定位

需求→测试点→用例库→执行→提Bug→回归→关闭

核心价值:避免凭感觉测试,实现缺陷可追溯、优先级可管控。

关键区分

  • 测试点vs用例:前者是验证点,后者是包含步骤/预期结果的完整说明。
  • 严重程度vs优先级:前者客观反映影响面,后者主观判定修复紧急度。

    提Bug标准:标题【模块】问题描述,附前置条件、步骤、预期/实际结果、截图/日志。

    常见误区:严重程度=优先级(如支付故障严重程度高,首屏错别字优先级高)。

Web基础结构

定义:浏览器-服务器交互核心组件:URL(资源地址)、HTTP/HTTPS(通信规则)、前端(界面)、后端(逻辑)。

定位:所有Web测试的地基,上游接需求/接口文档,下游支撑功能/接口/性能/安全测试。

核心价值:区分前后端问题,避免Bug描述模糊。

排查逻辑

  1. 请求未发出→前端问题
  2. 请求5xx→后端问题
  3. 请求正常但页面不显示→前端问题

    易混区分
  • HTTP vs HTTPS:前者明文80端口,后者加密443端口需证书。
  • 前端vs后端:前者负责渲染交互,后者负责数据计算。

MySQL测试基本功

定义:通过增删改查与表关联,直连数据库验证数据落库正确性。

定位:测试手段,支撑功能/接口/数据一致性测试,上游接需求文档,下游支撑缺陷定位。

核心价值:避免“页面成功但数据未落库”的盲区,数据库是业务真相的最终落点。

实操要点

  • 带业务条件精准查询(如status=1 AND create_time=TODAY)。
  • 区分源表与冗余表,避免误判数据错误。

    常见误区:会SELECT *即掌握(需关注业务语义、关联表校验、软删除标识)。

接口测试

定义:不操作页面,直接发送请求验证后台响应正确性。

定位:接口开发完成后、UI完成前介入,性价比最高;上游接接口文档,下游支撑UI自动化/性能测试。

核心价值:不依赖页面、早期发现缺陷、回归成本低、定位快。

实操要点

  • 验证HTTP状态码+业务码(如{"code":0}),非仅200即判定成功。
  • 覆盖异常场景(空值、超长、特殊字符)。

    易混区分
  • 接口测试vsUI测试:前者验证逻辑层,后者验证展示层。
  • REST APIvs非REST:前者资源导向(/users/1),后者动作导向(/getUserById)。

Linux日志排查

核心命令ls(定位目录)、tail -F(实时跟踪日志,切割后仍有效)、grep -C 3(筛选关键词及上下文)。

定位:线上运行时排查,衔接测试执行与缺陷反馈。

核心价值:秒级定位报错,避免大日志卡死、实时问题滞后。

常见坑tail -f在日志切割后断开,需用tail -F;登错机器/容器查看旧日志。


Python/Java基础

定位:编码阶段核心能力,上游接需求/设计,下游交付代码供测试验证。

核心价值:语法是基础,函数封装重复操作,面向对象模块化组织代码,常用库提升效率。

Python vs Java

对比点 Python Java
语法 简洁 严谨冗长
上手 快,适脚本 慢,适大型项目
OOP 可选 强制
领域 测试/数据分析 Web后端/企业系统

Selenium(UI自动化)

定义:控制浏览器执行UI操作的自动化工具,核心是WebDriver。

定位:UI自动化测试层,承接开发代码,用于回归/冒烟测试,可接入CI/CD。

核心价值:解决人工回归耗时、易疏漏问题,支持跨浏览器兼容。

局限:仅验证UI表现,业务逻辑正确性需结合接口/数据库/日志判断。

易混区分:Selenium(Web自动化)vs Appium(移动端自动化)。


接口自动化

定义:用脚本自动发请求、校验结果、生成报告,替代手工Postman操作。

定位:接口可用、前端未完成阶段介入,上游接接口文档,下游支撑回归/线上监控。

核心价值:防漏测、省人力、早预警,比UI自动化更快更稳定。

四要素:精准断言、数据准备/清理、可重复执行、接入CI。

对比UI自动化:速度快、稳定性高、维护成本低。


持续集成(CI)

定义:代码提交后自动拉取、编译、跑测试、打包的流水线,核心工具Jenkins/GitLab CI。

定位:编码完成后、测试启动前的自动门禁,上游接代码仓库,下游支撑测试/发布。

核心价值:将问题发现从测试阶段提前到提交瞬间,避免集成冲突、回归遗漏。

易混区分

  • CI vs CD:前者自动集成验证,后者自动部署。
  • Jenkins vs GitLab CI:前者插件丰富适老项目,后者配置简单适GitLab生态。

    最小流程:代码push→触发CI→编译→跑测试→通知结果。

测试开发/质量管理

定义:从“找Bug”升级为全流程质量管控,搭框架、定规范、控节奏。

核心价值:事前防缺陷,而非事后救火;支撑性能/安全/流程优化,掌握质量话语权。

关键区分

  • 测试开发vs自动化测试:前者包含后者,更侧重体系建设。
  • 质量管理vs项目管理:前者管质量,后者管交付进度。

    核心工作:需求阶段评审可测性、设计阶段明确质量标准、编码阶段推动单测/扫描、测试阶段执行自动化/性能/安全测试、发布阶段灰度验证与监控。

    质量指标:接口覆盖率≥85%、主干构建成功率≥98%、P99响应时间≤300ms、线上严重缺陷≤1、安全漏洞0。

上一篇
下一篇