第 4 章 自动测试和质量保证 自动测试和质量保证
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
测试和质量保证(QA)通常是新软件代码部署到生产环境之前必须通过的最后一道关卡。它们的最终目标是发现可能已经通过代码审查(如上一章所述)的代价高昂的错误或其他突出问题,以避免将其投入生产。
质量保证流程发生在代码开发、审查和接受合并到代码库之后。测试和质量保证这两个概念偶尔会被混淆,这可能是因为在不同的公司,传统上所涉及的利益相关者要么被称为测试工程师,要么被称为质量保证工程师。不过,无论称谓如何,他们通常负责本章所涉及的流程。
通常情况下,质量保证流程包括在与生产环境和用户行为密切匹配的环境中进行手动和/或自动测试,以捕捉代码审查过程中漏掉的任何错误。
如果在测试/质量保证过程中发现了这些错误,功能就会退回到开发状态。负责实施的原软件工程师必须在将功能再次推送至审查和质量保证之前修复这些问题。这些回归循环旨在保证最终部署到生产中的代码确实没有错误。
这些流程对任何软件开发团队都至关重要。我们可以将它们分为两大类:自动和手动。
- 自动测试
-
自动测试采用专门的软件工具,对应用程序执行预先设定的测试。这种方法对于重复测试和回归测试非常有效,因为它减少了验证新代码变更所需的时间。自动化可确保一致性和精确性,将人为错误的风险降至最低,并实现广泛的测试覆盖范围。自动化测试可以全天候运行,提供快速反馈,,从而实现持续集成和持续交付(CI/CD)管道。虽然最初设置自动测试和维护自动测试都需要付出努力,但长期的好处包括加快发布周期、提高准确性以及快速检测和解决缺陷的能力。
- 手动测试
-
在人工测试中,人工测试人员在没有自动化工具的帮助下,一丝不苟地执行测试用例。他们模拟最终用户的行为来识别缺陷,确保软件在真实世界中的行为符合预期。这种方法允许细致入微的理解和适应性,往往能捕捉到自动化脚本可能会遗漏的问题,如用户界面故障和可用性问题。虽然人工测试可能会耗费大量时间和人力,但它对于探索性测试仍然至关重要,因为在探索性测试中,创造力和直觉对于发现意想不到的错误和确保无缝的用户体验至关重要。
质量保证从本质上来说是一个细致、谨慎的过程,这往往使其成为延迟功能上线的瓶颈。因此,市场上出现了一些人工智能工具,它们建议加快这一流程的不同部分。本章将重点介绍其中的两种工具。
人工智能正在改变自动化测试的方方面面。例如,直到最近,自动化测试还需要编写复杂的脚本。但现在,许多自动化测试工具都提供了无需编写任何代码就能创建测试的方法。使用简单明了的英语,您就可以创建自动测试,检查软件应用程序中的每个组件和功能。人工智能工具也简化了可视化测试,可自动检测可视化错误,确保用户界面的外观和运行符合预期。这些改进使测试过程更加有效和高效,从而使测试人员能够专注于提高软件的整体质量。
人工智能测试工具的类型
除了自动/手动之分,我们还可以根据软件测试和质量保证人工智能工具在测试生命周期中所针对的特定领域,将其分为功能性和非功能性两类。
- 功能性人工智能测试工具
-
顾名思义,功能测试工具验证软件应用程序是否准确执行了所有预期功能。这些工具侧重于系统的功能。它们的目标是测试应用程序的内部组件是否提供了预期的输出。例如,功能测试工具负责单元测试、集成测试、可视化测试、回归测试和烟雾测试。
- 非功能性人工智能测试工具
-
非功能性人工智能测试工具评估的是软件在功能行为之外的其他方面,如性能、兼容性、可用性、安全性和可靠性。这些工具侧重于评估软件的 ...