
摘要:由于基于人工智能软件系统的蓬勃发展和广阔应用前景,引发了人们对智能软件质量和可信度的关注,特别是安全关键的军事领域应用。而软件测试理论和技术已被证明是揭示软件潜在问题的有效手段,如何利用数据驱动的黑盒测试技术分析和评估智能软件测试需求、应对测试挑战、发现软件问题并保证测试质量和充分性是本文关注的重点。本文重点讨论智能软件黑盒测试的理论和方法,包括黑盒测试的思路、主要测试内容和关注点以及如何利用数据驱动技术开展有效测试,旨在为智能软件的测试评价和质量保证提供具有可行性、通用性和实践性的思路和方法。
1、引言
人工智能(Artificial Intelligence,AI)技术是公认最有可能改变未来世界的颠覆性技术。AI在军事领域有广阔的应用前景,国内外已将AI不断应用到情报分析处理、目标识别监视、作战辅助决策、网络安全防护以及无人作战系统等智能装备中,在能力和可用性方面取得了巨大的飞跃[1]。对于复杂且安全关键的军用智能软件,迫切需要包含软件测试在内的质量保证手段来提供非常明确的安全性、可靠性证据。如何进行充分测试以保证软件质量和可信度,成为当前军用智能软件测试的痛点和难点问题[2]。本文结合该领域研究成果及项目实践,研究和探讨了数据驱动的智能软件黑盒测试相关技术和方法,希望对AI领域的军用软件测评工作有所启发。
1.1智能软件概述
智能软件是指基于AI技术实现,能够获取、处理和应用知识和技能的软件[3]。从软件组成角度,智能软件通常由至少一个AI组件以及传统非AI组件(如用户界面、数据库)组成。从技术实现角度,智能软件的AI组件主要采用传统机器学习技术(如监督学习、无监督学习和强化学习)以及深度学习技术,这些技术能够不断从历史数据中抽象出客观世界的知识和规律(如图1),并利用学习到的模型进行识别、分析、预测、决策、控制等,从而呈现出不断进化的智能行为[4]。同时,传统依靠领域专家规则或穷举算法的软件通常不再视为智能软件[5]。
图-1 AI学习模型工作流
1.2测试面临挑战及解决思路
不同于传统软件具有编写明确的处理逻辑和规则,智能软件在测试实践中具有软件需求不明确、输出结果难预测、测试充分性难保障等问题[6]。主要体现及应对措施包括:
(1)从软件需求角度,由于智能软件提供的功能本质上是不透明的,智能软件的需求规格通常围绕目标(如性能指标)而非功能指定,导致测试人员难以了解软件能力并验证预期结果。因此,智能软件需求规格应尽可能完整、规范地描述软件潜在使用场景、输入数据的属性特征、相应的预期结果以及必要的质量特性,以便更好地分析智能软件测试需求。
(2)从测试预言角度,由于AI技术普遍具有复杂、非确定和进化的特点,现有生成式AI甚至能够提供全新的、完全原创的输出结果,导致智能软件输出结果难以预测或者难以理解和评估其正确性。测试人员需要借助领域知识或特定测试方法构建比确定性系统更为复杂的预期结果(如包含容差),并且需要多次运行相同的测试以便确保系统在统计意义上运行正常。
(3)从测试充分性角度,由于AI组件的学习程序和框架通常不易进行功能分解且缺乏明确的处理逻辑,因此与传统软件有着不同的白盒测试覆盖准则,一些性能较好的深度神经网络模型拥有的连接和参数规模也很难充分覆盖。从成本效益角度,从尽可能构造智能软件的潜在测试输入出发,以黑盒测试思路、从系统整体角度、采用更加自动化的测试评估手段充分考察软件潜在的问题和风险。
2、智能软件的黑盒测试
2.1 黑盒测试思路
综上所述,黑盒测试既有助于隐藏复杂AI模型框架的细节、聚焦于明确测试需求和通过准则,又能够保证测试充分性、提高测试效率、降低测试成本,有效从实际应用角度评估质量和发现问题。在实施层面,智能软件黑盒测试还应关注:
(1)AI功能边界界定。尽管采用黑盒策略,但实施中有必要剖析智能软件的组成,区分AI组件和传统组件并采取不同的测试方法,先开展组件配置项测试,再进行智能软件系统测试。
(2)充分理解测试需求。获取尽可能规范翔实的软件需求规格等技术文件,在准确把握测试需求的基础上提高测试有效性和针对性;利用大样本测试集进行足够充分的测试,测试覆盖率通过数据集的代表性来衡量;特别要开展异常测试和对抗性测试,这是提高测试有效性和充分性的关键。
(3)测试预言合理有据。为应对测试预言问题,选用的测试方法应能够提供验证测试输入执行结果正确性的测试用例及通过准则。除了依靠领域专家,许多测试技术可用于解决测试预言问题,包括A/B测试、对比测试和蜕变测试等。
(4)重视测试集准备。测试集审核要求与训练集基本一致,体现在数据准确性、充分性、公平性等;测试集还需注意与训练集的独立性、与质量特性相关的目的性以及随时间变化的动态性;在缺乏测试数据时,可考虑基于真实数据特征模拟、构造,或者采用领域基准测试集。
(5)引入自动化技术。为满足测试充分性,测试集的潜在样本空间通常较大,依靠人工构建并执行测试用例不切实际,相关测试技术应尽可能自动生成黑盒测试数据和通过准则以提高测试效率,这也有助于智能软件的迭代回归测试,以及无人值守的定期维护测试和在线测试。
2.2 主要测试内容及关注点
智能软件测试也可分为静态测试和动态测试,动态测试包含了功能测试和非功能测试。从测试内容角度,智能软件的黑盒测试与传统软件相比值得关注的测试内容及测试要点包括:
(1)数据审查。主要考察训练数据的来源、类型、规模、属性特征、生成速度等情况,是否充分代表实际运行数据并足够用于训练AI模型,是否存在影响模型性能和安全的数据缺失、偏差以及大量噪声、有害信息,是否对训练数据进行了正确的预处理(如补全、去重、标准化、抽样)等。
(2)正确性测试。主要测试智能软件输入未知新数据时,在输出结果准确性、精度方面的性能,即泛化能力。泛化能力越强,越能避免过拟合或欠拟合,智能软件的输出结果越能符合预期。应确保测试内容与软件任务及适用范围相吻合,并满足测试充分性要求和覆盖率准则。
(3)稳健性测试。主要测试智能软件在多次运行或测试输入出现较小变化时输出结果的“稳定性”,以及智能软件在测试输入扰动或异常时能够抵抗和适应并保持正常运行的“健壮性”。可能采用异常数据测试(如对抗样本、易出错样本),考察功能的正确性以及性能效率(如恢复时间)。
(4)效率测试。主要测试智能软件的训练时间、响应时间、资源消耗情况、数据吞吐量、并发能力等。随着数据量和复杂性的急速增加,效率成为AI模型和框架选择要考虑的重要特征,有时甚至比准确性更重要,甚至需要牺牲准确性以满足效率要求。
(5)接口测试。主要测试AI组件与其他部分、智能软件与外部软件之间是否正确集成,重点检查软件(组件)间的相互逻辑依赖关系,以及接口传递数据类型、格式的正确性以及得到正确的解析和使用。
(6)安全性测试。主要测试智能软件应对因操纵或非法访问而造成的潜在伤害、危险或损失的能力。主要通过对抗样本测试,在输入数据中有针对性地加入异常或误导信息,导致智能软件接收该数据后做出错误判断,例如通过虚构小说场景成功让ChatGPT提供通常拒绝提供的网络攻击方法[7]。
3、智能软件黑盒测试方法
3.1 传统采样法
在进行智能软件训练时,数据特征工程(或特征选择)通常提取对模型效果最有用的属性和特征,从而缩短训练时间、避免过拟合、提高模型精度和泛化能力,如图像人脸识别关键特征包括人脸占比、模糊度、光照、角度、遮挡等。通过识别这些关键数据属性和特征,运用等价类划分法、分类树法、组合测试法等对输入域进行划分或重组,可以显著降低所需测试用例数量,理想情况下不会影响测试集的缺陷检测能力。此外,属性和特征空间的边界值也是非常有效的测试输入,而异常测试则可采用属性和特征输入域范围以外的样本数据。基于数据采样的传统测试方法的优点是易于理解、可操作性强以及基于真实样本测试,更适用于数据的显性特征有限且对测试预言和模型性能发挥主要作用的任务。
3.2 类比测试法
针对智能软件输出结果难以预测和评估的测试预言问题,一个好的思路是以可类比参照的测试结果为基础构建或推导出被测对象的预期结果。这类测试方法包括A/B测试、对比测试、蜕变测试等。
(1)A/B测试。A/B测试是将现有系统作为部分参照来解决测试预言问题,通过类比以确定新版系统是否在某种程度上更好。离线A/B测试由于需要统计上的显著性而比较耗时,A/B测试更适用于自动化在线测试和维护测试,可基于现有系统运行情况为新版系统设置有效通过准则,并借助准确率、灵敏度等指标统计新版系统的性能。
(2)对比测试。对比测试是利用与被测软件功能等效的已有替代版本用作对比参照以生成测试预言。在执行功能对比测试时,参照软件无需具备相同的非功能约束(如性能效率),也无需与被测软件功能完全等效。例如,可利用采用了不同学习框架、算法和配置的功能等效软件(甚至是非AI软件)来与被测智能软件开展对比测试。
(3)蜕变测试。蜕变测试通过构造蜕变关系从已知正确的源测试用例生成后续测试用例。蜕变关系描述了被测软件测试输入的变化如何影响(或不影响)预期输出的变化,稳定的蜕变关系可用于派生测试用例并生成输出结果的部分预言,通过检查输出结果是否违反蜕变关系而发现异常。作为一种高效故障检测手段,蜕变测试已成功应用于基于AI的智能软件测试领域。
3.3 随机测试法
针对智能软件测试充分性问题,自动化随机测试可以更充分地探索智能软件输入空间,生成更大规模的潜在测试输入,从而发现常规测试方法难以发现的软件异常。这类测试方法主要包括模糊测试、基于搜索测试、探索性测试等。
(1)模糊测试。模糊测试是将大量随机(或接近随机)数据用于生成测试项目输入的软件测试方法。模糊测试不同于纯随机自动化测试,测试用例模糊过程建立在一定规则之上,如特定数据变异算法或启发式搜索技术,因此构造出的测试用例针对性、有效性更强,并且当与智能分析方法相结合,能够使测试覆盖率更高、测试用例构造更快、更准确地发现软件深层次缺陷。
(2)基于搜索测试。基于搜索测试是使用了元启发式优化搜索技术(如贪婪搜索、模拟退火、蒙特卡洛搜索、遗传算法等)生成测试输入,适合于大型输入空间的自适应搜索以及生成对抗性输入,在自动驾驶领域有着成功的应用[8]。
(3)探索性测试。探索性测试是一种有效的智能软件测试方法,适用于智能软件规格描述不充分或存在测试预言问题的情况,通常利用探索性测试的创造性和启发性来捕获软件异常信息,或者引导自动化技术来提高测试针对性和覆盖率。
3.4 对抗测试法
对抗性测试又称为对抗样本测试或对抗攻击测试,指在测试过程中利用对抗样本执行使目标故障的攻击操作,进而识别缺陷并采取故障预防措施。对抗性测试通过对测试输入较小的改变,导致神经网络产生无法预期、错误的或较大的性能突变,例如图像分类中仅通过改变几个肉眼不可见像素就可以说服神经网络以较高置信度判定为显著不同对象。对抗性测试既可在模型训练时攻击训练集或学习算法,也可用于模型训练后识别对抗样本进行黑盒攻击。神经网络的对抗样本通常具有迁移性,即导致一个神经网络故障的对抗样本通常会导致其他执行相同任务的神经网络故障,一个较好思路是引用其他执行同类功能模型(包括利用白盒测试技术)识别出的经验对抗样本进行测试。
4、结束语
软件黑盒测试是保证智能软件可靠和有效运行的重要手段之一。本文针对智能软件测试面临的挑战,详细论述智能软件的独特质量特性以及执行测试的思路和对策,并探索了适用于智能软件特点的数据驱动的黑盒测试方法和相关测试技术,以提高测试的有效性、充分性以及发现问题的能力。
参考文献:
[1]李博骁,张峰,李奇峰,等.人工智能技术在军事领域的应用思考[J].中国电子科学研究院学报,2022,17(03):238-246.
[2]周志华.机器学习[M].北京:清华大学出版社,2016.
[3]机器学习项目的测试[EB/OL].
[7]ChatGPT的过去、现在与未来[EB/OL].
[8]朱向雷,王海弛,尤翰墨,等.自动驾驶智能系统测试研究综述[J].软件学报,2021,32(7):22.
文章来源:陶新昕,谢斐,徐海波.数据驱动的智能软件黑盒测试方法研究[J].网络安全技术与应用,2024,(12):52-54.
分享:
火灾是一种常见而严重的灾害,给人们的生命安全带来了巨大的威胁,造成了巨大的财产损失。在高楼建筑中发生的火灾,由于建筑高度、人员密集度以及安全疏散难度的增加,往往会导致更为严重的后果。近几年来,我国平均每年发生火灾约30万起,如何有效地监测和预防高楼火灾成为了当今社会亟待解决的问题。
2025-01-20湖泊水位是衡量一个地区水资源状况的重 要指标,对于保障区域供水安全、防洪减灾以及 生态环境保护等方面具有重要意义。 准确预测 湖泊水位的变化趋势,可为相关部门制定合理的 决策提供科学依据。 然而,由于湖泊水位的变化 受到复杂多变的自然和人为因素的影响,传统的 定量预测模型在精度和适应性方面面临诸多 挑战[1-3] 。
2024-12-27人工智能(Artificial Intelligence,AI)技术是公认最有可能改变未来世界的颠覆性技术。AI在军事领域有广阔的应用前景,国内外已将AI不断应用到情报分析处理、目标识别监视、作战辅助决策、网络安全防护以及无人作战系统等智能装备中,在能力和可用性方面取得了巨大的飞跃[1]。
2024-12-03数据安全风险的存在,不仅威胁到个人隐私权益,影响企业发展,甚至关系到国家安全和社会稳定。在这一背景下,强化数据安全措施,构建全面的数据安全防护体系,已经成为迫切需要。这需要政府、企业和个人共同努力,通过立法、技术创新及提高公众的数据安全意识等手段,共同构建一个更加安全、健康的信息社会。
2024-12-03随着遥感卫星和高空平台的快速发展,高空间分辨率遥感图像的应用也变得越来越普遍[1]。遥感影像的语义分割在地貌特征的像素级分类方面具有重要意义,该技术已经在许多工业级图像中得到广泛应用[2-4]。例如,环境灾害监测[5]、土地利用与土地覆盖制图[6-7]、农业资源管理[8]、滑坡识别[9]和交通管理[10-12]等。
2024-12-035G技术以其高速率、低时延、大连接的特点,为各行各业带来了前所未有的发展机遇,但同时也面临着基站选址与优化的巨大挑战[3–4]。因此,深入研究5G基站选址决策与优化问题,对于提升5G网络覆盖质量、优化资源配置、提高通信效率具有重要意义。
2024-12-03随着科学技术的进步,各种协作机械臂和工业机械臂越来越受欢迎.为提高机械臂的智能性和自主性,机械臂自主抓取一直是机器人领域的研究热点之一[1-2].传统的协作机械臂需要操作者具备相关知识,通过编程或拖拽指令实现机械臂的抓取操作[3-4].
2024-12-03在气象观测、工农业、航空航天、食品和药品储存等制造领域,对湿度和温度有着严格要求,因此,对这两个参数的检测变得尤为重要。温湿度传感器近年来得到了大力发展和应用。传统的电子式温湿度传感器易受电磁干扰,灵敏度低,响应时间长,限制了其性能和应用范围。
2024-12-03基于机器学习的网络入侵检测系统(NIDS可以提高检测的准确性和效率,并增加系统对新型威胁的适应能力,鉴于这一优势,本文将深入分析机器学习在NIDS中的应用及其效能,探讨如何利用这一先进技术来增强网络安全防御。
2024-12-03电力巡检是对电力系统相关设备进行定期、有计划、有组织地检测与维护工作,能够及时发现、排除电力故障,确保电力设备运行的稳定性。巡检机器人是能够自主巡检、检测、监控电力设备状态的机器人,拥有导航、感知、移动、监测等能力,能够快速、高效、准确地完成电力巡检任务。
2024-11-26我要评论
期刊名称:网络安全技术与应用
期刊人气:2060
主管单位:中华人民共和国教育部
主办单位:北京大学出版社
出版地方:北京
专业分类:科技
国际刊号:1009-6833
国内刊号:11-4522/TP
邮发代号:2-741
创刊时间:2001年
发行周期:月刊
期刊开本:大16开
见刊时间:1-3个月
影响因子:1.646
影响因子:0.693
影响因子:0.706
影响因子:1.052
影响因子:0.194
400-069-1609
您的论文已提交,我们会尽快联系您,请耐心等待!
你的密码已发送到您的邮箱,请查看!