测试类型:
一、安装测试
大多数软件系统都有安装程序,这些程序在用于其主要目的之前是必需的。测试这些过程以实现可以使用的已安装软件系统称为安装测试。
PS:这里有一套2022最新版的软件测试全套自学教程,包含了以下内容,记得一定要下载下来:
200集视频教程
教学课件
18套项目源码
67套测试工具软件包
100个实景测试面试题
162个面试简历模板(信息完整)
https://pan.baidu.com/s/10nqKV0Vp23BSgCiCt9EqNA
提取码:3mkj
二、兼容性测试
软件故障的一个常见原因是缺乏与其他应用软件、操作系统(或操作系统版本,旧的或新的)或与原始环境有很大差异的目标环境(例如终端或打算在桌面上运行的GUI应用程序现在需要成为Web 应用程序,必须在Web 浏览器中呈现)。例如,在缺乏向后兼容性的情况下, 这可能是因为程序员仅在最新版本的目标环境上开发和测试软件,并非所有用户都在运行。这会导致意想不到的后果,即最新工作可能无法在目标环境的早期版本上运行,或者在目标环境的早期版本能够使用的较旧硬件上运行。有时可以通过主动将操作系统功能抽象到单独的程序模块或库中来解决此类问题。
三、烟雾和健全性测试
健全性测试确定进行进一步测试是否合理。
冒烟测试包括对操作软件的最小尝试,旨在确定是否有任何基本问题会阻止它完全工作。此类测试可用作构建验证测试。
四、回归测试
回归测试的重点是在发生重大代码更改后发现缺陷。具体来说,它试图发现软件回归,即退化或丢失的功能,包括重新出现的旧错误。每当以前正常工作的软件功能停止按预期工作时,就会发生这种回归。当软件的新开发部分与先前存在的代码发生冲突时,回归是程序更改的意外后果。回归测试通常是商业软件开发中最大的测试工作,由于检查了先前软件功能中的大量细节,甚至可以在开发新软件的同时使用一些旧测试用例来测试新设计的部分内容,以确保仍然支持先前的功能。
五、验收测试
验收测试可能意味着以下两件事:
1. 冒烟测试用作进一步测试之前的构建验收测试,例如,在集成或回归之前。
2. 客户通常在他们自己的硬件上的实验室环境中执行的验收测试称为用户验收测试(UAT)。验收测试可以作为任何两个开发阶段之间交接过程的一部分来执行。
六、Alpha 测试
Alpha 测试是由潜在用户/客户或开发人员站点上的独立测试团队进行的模拟或实际操作测试。Alpha 测试通常用于现成软件,作为软件进入 Beta 测试之前的内部验收测试的一种形式。
七、Beta测试
Beta 测试是在 alpha 测试之后进行的,可以被认为是外部用户验收测试的一种形式。该软件的版本发布给编程团队之外的有限受众。该软件发布给人群,以便进一步测试可以确保产品几乎没有故障或错误。Beta 版本可以向公众开放,以将反馈字段增加到最大数量的未来用户,并在更长甚至无限期内更早地交付价值。
八、功能测试与非功能测试
功能测试是指验证代码的特定操作或功能的活动。这些通常可以在代码需求文档中找到,尽管一些开发方法来自用例或用户故事。功能测试倾向于回答“用户能做到这一点”或“这个特定功能是否有效”的问题。
非功能测试是指软件中可能与特定功能或用户操作无关的方面,例如可伸缩性或其他性能、特定约束下的行为或安全性。测试将确定断点,即极端的可扩展性或性能导致执行不稳定的点。非功能性需求往往是那些反映产品质量的需求,特别是在其用户适用性观点的背景下。
九、持续测试
持续测试是作为软件交付管道的一部分执行自动化测试的过程,以获得与软件发布候选相关的业务风险的即时反馈。持续测试包括功能需求和非功能需求的验证;测试的范围从验证自下而上的需求或用户故事扩展到评估与总体业务目标相关的系统需求。
十、破坏性测试
破坏性测试试图导致软件或子系统失败。它验证软件即使在收到无效或意外输入时也能正常运行,从而建立输入验证和错误管理例程的稳健性。 模糊测试形式的软件故障注入是故障测试的一个例子。软件故障注入页面链接各种商用非功能测试工具;还有许多可以执行破坏性测试的开源和免费软件工具。
十一、软件性能测试
通常执行性能测试以确定系统或子系统在特定工作负载下的响应性和稳定性方面如何执行。它还可以用于调查、测量、验证或验证系统的其他质量属性,例如可扩展性、可靠性和资源使用情况。
负载测试主要关注测试系统是否可以在特定负载下继续运行,无论是大量数据还是大量用户。这通常被称为软件可扩展性。作为非功能性活动执行时的相关负载测试活动通常称为耐久性测试。批量测试是一种测试软件功能的方法,即使某些组件的大小急剧增加。压力测试是一种在意外或罕见工作负载下测试可靠性的方法。稳定性测试检查软件是否可以在可接受的时间段内或以上持续运行良好。
关于性能测试的具体目标是什么,几乎没有一致意见。术语负载测试、性能测试、可伸缩性测试和容量测试通常可以互换使用。
实时软件系统具有严格的时序约束。为了测试是否满足时序约束,使用实时测试。
十二、可用性测试
可用性测试是检查用户界面是否易于使用和理解。它主要关注应用程序的使用。这不是一种可以自动化的测试;需要实际的人类用户,由熟练的UI 设计师监控。
十三、可访问性测试
可访问性测试可能包括符合以下标准:
· 1990 年美国残疾人法案
· 1973 年康复法第 508 条修正案
· 万维网联盟(W3C)的无障碍网页倡议(WAI )
十四、安全测试
安全测试对于处理机密数据以防止黑客入侵系统的软件至关重要。
国际标准化组织 (ISO) 将其定义为“一种测试类型,用于评估测试项目及相关数据和信息受到保护的程度,以使未经授权的人员或系统无法使用、读取或修改它们,并且授权人员或系统不会被拒绝访问它们。”
十五、国际化和本地化测试
国际化和本地化测试验证了该软件可以用于不同的语言和地理区域。伪本地化过程用于测试应用程序被翻译成另一种语言的能力,并且更容易识别本地化过程何时可能会在产品中引入新的错误。
十六、开发测试
开发测试是一个软件开发过程,涉及同步应用广泛的缺陷预防和检测策略,以降低软件开发风险、时间和成本。它由软件开发人员或工程师在软件开发生命周期的构建阶段执行。开发测试旨在在将代码提升到其他测试之前消除构造错误;该策略旨在提高最终软件的质量以及整个开发过程的效率。
根据组织对软件开发的期望,开发测试可能包括静态代码分析、数据流分析、度量分析、同行代码审查、单元测试、代码覆盖分析、可追溯性和其他软件测试实践。
十七、A/B 测试
A/B 测试是一种运行受控实验的方法,以确定提议的更改是否比当前方法更有效。客户被引导至功能的当前版本(控制)或修改版本(处理),并收集数据以确定哪个版本更能实现预期结果。
十八、并发测试
并发或并发测试通常在正常使用条件下评估使用并发计算的软件和系统的行为和性能。这种类型的测试将暴露的典型问题是死锁、竞争条件和共享内存/资源处理问题。
十九、一致性测试或类型测试
在软件测试中,一致性测试验证产品是否按照其指定的标准执行。例如,编译器经过广泛测试以确定它们是否符合该语言的公认标准。
二十、输出比较测试
创建显示预期输出,无论是作为文本的数据比较还是 UI 的屏幕截图, 有时称为快照测试或黄金大师测试,与许多其他形式的测试不同,这不能自动检测故障,而是需要人工评估不一致的输出。
二十一、属性测试
属性测试是一种测试技术,不是断言特定的输入会产生特定的预期输出,而是从业者随机生成许多输入,在所有输入上运行程序,并断言某些“属性”的真实性,这些“属性”对于每一对都应该是真实的输入和输出。例如,排序函数的每个输入都应具有与其输出相同的长度。排序函数的每个输出都应该是一个单调递增的列表。
二十二、变质测试
变形测试(MT)是一种基于属性的软件测试技术,是解决测试预言问题和测试用例生成问题的有效方法。测试预言问题是确定所选测试用例的预期结果或确定实际输出是否与预期结果一致的困难。
二十三、录像机测试
VCR 测试,也称为“回放测试”或“记录/重放”测试,是一种用于提高回归测试的可靠性和速度的测试技术,该测试涉及通信缓慢或不可靠的组件,通常是第三方 API超出测试人员的控制范围。它涉及对系统与外部组件的交互进行记录(“磁带”),然后重放记录的交互,以替代在后续运行测试时与外部系统进行通信。