本页总览
软件测试相关名词解释
核心概念
软件测试 :在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
开发与测试模型
软件开发生命周期 (Software Development Life Cycle,简称 SDLC):从需求分析到维护的软件开发全过程结构化流程,包括需求收集、系统设计、实现、测试、部署以及维护。这个周期确保了软件的质量和精确性,同时也帮助项目团队有效地管理时间和资源。常见的 SDLC 模型有瀑布模型、螺旋模型、V 模型、敏捷模型等。
瀑布模型 :一种线性开发模型,按顺序依次完成需求、设计、开发、测试和部署,每个阶段完成后进入下一个阶段。
迭代模型 :一种逐步完善软件的开发方法,将复杂的软件开发过程分解为多个小的开发周期(迭代)。每个迭代都包含需求分析、设计、开发、测试和部署等完整阶段,逐步交付功能模块,直到最终完成整个软件。
螺旋模型 :结合瀑布模型和迭代模型,强调风险评估和迭代开发,适合复杂项目。
V 模型 :一种测试驱动的开发模型,强调开发和测试并行进行,测试活动与开发阶段一一对应。
原型模型 :通过快速开发一个可运行的原型,收集用户反馈后逐步完善,适合需求不确定的项目。
混合模型 :结合多种开发模型(如瀑布+敏捷)的优点,根据项目需求灵活调整开发流程。
敏捷模型 :一种以人为核心、迭代、循序渐进的开发方法,强调协作与快速交付。其核心原则包括快速响应变化、持续交付有价值的软件、紧密合作和及时反馈。常见的敏捷方法论包括 Scrum、Kanban 和极限编程(XP)。
Scrum :一种敏捷框架,通过短周期的迭代(Sprint)来交付软件功能。每个 Sprint 通常持续 2-4 周,包括计划、开发、测试和评审。
Kanban :一种可视化工作流程的敏捷方法,通过限制在制品(WIP)数量,优化团队的工作效率和交付速度。
极限编程 (Extreme programming,缩写为 XP):一种强调工程实践和持续改进的敏捷方法,包括结对编程、持续集成、重构和测试驱动开发(TDD)。
测试方法与技术
人工测试 :测试人员手动执行用例,适用于探索性及用户体验测试。
自动化测试 :利用工具/脚本自动执行测试,可提高测试效率、覆盖率和重复性。
白盒测试 :基于代码结构和逻辑的测试方法,测试人员需要了解代码实现细节。
黑盒测试 :不关心代码实现,仅从用户角度测试软件功能是否符合需求。
灰盒测试 :介于白盒和黑盒之间,部分了解代码结构,同时关注功能表现。
静态测试 :不运行程序,通过代码审查、文档检查等方式发现缺陷。
动态测试 :通过运行程序,验证其在实际运行中的行为和性能。
探索性测试 :无预设脚本,依赖测试者经验实时设计并执行测试。
基于风险的测试 :优先测试高风险区域,优化资源分配。
关键字驱动测试 :用关键字描述操作,实现脚本 与数据的分离。
数据驱动测试 :通过多组数据驱动同一测试逻辑,验证不同场景。
测试类型
功能测试 :验证软件是否满足需求文档中定义的功能。
非功能测试 :评估性能、安全等非功能属性(如负载测试)。
性能测试 :测量系统在特定条件下的响应速度、稳定性等。
兼容性测试 :检查系统在不同硬件、软件或网络环境中的运行情况,例如不同的操作系统、浏览器、设备。
安全测试 :识别漏洞,确保数据保密性、完整性和可用性。
可用性测试 :评估软件的易用性,是否符合用户操作习惯。
可访问性测试 :验证系统对残障用户的包容性(如屏幕阅读器兼容)。
完整性测试 :验证软件是否满足所有需求,功能是否完整。
回归测试 :验证软件在修改或更新后,原有功能是否仍然正常。
冒烟测试 :初步验证核心功能是否可用,决定是否进行深入测试。
健全性测试 :快速检查特定功能或缺陷修复后的基本表现。
恢复测试 :验证系统从故障(如断电)中恢复的能力。
配置测试 :在不同软硬件配置下测试系统兼容性。
安装测试 :确保软件安装/卸载过程无误且不影响系统。
测试阶段