软件测试基础

张开发
2026/4/12 8:32:24 15 分钟阅读

分享文章

软件测试基础
一、软件测试核心知识点一回归测试 1.基本定位回归测试是在软件发生变更缺陷修复、功能新增 / 删除 / 修改、配置调整后重新执行测试用例以确认1原有的缺陷已被正确修复2变更没有引入新的缺陷3未修改的功能依然正常运行2.两种测试策略1选择性回归测试只执行与本次修改直接相关的测试用例优点是速度快、成本低缺点是覆盖不全可能会遗漏间接影响的问题。2完全回归测试执行全部的历史测试用例优点是覆盖全面、保障整体质量缺点是耗时久成本高且人工难以完成。3与自动化测试之间的关系就是回归测试是自动化测试最核心、最典型的应用场景原因就是人工在重复工作上效率低易出错。二接口测试 1.基本定位接口测试属于集成测试阶段的核心工作重点验证模块与模块、系统与系统之间的交互是否正常。2.测试对象函数与函数之间的调用接口前端与后端的 API 接口服务与服务之间的接口HTTP/HTTPS、Dubbo、gRPC 等数据库与应用之间的数据接口3.测试方法本质是灰盒测试既关注输入输出黑盒也了解部分内部逻辑白盒依据概要设计文档衡量标准接口覆盖率4.重要性比系统测试更早发现问题比单元测试更贴近真实业务是现在互联网公司最主流、最高频的测试类型之一三覆盖率问题 1. 覆盖率核心定义覆盖率 实际测试到的内容 / 计划要测试的全部内容 × 100%作用客观衡量测试是否充分、全面避免漏测。需求覆盖率黑盒核心依据需求文档计算已测需求数 / 总需求数目标尽可能接近 100%接口覆盖率集成测试核心依据接口文档计算已测接口数 / 总接口数代码逻辑覆盖率白盒核心依据代码本身计算已执行代码逻辑 / 总代码逻辑3. 白盒测试 6 种覆盖率从弱到强语句覆盖执行到每一行代码判定覆盖每个判断的真 / 假分支都走到条件覆盖每个条件的真 / 假都覆盖判定 - 条件覆盖同时覆盖判定与条件条件组合覆盖所有条件的真假组合都覆盖路径覆盖覆盖代码所有可能执行路径4. 重要提醒覆盖率不是越高越好要平衡成本与质量100% 覆盖率不代表没有 Bug。四探索性测试1.标准定义探索性测试是基于测试人经验不依赖完整文档与用例边设计、边执行、边思考的自由测试方式。2.核心特点无提前编写的完整用例随测随想高度依赖测试人员的业务理解和经验快速、灵活、是可快速定位隐蔽问题属于基于经验的测试方法3. 适用场景需求文档不完整、粗糙迭代速度快、没时间写用例黑盒 / 白盒系统化测试完成后做补充查漏新版本快速冒烟、快速体验4. 与系统化测试的关系不是替代黑盒 / 白盒而是补充适合发现逻辑复杂、场景隐蔽的缺陷常和自动化测试、用例测试配合使用五VV模型1.模型结构双V模型是指VV一一对应左边V指开发需求分析 → 概要设计 → 详细设计 → 编码实现右边V指测试系统测试 → 集成测试 → 单元测试2.核心对应关系需求分析 ↔ 系统测试概要设计 ↔ 集成测试详细设计 ↔ 单元测试编码 ↔ 代码审查、单元测试执行3.双V模型的三大优势1测试提前介入测试在需求阶段就开始介入不是等到编码完成后才测试尽早地发现需求缺陷降低修复成本2开发与测试并行开发做设计时测试同步做计划、分析、写用例大幅缩短项目周期3测试阶段清晰每个开发阶段都对应测试针对性极强测试分为准备阶段计划/分析/设计执行阶段4.核心思想验证Verification我们做的过程正确吗确认Validation我们做对产品了吗双 V 模型全程贯穿质量保证。二、七种测试方法一黑盒测试不看代码核心定义把软件看作一个不透明的黑盒子完全不关注内部代码实现只依据需求文档通过输入数据、查看输出结果来验证功能是否符合预期。测试依据需求文档适用阶段系统测试、验收测试、功能测试优点不需要懂代码贴近用户视角易上手缺点难以精准定位缺陷根源对需求文档依赖度高二白盒测试核心定义把软件看作透明的盒子直接查看内部代码逻辑、结构、算法针对性设计用例覆盖代码执行路径。测试依据源代码、详细设计文档适用阶段单元测试优点缺陷定位精准能发现代码深层逻辑问题缺点要求测试人员具备代码能力测试成本高、耗时长三灰盒测试核心定义结合黑盒 白盒的特点半透明盒子既关注功能输出结果也了解部分内部结构与接口逻辑。测试依据概要设计、接口文档、部分代码逻辑典型应用接口测试最常用适用阶段集成测试优点兼顾全面性与精准度适用性广、效率高缺点需要了解基础架构与接口规则四静态测试核心定义不运行被测试软件 / 代码通过人工审查或工具分析检查文档、代码规范、语法、逻辑缺陷。测试方式需求评审、设计文档审查、代码走查、代码静态分析测试对象需求文档、设计图纸、源代码、用户手册特点属于早期质量防控无需运行环境优点发现问题早、修复成本极低预防缺陷产生缺点无法验证软件实际运行效果五动态测试核心定义启动并运行软件通过实际操作、输入数据、执行业务流程观察运行结果与异常。测试方式功能点击、接口调用、性能施压、安全扫描测试对象运行中的程序、系统、接口、服务特点需要部署环境验证真实运行状态优点贴近真实使用场景结果直观可信缺点测试介入较晚问题修复成本更高六人工测试手动测试核心定义测试人员手动操作软件按照用例或经验执行测试、记录结果、提交缺陷。执行方式手动点击、输入、验证、判断适用场景新功能测试、探索性测试、业务复杂场景、UI 易用性测试优点灵活应变、思考性强能发现隐蔽、逻辑性强的缺陷缺点效率低、易疲劳、重复任务易出错不适合大量回归七自动化测试核心定义借助测试工具 / 代码脚本模拟人工操作自动执行用例、生成报告替代重复人工操作。执行方式自动化脚本、测试工具Selenium/Appium/Postman/JMeter适用场景回归测试、接口自动化、性能压力测试、批量回归优点执行快、不知疲倦、结果一致、可 7×24 小时运行缺点前期脚本开发成本高不适合快速变更、复杂业务场景三、5 种测试完整详解1. 单元测试Unit TestingUT测试对象软件最小单位函数、方法、类、组件、数据库表测试依据详细设计文档LLD测试方法白盒测试为主测试重点代码逻辑、语法、边界、异常处理执行者开发人员主流公司考核指标代码覆盖率语句、判定、条件、路径一句话测最小代码块保证单个模块没问题。2. 集成测试Integration TestingIT测试对象多个单元组装后的模块 / 接口 / 子系统测试依据概要设计文档HLD测试方法灰盒测试黑 白结合测试重点接口数据传递、参数、调用关系、兼容性执行者测试工程师考核指标接口覆盖率一句话测模块之间怎么 “对接”有没有传错数据。3. 系统测试System TestingST测试对象整个完整软件系统测试依据需求规格说明书SRS测试方法黑盒测试为主测试重点功能、性能、安全、兼容、界面、易用性等全维度执行者测试团队考核指标需求覆盖率一句话把软件当整体模拟用户真实使用全面测。4. 验收测试User Acceptance TestingUAT测试对象即将上线的最终产品测试依据验收合同、验收标准、用户真实需求测试方法黑盒测试测试重点是否满足用户业务、能否上线交付执行者用户 / 客户 / 产品方分类Alpha内测开发环境有开发在场Beta公测真实环境无开发在场一句话用户说了算能不能用、能不能收。5. 回归测试Regression Testing测试对象修改过的功能 受影响的功能触发条件Bug 修复、功能增删改、版本迭代测试重点旧功能没坏、没引入新 Bug策略选择性回归只测相关用例快完全回归全量用例重测稳最佳场景自动化测试一句话改完代码再测一遍防止 “越修越坏”。6.总结单元测代码最小块白盒开发做集成测模块接口灰盒接口测试为主系统测整个软件黑盒全面质量验收用户测黑盒能不能上线回归改完重测防新 Bug自动化首选

更多文章