1、什么是软件测试类型?
软件测试类型是将不同测试活动进行分类,每一类都有明确的测试目标、测试策略和测试成果。划分测试类型的目的是针对既定测试目标对被测应用程序(AUT)进行验证。
例如,可访问性测试的目标是验证被测应用程序(AUT)是否便于残疾人使用。因此,如果你的软件解决方案必须对残疾人友好,你就需要依据可访问性测试用例对其进行检查。
2、软件测试类型
一份包含100种软件测试类型及其定义的列表。这是任何质量保证(QA)专业人员的必读内容。可将其视为你了解所有软件测试类型的指南。
1、验收测试:这是一种正式的测试,旨在确定系统是否满足其验收标准,以便客户决定是否接受该系统。通常由客户执行。
2、可访问性测试:此类测试用于判定产品对于残障人士(如聋人、盲人、精神残障者等)的可用性。评估过程由残障人士进行。
3、主动测试:这种测试类型包括引入测试数据并分析执行结果。通常由测试团队执行。
4、敏捷测试:遵循敏捷宣言原则的软件测试实践,强调从将使用该系统的客户角度进行测试。通常由质量保证团队执行。
5、老化测试:评估系统在未来运行能力的一种测试类型。评估过程由测试团队进行。
6、随机测试:在无计划和文档的情况下进行的测试——测试人员通过随机尝试系统功能来试图 “破坏” 系统。由测试团队执行。
7、α测试:α测试是在开发者站点进行的一种软件测试,目的是在产品发布进行β测试之前识别出漏洞、可用性问题和功能缺陷。它涉及内部测试人员,如开发人员和质量保证团队,有时还会在受控环境中邀请部分最终用户参与。
8、断言测试:这种测试类型在于验证条件是否符合产品要求。由测试团队执行。
9、API测试:一种类似于单元测试的测试技术,它针对代码层面。API测试与单元测试的不同之处在于,它通常是质量保证任务,而非开发人员的任务。
10、全组合测试:一种组合测试方法,用于测试输入参数所有可能的离散组合。由测试团队执行。
11、自动化测试:一种测试技术,利用自动化测试工具来控制环境搭建、测试执行以及结果报告。它由计算机执行,在测试团队内部使用。
12、基本路径测试:一种测试机制,它得出程序设计的逻辑复杂度度量,并以此为指导定义一组基本的执行路径。测试团队在定义测试用例时会用到它。
13、向后兼容性测试:一种测试方法,用于验证开发的软件在较旧版本测试环境中的行为。由测试团队执行。
14、β测试:在将应用程序发布用于商业目的之前进行的最终测试。通常由终端用户或其他人来完成。
15、基准测试:一种测试技术,使用具有代表性的程序和数据集,旨在评估给定配置下计算机硬件和软件的性能。由测试团队执行。
16、大爆炸集成测试:一种测试技术,只有在所有内容都准备就绪时,才将各个程序模块集成在一起。由测试团队执行。
17、二进制可移植性测试:一种测试可执行应用程序在不同系统平台和环境间可移植性的技术,通常用于确认是否符合应用程序二进制接口(ABI)规范。由测试团队执行。
18、边界值测试:一种软件测试技术,在这种技术中,测试用例被设计为包含边界值的代表。由质量保证测试团队执行。
19、自底向上集成测试:在自底向上集成测试中,先开发最底层的模块,然后将朝着“主”程序的其他模块逐个集成并测试。通常由测试团队执行。
20、分支测试:一种测试技术,程序源代码中的所有分支至少被测试一次。由开发人员完成。
21、广度测试:一种测试套件,用于全面检验产品功能,但不会对功能进行详细测试。由测试团队执行。
22、黑盒测试:一种软件测试方法,在不了解应用程序代码/内部结构具体细节的情况下,验证应用程序的功能。测试基于需求和功能进行。由质量保证团队执行。
23、代码驱动测试:一种测试技术,使用诸如xUnit等测试框架,通过执行单元测试来判断代码的各个部分在各种情况下是否按预期运行。由开发团队执行。
24、兼容性测试:一种测试技术,用于验证软件在特定硬件/软件/操作系统/网络环境中的运行情况。由测试团队执行。
25、对比测试:一种测试技术,将产品的优缺点与以前的版本或其他类似产品进行比较。测试人员、开发人员、产品经理或产品负责人都可执行。
26、组件测试:一种与单元测试类似但集成度更高的测试技术,它在应用程序的环境中进行测试,而不仅仅是直接测试特定方法。测试团队或开发团队均可执行。
27、配置测试:一种测试技术,用于确定硬件和软件的最小和最佳配置,以及添加或修改内存、磁盘驱动器和CPU等资源所产生的影响。通常由性能测试工程师执行。
28、条件覆盖测试:一种软件测试类型,通过使每个条件至少以各种方式分别为真和为假来执行该条件。通常由自动化测试团队执行。
29、合规性测试:一种测试类型,用于检查系统的开发是否符合标准、程序和指南。通常由提供“OGC认证合规”品牌的外部公司执行。
30、并发测试:多用户测试,旨在确定访问相同应用程序代码、模块或数据库记录所产生的影响。通常由性能工程师执行。
31、一致性测试:测试某个实现是否符合其所依据规范的过程。通常由测试团队执行。
32、上下文驱动测试:一种敏捷测试技术,提倡根据所揭示的潜在信息以及在特定时刻该信息对组织的价值,持续且创造性地评估测试机会。通常由敏捷测试团队执行。
33、转换测试:对用于将现有系统中的数据转换为可在替代系统中使用的程序或流程进行的测试。通常由质量保证团队执行。
34、判定覆盖测试:一种软件测试类型,通过将每个条件/判定设置为真或假来执行测试。通常由自动化测试团队进行。
35、破坏性测试:这种测试类型是对样本进行测试直至其失效,以便了解样本在不同载荷下的结构性能或材料特性。通常由质量保证团队执行。
36、依赖关系测试:该测试类型检查应用程序对预先存在的软件、初始状态和配置的要求,以确保其功能正常。通常由测试团队执行。
37、动态测试:软件工程中用于描述对代码动态行为进行测试的术语。通常由测试团队执行。
38、域测试:一种白盒测试技术,检查程序是否仅接受有效输入。通常由软件开发团队完成,偶尔也会由自动化测试团队执行。
39、错误处理测试:一种软件测试类型,用于确定系统正确处理错误事务的能力。通常由测试团队执行。
40、端到端测试:与系统测试类似,涉及在模拟真实使用场景中对完整的应用程序环境进行测试,例如与数据库交互、使用网络通信,或在适当情况下与其他硬件、应用程序或系统进行交互。由质量保证团队执行。
41、耐久性测试:一种测试类型,检查是否存在内存泄漏或长时间运行可能出现的其他问题。通常由性能工程师执行。
42、探索性测试:一种无计划和文档的黑盒测试技术。通常由手动测试人员执行。
43、等价类划分测试:一种软件测试技术,将软件单元的输入数据划分为多个数据分区,从中可导出测试用例。通常由质量保证团队执行。
44、故障注入测试:综合测试策略的一部分,使测试人员能够专注于被测应用程序处理异常的方式。由质量保证团队执行。
45、形式化验证测试:使用形式化数学方法,证明或证伪系统所基于的预期算法相对于特定形式规范或属性的正确性。通常由质量保证团队执行。
46、功能测试:一种黑盒测试类型,其测试用例基于被测软件组件的规范。由测试团队执行。
47、模糊测试:一种软件测试技术,向程序的输入提供无效、意外或随机的数据,是变异测试的一个特殊领域。模糊测试由测试团队执行。
48、大猩猩测试:一种软件测试技术,重点对某一特定模块进行大量测试。通常在进行全面测试时由质量保证团队执行。
49、灰盒测试:结合了黑盒和白盒测试方法:依据软件规范对软件进行测试,但同时利用对其内部工作原理的部分了解。开发团队或测试团队均可执行。
50、玻璃盒测试:与白盒测试类似,基于对应用程序代码内部逻辑的了解进行测试。由开发团队执行。
51、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、需求测试:一种测试技术,用于验证需求是否正确、完整、明确且逻辑一致,并能够根据这些需求设计出必要且充分的测试用例集。由质量保证团队执行。
83、安全测试:确定信息系统是否按预期保护数据并维持功能的过程。可由测试团队或专业的安全测试公司执行。
84、健全性测试:一种测试技术,用于判断新的软件版本是否表现良好,足以接受大规模测试。由测试团队执行。
85、场景测试:一种测试活动,基于假设的故事构建场景,帮助测试人员在测试环境中全面思考复杂问题或系统。由测试团队执行。
86、可扩展性测试:非功能测试组合的一部分,用于测试软件应用程序在用户负载、事务数量、数据量等方面的扩展能力。由性能工程师进行。
87、语句测试:一种白盒测试,满足在程序测试期间程序中的每条语句至少执行一次的标准。通常由开发团队执行。
88、静态测试:一种软件测试形式,在测试过程中实际上并不使用软件,主要检查代码、算法或文档是否合理。由编写代码的开发人员使用。
89、稳定性测试:一种测试技术,试图确定应用程序是否会崩溃。通常由性能工程师进行。
90、冒烟测试:一种测试技术,检查软件系统的所有基本组件,确保它们正常工作。通常,在软件构建完成后,测试团队会立即进行冒烟测试。
91、存储测试:一种测试类型,验证被测程序是否将数据文件存储在正确的目录中,并预留足够空间,以防止因空间不足导致意外终止。通常由测试团队执行。
92、压力测试:一种测试技术,在系统或组件达到或超出其规定要求的极限条件下对其进行评估。通常由性能工程师进行。
93、结构测试:一种白盒测试技术,考虑系统或组件的内部结构,确保每个程序语句都能实现其预期功能。通常由软件开发人员执行。
94、系统测试:对集成的硬件和软件系统进行测试的过程,以验证系统是否符合其规定要求。由测试团队在开发环境和目标环境中进行。
95、系统集成测试:测试软件系统与其他系统共存情况的测试过程。通常由测试团队执行。
96、自顶向下集成测试:一种测试技术,从系统层次结构的顶部(用户界面)开始,使用桩模块自顶向下进行测试,直至整个系统实现。由测试团队进行。
97、线程测试:自顶向下测试技术的一种变体,组件的逐步集成遵循需求子集的实现。通常由测试团队执行。
98、升级测试:一种测试技术,验证使用旧版本创建的资产是否能正常使用,且用户学习过程不会受到太大挑战。由测试团队执行。
99、单元测试:一种软件验证和确认方法,程序员通过此方法测试源代码的各个单元是否可用。通常由开发团队进行。
100、用户界面测试:一种测试类型,用于检查应用程序的用户友好程度。由测试团队执行。
101、可用性测试:一种测试技术,用于验证用户学习操作、准备输入以及解读系统或组件输出的难易程度。通常由终端用户执行。
102、容量测试:这种测试用于确认随着时间推移可能会变得庞大的任何数值(如累计计数、日志和数据文件),程序是否能够处理,且不会导致程序停止运行或以任何方式降低其运行性能。通常由性能工程师进行。
103、漏洞测试:一种与应用程序安全相关的测试类型,旨在预防可能影响应用程序完整性和稳定性的问题。可由内部测试团队执行,也可外包给专业公司。
104、白盒测试:一种基于对应用程序代码内部逻辑了解的测试技术,包括对代码语句、分支、路径、条件的覆盖等测试。由软件开发人员执行。
105、工作流测试:一种脚本化的端到端测试技术,它复制终端用户预期使用的特定工作流程。通常由测试团队进行。
原创译文
作者:Thomas Hamilton
本文分享自 AllTests软件测试 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!