软件测试入门到进阶学习大纲

测试基础

实体/软件测试6维度:外观界面、功能、性能、安全性、易用性、兼容性。
项目核心角色:用户(提需求)、产品(转需求文档)、开发(编码)、测试(验证)、项目经理(统筹)。
项目流程:用户提需求→产品输出《软件需求规格说明书》→三方评审需求→开发编码、测试设计用例并执行→上线。
需求评审6维度:正确性(无偏离原始需求)、明确性(无歧义)、完整性(全覆盖)、限制性(清晰边界)、优先级(标识明确)、一致性(前后无矛盾)。

注:50%+缺陷源于需求问题,疑问需第一时间与产品确认。


软件测试基本概念

核心定义

  • 软件质量:符合需求、满足用户需求的程度。
  • 软件测试:需求评审→用例设计执行→问题单闭环的动态过程。
  • Bug:实际结果与预期不符,或影响用户体验的问题。
  • 80/20原则:80% Bug集中在20%复杂模块,易错模块修复后仍易出问题。
    测试分类
    | 分类方式 | 类型 | 说明 |
    |———-|——|——|
    | 按原理 | 黑盒测试 | 不关注代码,验证外部功能,适用于系统/验收测试 |
    | | 白盒测试 | 不关注功能,验证代码结构/逻辑,适用于单元/集成测试 |
    | 按阶段 | 单元测试 | 开发人员测最小代码单元,白盒 |
    | | 集成测试 | 测模块组装后的接口协作,早期白盒后期黑盒 |
    | | 系统测试 | 测试人员全量测6维度,黑盒 |
    | | 验收测试 | 用户验证需求符合度,通过后上线 |
    初级测试定位:功能测试(系统测试阶段,黑盒),负责简单模块的功能、外观、易用性、兼容性测试;性能、安全测试由专项人员负责。

测试计划

核心内容

  1. 测试范围:明确覆盖/不覆盖的需求。
  2. 测试环境:软硬件配置(OS、浏览器、服务器配置等)。
  3. 测试策略:依据(需求/用例)、准入(冒烟测试通过)、工具(禅道/Selenium等)、重点(优先级模块,以手工黑盒为主)、准出(无严重Bug、遗留问题不影响使用)。
  4. 测试管理:任务分配、进度安排、沟通方式。
  5. 风险应对:需求不清(评审沟通)、时间不足(优化效率/加班/申请协助)、执行不到位(杜绝侥幸,及时反馈)。

冒烟测试筛选核心用例,比例为总用例数1/15~1/7,由资深测试人员筛选。


测试用例设计

核心9要素:测试序号、模块、前置条件、环境、操作步骤/数据、预期结果、实际结果、是否通过、备注。
5大设计方法

方法 适用场景 核心逻辑
等价类划分 单个输入框 有效等价类(符合需求)、无效等价类(不符合需求)各取1个代表值
边界值分析 输入为范围/有序集合 取边界值、略高/略低于边界的值(程序易在边界出错)
错误推测 补充遗漏 基于经验测空格、超长字符串、特殊字符等易错场景
正交表分析 多输入框组合 筛选典型组合,减少用例量,提升覆盖率
因果判定 多按钮逻辑关联 梳理条件(因)与结果(果)对应关系,用判定表设计用例
常见模块思路
  • 注册/登录:先正交表组合,再对每个输入框用等价类、边界值、错误推测补充。
  • 搜索:覆盖正常(模糊/精确匹配)、异常(空输入、特殊字符)、快捷键。
  • 附件上传:覆盖有效文件(格式/大小/数量合规)、无效文件(格式不支持/超限)、边界(0KB/1GB单文件)、异常(网络中断/文件被占用)。
    用例评审维度:依据需求、步骤/数据清晰、预期结果明确、无冗余、全覆盖。需求变更/新场景发现时需及时更新用例。

测试执行

Bug核心组成:摘要、重现步骤、测试数据、环境、版本、优先级、附件(截图/日志)。
Bug处理流程:测试提交(状态:激活)→开发修复(状态:已解决)→测试回归验证→通过则关闭,未通过则重新激活。
Bug争议处理:对事不对人→补充依据→平和沟通→沟通无果上报测试经理,三方评审决策。
回归测试策略

场景 策略
首轮Bug多 全量回归(验证修复Bug+执行全部用例)
Bug中等 部分回归(验证修复Bug+覆盖重要/高频/关联功能)
Bug少 关键回归(验证修复Bug+执行核心用例)
功能稳定 精准回归(仅测试Bug所在功能点)

测试报告

核心组成:测试过程(人员/时间/版本)、环境、范围、结果(用例通过率、Bug分布)、系统风险(遗留Bug影响及应对)、结论(是否具备上线条件)、附件(用例/Bug清单)。
测试结束标准:完成测试计划所有内容、用例100%执行且通过率达要求、所有Bug关闭、回归测试无影响上线的缺陷、个人报告提交完成。
完整测试流程:需求评审→测试计划制定→用例设计→用例评审→环境搭建→测试执行(提交Bug、回归测试)→撰写测试报告。


Linux基础

高频命令

命令 作用
cd/pwd/ls 切换目录/显示当前路径/列出目录内容
cp/rm 复制/删除文件或目录
cat/grep/tail 查看文件内容/文本过滤/实时追踪日志
find/ps/kill 文件查找/进程查看/终止进程
systemctl/netstat 服务管理/端口查看
环境搭建:掌握MySQL、Tomcat等基础服务部署,熟悉日志分析(grep筛选+tail -f监控)。

MySQL基础

核心SQL

  • 增:INSERT INTO 表名 (列) VALUES (值)
  • 查:SELECT 列 FROM 表名 WHERE 条件 ORDER BY 列 ASC/DESC
  • 改:UPDATE 表名 SET 列=值 WHERE 条件(无WHERE更新全表,慎用)
  • 删:DELETE FROM 表名 WHERE 条件(无WHERE清空全表,生产环境谨慎)
    多表查询
  • 内连接:返回两表匹配条件的行。
  • 左外连接:返回左表所有行,右表无匹配则补NULL。
  • 右外连接:返回右表所有行,左表无匹配则补NULL。
    索引:类似图书目录,加速查询;缺点是占用磁盘空间,降低增删改效率。
    测试场景:验证前后台数据一致性、构造/修改测试数据、定位问题根因。

Web自动化测试

核心栈:HTML基础→XPath定位→Python面向对象→pytest框架→Selenium工具→POM设计模式→数据驱动。
XPath定位:通过浏览器「检查→Copy XPath」获取,id唯一时定位精度最高。
Selenium核心操作:启动浏览器→最大化窗口→打开网页→显式等待定位元素→执行输入/点击等操作(优先显式等待,避免固定sleep)。
POM设计模式:将每个页面封装为类,元素为类属性,操作为类方法,实现代码模块化、易维护。
pytest核心:自动发现test_开头的用例、@pytest.mark.parametrize实现参数化(数据驱动)、assert断言结果。


HTTP接口测试

核心概念

  • HTTP接口:协议+服务器地址+资源路径,本质是参数传递。
  • 参数传递:URL拼接(GET,明文,有长度限制)、请求正文(POST,JSON格式,更安全)。
  • 状态码:2xx成功、3xx重定向、4xx客户端错误、5xx服务器错误。
  • JSON格式:键值对用:,键和字符串值双引号,整体用{}包裹。
    接口测试vs Web功能测试:接口测试直接测服务端,是功能测试前置,依据接口文档,侧重逻辑正确性;Web测试测前端页面,依据需求文档,侧重业务流程和用户体验。
    抓包工具Charles:原理为代理服务器,需安装根证书解密HTTPS流量;前端输入与抓包参数不一致→前端问题;一致但服务端返回错误→后端问题。

Python接口自动化

核心工具:Requests(发送请求,Session自动维护Cookies实现会话保持)、loguru(日志管理)、pytest(用例执行与报告)。
Fixture@pytest.fixture装饰函数,scope=’module’(整个文件执行一次)、scope=’function’(每个函数执行一次),实现动态参数共享。
框架分层:common(公共方法)、config(配置)、log(日志)、report(报告)、testcase(用例)、utils(工具类)。


AI与测试

NLP在测试中应用:自动生成测试用例、自动生成自动化脚本(需人工校验)。
AI不会替代测试人员:复杂场景处理、创造性思维、伦理判断、跨团队沟通、学习适应能力仍依赖人类;未来趋势为AI协同提升效率。


求职要点

简历:突出项目贡献、技术专长,项目时间连贯,自我评价可验证。
高频考点

  • 功能测试:需求评审6维度、测试流程、Bug全生命周期、上线标准。
  • 专业技能:Linux命令、SQL查询、Selenium原理/POM优势、接口测试流程、Charles抓包定位问题。
  • 发散性题目:按6维度(功能/性能/安全/兼容/易用性/界面)迁移通用逻辑。
    面试技巧:缓冲思考→前置说明→核心内容→总结致谢,紧张可申请重新组织语言,正视失败积累经验。

上一篇
下一篇