人工智能下软件测试发展与应用

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 人工智能下软件测试发展与应用

人工智能是指由人制造出来的能够将只有人所具备的智慧表现出来的机器。几十年来,软件测试逐渐从小型化、本地化向智能化、复杂化的大规模开发和维护转变。因此本文提出研究人工智能时代下软件测试的发展与应用,来对人工智能技术对软件测试的影响进行深入的研究,通过研究可以更加深刻的理解人工智能技术对软件测试的发展的重大影响。

一、研究背景和意义

1研究背景

软件测试是一种用来描述、促进和鉴定软件的正确性、完整性、安全性和质量的过程,它是一种将实际输出与期望输出进行审核或者比较的过程,因此通过软件测试可以更快速的发现软件开发过程中的各种问题,帮助人们更加高效率的对软件进行完善,使得软件的性能逐步提高。现今社会,随着大数据和云计算的飞速发展,传统的软件测试技术很难支撑现代软件的发展,软件测试技术如今面对着新的挑战。

2研究意义机器学习、深度学习、NLP等

AI领域被认为是我们身边大多数技术的前沿。如今,随着人工智能技术的发展,人工智能技术也开始逐步成熟,人工智能技术逐步渗透到工业和生活中的各个领域,作为与程序密切相关的软件测试,也深受人工智能技术的影响。

二、软件测试发展史

1程序员和测试人员的时代

在程序员和测试人员的时代,开发和测试被视为相互独立的活动,软件准备就绪后,将其传递给测试团队进行验证。测试人员在需求分析阶段的参与不是很积极,与业务涉众的互动也很有限。他们在很大程度上依赖于通过设计和开发过程中完成的文档或从编写代码的开发人员那里收集的知识来获取信息。因此在这个时代,测试人员缺乏对客户需求和期望的洞察力,进而导致软件测试策略的有限性。

2探索和手动测试的时代

90年代末期,各种软件测试方法的问世,例如探索性测试、敏捷测试等。在这个阶段,软件测试人员使用详细的测试用例和测试计划手动进行测试。探索性测试通过在测试章程范围内探索软件,从而使测试人员可以自由地以本机方式测试软件。并且在这个时期,软件开发工程量逐步增加,软件开发过程的广泛而密集的增长需要更全面的测试方法,敏捷测试采用的增量和迭代方法有助于实现此目标。

3自动化时代

随着21世纪的到来,更多的新方法浮出水面,从而彻底改造了软件测试。在软件开发各个阶段的质量保证和控制都变得越来越重要,测试都被视为软件开发过程中不可或缺的一部分。自动化使测试达到了完全不同的水平,通过大量的自动化测试框架,使得测试人员能够以更高的效率执行其任务。云测试的出现可以帮助企业以更快的速度和更少的资金管理产品的测试。

4持续测试的时代

持续测试时期业务动态开始发生变化,客户期望看到最终产品的模型,因此测试需求逐步增加。现阶段出现的改进网络基础架构为开发和测试提供了高连接性,并提高了跨多个平台的部署和测试的速度。DevOps和CI/CD的兴起导致软件整个开发周期缩短,实时进行仔细的风险评估成为了当务之急。同时,在软件开发生命周期的所有阶段都必须进行风险评估和处理,进而降低软件开发的风险。为了跟上这些需求,需要不断进行测试以提高效率,人们开始尝试应用人工智能技术进行测试。

5人工智能时代

简而言之,人工智能是机器通过感知,理解和学习模仿人类行为的能力。人工智能的算法是基于数据的预测分析,这也意味着AI测试在很大程度上取决于数据。当今有许多可用AI驱动的测试工具,可帮助进行单元测试、API测试、UI测试等,其中最经典的示例是可视化测试。

三、人工智能技术在软件测试中的应用及挑战

1AI系统的测试

随着人工智能技术的发展,目前出现了各类有关人工智能技术的应用,然而由于人工智能技术是一个新兴技术,传统的软件测试无法与人工智能技术相匹配,因此在人工智能时代软件测试技术的更新成为一件重要的事情。由于人工智能技术所开发的系统其功能具有动态性,并且开发出来的系统拥有自我学习的能力,因此在对人工智能系统进行测试时,应当充分考虑时间范围。人工智能系统的学习能力应该是不断增强、动态性的,因此,针对此类测试过程,需要大规模、长时间的进行测试。例如,Google的AlphaGo存在所使用的黑盒测试规模庞大、测试周期长,并且有自动化测试难的问题。然而AlphaGo是一种功能相对简单的系统,人工智能技术所开发的智能语音响应系统在测试时会更加困难。智能语音响应系统需要模拟不同的场景进行测试,因此小规模的测试数据集,很难判断系统的反应能力,也无法对系统提出具有重大意义的改善。深度神经网络学习算法通常被认为是黑盒模型,但是随着训练的数据集不同,其测试结果具有不稳定的特性。因此针对深度神经网络测试需要大规模的数据集,这种测试方法与传统的测试方法相差甚远。在传统的测试过程中可以使用等价类划分和其他方法来减小所需测试的样本规模,但是对于人工智能系统来说,必须依赖于大量的数据才可以达到测试的效果。

2大数据的测试

大数据的测试并不比人工智能系统测试容易,其很难确定判断其测试预测测试结果的标准,因为无法对数据处理结果的大小进行判定。在数据收集、存储、检索和分析之后,软件测试人员需要开发适当的工具以从大容量、多样性、快速变化和实时表征方面对数据的一致性和完整性进行校验。

3云服务测试

现阶段云服务主要包括私有云、公共云、混合云和各种其他形式的云,云服务的测试面临着复杂的系统架构、复杂的配置、复杂的计算和存储节点,尽管可以通过使用两个或三个的组合来减少组合的数量,但是这种方法覆盖率相对较低,并且在云服务的测试中存在着较高的风险。同时,云服务的性能测试也非常困难,主要包括云质量压力模拟需要承担较高的成本,甚至花费大量的资金也无法对测试进行模拟。而且,云服务作为新兴的技术,传统的测试工具很难与计算机平台的云性能测试相匹配。

4区块链测试

区块链主要包括公共网络、私有链和联盟网络等不同类型的网络,这些网络在许多方面都大有不同,例如在区块链的管理、使用者的用户身份验证、区块链的节点数、网络的共识机制和智能合约等方面。因此,不同的区块链面临的测试挑战也是不同的。同时区块链也存在一些共性的的挑战,如安全测试非常困难。安全始终是矛与盾的问题,现阶段不存在绝对受保护的技术、系统或平台,因此对于区块链来说,很难对其安全质量进行测试。同时区块链还包括基础结构安全性、加密算法保护、网络协议保护、共识机制安全性和合同安全性等合同安全性又包括身份验证和身份验证。而且区块链拥有众多的网络节点,对于区块链的测试不仅仅只是某个区块链节点。

5物联网测试

在工业4.0和5G时代,网络成为人们生活中不可缺少的东西。物联网是指万物互联,它不仅仅只是将计算机相连接,还包括工业设备、家用电器等,物联网旨在让每一个物品等能够连接到网络。然而网络的融合需要创建一个更大的系统,因此这也给软件测试带来新的挑战。同时物联网需要更多的物理设备才可以进行测试,这会耗费大量的时间和精力。其次物联网系统需要具有实时性,物联网设备对时间十分的敏感,它需要实时数据收集,并且需要实同步数据的传输。此外,物联网测试还面临着检查系统规模、可伸缩性、协作感知、大数据处理性能和智能特性等挑战。

四、应用人工智能技术的软件测试

1测试规范和测试套件细化

在开源开发或软件进化的背景下,开发人员经常面对开发时没有明显理由的测试套件,这些测试套件可能需要增加或改进以确保足够的可靠性,甚至需要减少以满足紧迫的截止日期,我们称这个过程为测试规范和测试套件的重新设计。同时在实践中,测试规范可能一开始就不存在,尤其是如果没有使用黑盒策略来识别测试用例的情况。在这种情况下,测试规范必须被逆向工程或者从高级系统规范创建。因此,软件测试重要的是提供方法和工具支持,帮助人们理解测试套件的局限性及其可能的冗余,以便能够以经济高效的方式对其进行改进。因此,基于机器学习的方法可以解决黑盒测试中的这个问题。

2调试、故障定位

使用机器学习来识别可疑语句,如测试期间观察到的相关故障,这可在调试期间帮助故障定位。RUBAR技术解决了软件测试的主要缺陷,但该方法难以处理多个故障的存在,因为它隐含地假设失败的测试用例执行相同的故障。同时使用C4.5决策树来学习各种基于测试用例输入和输出信息的故障条件,在相似条件下执行的失败测试用例被认为是由于相同的错误而失败,如果语句被在相似条件下执行的大量失败测试用例覆盖,那么它们就被认为是需要重点关注的。同时,由C4.5决策树建模的故障条件可以准确预测故障,因此可以用于帮助调试,由该树建模的故障条件总体上准确描述了实际故障条件。

3风险驱动测试

无论采用何种测试策略,实际上很少有足够的人力资源和时间来彻底测试系统的每个部分,达到令人满意的程度。测试团队必须集中精力并优先考虑他们的测试工作,通常这是通过分析与功能或系统组件相关的“风险”来完成的,这取决于测试级别。风险通常被定义为故障概率和它们可能造成损害的组合,目前软件测试中有各种各样的方法来解决这个问题,构建预测文件或类中错误位置的模型是一个可行的方案。在许多利用机器学习算法训练的模型中,通常不需要与统计模型相关联的严格假设类型,对于实践者来说更容易解释和理解。人们也越来越认识到要获得合理准确的预测模型,还需要考虑其他因素。尽管在软件测试中输入使用的数据各不相同,但它通常包括组件的结构复杂性度量、来自最近发布的组件变更信息、与组件相关联的历史数据,以及开发人员关于例如他们对被变更的系统的体验的信息。因此一旦开发了故障预测模型,就可以根据系统组件包含故障的可能性对它们进行排序,结果也可以用树形图更容易地可视化。并且从经济的角度出发,建立和利用故障预测模型也具有很高的经济效应。

4测试预言

测试预言的自动化可能是软件测试中最困难的问题之一,虽然没有普遍适用的自动化测试预言的解决方案,但是在很多情况下机器学习可以提供帮助。例如,在图像和语音处理领域有许多这样的情况。图像分割是从图像中提取感兴趣的特定结构的行为,为了评估图像分割算法花费了大量的时间和精力,却并不能提供足够准确的结果,技术专家需要修改算法并重新运行整个测试套件来验证它。该过程大多是手工完成的,因此非常耗时,也需要可靠的专家在场。在初始学习阶段,使用机器学习算法来学习一个模型,一旦学习了有效的机器学习模型,由测试中图像分割算法的任何新版本产生的分割将自动认定其正确性,此时也不需要任何人工专家的干预,所以在分割的重新测试期间可以获得大量时间和人工的节省。在人工智能时代,作为软件工程师所面临问题的工程特性,例如部分定义和不明确的应用领域,具有多个相互竞争、相互冲突和不断变化的目标,正把我们从完美的乌托邦拖向更现实的工程世界。当代的软件性质变化迫使我们改变开发和部署测试技术。人工智能技术被证明非常适合这个不断变化的是时代。本文通过研究人工智能时代下软件测试的发展与应用,对人工智能技术对软件测试的影响进行深入的研究,通过对人工智能时代下软件测试的研究现状、软件测试发展史、人工智能技术在软件测试中的应用及挑战、应用人工智能技术的软件测试以及软件测试的未来发展等进行论述,更加深刻的理解人工智能技术对软件测试的发展的重大影响。

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
打赏
0
1
1
0
4
分享
相关文章
Serverless MCP 运行时业界首发,函数计算让 AI 应用最后一公里提速
作为云上托管 MCP 服务的最佳运行时,函数计算 FC 为阿里云百炼 MCP 提供弹性调用能力,用户只需提交 npx 命令即可“零改造”将开源 MCP Server 部署到云上,函数计算 FC 会准备好计算资源,并以弹性、可靠的方式运行 MCP 服务,按实际调用时长和次数计费,欢迎你在阿里云百炼和函数计算 FC 上体验 MCP 服务。
142 29
36.7K star!拖拽构建AI流程,这个开源LLM应用框架绝了!
`Flowise` 是一款革命性的低代码LLM应用构建工具,开发者通过可视化拖拽界面,就能快速搭建基于大语言模型的智能工作流。该项目在GitHub上线不到1年就斩获**36.7K星标**,被开发者誉为"AI时代的乐高积木"。
134 8
AI职场突围战:夸克应用+生成式人工智能认证,驱动“打工人”核心竞争力!
在AI浪潮推动下,生成式人工智能(GAI)成为职场必备工具。文中对比了夸克、豆包、DeepSeek和元宝四大AI应用,夸克以“超级入口”定位脱颖而出。同时,GAI认证为职场人士提供系统学习平台,与夸克结合助力职业发展。文章还探讨了职场人士如何通过加强学习、关注技术趋势及培养合规意识,在AI时代把握机遇。
一键部署 Dify + MCP Server,高效开发 AI 智能体应用
本文将着重介绍如何通过 SAE 快速搭建 Dify AI 研发平台,依托 Serverless 架构提供全托管、免运维的解决方案,高效开发 AI 智能体应用。
2199 63
AI-ClothingTryOn:服装店老板连夜下架试衣间!基于Gemini开发的AI试衣应用,一键生成10种穿搭效果
AI-ClothingTryOn是基于Google Gemini技术的虚拟试衣应用,支持人物与服装照片智能合成,可生成多达10种试穿效果版本,并提供自定义提示词优化功能。
163 17
AI-ClothingTryOn:服装店老板连夜下架试衣间!基于Gemini开发的AI试衣应用,一键生成10种穿搭效果
多模态AI核心技术:CLIP与SigLIP技术原理与应用进展
近年来,多模态表示学习在人工智能领域取得显著进展,CLIP和SigLIP成为里程碑式模型。CLIP由OpenAI提出,通过对比学习对齐图像与文本嵌入空间,具备强大零样本学习能力;SigLIP由Google开发,采用sigmoid损失函数优化训练效率与可扩展性。两者推动了多模态大型语言模型(MLLMs)的发展,如LLaVA、BLIP-2和Flamingo等,实现了视觉问答、图像描述生成等复杂任务。这些模型不仅拓展了理论边界,还为医疗、教育等领域释放技术潜力,标志着多模态智能系统的重要进步。
144 13
多模态AI核心技术:CLIP与SigLIP技术原理与应用进展
【重磅】JeecgBoot 里程碑 v3.8.0 发布,支持 AI 大模型、应用、AI 流程编排和知识库
JeecgBoot 最新推出了一整套 AI 大模型功能,包括 AI 模型管理、AI 应用、知识库、AI 流程编排和 AI 对话助手。这标志着其转型为 “AI 低代码平台”,旨在帮助开发者快速构建和部署个性化 AI 应用,降低开发门槛,提升效率。
48 12
破茧成蝶:传统J2EE应用无缝升级AI原生
本文探讨了技术挑战和解决方案,还提供了具体的实施步骤,旨在帮助企业顺利实现从传统应用到智能应用的过渡。
破茧成蝶:传统J2EE应用无缝升级AI原生
大企业的AI应用如何更懂业务?
数字经济推动中国经济高质量发展,大型企业数字化转型至关重要。AI技术浪潮下,国资委提出“应用领航、数据赋能、智算筑基”三大方向,深化AI与实体经济融合。CRM系统作为数智化基础设施,连接客户端与业务端,成为企业核心基座。以纷享销客为例,其通过“连接型CRM”打通数据壁垒,提供灵活组织架构配置,满足个性化需求。ShareAI平台赋能营销、销售和服务全链路智能化,确保数据安全并支持私有化部署。选择具备行业积淀和实战经验的CRM服务商,才能让数智化真正驱动业务增长与企业转型。
开箱即用的可视化AI应用编排工具 Langflow,可调用魔搭免费API作为tool
ModelScope 社区基于优秀的开源可视化AI应用编排工具 Langflow 搭建了创空间,以方便社区开发者基于社区开源模型及免费魔搭 API-Inference,快速创建Agent应用、RAG应用并将其部署为API服务。
178 14

热门文章

最新文章

下一篇
oss创建bucket