软件测试不是一回事。相反,它有许多不同的变体,你可以根据几个标准对其进行分类。
例如,你可以将测试类型分类为手动或自动测试。当涉及到自动化种类时,测试可以是基于代码的或无代码的——你还可以使用混合方法来达到两全其美。
PS:这里有一套2022最新版的软件测试全套自学教程,包含了以下内容,记得一定要下载下来:
▶ 200集视频教程
▶ 教学课件
▶ 18套项目源码
▶ 67套测试工具软件包
▶ 100个实景测试面试题
▶ 162个面试简历模板(信息完整)
https://pan.baidu.com/s/10nqKV0Vp23BSgCiCt9EqNA
提取码:3mkj
测试也可以根据他们对被测系统的内部实现的了解程度进行分类。关于这个标准,我们可以将测试分为白盒、黑盒或灰盒。我们还可以将测试分为功能测试和非功能测试,这取决于它们是否验证了应用程序的业务需求。
功能测试
功能测试验证应用程序或软件的每个功能。测试人员根据一组指定的要求验证功能。在软件或应用程序的源代码并不起主要作用。测试软件的行为是主要关注点。
不同类型的功能测试包括:
- 单元测试:在单元测试中,测试人员检查各个软件组件。目的是测试组件的行为是否符合要求。
- 集成测试:集成测试涉及在将单个组件或模块组合成一个组后对其进行测试。
- 系统测试:在这里,测试人员执行测试用例,以验证集成和完整软件的合理性以及规范。
- 健全性测试:测试与程序工作相关的逻辑推理。
- 冒烟测试:冒烟测试测试简单和基本的功能,例如用户是否能够登录或注销。
- 接口测试:这些测试检查两个软件系统之间的通信是否正确执行。
- 回归测试:这可能是最重要的测试阶段之一。在这里,整个应用程序的旧测试用例在实现新功能后执行。
- Beta/验收测试:在这里,目标用户试用产品并报告错误。
非功能测试
非功能测试考虑可靠性、可用性和性能等参数。非功能测试可能是检查有多少用户可以同时登录系统。
非功能测试类型包括:
- 性能测试:在所需的工作负载下测试应用程序的性能或速度。
- 负载测试:这将测试应用程序在巨大工作负载下的行为。如果你正在测试一个网站,负载测试会检查该网站在高流量下的功能和性能。
- 压力测试:压力测试通过评估软件是否超出正常运行范围来确定软件的稳健性。
- 体积测试:这通过将数据库加载到增加的数据量来测试系统的性能。
- 安全测试:在这里,执行测试用例来检查系统是否受到来自内部和外部来源的突然或蓄意攻击的保护。
- 兼容性测试:执行测试用例以检查应用程序是否与不同的环境兼容。例如,如果你正在测试 Web 应用程序,则兼容性测试涉及网站在不同浏览器或设备上的工作方式。
- 安装测试:这些测试检查产品在安装后是否按预期工作。
- 恢复测试:在这里,测试人员确定应用程序从硬件崩溃和故障中恢复的能力。
- 可靠性测试:此过程检查应用程序可以在特定时间范围内执行特定任务而不会失败的位置。例如,假设你正在测试一个加密货币挖掘应用程序。应用程序可以连续挖掘八小时而不会崩溃的场景可能是你在可靠性测试期间寻找的东西。
- 可用性测试:可用性测试探索最终用户在学习、操作和准备输入和输出方面的易用性。
- 合规性测试:这决定了系统是否符合外部和内部标准。
- 本地化测试:在这里,测试人员根据当地或文化设置和环境检查产品的行为。
根据你对测试产品所了解的信息量,软件测试可以分为不同的类型:黑盒测试、白盒测试和灰盒测试。
黑盒测试
在这种类型的测试中,你对产品如何构建的信息量最少。你不了解产品的结构、代码或逻辑。你将和最终用户一样使用该产品。因为在黑盒测试中,你将拥有与你的客户相同数量的信息,它用于功能测试。
这种类型的测试只能在代码执行时发生。使用动态测试。动态测试是你必须在代码执行过程中执行代码并测试产品的类型。它主要用于检查它启动和运行时的情况以及用户将如何体验它。
白盒测试
在白盒测试中,你拥有有关产品的大部分信息。白盒测试主要用来优化代码。在这种类型的测试中发现代码效率低下、编码实践不佳、不必要的代码行。大多数代码优化和安全修复都是白盒测试的结果。
白盒测试并不主要关注 Web 应用程序的工作方式。它更侧重于如何使它变得更好。你可以对你的产品进行大量改进,但要使其完美的最后几个步骤是困难的。在没有任何问题之前,它不可能是完美的。
使其完美需要彻底检查。由于执行中的产品无法为你提供所有见解,因此你必须在未执行的情况下检查代码。这称为静态测试。
静态测试也用于开发的早期阶段,它很简单,你不需要等待产品部署。
灰盒测试
在这种类型的测试中,你可以获得有关产品的部分信息。这种类型的测试有助于找出用户不知道的缺陷。
举一个非常简单的例子,如果你设计了一个元素有蓝色阴影但它有绿色阴影。用户不会知道这是一个bug,因为他们认为这就是它应该的样子。但是你因为对产品的了解会让你识别到这种缺陷。