什么是软件测试类型?
软件测试类型是将不同的测试活动分类为类别,每个类别都有定义的测试目标、测试策略和测试交付内容。拥有测试类型的目标是验证 Test(AUT) 下的应用程序是否符合定义的测试目标。
例如,可访问性测试的目标是验证AUT是否可供残疾人使用。因此,如果软件解决方案必须是对禁用友好的,可以对照可访问性测试用例。如下测试类型:
-
验收测试:为确定系统是否满足其验收标准并使客户能够确定是否接受该系统而进行的正式测试。
-
可访问性测试:确定产品对残疾人(聋人、盲人、智障等)的可用性的一种测试。
-
主动测试:包括引入测试数据和分析执行结果的测试类型。通常由测试团队进行。
-
敏捷测试:遵循敏捷宣言原则的软件测试实践,强调从将使用系统的客户的角度进行测试。
-
老化测试:评估系统未来执行能力的测试类型。评估过程由测试团队进行。
-
临时测试:在没有计划和文档的情况下执行的测试-测试人员试图通过随机尝试系统的功能来“破坏”系统。
-
Alpha测试:在开发人员现场进行的软件产品或系统的测试类型。
-
断言测试:包括验证条件是否符合产品要求的一种测试类型,由测试团队执行。
-
API测试:类似于单元测试的测试技术,以代码级别为目标。
-
组合测试:测试所有可能的输入参数,离散组合的测试方法,由测试团队执行的。
-
自动化测试:使用自动化测试工具控制环境设置、测试执行和结果报告的测试技术。
-
基本路径测试:这种测试机制导出过程设计的逻辑复杂性度量,并将其用作定义一组基本执行路径的指南。
-
向后兼容性测试:使用旧版本的测试环境验证已开发软件的行为的测试方法,由测试团队执行的。
-
Beta测试:发布应用程序之前的最终测试,通常由最终用户或其他人完成。
-
基准测试:使用具有代表性的程序和数据集来评估计算机硬件和软件在给定配置中的性能的测试技术。
-
大爆炸集成测试:只有在一切准备就绪时才集成单个程序模块的测试技术,由测试团队执行的。
-
二进制可移植性测试:测试可执行应用程序跨系统平台和环境的可移植性的技术,通常是为了符合ABI规范,由测试团队执行的。
-
边界值测试:软件测试技术,其中测试被设计为包括边界值的表示。
-
自下而上的集成测试:在自下而上的集成测试中,首先开发最底层的模块,然后逐个集成和测试其他通向“主”程序的模块,通常由测试团队执行。
-
分支测试:程序源代码中的所有分支至少测试一次的测试技术,由开发人员完成的。
-
广度测试:执行产品的全部功能但不详细测试特性的测试套件,由测试团队执行的。
-
黑盒测试:一种软件测试方法,不了解应用程序代码/内部结构的情况下验证应用程序的功能。
-
代码驱动测试:使用允许执行单元测试的测试框架(如xUnit)来确定代码的各个部分在各种情况下是否按预期运行的测试技术。它是由开发团队执行的。
-
兼容性测试:验证软件在特定硬件/软件/操作系统/网络环境中执行情况的测试技术。
-
对比测试:将产品的长处和短处与以前的版本或其他类似产品进行比较的测试技术。
-
组件测试:测试技术类似于单元测试,但具有更高级别的集成-测试是在应用程序的上下文中完成的,而不仅仅是直接测试特定的方法。可以由测试或开发团队执行。
-
配置测试:一种测试技术,它确定硬件和软件的最小和最优配置,以及添加或修改资源(如内存、磁盘驱动器和CPU)的效果。
-
条件覆盖测试(Condition Coverage Testing):一种软件测试类型,其中通过使条件为真和为假来执行每个条件,在每种方式中至少执行一次,通常由自动化测试团队制作。
-
符合性测试:检查系统是否按照标准、程序和指南开发的测试类型,通常由提供“符合OGC认证”品牌的外部公司执行。
-
并发测试:多用户测试,旨在确定访问相同应用程序代码、模块或数据库记录的效果。
-
一致性测试:测试实现是否符合其所基于的规范的过程。
-
上下文驱动测试(Context Driven Testing):一种敏捷测试技术,它提倡根据所揭示的潜在信息以及该信息在特定时刻对组织的价值,对测试机会进行持续和创造性的评估。它通常由敏捷测试团队执行。
-
转换测试:对用于转换现有系统中的数据以用于替换系统的程序或过程的测试,通常由QA团队执行。
-
分支覆盖测试:一种软件测试类型,通过将每个条件/决策设置为TRUE/FALSE来执行,通常由自动化测试团队制作。
-
破坏性试验:在不同载荷下的结构性能或材料性能而对试样的失效进行试验的一种试验类型,通常由QA团队执行。
-
依赖性测试:检查应用程序对预先存在的软件、初始状态和配置的要求,以便维护正确的功能,通常由测试团队执行。
-
动态测试:软件工程中用来描述代码动态行为测试的术语。
-
域测试:白盒测试技术,包括检查程序是否只接受有效输入,通常由软件开发团队完成,偶尔也由自动化测试团队完成。
-
错误处理测试:确定系统正确处理错误事务的能力的软件测试类型,通常由测试团队执行。
-
端到端测试:与系统测试类似,涉及在模拟实际使用的情况下测试完整的应用程序环境,例如与数据库交互、使用网络通信或与其他硬件、应用程序或系统交互。
-
持久性测试:检查内存泄漏或其他可能因长时间执行而出现的问题的测试类型。
-
探索性测试:在没有计划和文档的情况下执行的黑盒测试技术。
-
等价分区测试:将软件单元的输入数据划分为数据分区,从中可以派生出测试用例。
-
注入测试:全面测试策略的组成部分,使测试人员能够专注于被测应用程序能够处理异常的方式,由QA团队执行。
-
形式验证测试:使用形式数学方法,针对某个形式规范或属性,证明或反驳作为系统基础的预期算法的正确性的行为,通常由QA团队执行。
-
功能测试:一种黑盒测试,其测试用例基于被测软件组件的规范。
-
模糊测试:向程序的输入提供无效的、意外的或随机数据的软件测试技术-突变测试的一个特殊领域。
-
大猩猩测试(Gorilla Testing):重点是对某一特定模块进行大量测试的测试技术。由质量保证团队执行,通常在运行全面测试时执行。
-
灰盒测试:黑盒和白盒测试方法的组合,根据软件的规范测试软件,但是使用一些关于其内部工作的知识。它既可以由开发团队执行,也可以由测试团队执行。
-
玻璃盒测试:类似于白盒测试,基于对应用程序代码的内部逻辑的了解。是由开发团队执行的。
-
GUI软件测试:测试使用图形用户界面的产品以确保其符合其书面规范的过程。
-
国际化测试:使用所有类型的国际输入,使用任何文化/区域设置检查产品正确功能的测试方法。
-
混合集成测试:将自上而下和自下而上的集成技术相结合的测试技术,以便充分利用这类测试的好处。通常由测试团队执行。
-
集成测试:软件测试中的一个阶段,在该阶段中,单个软件模块作为一个组进行组合和测试。
-
接口测试:为评估系统或组件之间是否正确传递数据和控制而进行的测试。
-
安装/卸载测试:质量保证工作,重点是客户需要执行哪些操作才能成功安装和设置新软件。可能涉及全部、部分或升级安装/卸载过程,通常由软件测试工程师与配置经理共同完成。
-
国际化测试:当以不同的语言和地区使用时,确保产品的功能不会中断,并且所有消息都被正确地外部化的过程。通常由测试团队执行。
-
系统间测试:侧重于测试应用程序以确保应用程序之间的互连正常运行的测试技术。通常是由测试团队完成的。
-
关键字驱动测试(Keyword-Driven Testing):也称为表驱动测试,是一种用于自动化测试的软件测试方法,将测试创建过程分为两个不同的阶段:计划阶段和实现阶段。
-
负载测试:对系统或设备提出要求并测量其响应的测试技术。
-
本地化测试:软件测试过程的一部分,侧重于使全球化的应用程序适应特定的文化/地区。
-
循环测试:一种测试程序循环的白盒测试技术。
-
脚本化测试:团队在执行测试用例之前设计和审查测试用例的测试方法。由手动测试团队完成的。
-
人工支持测试:一种测试技术,包括测试人员在准备数据并使用自动化系统中的数据时执行的所有功能。由测试团队进行的。
-
基于模型的测试:基于模型设计的应用程序测试,用于设计和执行执行软件测试所需的工件。
-
突变测试:涉及以小的方式修改程序的源代码或字节代码,以便测试在正常测试执行过程中很少或从不访问的代码部分。
-
模块化驱动测试:需要创建代表被测应用程序的模块、部分和功能的小的、独立的脚本。通常由测试团队执行。
-
非功能测试:侧重于测试软件应用程序的非功能需求的测试技术。
-
阴性测试:也称为“否定测试”-测试的目的是显示组件或系统不工作场景的测试方法。
-
评估测试:在运行环境中对系统或组件进行评估的测试技术。
-
正交阵列测试:系统化、统计化的测试方式,可用于用户界面测试、系统测试、回归测试、配置测试、性能测试。
-
结对测试:一种软件测试技术,其中团队两个成员一起来测试软件应用程序。可以在一个测试人员和开发人员或业务分析师之间完成,或者在两个测试人员之间完成,两个参与者轮流操作。
-
观察测试:在不引入任何特殊测试数据的情况下监控系统运行结果的测试技术。由测试团队执行。
-
并行测试:一种测试技术,其目的是确保取代旧版本的新应用程序已经安装并正确运行。
-
路径测试:典型的白盒测试,其目标是满足通过程序的每条逻辑路径的复盖标准。
-
渗透测试:通过模拟来自恶意的攻击来评估计算机系统或网络安全的测试方法。
-
性能测试:为评估系统或组件是否符合规定的性能要求而进行的功能测试。
-
资格测试:针对版本的规范进行的测试,通常由开发人员进行,以证明软件满足其指定的要求。
-
斜坡测试:一种测试类型,包括不断提高输入信号,直到系统故障。可以由测试团队或性能工程师进行。
-
回归测试:一种软件测试类型,旨在发现程序更改后的软件错误
-
恢复测试:评估系统从崩溃、硬件故障或其他灾难性问题中恢复情况的测试技术。
-
需求测试:一种测试技术,验证需求是正确的、完整的、明确的和逻辑上一致的,并允许根据这些需求设计一组必要且充分的测试用例。由QA团队执行。
-
安全测试:确定信息系统是否按预期保护数据和维护功能的过程。
-
健全性测试:一种测试技术,确定一个新的软件版本是否执行得足够好,可以接受它进行主要的测试工作。
-
场景测试:在测试环境中使用基于假设故事的场景来帮助人们思考复杂问题或系统的测试活动。
-
可伸缩性测试:非功能性测试的一部分,用于测试软件应用程序的向上扩展能力-无论是支持的用户负载、事务数量、数据量等。
-
语句测试:在程序测试过程中,满足程序中每条语句至少执行一次的标准的白盒测试。通常由开发团队执行。
-
静态测试:软件测试的一种形式,在这种情况下,软件并不实际使用,它主要检查代码、算法或文档的健全性。
-
稳定性测试:试图确定应用程序是否会崩溃的测试技术。
-
冒烟测试:检查软件系统的所有基本组件以确保它们正常工作的测试技术。
-
存储测试:一种测试类型,验证程序将数据文件存储在正确的目录中,并且预留了足够的空间,防止由于空间不足而导致的意外终止。
-
压力测试:评估系统或组件达到或超过其规定要求的极限的测试技术。
-
结构测试:白盒测试技术,考虑到系统或组件的内部结构,并确保每个程序语句执行其预期的功能。通常由软件开发人员执行。
-
系统测试:测试集成的硬件和软件系统以验证系统是否满足其指定要求的过程。
-
系统集成测试:测试软件系统与其他系统共存的测试过程。
-
自顶向下集成测试:一种测试技术,涉及从用户界面的系统层次结构的顶层开始,并使用存根自上而下进行测试,直到整个系统实现为止。由测试团队进行的。
-
线程测试:自上而下测试技术的一种变体,其中组件的渐进集成遵循需求子集的实现。
-
升级测试:一种测试技术,用于验证使用旧版本创建的资源是否可以正确使用。由测试团队执行的。
-
单元测试:软件验证和确认的方法。程序员在此方法中测试单个源代码单元是否适合使用。
-
用户界面测试:一种测试类型,用于检查应用程序的用户友好性。
-
可用性测试:验证用户学习操作、准备输入和解释系统或组件输出的容易程度的测试技术。
-
容量测试:确认随着时间的推移可能变大的任何值(如累计计数、日志和数据文件)是否可以由程序容纳,并且不会导致程序停止工作或以任何方式降低其操作的测试。
-
漏洞测试:一种关注应用程序安全的测试类型,目的是防止可能影响应用程序完整性和稳定性的问题。
-
白盒测试:基于对应用程序代码内部逻辑的了解的测试技术,包括代码语句、分支、路径和条件的覆盖等测试。
-
工作流测试:脚本化的端到端测试技术,复制用户预期使用的特定工作流。