软件测试类型(100 个示例)

什么是软件测试类型?

软件测试类型是对不同测试活动进行的分类,每个类别都有明确的测试目标、测试策略和测试交付物。测试类型的目标是验证被测应用程序(AUT)是否达到既定的测试目标。

例如,辅助功能测试的目标是验证被测应用程序是否可供残障人士使用。因此,如果您的软件解决方案必须对残障人士友好,您就需要根据辅助功能测试用例进行检查。

软件测试类型

一份包含100种软件测试类型及其定义的列表。这是任何QA专业人员的必读指南。请将其视为您的所有软件测试类型指南。

Types of Software Testing

  1. 验收测试:为确定系统是否满足其验收标准并使客户能够决定是否接受系统而进行的正式测试。通常由客户执行。阅读更多关于验收测试的信息。
  2. 辅助功能测试:一种测试类型,用于确定产品对残障人士(聋哑人、盲人、智障人士等)的可用性。评估过程由残障人士进行。阅读更多关于辅助功能测试的信息。
  3. 主动测试:一种测试类型,包括引入测试数据并分析执行结果。通常由测试团队进行。
  4. 敏捷测试:遵循敏捷宣言原则的软件测试实践,强调从将使用系统的客户的角度进行测试。通常由QA团队执行。阅读更多关于敏捷测试的信息。
  5. 老化测试:一种测试类型,用于评估系统未来运行的能力。评估过程由测试团队进行。
  6. 即席测试:在没有计划和文档的情况下执行的测试——测试人员通过随机尝试系统的功能来“破坏”系统。由测试团队执行。阅读更多关于即席测试的信息。
  7. Alpha测试:Alpha测试是一种在开发人员站点进行的软件测试,用于在产品发布进行Beta测试之前识别错误、可用性问题和功能缺陷。它涉及内部测试人员,例如开发人员和QA团队,有时还包括在受控环境中选择的最终用户。阅读更多关于Alpha测试的信息。
  8. 断言测试:一种测试类型,包括验证条件是否符合产品要求。由测试团队执行。
  9. API测试:与单元测试类似但针对代码级别的测试技术。API测试与单元测试的区别在于,它通常是QA任务而非开发人员任务。阅读更多关于API测试的信息。
  10. 全对测试:组合测试方法,测试所有可能的离散输入参数组合。由测试团队执行。
  11. 自动化测试:使用自动化测试工具控制环境设置、测试执行和结果报告的测试技术。它由计算机执行,并在测试团队内部使用。阅读更多关于自动化测试的信息。
  12. 基本路径测试:一种测试机制,它推导出程序设计的逻辑复杂性度量,并以此作为定义一组基本执行路径的指南。在定义测试用例时由测试团队使用。阅读更多关于基本路径测试的信息。
  13. 向后兼容性测试:验证已开发软件与旧版本测试环境行为的测试方法。由测试团队执行。
  14. Beta测试:在应用程序发布商业用途之前的最终测试。通常由最终用户或其他人完成。
  15. 基准测试:一种测试技术,使用具有代表性的程序和数据集,旨在评估给定配置下计算机硬件和软件的性能。由测试团队执行。阅读更多关于基准测试的信息。
  16. 大爆炸集成测试:一种测试技术,仅在一切准备就绪时才集成单个程序模块。由测试团队执行。
  17. 二进制可移植性测试:测试可执行应用程序在系统平台和环境之间可移植性的技术,通常用于符合ABI规范。由测试团队执行。
  18. 边界值测试:一种软件测试技术,其中测试设计旨在包含边界值的代表性。由QA测试团队执行。阅读更多关于边界值测试的信息。
  19. 自底向上集成测试:在自底向上集成测试中,首先开发最低级别的模块,然后将朝向“主”程序的其他模块逐个集成和测试。通常由测试团队执行。
  20. 分支测试:一种测试技术,其中程序的源代码中的所有分支都至少测试一次。这由开发人员完成。
  21. 广度测试:一个测试套件,它测试产品的全部功能,但不对功能进行详细测试。由测试团队执行。
  22. 黑盒测试:一种软件测试方法,用于验证应用程序的功能,而无需了解应用程序的代码/内部结构。测试基于需求和功能。由QA团队执行。阅读更多关于黑盒测试的信息。
  23. 代码驱动测试:一种测试技术,使用测试框架(例如xUnit)来允许执行单元测试,以确定代码的各个部分在各种情况下是否按预期运行。由开发团队执行。
  24. 兼容性测试:验证软件在特定硬件/软件/操作系统/网络环境中的性能如何的测试技术。由测试团队执行。阅读更多关于兼容性测试的信息。
  25. 比较测试:一种测试技术,将产品优缺点与以前的版本或其他类似产品进行比较。可由测试人员、开发人员、产品经理或产品负责人执行。阅读更多关于组件测试的信息。
  26. 组件测试:一种与单元测试相似但集成级别更高的测试技术——测试在应用程序的上下文中进行,而不仅仅是直接测试特定方法。可由测试或开发团队执行。
  27. 配置测试:一种测试技术,用于确定硬件和软件的最小和最佳配置,以及添加或修改内存、磁盘驱动器和CPU等资源的影响。通常由性能测试工程师执行。阅读更多关于配置测试的信息。
  28. 条件覆盖测试:一种软件测试类型,其中每个条件至少以一种方式被执行为真和假。通常由自动化测试团队完成。
  29. 合规性测试:一种测试类型,用于检查系统是否按照标准、程序和指南进行开发。通常由提供“OGC认证合规”品牌的外部公司执行。
  30. 并发测试:多用户测试,旨在确定访问相同应用程序代码、模块或数据库记录的影响。通常由性能工程师完成。阅读更多关于并发测试的信息。
  31. 一致性测试:测试实现是否符合其所基于的规范的过程。通常由测试团队执行。阅读更多关于一致性测试的信息。
  32. 情境驱动测试:一种敏捷测试技术,主张根据潜在信息及其在特定时刻对组织的价值,持续而创造性地评估测试机会。通常由敏捷测试团队执行。
  33. 转换测试:测试用于将现有系统数据转换为在新系统中使用的程序或过程。通常由QA团队执行。
  34. 决策覆盖测试:一种软件测试类型,其中每个条件/决策都被设置为真/假执行。通常由自动化测试团队完成。
  35. 破坏性测试:一种测试类型,测试旨在使试样失效,以了解试样在不同载荷下的结构性能或材料行为。通常由QA团队执行。
    阅读更多关于破坏性测试的信息。
  36. 依赖性测试:一种测试类型,检查应用程序对现有软件、初始状态和配置的要求,以保持正常功能。通常由测试团队执行。
  37. 动态测试:软件工程中用于描述代码动态行为测试的术语。通常由测试团队执行。阅读更多关于动态测试的信息。
  38. 域测试:白盒测试技术,包含检查程序只接受有效输入。通常由软件开发团队完成,偶尔由自动化测试团队完成。
  39. 错误处理测试:软件测试类型,用于确定系统正确处理错误事务的能力。通常由测试团队执行。
  40. 端到端测试:类似于系统测试,涉及在模拟真实世界使用的情况下测试完整的应用程序环境,例如与数据库交互、使用网络通信或与适当的其他硬件、应用程序或系统交互。由QA团队执行。阅读更多关于端到端测试的信息。
  41. 耐久性测试:一种测试类型,用于检查内存泄漏或其他可能因长时间执行而发生的问题。通常由性能工程师执行。阅读更多关于耐久性测试的信息。
  42. 探索性测试:在没有计划和文档的情况下执行的黑盒测试技术。通常由手动测试人员执行。阅读更多关于探索性测试的信息。
  43. 等价划分测试:一种软件测试技术,将软件单元的输入数据划分为数据分区,从中可以导出测试用例。通常由QA团队执行。阅读更多关于等价划分测试的信息。
  44. 故障注入测试:全面测试策略的一个要素,使测试人员能够专注于被测应用程序处理异常的方式。由QA团队执行。
  45. 形式化验证测试:使用数学形式化方法,证明或反驳系统底层预期算法相对于某个形式规范或属性的正确性。通常由QA团队执行。
  46. 功能测试:一种黑盒测试类型,其测试用例基于被测软件组件的规范。由测试团队执行。阅读更多关于功能测试的信息。
  47. 模糊测试:一种软件测试技术,向程序的输入提供无效、意外或随机数据——这是变异测试的一个特殊领域。模糊测试由测试团队执行。阅读更多关于模糊测试的信息。
  48. 大猩猩测试:一种软件测试技术,专注于对某个特定模块进行大量测试。通常在进行全面测试时由质量保证团队执行。
  49. 灰盒测试:黑盒测试和白盒测试方法的组合:针对软件规范进行测试,但使用其内部工作原理的一些知识。可由开发团队或测试团队执行。
  50. 透明盒测试:类似于白盒测试,基于对应用程序代码内部逻辑的了解。由开发团队执行。
  51. GUI软件测试:测试使用图形用户界面的产品,以确保其符合书面规范的过程。通常由测试团队完成。阅读更多关于GUI软件测试的信息。
  52. 全球化测试:一种测试方法,通过使用各种国际输入类型,检查产品在任何文化/区域设置下的正常功能。由测试团队执行。阅读更多关于全球化测试的信息。
  53. 混合集成测试:一种测试技术,结合了自上而下和自下而上的集成技术,以利用这些测试的优势。通常由测试团队执行。
  54. 集成测试:软件测试中的阶段,其中单个软件模块被组合并作为一个组进行测试。通常由测试团队进行。阅读更多关于集成测试的信息。
  55. 接口测试:为评估系统或组件之间数据和控制是否正确传递而进行的测试。通常由测试团队和开发团队共同执行。阅读更多关于接口测试的信息。
  56. 安装/卸载测试:质量保证工作,侧重于客户成功安装和设置新软件所需做的事情。它可能涉及完全安装、部分安装或升级安装/卸载过程,通常由软件测试工程师与配置经理一起完成。
  57. 国际化测试:确保产品功能不会因使用不同语言和区域设置而破坏,并且所有消息都正确外部化的过程。通常由测试团队执行。
  58. 系统间测试:一种测试技术,专注于验证应用程序之间的互连是否正常工作。通常由测试团队执行。
  59. 关键字驱动测试:也称为表格驱动测试或动作词测试,是一种用于自动化测试的软件测试方法,它将测试创建过程分为两个不同的阶段:计划阶段和实施阶段。可由手动或自动化测试团队使用。阅读更多关于关键字驱动测试的信息。
  60. 负载测试:一种测试技术,对系统或设备施加需求并测量其响应。通常由性能工程师进行。阅读更多关于负载测试的信息。
  61. 本地化测试:软件测试过程的一部分,专注于将全球化应用程序适应特定的文化/区域设置。通常由测试团队完成。阅读更多关于本地化测试的信息。
  62. 循环测试:一种白盒测试技术,用于执行程序循环。由开发团队执行。阅读更多关于循环测试的信息。
  63. 手动脚本测试:测试用例由团队设计和审查后执行的测试方法。由手动测试团队完成。
  64. 手动支持测试:一种测试技术,涉及测试人员在准备数据和使用自动化系统中的这些数据时执行的所有功能。由测试团队进行。
  65. 基于模型的测试:应用基于模型的设计来设计和执行必要的工件以执行软件测试。通常由测试团队执行。阅读更多关于基于模型的测试的信息。
  66. 突变测试:一种软件测试方法,涉及以小方式修改程序的源代码或字节码,以测试在正常测试执行期间很少或从未访问过的代码部分。通常由测试人员进行。阅读更多关于突变测试的信息。
  67. 模块化驱动测试:一种软件测试技术,要求创建小型、独立的脚本,代表被测应用程序的模块、部分和功能。通常由测试团队执行。
  68. 非功能测试:一种测试技术,专注于测试软件应用程序的非功能需求。可由性能工程师或手动测试团队进行。阅读更多关于非功能测试的信息。
  69. 负面测试:也称为“测试失败”——一种测试方法,其目的是显示组件或系统无法正常工作。由手动或自动化测试人员执行。阅读更多关于负面测试的信息。
  70. 操作测试:在操作环境中评估系统或组件的测试技术。通常由测试团队执行。阅读更多关于操作测试的信息。
  71. 正交阵列测试:一种系统化的统计测试方法,可应用于用户界面测试、系统测试、回归测试、配置测试和性能测试。由测试团队执行。阅读更多关于正交阵列测试的信息。
  72. 结对测试:一种软件开发技术,其中两名团队成员共同使用一个键盘来测试软件应用程序。一人负责测试,另一人分析或审查测试。这可以在一名测试人员和开发人员或业务分析师之间进行,也可以在两名测试人员之间进行,双方轮流操作键盘。
  73. 被动测试:一种测试技术,包括监控正在运行的系统的结果,而无需引入任何特殊的测试数据。由测试团队执行。
  74. 并行测试:一种测试技术,旨在确保取代旧版本的新应用程序已正确安装并正在运行。由测试团队进行。阅读更多关于并行测试的信息。
  75. 路径测试:典型的白盒测试,其目标是满足程序中每个逻辑路径的覆盖标准。通常由开发团队执行。阅读更多关于路径测试的信息。
  76. 渗透测试:评估计算机系统或网络安全性的测试方法,通过模拟恶意来源的攻击。通常由专业的渗透测试公司进行。阅读更多关于渗透测试的信息。
  77. 性能测试:为评估系统或组件是否符合指定性能要求而进行的功能测试。通常由性能工程师进行。阅读更多关于性能测试的信息。
  78. 资格测试:针对上一版本规范进行的测试,通常由开发人员为消费者进行,以证明软件符合其指定要求。
  79. 斜坡测试:一种测试类型,包括持续提高输入信号,直到系统崩溃。可由测试团队或性能工程师进行。
  80. 回归测试:一种软件测试类型,旨在在程序更改(例如错误修复或新功能)后,通过重新测试程序来发现软件错误。由测试团队执行。阅读更多关于回归测试的信息。
  81. 恢复测试:一种测试技术,用于评估系统从崩溃、硬件故障或其他灾难性问题中恢复的程度。由测试团队执行。阅读更多关于恢复测试的信息。
  82. 需求测试:一种测试技术,用于验证需求是否正确、完整、明确且逻辑一致,并允许从这些需求中设计一组必要且充分的测试用例。由QA团队执行。
  83. 安全测试:确定信息系统是否按照预期保护数据并维护功能的流程。可由测试团队或专业的安全测试公司执行。阅读更多关于安全测试的信息。
  84. 健全性测试:一种测试技术,用于确定新软件版本是否运行良好,足以接受它进行主要测试工作。由测试团队执行。阅读更多关于健全性测试的信息。
  85. 场景测试:一种测试活动,使用基于假设故事的场景,帮助人们在测试环境中思考复杂问题或系统。由测试团队执行。阅读更多关于场景测试的信息。
  86. 可伸缩性测试:非功能测试系列的一部分,测试软件应用程序的可伸缩性——无论是支持的用户负载、事务数量还是数据量等。由性能工程师进行。阅读更多关于可伸缩性测试的信息。
  87. 语句测试:白盒测试,满足程序中的每个语句在程序测试期间至少执行一次的标准。通常由开发团队执行。
  88. 静态测试:一种软件测试形式,实际上不使用软件,主要检查代码、算法或文档的完整性。由编写代码的开发人员使用。阅读更多关于静态测试的信息。
  89. 稳定性测试:一种测试技术,试图确定应用程序是否会崩溃。通常由性能工程师进行。阅读更多关于稳定性测试的信息。
  90. 冒烟测试:一种测试技术,检查软件系统的所有基本组件,以确保它们正常工作。通常,冒烟测试由测试团队在软件构建完成后立即进行。阅读更多关于冒烟测试的信息。
  91. 存储测试:一种测试类型,验证被测程序是否将数据文件存储在正确的目录中,并且是否保留了足够的空间以防止因空间不足而导致意外终止。通常由测试团队执行。阅读更多关于存储测试的信息。
  92. 压力测试:一种测试技术,评估系统或组件在其指定要求限制或超出其指定要求限制下的性能。通常由性能工程师进行。阅读更多关于压力测试的信息。
  93. 结构测试:白盒测试技术,考虑系统或组件的内部结构,并确保每个程序语句执行其预期的功能。通常由软件开发人员执行。
  94. 系统测试:测试集成硬件和软件系统以验证系统是否满足其指定要求的过程。由测试团队在开发和目标环境中进行。阅读更多关于系统测试的信息。
  95. 系统集成测试:一种测试过程,用于验证软件系统与其他系统共存。通常由测试团队执行。阅读更多关于系统集成测试的信息。
  96. 自顶向下集成测试:一种测试技术,涉及从用户界面处的系统层次结构顶部开始,使用存根从上到下进行测试,直到整个系统都已实现。由测试团队进行。
  1. 线程测试:自顶向下测试技术的一种变体,其中组件的逐步集成遵循需求子集的实现。通常由测试团队执行。阅读更多关于线程测试的信息。
  1. 升级测试:一种测试技术,验证使用旧版本创建的资产是否可以正常使用,并且用户的学习不会受到挑战。由测试团队执行。
  2. 单元测试:一种软件验证和确认方法,程序员测试源代码的各个单元是否适合使用。通常由开发团队进行。阅读更多关于单元测试的信息。
  3. 用户界面测试:一种测试类型,用于检查应用程序的用户友好程度。由测试团队执行。阅读更多关于用户界面测试的信息。

奖励!!!多了解一些总是好的

  1. 可用性测试:一种测试技术,用于验证用户学习操作、准备输入和解释系统或组件输出的容易程度。通常由最终用户执行。阅读更多关于可用性测试的信息。
  2. 容量测试:验证随时间可能变大的任何值(例如累积计数、日志和数据文件)是否可由程序处理,并且不会导致程序停止工作或以任何方式降低其运行性能的测试。通常由性能工程师进行。阅读更多关于容量测试的信息。
  3. 漏洞测试:一种关于应用程序安全的测试类型,旨在防止可能影响应用程序完整性和稳定性的问题。可由内部测试团队执行,或外包给专业公司。阅读更多关于漏洞测试的信息。
  4. 白盒测试:一种基于对应用程序代码内部逻辑的了解的测试技术,包括代码语句、分支、路径、条件的覆盖等测试。由软件开发人员执行。阅读更多关于白盒测试的信息。
  5. 工作流测试:一种脚本化的端到端测试技术,复制预期由最终用户使用的特定工作流。通常由测试团队进行。阅读更多关于工作流测试的信息。

到此列表结束。希望您阅读愉快。要查找适用于此类测试和其他测试的工具,请浏览此测试工具集合。