缩略图
Science and Technology Education

人工智能技术在软件测评中的应用探索

作者

姜经伟

210726199401072139

引言

在数字化与智能化浪潮的推动下,软件系统的规模与复杂度急剧攀升,传统软件测评手段在应对海量测试数据处理、复杂业务逻辑验证时逐渐暴露出效率低、精准度不足等问题。人工智能技术凭借强大的数据处理、模式识别与自主学习能力,为软件测评带来了全新的解决方案与发展机遇。

一、人工智能技术概述

(一)人工智能技术定义

人工智能技术是一门融合计算机科学、数学、统计学、心理学等多学科知识的综合性技术,旨在通过计算机系统模拟人类智能行为,实现诸如学习、推理、问题求解、感知、语言理解与生成等功能。其核心目标是赋予机器自主学习和决策的能力,使其能够在复杂环境中完成通常需要人类智能参与的任务,通过构建算法模型并利用大量数据进行训练,不断优化系统性能,实现从数据输入到智能输出的转化。

(二)核心技术类型

机器学习作为人工智能的重要基石,致力于构建算法模型,使计算机能够从数据中自动学习规律,进而实现预测或决策。监督学习是机器学习中应用广泛的方法之一,它依赖带有明确标签的训练数据,通过学习输入数据与对应输出标签之间的映射关系,构建预测模型。在软件缺陷预测场景中,可将历史软件代码的各种特征(如代码行数、函数调用次数、圈复杂度等)作为输入数据,将代码是否存在缺陷作为标签,训练监督学习模型,从而对新代码的缺陷可能性进行预测。深度学习基于人工神经网络,通过构建多层神经元结构,能够自动从大量数据中提取高层次、抽象的特征。卷积神经网络(CNN)在图像识别领域取得了巨大成功,其通过卷积层、池化层等特殊结构,自动提取图像的局部特征,在软件界面自动化测试中,可用于准确识别界面元素,如按集、文本框等,从而实现自动化的界面操作与测试。

二、人工智能技术在软件测评各环节的应用

(一)测试用例生成与优化

机器学习算法能够依据软件的功能规格说明、历史测试数据以及代码特征,自动生成测试用例。决策树算法通过对软件功能逻辑分支的分析,构建树形决策模型,根据不同的条件分支生成覆盖各种功能路径的测试用例,确保软件各项功能得到全面测试。深度学习模型可以对海量测试用例执行结果数据进行深入分析,识别其中冗余和低效的测试用例。

(二)软件缺陷检测与定位

机器学习可用于构建软件缺陷预测模型,通过综合分析软件代码的度量指标(如代码行数、圈复杂度、耦合度等)、开发过程数据(如代码提交频率、开发人员经验等),预测软件模块存在缺陷的可能性。逻辑回归模型能够对代码度量数据进行分析,建立缺陷概率与度量指标之间的数学关系模型,帮助开发团队提前识别高风险模块,有针对性地进行代码审查和测试,降低缺陷引入和扩散的风险。

(三)性能测试与评估

人工智能技术能够依据软件的历史运行数据,对性能指标的变化趋势进行准确预测。时间序列分析算法如 ARIMA 模型、LSTM 网络,可对软件的响应时间、吞吐量、资源利用率等性能指标进行建模分析。以电商平台为例,在大促活动前,利用历史流量数据和性能数据训练模型,能够预测活动期间服务器的负载压力、响应延迟等性能指标变化情况,帮助运维团队提前规划和调配资源,优化系统性能,确保在高并发情况下软件系统的稳定运行。

(四)自动化测试式本生成

自然语言处理技术可以将测试人员用自然语言编写的测试需求,自动转换为自动化测试式本。通过语义理解技术,对测试需求中的操作步骤、测试数据和预期结果进行解析,将其转化为编程语言可执行的代码。机器学习根据自动化测试式本的执行结果,对式本进行优化改进。强化学习算法通过分析式本执行过程中的错误信息、执行时间等反馈,不断调整式本的执行逻辑和参数,提高式本的稳定性和执行速度。

三、人工智能技术在软件测评应用中的问题与解决策略

(一)面临的问题

训练高质量的人工智能模型依赖于大量准确、完整且具有代表性的数据,但在软件测评实际场景中,数据质量往往难以保证。软件项目的历史测试数据可能存在记录错误、关键信息缺失等问题,导致模型学习到错误的规律和模式。深度学习等复杂人工智能模型通常被视为 “黑盒”,其内部决策过程和机制难以被人类理解。在软件测评中,当模型给出测试结果或缺陷预测时,测试人员和开发人员难以知晓模型做出判断的具体依据,这使得对测试结果的可信度产生质疑。

(二)解决策略

采用数据清洗技术,对原始数据进行预处理,去除重复、错误的数据记录,填补缺失值,提高数据的准确性和完整性 。运用数据增强方法,如对代码片段进行随机变形、添加噪声、数据采样等操作,扩充训练数据规模,增加数据的多样性,提高模型的泛化能力。开展可解释人工智能(XAI)技术研究,开发能够解释模型决策过程的方法和工具。

四、人工智能技术在软件测评中的相关标准与发展趋势

(一)相关标准

我国在人工智能辅助软件测评领域逐步加强标准建设,出台了一系列相关标准。在测试数据管理方面,制定了关于测试数据收集、存储、使用和共享的规范标准,明确数据安全和合规要求,保障数据在软件测评过程中的安全性和可靠性。针对人工智能模型评估,从准确性、可靠性、可解释性等多个维度制定了评估指标和方法标准,规范模型在软件测评中的应用,确保测评结果的科学性和有效性。

国际上,ISO(国际标准化组织)和 IEEE(电气和电子工程师协会)等组织制定了一系列与人工智能和软件测评相关的标准。

(二)发展趋势

未来,人工智能技术在软件测评中的应用将朝着更高层次的智能化和自动化方向发展。人工智能系统将具备更强的自主学习和决策能力,能够自主完成从测试需求分析、测试用例生成、执行到结果评估的全流程软件测评工作,极大地减少人工干预。人工智能将与物联网、大数据、区块所等技术深度融合,进一步提升软件测评能力。物联网技术能够实现对软件运行环境(如硬件设备状态、网络环境等)的实时监测和数据采集,为软件性能测试提供更丰富、更全面的环境数据;大数据技术凭借其强大的数据处理和分析能力,能够处理海量的软件测试数据,为人工智能模型训练提供充足的数据支持,提高模型的准确性和泛化能力;区块所技术的不可篡改和可追溯特性,可确保软件测试数据的真实性和可信度,增强测试结果的权威性,同时为软件测评过程中的数据共享和协作提供安全可靠的平台。

结论

人工智能技术凭借其独特的优势,在软件测评的测试用例生成优化、缺陷检测定位、性能测试评估及自动化测试式本生成等多个关键环节展现出巨大的应用潜力,为软件测评带来了新的变革和发展机遇,有效提升了软件测评的效率和质量。

参考文献:

[1] 张莉,王甜甜. 人工智能将动的软件测试方法与技术[M]. 北京:电子工业出版社,2021.

[2] 李明,陈刚. 基于机器学习的软件缺陷预测研究进展[J]. 软件学报,2022,33(3):1021-1043.

[3] 中国电子技术标准化研究院. 人工智能辅助的软件测试规范[S].北京:中国标准出版社,2022.