AI 日报

生产式AI驱动的主机自动化测试

  • By 51ITO
  • Mar 01, 2024 - 2 min read



译者 | 陈峻

审校 | 重楼

将传统大型主机应用的代码和数据转移到现代技术架构上,被业界认为是企业信息系统数字化发展的关键阶段。特别是在追求提高效率和可扩展性的过程中,这种转变通常涉及到从传统的大型主机环境转移到更灵活的云计算或内部部署方案。

然而,随着业务环境的动态变化,迁移过程也会变得更加复杂。这不仅是技术资源的重新部署,也是根本性的变化。因此,为了保证各种功能的等效性,保持应用于运行的完整性和性能的标准化,往往需要经过严格的测试。

同时,迁移后,在新的要求、业务战略的演变和监管标准的变化的驱动下,应用程序往往会被迫进行大量修改。而且每次修改,无论是微小的调整,还是重大的“修改”,都必须经过严格的测试。在这些问题中,最关键的挑战是,如何在不造成意想不到的后果或中断的情况下,确保新的变化能与现有的功能和谐融合。可以看出,验证新功能和保留现有功能的双重要求,凸显了移动后自动测试套件的重要性。

近几年,生成式AI(GenAI)广泛的应用已经辐射到各个领域。如果将其引入大型主机的现代化过程,不仅有望显著提高企业的软件质量和运营效率,还能带来软件开发和质量保证理念的根本转变,进而使企业最终获得可观的投资回报。

接下来,我将和大家讨论如何在技术稳定过渡中,通过适当的自动化测试方法、工具和最佳实践,保证现代大型主机应用的固有质量和性能。

手工测试的传统理念

长期以来,大主持人机器环境不愿接受自动化测试方法。Compuware和Vansonson 由Bourne联合开展的2019年全球调查示,仅有7%一些受访者采用了自动化测试用例来应用大型主机,这足以说明业界对此的态度。

人工测试的困境

相比之下,手工测试是很多企业普遍采用的一种传统方法。然而,在大型主机复杂的现代化过程中,这种方法越来越显得力不从心,容易出错。归根结底,测试工程师需要手工验证每一个方案和业务规则。这个过程充满了人为出错的可能性。此外,鉴于许多大型主机应用的高风险和关键任务特性,一旦我们在测试过程中忽略了一些细微的错误,可能会导致严重的生产问题、大量的停机时间甚至经济损失。所以,这个缺点就会变得尤为突出。另外,人工测试还存在以下缺陷:

1. 遗漏和不准确性:大量的测试用例手动处理,会增加遗漏的关键场景,以及数据验证不准确的风险。

2. 耗时:手工方法需要花费大量的时间来彻底测试各个方面,所以在快节奏的开发环境中效率不高。

3. 可扩展性问题:随着应用程序的扩展和演进,人工测试所需的工作量将成倍增加,无法有效地识别错误。

有些企业可能会直观地想到扩大人工测试团队。然而,这不是一个可行的解决方案。这不仅会导致成本效率低下,还会解决人工测试过程的固有局限性。企业需要整合自动化测试过程,如DevOps,以提高效率,减少错误。

测试自动化的必要性

一般来说,企业可以通过将自动化测试流程集成到现代大型主机应用中来大大提高迁移的效率和准确性。当然,自动化测试在大型主机环境中的应用率并不高。有些企业认为这是一个挑战,但有些企业认为这是一个巨大的转型机会。毕竟,在测试中使用自动化不仅是一种技术升级,也是一种降低风险、节省时间、优化资源利用的战略措施。

这一转变对希望在快速发展的技术环境中保持竞争力和效率的企业至关重要。依据DevOps状态报告显示,自动化测试优化了操作流程,保证了应用程序的可靠性等。表面,能起到很大的作用。

自动化测试是什么?

根据定义Atlassian,自动测试是利用软件工具,自动完成人工驱动的软件产品的审查和验证过程。它的速度、效率和精度,都超出了传统人工测试方法的局限性。也就是说,自动化测试可以帮助保证其质量和可靠性不受影响,同时加快应用变化。自动测试不仅可以简化新变化的验证过程,还可以监控现有功能的完整性,从而在现代应用的无缝过渡和可持续维护中发挥关键作用。

在追求优化软件测试过程的过程中,自动化测试往往需要初始的人工投入,这就涉及到测试工程师对应用程序底层复杂的业务逻辑的理解。这一理解对于利用Selenium等框架有效地生成自动测试用例至关重要。这个阶段虽然要耗费大量的人力,但却是一项基本工作。归根结底,随后的自动化测试将大大减少测试本身对人工的依赖,特别是在重复和广泛的测试场景中。并且,自动化框架一旦建立,将成为一种强大的机制,可以持续评估应用程序。它的优点是善于识别应用程序变更中可能出现的错误或bug。

现代化过程中大型主机的自动化测试方法

在软件工程领域,对于大型主机应用程序的大规模迁移或自动化测试,往往需要对应用程序中的所有业务规则有一个全面的了解,从而生成一个自动化的测试用例,通常由数百万行代码组成。它是一项复杂而艰巨的任务。鉴于代码覆盖率难以达到100%,我们需要在测试覆盖深度和实际可行性之间取得平衡,以确保关键的业务逻辑,并得到充分的测试覆盖。

在这种情况下,GenAI等新技术提供了可能性。它可以自动生成自动测试脚本,简化大型主机现代化项目的测试流程,为软件开发中的质量保证提供更高效、更准确、更可扩展的方法。

广泛使用GenAI

让我们简单地了解一下GenAI是如何在大型主机现代化中实现自动化测试的。GenAI基本上代表了人工智能的一个方面。通过生成模型,可以生成各种文本、图像或其它媒介。这类生成型人工智能模型擅长学习输入训练数据的模式和结构元素,从而产生能反映这些特征的新数据。很明显,这种系统主要依赖于机器学习模型,特别是在深度学习领域。

生成自然语言(Natural Language Generation,NLG)这是一种与大型主机现代化密切相关的GenAI形式。可以在大语言模型中使用(large language models,LLM)在支持下,产生了类似人类的文字。一般情况下,LLM在大量文本数据的语料库中进行训练,使其能够识别和复制语言的细微差别和结构。所以,这种训练使他们能够完成各种自然语言处理任务,包括:文本生成、翻译摘要、情感分析等。值得注意的是,LLM也能熟练地生成精确的计算机程序代码。

目前,大型语言模型的名称用例包括:GPT-3(Generative Pre-trained Transformer 3)、BERT(Bidirectional Encoder Representations from Transformers)和T5(Text-to-Text Transfer Transformer)。这类模型通常是基于深度神经网络,特别是那些使用Transformer架构的模型。这类模型通常是基于深度神经网络,特别是那些使用Transformer结构的模型。所以,他们在处理文本等顺序数据方面,表现出了很好的效果。大量的训练数据(包括数百万甚至数十亿的单词或文档)使这些模型能够充分掌握各种编程语言。他们不仅在生成连贯、与上下文相关的文本方面表现出色,而且在预测语言模式方面也非常出色(例如完成句子或回答查询)。

目前,一些大语言模型也可以理解和生成各种语言的文本,从而提高其在世界范围内的实用性。LLM的多功能性可以带来良好的表现,从为聊天机器人和虚拟助手提供“智力”,到支持内容生成、语言翻译和摘要等应用领域。

怎样使用GenAI生成自动测试脚本?

在软件测试领域,LLM可以帮助我们从应用程序的代码中提取业务逻辑,并将这些规则转化为人类可读的格式,从而生成相应的自动测试脚本。同时,它还可以帮助我们选择必要的测试用例,以满足代码片段的各种潜在覆盖率要求。

一般情况下,使用GenAI生成应用程序代码的自动测试脚本需要以下三个结构化步骤:

1. 使用GenAI提取业务规则:作为初始阶段,我们需要使用GenAI从应用程序中提取业务规则。该过程将根据详细程度确定提取的规则,并以人类可读的格式进行解释。此外,GenAI还有助于全面了解给定代码段的所有潜在结果。这些知识对于确保创建准确和相关的测试脚本非常重要。

2. 利用GenAI在功能层面生成自动测试脚本:根据提取的业务逻辑,测试工程师可以全面了解应用程序的功能,从而利用GenAI在功能层面开发测试脚本。这一步涉及确定所需的测试脚本数量,识别可能被排除在外的场景。当然,这种自动测试脚本的代码覆盖范围往往是由团队集体决定的。

3. 由主题专家(Subject Matter Experts,SME)验证和推理添加:在最后阶段,一旦业务逻辑被提取并生成相应的自动测试脚本,测试专家将验证这些脚本,并有权添加、修改或删除。这种干预解决了GenAI输出可能出现的潜在概率错误,提高了自动测试脚本的质量确定性。

上述过程看似复杂,但实际上可以充分利用GenAI的能力,简化测试脚本生成的过程,保证自动化效率与人类专业知识的完美结合。其中,测试人员在验证阶段的参与尤为重要。这将使人工智能产生的输出结果能够基于实际和真实的应用知识,从而显著提高测试脚本的可靠性和适用性。

小结

综上所述,GenAI作为一种提高效率的工具,可以通过其NLG能力生成自动测试脚本,从而提高大型主机现代软件测试过程的准确性和可靠性。同时,GenAI需要通过三个结构化的过程来提高AI产生的输出结果,并保证自动化脚本不仅在技术上合理,而且在实践中得到应用,从而体现AI能力与人类专业知识的和谐统一。而且这一融合对于解决现代大型主机应用的复杂性和动态要求,显然是非常重要的。

译者介绍

陈峻(Julian Chen),51CTO社区编辑拥有十多年的IT项目实施经验,擅长控制内部和外部资源和风险,专注于传播网络和信息安全知识和经验。

原文标题:GenAI-Driven Automation Testing in Mainframe Modernization,作者:sampath amatam)