fbpx

“这是我见过的机器学习应用中最震撼人心的一次”。

Instagram联合创始人迈克-克里格(Mike Krieger)。

 

迈克-克里格的话并非夸夸其谈。 虽然人工智能在数据分析和洞察力方面能做一些了不起的事情,但 GitHub Copilot 能为世界各地的产品开发人员提供潜在的实用性,因而彻底改变了游戏规则。

编码辅助驾驶员和生成式人工智能可帮助团队获得巨大收益,例如将软件开发生命周期加速到迄今为止难以想象的速度。 然而,该技术对 RPA 和软件测试的影响是这一神奇技术最令人兴奋的两个前沿领域。

在这篇文章中,我们将探讨编码辅助驾驶员和生成式人工智能如何改变当今的软件测试和 RPA 世界,然后再探讨它们对未来技术的影响。

 

机器人中的副驾驶员和生成式人工智能

软件开发:软件开发入门

软件开发中的 Copilots 和生成式人工智能--入门指南

在软件开发领域,生成式人工智能和协同编码技术相对较新。 在讨论他们对空间的影响之前,我们不妨先了解一下他们的背景和工作方式。

 

1.人工智能驱动的自动编码器

 

大型语言模型(LLM)在过去几年中取得了显著进步。 随着数据集的规模和计算能力呈指数级增长,输出的质量也随之提高。

许多垂直行业都可以从法律硕士课程中受益。 其中写得最多的是生成文本、图像、视频和其他形式的媒体。 不过,虽然这些用例令人印象深刻,但它们对开发人员的影响可能更有趣。

市场上有很多 LLM 自动编码器。 不过,GitHub CoPilot 可能是最知名、最成功的产品。 其中很大一部分原因是,它是在 GitHub 存储库中训练出来的。 它可以访问数百万个开源代码示例、最佳实践、应用架构等,并从中学习,从而提供高质量和多功能的输出。

 

2.编码副驾驶员如何工作?

 

要想了解代码共享驾驶员的工作原理,最简单的方法之一就是了解游戏中的领先产品–GitHub CoPilot。 该应用程序基于 OpenAi 的 ChatGPT-3 模型。

与 ChatGPT 和类似的 LLM 一样,CoPilot 基于数十亿个参数。 在开发 ChatGPT-3 的过程中,OpenAI 开始建立一个名为 OpenAI Codex 的专用编码程序。 微软购买了该产品的独家使用权。

不过,关键在于微软已经拥有了 GitHub。 如果你是一名程序员,你一定对 GitHub 了如指掌。 基本上,它是一个基于网络的平台,用于软件开发项目中的版本控制和协作。 他们在 GitHub 库中培训了 OpenAI Codex,该库包含数百万行开源公共代码。

CoPilot 使用机器学习技术查找代码行之间的模式和关系。 就像 ChatGPT 一样,它可以查看一个单词或一行,并根据大量历史数据计算出下一个单词或一行出现的概率。

人工智能辅助驾驶员的强大之处在于能在开发人员编辑代码时提出代码片段建议。 把它想象成编码的超级自动完成工具。 当编码员输入一行代码时,LLM 会将代码的开头与庞大的以前项目库进行比较。 在此基础上,它提出了概率行和新代码行。

这样做的好处显而易见,开发人员可以通过自动完成功能节省大量时间。 它提高了工作效率,在许多情况下还提高了代码的准确性。

 

3.用于编码和开发的生成式人工智能如何?

 

从 CoPilot 的历史可以看出,生成式人工智能和 Copilots 有着相似的渊源。 这两种技术都是利用统计概率,根据估算的信息预测用户的需求。

不过,协同驾驶软件与生成式人工智能的最大区别在于,后者是基于提示的。 简而言之,这意味着用户向机器输入一组书面指令,机器就会输出内容。 使用过 ChatGPT 或类似应用程序的人都知道,输出的形式可以是文本、图像、视频或代码。

因此,虽然编码员用于实现自动编码的方法各不相同,但我们可以将它们归入人工智能辅助自动编码或生成式编码的类似范畴。

 

软件测试的演变

软件测试的演变

软件测试反应迅速、不断发展。 在几十年的时间里,它已经发生了变化和变形,以满足新的要求和利用技术的进步。

 

1.人工测试:

早期的软件测试包括人工测试。 这种测试既昂贵又耗时,因为它要求质量保证专家通过开发一系列测试用例、运行并记录结果、安排修复和重复流程,对软件进行细致的检查。

确保这些测试涵盖所有可能的场景和情况是一项重大挑战,再加上所涉及的时间和成本,人工测试是一项资源密集型工作。 此外,它还极易受到人为错误的影响,而有限的分发选项又加剧了这种影响,这意味着任何未被发现的错误都很难迅速得到修补。

 

2.脚本测试:

 

脚本化测试代表着质量保证界向前迈进了一大步。 开发人员能够编写自动测试软件的程序,而不是手动查看代码和测试场景。 这样做的最大好处是提高了测试效率,减少了人为错误。 然而,要做到这一点,需要熟练、精确和耗时的规划和编码,以确保全面覆盖。

 

3.测试自动化:

 

测试自动化是测试的下一个发展阶段。 像 ZAPTEST 这样的工具能够为编码人员提供脚本测试的所有优点,但却没有代码界面。 同样,这样做的主要好处是节省时间、可重复使用和适应性强的测试、用户界面和应用程序接口测试以及跨平台和跨设备测试。

 

IS YOUR COMPANY IN NEED OF

ENTERPRISE LEVEL

TASK-AGNOSTIC SOFTWARE AUTOMATION?

4.数据驱动测试:

 

数据驱动测试是测试处理各种数据集的软件问题的解决方案。 同样,这也是一种测试自动化形式,但这种方法涉及创建测试脚本并针对指定的数据集运行这些脚本。 这种类型的测试使开发人员能够更快地工作、隔离测试并减少重复测试用例的时间。

 

5.生成式人工智能测试:

 

生成式人工智能测试是软件测试领域的最新创新。 通过使用 LLM,质量保证团队可以创建测试用例和测试数据,帮助加快测试流程。 这些测试用例具有高度灵活性和可编辑性,可帮助开发人员重复使用和重新利用测试,并大大增加测试范围。

 

目前使用的副驾驶员和

软件测试和 RPA 中的生成式人工智能

协同驾驶和生成式人工智能在软件测试和 RPA 中的应用现状

生成式人工智能和辅助驾驶员对软件测试产生了巨大影响。 不过,这些工具并没有完全取代编码人员,而是帮助增强了测试人员的能力。 简而言之,它们能帮助开发人员更快、更高效地完成测试,并在许多情况下提高测试质量。

来自 2023 年的
2023 年 Stack Overflow 开发人员调查
对当今软件开发界使用人工智能工具的情况提出了一些见解。 调查中最有趣的部分之一是,虽然略多于半数的开发人员表示他们对用于软件测试的人工智能工具感兴趣,但只有不到 3% 的人表示他们信任这些工具。 此外,每 4 人中只有 1 人表示目前正在使用人工智能工具进行软件测试。

这些统计数据的有趣之处在于,它们表明人工智能工具的使用尚未普及,早期采用者仍能获得优势。

 

1.软件测试和 RPA 中的 Copilot 和 Generative AI 用例

 

Copilots 和生成式人工智能正在影响软件开发的各个领域。 以下是该技术帮助进行软件测试和 RPA 的几种方法。

 

需求分析

需求分析是软件开发生命周期的关键部分。 这一过程包括了解利益相关者的需求以及构建软件所需的各种功能。 生成式人工智能可以提出新的想法和观点,帮助团队进行构思。

 

测试计划

一旦充分了解了测试要求,质量保证团队就需要将事情分解成一个时间表,以确保足够的测试覆盖率。 这类工作需要专业知识和经验,但生成式人工智能可以通过示例和指南为团队提供支持,并针对他们的独特需求推荐特定的工具和最佳实践。

 

创建测试用例

质量保证团队可以使用 LLM 分析代码、用户需求和软件规格,以了解系统背后的潜在关系。 一旦人工智能掌握了软件的输入、输出和预期行为,它就可以开始构建测试用例,对软件进行测试。

这样做的好处不仅仅是节省时间和人工编码。 人工智能测试用例创建还能实现更全面的覆盖,因为它可以探索质量保证工程师可能不会考虑的领域,从而实现更可靠的构建。

 

查找和解决错误

机器学习可让质量保证专业人员大大缩短定位和解决错误所需的时间。 在软件测试中,很多错误都很容易找到。 然而,在许多情况下,这是一个费力费时的过程。 生成式人工智能只需人工的一小部分时间就能完成检查,并帮助突出显示最顽固的错误。 此外,这些人工智能工具还能解决它们发现的错误,为质量保证团队节省无尽的时间。

 

用户界面测试

生成式人工智能工具可以模拟一系列用户行为以及与软件系统的交互。 这些方法可以让开发团队确信,他们的界面可以处理各种人机交互用途。 更重要的是,生成式人工智能还能分析用户界面数据和热图,并就如何改进用户界面提出建议,让用户界面更加友好。

 

副驾驶员和生成式人工智能的未来

在软件测试和 RPA 中

软件测试和 RPA 中的副驾驶员和生成式人工智能的未来

虽然目前在软件自动化中使用协同驾驶和生成式人工智能已经令人兴奋,但未来的前景更加广阔。

copilot 和生成式人工智能的未来取决于对产品的改进。 普渡大学最近进行了一项研究,题为 谁的回答更好? 深入分析软件工程问题的 ChatGPT 和 Stack Overflow 答案 强调了生成式人工智能模型的一些局限性。

研究人员为 ChatGPT 提供了 500 多个来自 Stack Overflow 的问题。 人工智能工具的回答有一半以上是不准确的。 值得注意的是,研究人员注意到的一个最重要的问题是,人工智能失败的最常见原因是没有正确理解问题。 这一细节凸显了及时工程在生成式人工智能中的重要性。

此外,谷歌和亚马逊今年都进行了独立测试,以考察生成式人工智能工具在面试问题设置中的质量。 在这两种情况下,该工具都能很好地回答测试问题,从而获得了职位。
美国有线电视新闻网

商业内幕
分别是

因此,很明显,我们正处于这项技术的潜力阶段,但有些小问题需要解决。 近年来,这些工具的规模不断扩大,使我们有信心达到所需的水平,而且很可能提前达到。

现在,我们可以看看这些技术将在哪些领域影响软件开发测试的未来。

 

1.超自动化

 

超自动化描述了企业发展过程中的一个终点,在这个终点上,所有可以自动化的流程都将实现自动化。 这是一种高度相互关联的提高生产力的整体方法。

就软件开发而言,不难想象一个对业务流程要求进行监督的集中式系统。 该系统将了解并确定需求和效率,并不断确定需要通过技术加以改进的领域。

随着企业的发展,这些集中式系统将利用生成式人工智能来构建应用程序,自动解决瓶颈和低效问题,或将特定工作推送给工程师完成。

 

2.设计软件架构

 

有了充足的数据,人工智能工具就能了解软件架构的最佳实践,并找到改进这些设计的方法,从而实现最高效率。 机器学习的目的在于发现人类思维无法发现的模式和关系。

如果人工智能工具对各种应用有足够的了解,我们就可以指示它们根据新的需求调整以前的架构,从而实现更高效的构建,甚至是一些原本不会被考虑的想法。

 

3.遗留系统的现代化

 

虽然没有一款软件是完美无缺的,但仍有许多工具在工作中表现出色,并深深嵌入公司的基础设施中,难以取代。 调整这些系统可能是一件麻烦事,尤其是如果这些系统是使用已经过时的软件代码编写的。

未来,生成式人工智能工具将能够把这些代码转换成时下流行的语言,使团队能够保留其传统系统,并在许多情况下对其进行改进。

 

4.加强低代码和无代码开发

 

通过生成式人工智能工具进行自动化软件测试所面临的挑战之一,就是编码人员缺乏验证输出结果的知识和经验。

人工智能辅助驾驶员将通过提出更好的建议,帮助增强低代码工具,从而开发出强大的应用程序。 先进的测试工具将允许人类操作员自由发挥创造力,同时不断验证他们的工作,并为非技术专业人员构建所需的应用程序敞开大门。

 

生成式人工智能在软件测试中的优势

软件测试自动化和 RPA(机器人流程自动化)的提示工程

使用生成式人工智能进行软件测试有很多好处,对于希望加快工作速度但又不影响质量的开发团队来说,这是一个很有吸引力的选择。

 

1.加快软件开发生命周期

 

为了确保软件和新功能能及时推向市场,开发人员一直面临着长时间工作的压力。 虽然敏捷/DevOps 方法确保了开发效率的提高,但仍有个别开发阶段需要进一步简化。

生成式人工智能工具允许测试团队处理从生成原型到用户界面测试的各个 SDLC 阶段。

 

2.全面的错误检测

 

人工智能在软件测试中最强大的应用之一来自于该技术比较大型数据集的能力。 ML 工具可以分析大量数据集(包括代码),从而建立信息库和预期模型。

当开发人员提交代码时,他们可以将代码与这些模型进行比较,这样可以突出显示意外情况、依赖性和漏洞,从而在整个开发过程中改进代码。

 

3.提高测试覆盖率

 

机器学习工具旨在分析和理解大量数据集。 应用于软件测试时,它能让团队扩大软件测试的范围。 这样做的好处不仅仅是省去了人力以节省开支,人工智能还带来了一种更全面的测试类型,可以在一系列复杂的场景中改进错误检测。

 

4.降低成本

 

与雇用一个质量保证工程师团队并用他们来完成重复而耗时的软件测试任务相比,生成式人工智能和 RPA 的速度更快,成本效益更高。

随着软件开发领域的竞争日趋激烈,如何在预算范围内交付优质、耐用的产品变得越来越重要。 生成式人工智能工具和协同驾驶员可以减少对工程师的依赖,让他们执行价值驱动型工作,从而减少臃肿的构建。

 

生成式人工智能工具是否意味着终结

人类软件工程师?

生成式人工智能工具是否意味着人类软件工程师的终结?

尽管自动化工具的好处显而易见,但任何自动化工具都会让工人对自己的未来产生一定程度的焦虑。 虽然这是正常的反应,但生成式人工智能的速度和范围意味着人们的担忧比往常更加广泛。 虽然这些工具有能力自动完成许多工作,但它们无法完成软件工程师的所有任务。 了解技术的能力及其局限性对工程师和领导者来说至关重要。

人们需要记住的第一件事是,由人工智能驱动的测试自动化工具在市场上已经存在了很长时间。 不过,生成式人工智能的用户友好性确实使其能够进一步灵活运用。

我们首先要考虑的一点是,生成式人工智能最适用于可验证的输出结果。 这是一个关键点。 法学硕士的培训性质意味着他们会尽最大努力给你一个答案,即使这偶尔意味着 “幻觉 “事实、参考文献和论据。

现在,如果你有足够的编码知识,就能阅读和验证生成式人工智能输出的任何文本,并捕捉潜在的错误。 如果你是一个使用生成式人工智能来代替编码的公民程序员,你就不可能发现这些错误。

因此,从这个角度来看,技术熟练的工程师仍将是软件开发生态系统的重要组成部分。 他们仍需进行监督和实际测试。

生成式人工智能在软件测试方面的另一个局限涉及移动测试。 例如,ChatGPT 就是测试网站用户界面的不错选择。 不过,它无法访问不同的移动设备。 由于市场上有如此多不同的手机和型号,它落后于当前的测试自动化软件,如 ZAPTEST。 这个问题也不是一个小障碍。 超过
一半的互联网使用来自手机
而且这一数字还在逐年增加。

因此,虽然生成式人工智能将取代开发人员的许多工作,但如果不对测试基础设施和验证输出的能力进行巨大变革,它也不会让这些专业人员过时。

 

最后的想法

 

软件测试和 RPA 都在不断改进。 随着新技术和新方法的出现,这两个学科都吸收了最佳实践,以帮助质量保证团队提供更快、更全面的测试,而价格只是人工测试的一小部分。

虽然改进测试范围、减少人为错误和成本是人工智能驱动测试的一些更明显的优势,但它也有助于团队采用持续集成和部署管道(CI/CD)方法。

消费者的期望和竞争比以往任何时候都要激烈,生成式人工智能为团队提供了一种在不影响质量的前提下提供快速高效测试的方法。

Download post as PDF

Alex Zap Chernyak

Alex Zap Chernyak

Founder and CEO of ZAPTEST, with 20 years of experience in Software Automation for Testing + RPA processes, and application development. Read Alex Zap Chernyak's full executive profile on Forbes.

Get PDF-file of this post

Virtual Expert

ZAPTEST

ZAPTEST Logo