概括
生成式人工智能正在通过自动创建测试用例、适应软件变化和提高测试效率来改变测试实践。这凸显了人工智能在提高测试覆盖率和准确性方面日益重要的作用,使测试自动化更具适应性和智能性。它有可能改变软件测试的方式,最终带来更高质量的软件产品。
一想到人工智能,我就想起不久前,人工智能还只是一个未来主义的概念,是我们在科幻电影中看到并在书中读到的东西。我当时并不知道人工智能很快就会成为我日常生活中不可或缺的一部分,重塑我的工作和决策方式。
作为软件测试自动化主管,我见证了测试领域的巨变。但人工智能的引入真正彻底改变了我的工作方式。
1.生成式人工智能出现之前
自动化测试是整个软件开发生命周期中非常宝贵的工具,它能够快速执行测试用例并减少回归测试所需的时间和精力。自动化框架和命令集在确保软件功能、检测缺陷和维护产品质量方面发挥着核心作用。然而,具有神经网络和深度学习模型的新 AI 工具不断涌现,其中大多数都是非常有效的工具,可以显著改善测试。
但这些传统的测试方法有其自身的局限性。让我们深入探讨一下其中的一些限制:
- 维护成本:自动化脚本需要随着软件的发展而不断维护,这增加了脚本维护的成本和工作量。
- 测试范围有限:自动化测试侧重于预定义测试,这些测试通常难以适应软件环境中的动态变化。
- 复杂的 UI 测试:用户界面 (UI) 测试的广泛自动化可能很复杂,导致测试覆盖范围存在差距。
生成式人工智能可以帮助克服其中一些限制,但也可能带来新的挑战。
2.生成式人工智能
生成式人工智能是一种深度学习,可以生成与原始数据或内容相似的新数据或内容。例如,生成式人工智能可以创建现实中不存在的面部、动物或风景的逼真图像,以及创建模仿特定类型风格和语气的文本。生成式人工智能使用各种技术,例如生成对抗网络 (GAN)、变分自动编码器 (VAE) 和转换器,来学习数据的模式和特征,然后生成新样本。
近年来,生成式人工智能软件测试领域发生了重大变化。传统上,自动化测试一直是软件质量保证的基石,可确保软件功能验证的效率和准确性。然而,生成式人工智能有望改变自动化测试格局,引入新的方法和功能,有望改变软件保证方式:
- 测试用例生成:生成式人工智能可以通过学习应用程序的工作方式、识别边缘情况和创建人类可能错过的测试场景来动态生成测试用例。
- 自我纠正:使用AI算法的测试自动化工具可以适应软件变化,并在测试定位器发生变化时更新测试定位器,从而减少测试人员的维护。
- 改进的 UI 测试:在学习 UI 之后,生成式 AI 可以模拟人类与 UI 的交互。
- 更大的数据集:生成式人工智能分析大型数据集并生成具有不同组合的测试数据,发现细微的缺陷。
- 左移测试:生成式人工智能有助于在开发过程的早期发现错误,从而减少后期调试的成本和工作量。
然而,在采用任何生成式 AI 模型之前,必须考虑一些挑战和因素:
- 数据质量:模型需要高质量的训练数据才能有效运行——这里适用的是垃圾输入和垃圾输出。
- 昂贵:机器学习和深度学习是一项昂贵的技术。据估计,自诞生以来,开发大型人工智能模型所需的资源大约增加了一倍。
- 可解释性:理解人工智能生成的测试用例和结果可能具有挑战性。确保透明度和可解释性对于信任和问责至关重要。
在对传统自动化的弊端以及生成式 AI 的优势和挑战进行了如此多的讨论之后,测试方法和学科并没有消失。事实上,它创造了构建和学习新技能、工具和角色的新机会。优化和加快速度的要求永远不会消失——ChatGPT 和生成式 AI 可以帮助我们自动化测试人员做到这一点。
下面是一个示例,清楚地说明了 ChatGPT 或生成式 AI 如何在一定程度上帮助自动化工程师,但为了完成工作,工程师需要使用他们的技能来微调生成式 AI 工具提供的解决方案。
假设你想要测试 Web 应用程序及其基于浏览器的应用程序的 UI,并且决定使用 chatGPT 来帮助生成自动化脚本,并向 ChatGPT 发送以下消息:
“生成 selenium java 脚本访问” Amazon.com并选择“医疗保健”选项,然后单击“在亚马逊上查看所有健康”。
以下是 ChatGPT 的回应:
图片 1
该脚本已经很接近了,但有一个主要问题:该脚本试图点击一个实际上不可点击的元素,因此当我们按原样运行该脚本时,它将失败。自动化工程师可以轻松识别此问题。还有更多需要人工干预和专业知识的例子。因此,在这种情况下,生成式人工智能可能能够完成解决问题所需工作的 80%,但其余的微调工作需要特定领域的知识和专业知识。
3.结论
生成式人工智能正在快速发展,但目前还无法取代自动化工程师。随着生成式人工智能的进一步发展,自动化工程师也需要改变他们的测试实践,利用这项技术以更高效的方式交付无错误的产品。ChatGPT 或生成式人工智能最终会取代自动化工程师的工作吗?我们不知道,但我们知道的一件事是人工智能将永远改变测试格局。
欢迎扫码关注公号,讨论交流~