什么是软件测试中的人工智能?

什么是软件测试中的人工智能?

近日,由人工智能实验室OpenAI开发的全新“对话机器人”ChatGPT在各大中外媒体平台掀起了一阵狂热之风。从正式发布到风靡全球,不过100天,用户已突破1亿,成为史上用户增长最快的应用程序。ChatGPT的功能是如此强大,以此连马斯克都认为“我们离强大到危险的 AI不远了”。

关于人工智能以及它如何改变我们的做事方式,已经说了很多。说到软件测试,人工智能的地位是什么?这篇文章强调了人工智能如何帮助实现健壮的软件测试。

人工智能如何改变软件测试的动态?

人工智能是数字市场中被过度使用的流行语之一。“AI” 让人联想到万能的超级计算机、 Siri这样的声控辅助、自动驾驶汽车以及最近风靡全球的ChatGPT。

我们习惯性将AI视为计算机程序或机器思考(自我推理)和学习(收集数据并以有益的方式修改未来行为)的能力。

正是在这个定义中,我们开始在AI对软件开发工具和技术的意义上看到一些更有意义的东西。

Part.1 软件测试自动化中的人工智能

人工智能在软件开发中的应用仍在不断发展,但与自动驾驶系统或语音辅助控制、机器翻译和机器人等更先进的工作领域相比,人工智能目前在软件自动化测试中的使用水平较低。当然,测试自动化工具已经具有人工智能效果,但它们仍旧有局限性。

AI和ML是Parasoft正在进行的研究和开发的重要领域。我们的发现将继续为我们的产品带来新的方法来集成这些技术。以下是我们利用它们的一些方法。

Part.2 使用软件测试AI提高静态分析的采用

想要使用好静态分析工具的一个难点是,我们需要管理结果中的大量警告和误报。每个软件开发团队有专门的质量要求,对于检查器或编码标准,每个团队都有自己对误报的理解。Parasoft的解决方案是应用人工智能和机器学习来确定静态分析结果的优先级,通过这种方法来改善用户体验,以及更好地使用工具。

Parasoft团队正在使用这种方法,通过分析少量结果并基于这些相关的元数据构建分类器,将静态分析工具检查出来的结果快速分类,尽可能给团队提供他们希望看到的东西,或者是他们想要抑制的东西。

通过将开发人员引向最有可能影响项目的测试结果,让他们能够快速进行定位代码和修正结果,这极大地改善了用户体验。有了这些创新,企业可以非常短的周期内减少在采用和使用静态分析技术方面的成本。

Part.3 使用人工智能自动化单元测试生成和参数化

Parasoft Jtest为例,这是我们为Java开发人员提供的软件测试解决方案,包括静态分析、单元测试、覆盖率分析和可追溯性等。在这里应用AI,我们发布了自动测试用例生成功能模块,这可以帮助开发人员利用JUnit在一开始生成测试。

Parasoft Jtest可以作为Java IDE插件,通过创建、扩展和维护单元测试的一键操作,为单元测试实践添加了有用的自动化能力。通过使用支持AI的Jtest,用户可以实现更高的代码覆盖率,同时在构建一套全面而有意义的Junit测试用例时,用户可以大量减少时间和精力。

Part.4 使用AI和ML自动化API测试生成和维护

另一个很好的例子是Parasoft SOAtest的智能API测试生成器,parasoft将机器学习添加到了各种功能组合中了。它超越了记录和回放测试这种功能,通过利用人工智能和机器学习,SOAtest可以将UI测试转换为完整的自动化API测试场景。

智能API测试生成器使用推理来了解在执行UI时进行的不同API调用中的模式和关系。通过该分析,构建了一系列API调用场景,这些API调用表示UI在进行工作期间进行的底层接口调用。

由此产生的自动化API测试更完整、可重用、可扩展和更能适应变化。

Part.5 使用机器学习自我修复Selenium测试的执行

自动验证UI层是软件测试的另一个关键组成部分,为了确保产品在投入生产前得到充分验证,绝大部分用户都需要进行UI测试。Selenium框架已被广泛用于UI测试,但用户仍在努力应对可维护性和稳定性等常见的Selenium测试挑战。这个时候,正需要AI技术,特别是机器学习可以提供很大的帮助,比如说,在运行时提供自我修复,以解决与UI测试执行相关的常见可维护性问题。

我们的产品Parasoft Selenic就提供了这个功能,您可以在定期执行Selenium测试期间“了解”您的内部数据结构。Selenic引擎监控每次运行,并捕获有关待测应用程序的Web UI内容的详细信息。Selenic采用Parasoft的专有数据建模方法,将这些信息存储在其人工智能引擎中。这个模型会不断更新,通过分析所有测试的历史执行,继续变得“智能”。

通过测试影响分析优化测试执行

测试影响分析(TIA)评估对生产代码所做更改的影响,它有助于揭示受代码更改影响的测试用例。TIA的主要好处是,它消除了在修改之后对整个代码库运行测试的需要。这样可以节省时间和成本,同时保持开发过程高效运行。

在执行手动测试期间,您一样可以从TIA技术中受益,也可以利用基于TIA的工具与CI/CD管道的集成。这可以优化自动化测试的运行,并就更改对其项目质量产生影响的问题,向开发人员提供更快的反馈。根据产品的性质和要执行的测试类型,您可以利用Parasoft的人工智能增强技术来优化执行。

结论

软件市场的爆炸性增长表明,更多的软件将继续发布,以解决我们日常业务中的问题。然而,为了使软件高效运行并尽快进入市场,软件测试中需要自动化和人工智能。这就是Parasoft的用武之地。

在Parasoft,我们提供AI驱动,ML驱动的软件测试解决方案,将质量集成到软件开发过程中,以便在SDLC早期预防、检测和修复缺陷。

想了解更多关于使用人工智能加速测试创建的信息吗?马上联系我们吧!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值