在信息化与智能化浪潮的推动下,人工智能技术于态势感知、指挥决策、行动控制等领域,正发挥着日益关键的作用。因此,智能软件的测试工作愈发显得不可或缺。然而,传统的测试流程和方法在面对智能软件的复杂性与创新性时,显得力不从心。本文先深入剖析智能软件的核心技术、应用及其独特特性,再对智能软件的测试流程进行设计,最后,从智能算法测试、智能算力测试等多个维度,对测试类型进行深入分析,旨在为智能软件的测试工作给出有益建议。
目前人工智能、大数据和高性能计算等前沿技术已成功用于指挥控制、数据处理、辅助决策等领域,不仅攻克了诸多技术难题,还显著提升了装备的性能,推动装备从机械信息化向智能化的跨越发展。未来,人工智能技术与装备的深度融合将是国防装备发展的重要方向,智能软件的测试工作因此就显得尤为重要。然而,传统软件的测试流程、测试类型及方法在面对智能软件的独特性和复杂性时,已显露出其局限性,无法满足测试的需求,故对其展开深入研究显得尤为迫切。
智能软件,作为一类能够模拟人类智能行为,辅助或替代人类完成特定任务的软件系统。该软件深度集成了机器学习、大数据处理等前沿技术,具备了态势感知、信息融合、自主决策等多项高级功能。智能软件的核心在于其先进的智能模型或算法,这些模型或算法基于机器学习、深度学习、自然语言处理以及计算机视觉等核心技术而构建,使得智能软件能够高效地处理复杂信息,实现精准决策与智能控制。
(一)测试需求分析与策划
1.测试需求分析
根据测评任务书、合同、被测软件的需求规格说明或设计文档等效文件,对测评任务进行测试需求分析。分析的主要内容包括:1)确定需要的测试类型及其测试要求,并进行清晰的标识,以便于后续的识别和管理;2)确定测评类型中的各个测评项及其优先级;3)根据被测软件的重要性、测评目标和约束条件,确定每个测评项的测评充分性要求;4)确定每个测评项应覆盖的范围及其覆盖程度;5)制定每个测评项的测评终止要求,包括正常终止的条件,可能导致测评过程异常终止的情况。
2.测试策划
根据测评任务书、合同、被测软件的需求规格说明或设计文档等效文件,策划一般包括:1)确定测试策略;2)确定测试需要的技术或方法;3)确定要受控制的测试工作产品,列出清单;4)确定用于测试的资源要求,包括软硬件设备、环境条件、人员数量和技能等要求;5)进行测试风险分析;6)确定测试任务的结束条件;7)确定被测软件的评价准则和方法;8)确定需采集的度量及采集要求;9)将测评策划结果按要求形成测评大纲。
(二)测试设计与实现
根据测试大纲进行测试设计和实现,一般包括如下工作:1)按需要分解测试项;2)说明最终分解后的每个测试项;3)设计测试用例;4)确定测试用例的执行顺序;5)准备和验证所有测试用数据;6)准备并获取测试资源;7)建立和校核测试环境,记录校核结果,说明测试环境的偏差。
(三)测试执行
按照测试大纲和测试说明的内容和要求执行测试,如实填写测试原始记录,一般包括以下方面:根据每个测试用例的期望测试结果、实际测试结果和评估准则,判定测试用例是否通过;当测试用例不通过时,应根据不同的缺陷类型,采取相应的措施;所有的测试用例都执行完毕后,应根据测试的充分性要求和有关原始记录,分析测试工作是否充分,是否需要进行补充测试。
在测试执行阶段,智能软件测试不仅沿袭了传统的手动设计测试场景、编写测试数据、执行测试用例的方法,更引入了机器学习和人工智能的先进技术。这些技术能够自动生成测试用例和测试数据,通过模拟用户操作或调用接口调用等方式,实现测试用例自动执行,并实时收集和分析测试结果,利用大数据分析和机器学习算法,对测试数据进行深度挖掘和分析,自动识别异常模式和潜在问题,从而更快速、更准确地定位故障。
(一)智能算法测试
智能算法测试旨在验证与评估算法性能,确保其在实际应用中准确、可靠且高效。测试内容涵盖代码规范性、正确性、收敛性、鲁棒性等多个方面,确保算法性能全面达标。
代码规范性测试采用工具和人工模型设计审查相结合的方式,识别算法模型潜在缺陷以指导动态测试。
算法正确性测试是指算法正确预测结果的概率,与模型的功能需求直接相关。正确性评估要素主要包括数据精度满足性、模型设计正确性、代码实现正确性、计算结果正确性等。
算法收敛性测试用于评估影响算法收敛的相关要素,主要包括优化参数数量、优化目标函数数量、拟合程度、是否收敛及收敛值、收敛稳定性等。
算法鲁棒性测试用于评估算法避免由于异常和极端等情况的危害导致自身失效的能力,一般包括数据干扰鲁棒性、数据分布迁移鲁棒性、离群数据鲁棒性、对抗数据鲁棒性等。
(二)智能算力测试
训练算力测试是指对机器学习模型训练过程中所使用的计算资源进行性能测试和评估的过程。测试指标包括训练时间、训练速度、资源利用率、每秒浮点运算次数(FLOPs)、模型的参数量等。
推理算力测试关注模型在实际应用中的响应速度、准确性以及资源利用效率。通过采用一系列标准数据集,模拟真实应用场景中的数据输入,并观察模型的推理时间和准确率,以及在推理过程中所使用的计算资源(如CPU、GPU等)以及内存和存储的占用情况等。
(三)数据质量测试
数据完整性测试关注以下几个方面:数据在软件中的输入、处理和输出过程中的完整性,关注数据是否被污染、各类样本的数量是否均衡完整;数据在存储过程中的稳定性,确保数据在存储介质中不会被破坏或丢失,以及在需要时能够完整地恢复出来;数据之间的关联性和一致性。
数据准确性测试关注以下几个方面:实际数据与预期数据是否存在偏差或错误;数据间的逻辑关系,确保数据的准确性;数据集标注信息是否完备并准确无误。
数据安全性测试关注以下几个方面:加密算法的可靠性;访问控制的严格性;数据备份和恢复的有效性。
(四)智能体测试
智能体的测试聚焦于完整集成的软硬件系统,由软件配置项(含智能部件和非智能部件)和硬件组成,主要验证智能系统是否满足运行方案、系统/子系统规格所规定的任务能力、功能、性能、接口等各项要求,确保系统实现与需求一致。测试类型包括功能测试、性能测试、接口测试、安全性测试、可靠性测试、复杂性测试、覆盖率测试、兼容性测试和维护性测试。
随着人工智能技术的日新月异和智能软件应用场景的日益丰富,智能软件测试正迎来前所未有的机遇和挑战。在汲取传统测试技术精华的同时,我们必须持续深入研究智能软件测试的核心技术,强化测试数据的生成和处理能力,提高测试的自动化和智能化水平。
作者单位:中国软件评测中心