测试(8) - 测试分类篇
测试(8) - 测试分类篇文章目录测试(8) - 测试分类篇1. 测试分类2. 按照测试目标分类3. 按执行方式分类3.1 静态测试3.2 动态测试3.3 如何区分4. 按照测试方法5. 按照测试阶段分类5.1 单元测试5.2 集成测试5.3 系统测试5.3.1 冒烟测试5.3.2 回归测试5.3.3 回归测试与冒烟测试的区别5.3.4 系统测试相关5.4 验收测试6. 按照是否手工测试6.1 手工测试Manual Testing6.2 自动化测试Automation Testing6.3 自动化测试和手工测试优缺点对比6.4 高频面试题笔试题自动化测试能否取代手工测试7. 结尾1. 测试分类软件测试是软件生命周期中的重要环节具备较高的复杂性。我们可以从不同角度对软件测试进行分类以便开发者在软件开发的不同层次与阶段更好地执行和管理测试工作。不同的测试类型指代的是不同的测试行为。例如做菜有很多种做法煎炒炸闷煮盐焗烧烤等等。这些做法指代的是不同的烹饪方式目的都是把食物煮熟。2. 按照测试目标分类测试目标我这里划分了 6 种功能性测试安全性测试性能测试安全性测试易用性测试可靠性测试每一个测试的介绍文字是有点多的所以不在这篇博客中进行介绍。单独在另一篇博客中进行介绍。博客链接测试分类篇 - 软件测试目标功能界面易用性能安全可靠3. 按执行方式分类测试的执行方式分为两类静态测试动态测试3.1 静态测试静态测试Static Testing是指不实际运行被测软件仅通过静态检查程序代码、界面或文档来发现其中潜在错误的测试过程。它不依赖测试数据的执行而是通过对测试对象进行分析、评审检查源程序的设计、内部结构、逻辑、代码规范与规格说明等从而判定程序是否正确。常见的静态测试方式包括代码走查、代码评审、代码扫描工具检测等。代码走查一般是用肉眼进行检查代码扫描工具检测检查语法问题代码安全问题3.2 动态测试动态测试Dynamic Testing是指实际运行被测程序输入相应测试数据对比实际输出结果与预期结果是否一致的测试过程。大多数软件测试工作都属于动态测试。3.3 如何区分判断一个测试属于动态测试还是静态测试唯一标准就是是否运行程序。运行程序动态测试不运行程序静态测试4. 按照测试方法测试方法分为黑盒测试白盒测试灰盒测试。关于这三个测试方法的介绍内容太多放到这篇博客进行讲解博客链接测试分类篇 - 测试方法黑盒测试、白盒测试、灰盒测试5. 按照测试阶段分类测试阶段可以分为四个单元测试集成测试系统测试验收测试5.1 单元测试与编码同步开展针对软件最小组成单元进行测试主要采用白盒测试方法从被测对象的内部结构出发设计测试用例。最小组成单元是认为定义的⼀个方法⼀个类都可以理解为 “最小组成单元”测试阶段编码后或编码前TDD 测试驱动开发测试对象软件最小模块测试人员白盒测试工程师或开发工程师测试依据代码与注释 详细设计文档测试方法白盒测试测试内容模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试5.2 集成测试集成测试把最小单元集成在一起执行测试既要保证代码没有问题也要保证软件主要功能也没有问题。集成测试使用的测试方法是灰盒测试测试阶段通常在单元测试完成后进行测试对象模块间的接口测试人员白盒测试工程师或开发工程师测试依据单元测试后的模块 概要设计文档测试方法黑盒测试与白盒测试相结合灰盒测试测试内容模块间数据传输、模块间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响5.3 系统测试对通过集成测试的系统进行整体测试验证系统功能性与非功能性需求是否正确实现。但是不是所有通过集成测试的系统都可以直接进行测试的也有的系统登录就有问题没法登录系统其他功能测试不了。所以系统测试还另外包含两个测试冒烟测试回归测试。回归测试和冒烟测试都属于系统测试。5.3.1 冒烟测试冒烟测试用于确认代码变更可按预期运行且不会破坏整个版本的稳定性。一般开发人员测试某一个接口是否可以正常访问输入数据是否能够输出预期结果这类测试动作都可以认为是 冒烟测试。冒烟测试是用来检查产品是否具备进入测试的条件。冒烟测试通常在开发人员完成开发并提交测试时执行用于验证系统基本功能是否正常不阻碍后续测试流程。若冒烟测试通过测试人员可开展正式系统测试若不通过则退回开发人员修复直至冒烟测试通过后再进行系统测试。5.3.2 回归测试回归测试是指在修改旧代码后重新执行测试以确认修改未引入新缺陷也未导致其他代码出现问题。回归测试主要分为人工测试与自动化测试两种方式。在实际工作中回归测试需要反复执行重复执行相同用例会使测试过程变得枯燥在大量依赖手工执行时尤为明显。因此通常会通过测试自动化来实现可重复、一致性高的回归测试以提高回归测试效率。5.3.3 回归测试与冒烟测试的区别冒烟测试Smoke Testing阶段通常在软件开发早期执行用于验证基本功能是否正常。目的确保软件核心功能可正常运行为后续详细测试提供基础。回归测试Regression Testing阶段软件开发后期每次代码修改或新增功能后执行。目的确保原有功能不受影响新变更未引入新缺陷防止代码改动导致已有功能异常。二者虽同属系统测试范畴但侧重点不同冒烟测试聚焦基础核心功能回归测试覆盖全面功能含原有功能与新增功能5.3.4 系统测试相关测试阶段集成测试通过之后测试对象整个系统软硬件集成测试人员黑盒测试工程师测试依据需求规格说明文档测试方法黑盒测试测试内容功能测试、界面测试、易用性测试、性能测试、兼容性测试、安全性测试、可靠性测试、弱网测试、安装卸载测试等5.4 验收测试验收测试是针对用户需求对已通过系统测试的软件进行交付性验证判断系统是否满足验收标准。它是软件部署前的最后一项测试也称为交付测试是技术测试的最终阶段。一般是由 产品经理甲方 进行验收。测试阶段系统测试通过之后测试对象完整系统含软硬件测试人员最终用户或需求方测试依据用户需求、验收标准测试方法黑盒测试测试内容与系统测试一致功能、界面、各类文档等6. 按照是否手工测试6.1 手工测试Manual Testing手工测试是由测试人员手动逐条执行测试用例观察并验证执行结果与机器自动化测试相对应。它是一种基础且必不可少的测试手段。6.2 自动化测试Automation Testing自动化测试是在预设条件正常场景与异常场景下运行系统或应用程序并对结果进行校验的过程。简单来说就是将以人为驱动的测试行为转化为机器自动执行的过程。常见类型包括功能自动化、性能自动化、安全自动化等按测试对象又可分为接口测试、UI 测试等。6.3 自动化测试和手工测试优缺点对比自动化测试手工测试优点1. 节省成本2. 提高测试人员执行工作效率3. 保障软件的质量1. 对测试人员技术要求没有自动化技术要求高2. 可以进行发散性测试缺点1. 对测试人员技术要求较高2. 不能发散性测试1. 效率低2. 人员、时间成本比起自动化测试都比较高6.4 高频面试题笔试题自动化测试能否取代手工测试自动化测试一般是 手工测试 之后功能没有问题了再设计自动化测试。一个新的功能不是一上来就能够使用 自动化测试而是先进行 手工测试。没有问题了再设计自动化测试。7. 结尾最后如果这篇博客能帮到你的请你点点赞有写错了写的不好的欢迎评论指出谢谢下一篇博客测试(9) - 测试用例篇