人工智能已经有了长足的发展。也许你看过最近的编舞机器人视频?这些机器人的敏捷性和衔接性很是惊人,能够如此准确和高效地完成这些有趣的动做。比起执行简单的任务,行动力有限,这是一个巨大的成就。html
但在这个精心安排的程序中 在一个很是受控的环境中 它们彻底是在作它们被编入程序的工做 它们并无真正展示出本身的智能或决策形式,来决定用音乐中的哪一段来表演什么动做。算法
它们确实拥有智能控制系统,能够提供平衡和定向,但这与根据音乐中发生的状况独立选择什么时候进行高踢或跳跃是不同的。安全
其中一些机器人还包括额外的功能,使它们可以执行某些任务,作出特定的选择,并对周围的环境作出反应。人工智能(AI)增长了自动响应外部输入和实时变化的维度。这使得机器人有可能在环境发生变化时对其进行评估,并产生适当的反应。虽然机器人领域是人工智能应用的一个典型例子,但也有许多其余应用。机器学习
人工智能已经显示出巨大优点的一个关键领域是自动化软件测试。建立的每一段代码都须要进行测试,以验证它是否符合要求并提供预期结果。工具
执行手动测试以实现这些目标是枯燥乏味和耗时的。自动化你的应用程序测试能够加速验证和确认代码的能力。单元测试
将人工智能添加到组合中,能够进一步加强流程,使发现和修复错误变得更快、更容易,即便在环境不可预测的状况下。随着软件复杂性的增长,自动化也必须进行扩展,以提供更多的功能,在工做流程中更早地识别和解决问题。学习
很明显,拥有可以根据代码或测试的变化应用决策的测试软件可使CI/CD工做流程受益,并提升DevOps团队的生产力,所以,人工智能在多种工具中找到它的方式是有意义的。测试
在以前的博客《什么是软件测试中的人工智能》中咱们曾说过,这些人工智能能力“能够审查当前的测试状态、最近的代码变化、代码覆盖率和其余指标,决定运行哪些测试,而后运行它们”,而机器学习(ML)"能够经过应用算法来加强人工智能,让工具经过收集测试产生的大量数据来自动改进"。这涵盖了不少领域!优化
这已经发展为将使用观察到的数据的决策能力归入软件测试工具,包括实时推理和学习。在AI和ML的协助下,测试变得更快、更容易左移,提供更早的缺陷补救,下降交付的风险。经过收集和结合测试数据,机器学习能够有效地更新和解释某些软件指标,显示被测应用的状态。人工智能
多年来,Parasoft已经将AI和ML的多项创新融入到多个自动化测试解决方案中,以实现更智能的测试建立和执行,跨越测试金字塔的多个层面。为此已经投入了大量的精力,让客户的测试变得更加简单。
2017年,Parasoft在Parasoft Jtest中引入了AI测试功能,以提升Java开发人员和测试人员在静态分析、单元测试、代码覆盖率和可追溯性等方面的工做效率。该工具包括JUnit的单元测试助手,以在更短的时间内实现更高的代码覆盖率。一个关键的功能是它可以建议使用存根和mocks来确保测试的代码隔离,而后自动建立这些mocks和存根来简化测试建立。
Jtest的另外一个AI功能是它可以检测没有现有测试覆盖率的代码,并肯定须要哪些参数、存根和mocks来自动建立新的测试以覆盖这些代码段。这有利于经过识别应用程序的差距来提升代码覆盖率。
AI也提升了从静态分析中获益的能力。经过根据观察到的行为对发现进行分类,并对这些发现进行优先处理,以便进一步调查。Parasoft的人工智能识别代码中的热点,同时机器学习经过观察团队与违规行为和代码库的互动,发现对开发人员重要的内容。这大大减小了人工工做,针对潜在的高风险安全漏洞或低质量代码的区域,用最相关的警告提醒开发人员。
2018年,咱们的无码API测试解决方案Parasoft SOAtest中也加入了AI和ML,使测试人员可以生成有意义的、可重用的、可维护的API测试。从UI使用中轻松生成,无需脚本。这一能力还能帮助技术含量较低的团队将测试策略扩展到UI测试以外,提升总体测试覆盖率,减小他们的学习曲线。
最近,在2019年,Parasoft Selenic被引入,以提升Selenium Web UI测试的质量和维护。Selenic中的AI会在测试运行过程当中识别定位器、等待时间等因素的问题,并自动自愈破损的测试,让执行完成。而后,它为你提供了一个推荐的修复列表,你能够经过Selenic与Eclipse和IntelliJ的IDE集成,轻松地直接融入到测试代码中。这对于更新Web UI测试流程来讲是一个巨大的节省时间的方法。
但建立和维护测试自动化只是第一步。解锁持续测试的关键是拥有一个可用、稳定、可控的测试环境。服务虚拟化使得在你的测试环境中模拟普遍的约束条件成为可能,不管是因为不可用性仍是不可控制的依赖性。Parasoft Virtualize利用AI从服务交互中开发出数据模型,而后应用ML,利用这些模型实时学习数据场景,由于它从测试环境内监控不一样的使用模式。
因为API的复杂性和用户界面的频繁变化,须要按期识别、审查和更新受变化影响的测试套件。手动完成这项工做是很是繁琐的,并且容易出现人为错误。
为了减轻UI变化,Parasoft Selenic包含了AI启发式方法,能够诊断测试失败,并生成如何修复测试的建议。利用Parasoft SOAtest的Change Advisor快速核对API变化,主动扫描API接口,寻找服务中的变化,而后肯定测试资产如何受到这些变化的影响,帮助用户轻松更新。
为了节省从新测试已经变化的代码的时间,上述Parasoft的三款产品(Jtest、SOAtest和Selenic)都加入了一个名为测试影响分析的AI驱动能力,它将你的套件中的相应测试与代码库关联起来,进行智能测试执行。
当代码发生变化时,Parasoft工具能够识别软件构建之间的变化,并将其映射到指定须要执行哪些测试来验证这些变化。
如今你能够在正确的时间执行正确的测试,更快地完成测试。谁不喜欢在更短的时间内进行更完全的测试呢?
随着繁琐和重复性的任务继续占据软件测试的主导地位,有不少机会能够将人工智能和机器学习应用到软件测试自动化中,帮助用户更快速地适应和应对现代软件开发的挑战。
做为这一领域的开创性创新者,Parasoft经过利用这些先进的方法,不断为软件测试工具增长效率和智能。Parasoft工具使用AI和ML来协助和加强你的应用程序开发和测试团队:
想要了解更多关于将AI驱动的自动化测试添加到你的软件开发工做流程中的信息?请联系我,咱们一块儿探讨你感兴趣的领域。