本发明涉及一种智能软件一体化测试方法,属于软件测试。
背景技术:
1、智能软件在军事装备、航空航天、汽车等安全攸关领域获得了日益广泛的应用。与基于确定规则的传统软件不同,智能软件的构造是数据驱动的,其本质上是基于统计学的技术,天然具有不确定性。使用者往往无法准确预测智能软件的输出,且难以获知在多大程度上可以信赖智能软件的输出。智能软件一旦产生错误的预测,就有可能在安全攸关系统中引发灾难性的后果,例如,自动驾驶过程中对行人感知错误就可能引发安全事故。因此需要对安全攸关领域的智能软件进行测试,以确保其质量满足安全攸关场景的需求。针对传统软件的测试方法有很多,但由于智能软件在开发方法、制品、质量特性和测试充分性评价等方面都存在很大区别,已有的针对传统软件的测试方法和系统都难以适用。
2、在智能软件测试领域,当前存在一些单点的测试方法。
3、1)神经网络鲁棒性测试方法:通过对神经网络的输入图像x按照特定方法添加微小扰动得到新图像x+δx,可以使网络生成错误预测,这类图像x+δx称为对抗样本。鲁棒性即用于衡量神经网络在输入对抗样本时的稳定程度。常用的对抗样本生成方法有:a)快速梯度符号方法(fast gradient sign method,fgsm),基于梯度上升的思想来生成对抗样本,对于输入原始图像x、x对应类别y以及模型参数θ,计算损失函数对x的梯度▽xj(θ,x,y),之后给定一个小的步长ε,通过对原始图像添加一个小的扰动(损失函数梯度方向的符号),生成对抗图像x′=x+ε*sign(▽xj(θ,x,y));b)迭代梯度符号方法(iterative fastgradient sign method,i-fgsm)快速梯度符号方法(fgsm)的扩展,与fgsm单步修改输入数据不同,i-fgsm通过多步小步长扰动,不断迭代更新对抗样本,每一步都是一个fgsm攻击,通过迭代过程,i-fgsm能通过小步长逐渐微调对抗样本,使得攻击效果更好。
4、2)神经网络覆盖率测试方法:神经网络的覆盖率是指一批测试样本在神经网络上前向推理之后,按照某种覆盖率统计所得神经元数量占总神经元的比例。常用的覆盖率指标有:神经元覆盖率、k多节神经元覆盖率、神经元边界覆盖率等。较高的覆盖率一定程度上反映了测试的充分性。神经网络覆盖率测试方法旨在以覆盖率引导的方式,生成能使神经网络产生高覆盖率的样本,进而提升暴露缺陷的概率。
5、3)神经网络不确定性量化方法:神经网络不确定性量化通过衡量预测结果的确定度来辅助理解模型的行为,常用的神经网络不确定性量化方法包括:a)贝叶斯神经网络(bnn),通过引入先验分布来对神经网络的权重进行建模,然后使用贝叶斯推断来更新这些权重的后验分布;b)mcdropout,它通过在训练和测试过程中随机丢弃神经网络的一部分连接来模拟不确定性;c)基于集成的方法,通过训练多个神经网络并将它们的预测结果进行集成,以达到量化不确定性的目的。
6、这些方法都是从神经网络的某个方面出发进行测试,没有考虑到智能软件各类软件制品的测试以及对安全攸关智能软件所关注的各类质量特性的测试,一体化程度和系统性不足,难以满足实际工业场景下安全攸关智能软件测试的需要。
7、目前,也存在一些针对智能软件的评测系统:
8、1)鲁棒性测试工具:如ibm research开发的adversarial robustness toolbox(art)、google开发的cleverhans、百度开发的advbox等。这类工具的共同特点是都集成了诸如fgsm、i-fgsm、c&w、deepfool等主流对抗样本生成算法,可用于智能软件鲁棒性的研究。但这些工具没有图形化界面,测试时一体化程度较低,需要具备较强的专业知识才能使用,而且除鲁棒性之外不提供对其他属性的测试,系统性较差。
9、2)北京航空航天大学计算机学院刘艾杉团队开发的人工智能安全评测平台“重明”:该平台可用于对图像分类、目标检测等计算机视觉任务开展鲁棒性测试和正确性测试,支持多种对抗性攻击算法的选择和多种评估指标的计算。该平台在使用便捷程度上比art、cleverhans、advbox等工具有明显提升,但其应用场景局限于公开数据集和模型,适用于学术研究而非实际工业场景,此外,该平台不具备评测流水线配置功能,一体化程度较低,测试的范围局限于模型正确性和鲁棒性,系统性较差。
10、3)北京瑞莱智慧科技有限公司开发的人工智能安全平台“realsafe”:该平台支持图像、文本以、表格以及大模型系统的安全评测,主要服务于安防、金融等领域,核心功能包括对抗攻击评测、模型后门检测以及模型安全加固。该平台在对抗攻击方面实力较强,但由于所设计评测角度单一,导致该平台的系统性较差。
11、4)中国科学院软件研究所开发的智能算法测评平台“ai truster”:该平台支持对图像、语音、文本三种类别智能软件的评测,提供准确性、白盒对抗样本、黑盒对抗样本、覆盖率测试等多种类型测试服务,且支持用户自主选择一种或多种测试服务、配置测试参数。相较于前三者,“ai truster”的评测更加全面,但在该平台的设计中,未考虑智能软件的学习程序质量、模型结构以及不确定性,系统性仍存在提升的空间,且由于不具备评测流水线配置功能,导致其一体化程度存在不足。
技术实现思路
1、本发明解决的技术问题是:针对目前现有技术中,测试方法单一、系统一体化程度低、自动化程度低的问题,提出了一种智能软件一体化测试方法。
2、本发明解决上述技术问题是通过如下技术方案予以实现的:
3、一种智能软件一体化测试方法,包括:
4、选定训练数据集并进行数据集审查;
5、确定待测试智能软件的学习代码,对学习代码进行审查及静态分析,获取学习代码得分;
6、读取待测试智能软件的模型文件并进行可视化审查;
7、选定测试数据集,扩增处理后获取扩增数据集;
8、编写待测试智能软件的推理代码,利用推理代码及通过审查的模型文件运行扩增数据集,保存推理结果;
9、利用测试脚本确定扩增数据集中的标注信息,与推理结果进行比对,获取正确性测试结果并进行正确性测试评分转换;
10、对满足正确性测试评分标准的模型文件进行鲁棒性测试,获取测试评分;鲁棒性测试包括抗攻击性测试、抗干扰性测试;为二选一测试;
11、利用训练数据集对模型文件进行不确定性量化,评测模型文件的不确定性;
12、利用测试数据集对模型文件进行覆盖率测试,评测模型文件的覆盖率;
13、对所有测试环节的得分及对应测试环节的通过得分指标进行比较,通过所有测试环节的待测试智能软件视为通过一体化测试。
14、选定待测试智能软件的输入数据作为训练数据集t1,分别对训练数据集的量级充足性、标注信息完整性、数据集一致性、数据集多样性、语义分割标注准确性及不同类别数据区域大小进行审查,具体为:
15、量级充足性:当训练数据集样本数量不小于预设值则通过审查;
16、标注信息完整性:当训练数据集中标注缺失的样本占总样本量的比例小于预设值则通过审查;
17、数据集一致性:当训练数据集中图片数据的格式为指定格式范围中的一种则通过审查;
18、数据集多样性:当训练数据集中,包含距离着陆器不同距离时拍摄的图片数据、不同角度拍摄的图片数据、不同光照条件下拍摄的图片数据、着陆器不同视图拍摄的图片数据,则通过审查;
19、语义分割标注准确性:统计存在分割边界偏离实际轮廓超过3个像素点的情况的样本数量占总样本量的比例,若小于预设值则通过审查;
20、不同类别数据区域大小:当训练数据集中不同类别分割区域占图像比例的均值相差倍数不大于预设值倍数则通过审查。
21、对学习代码进行审查及静态分析的标准具体为:
22、判断学习代码的智能框架在不同版本中的api是否适用;
23、判断学习代码的训练参数batchsize、学习率是否合理;
24、判断学习代码的编码是否符合pep8编码规范;
25、判断学习代码是否存在语法错误或名称错误;
26、判断学习代码是否使用了不支持的操作类型;
27、判断学习代码是否存在索引错误;
28、判断学习代码是否存在访问字典键错误;
29、判断学习代码是否存在函数参数值错误;
30、判断学习代码是否存在除零错误;
31、若学习代码中的各行代码存在任一审查及静态分析的标准不适用时,所选行代码的得分不通过审查,修改学习代码并重新进行审查及静态分析。
32、可视化审查方法为:
33、确定待测试智能软件的模型文件m,将所得模型文件保存后,根据模型文件m确定网络结构矢量图及待测试智能软件中各模块名称及参数;根据网络结构矢量图进行各类别影响错误类别的可视化审查;
34、网络结构矢量图中出现任一错误类别后产生偏差,错误类别具体为:网络层数不适用、神经元数量不适用、激活函数不适用、未进行正则化处理。
35、测试数据集扩增处理方法为:
36、选定基础测试数据集t2,进行旋转、缩放、翻转、裁剪、颜色扭曲、拼接、仿真中任一或任意数量的处理方法,完成扩增处理以获取扩增数据集t2′。
37、正确性测试评分的确定方法为:
38、确定模型文件m、扩增测试数据集t2′,根据模型文件m与测试数据集t2′的路径正确编写推理代码,将测试数据集t2′于模型文件m上进行前向推理;
39、根据预选的正确性测试脚本,将测试数据集t2′中的标注信息与前向推理所得推理结果进行比对,获取正确性测试结果;
40、根据获取的正确性测试结果,通过正确性指标的遍历判断,完成正确性测试评分转换。
41、所述正确性指标包括像素准确率、类别像素准确率、类别平均像素准确率、交并比、平均交并比,分别为正确性测试结果的图像数据中,预测正确的像素值相对于总像素值的比例、预测为类i的所有像素点中,实际属于类i的像素点所占的比例、各类别的像素准确率之平均值、模型文件m对任一类别预测结果和真实值的交集与并集的比值、模型文件m对每一类预测的结果和真实值的交集与并集的比值求和平均后结果。
42、对满足正确性测试评分标准的模型文件进一步进行抗干扰性测试和鲁棒性测试,具体测试方法为:
43、确定输入的扩增测试数据集t2′、推理代码l2、模型文件m以及对抗性样本生成算法参数;
44、对抗干扰性测试的对抗性样本生成算法、各类算法生成图片数量、扰动距离进行配置;
45、根据对抗性样本生成算法生成的对抗样本和扩增测试数据集t2′中的标注信息,构成鲁棒性测试数据集t2″并进行保存;
46、将鲁棒性测试数据集t2″在模型文件m上进行前向推理并进行保存,根据鲁棒性测试数据集t2″中产生错误预测结果或预测结果偏差大于预期的对抗样本数量占全部对抗样本生成数量的比重,作为攻击成功率;
47、根据攻击成功率、扰动距离、攻击次数,获取鲁棒性测试评分。
48、模型文件m的不确定性评测方法为:
49、根据模型文件m建立相同网格结构并采用预设概率分布的贝叶斯神经网络权重设置;
50、通过训练数据集t1训练贝叶斯神经网络,于训练过程中持续更新权重所服从的预设概率分布;
51、利用测试数据集t2′输入训练完成后的贝叶斯神经网络,获取测试结果,通过置信度或概率分布表示;
52、根据所有测试数据对应的测试结果,获取不确定性量化得分用于表示模型文件的不确定性。
53、覆盖率测试具体方法为:
54、通过测试数据集t2′以及测试数据集t2″在模型文件m上进行前向推理;
55、根据推力结果计算神经元覆盖指标、神经元强激活覆盖指标、神经元top-k网络区域覆盖指标、神经元对覆盖指标、脆弱神经通路指标、对抗神经通路指标;
56、根据所有指标计算算术平均值并转换为百分制,记为覆盖率得分。
57、本发明与现有技术相比的优点在于:
58、(1)本发明提供的一种智能软件一体化测试方法,覆盖了智能软件的数据集、学习程序以及智能模型等软件制品,评测的内容包括训练数据集的质量、学习程序的质量、算法的正确性、算法鲁棒性、模型不确定性以及测试充分性,可以对智能软件的质量进行综合评价,解决了现有测试方法系统性不足的问题;
59、(2)本发明能够通过设置相应的测试模块执行对应的测试方法,能够执行测试项目管理、测试流水线配置、测试环境容器化配置及创建、测试自动化执行及评测报告生成,能够对给定智能软件的各类制品以及质量属性进行一体化的评测,自动化程度高,克服了当前相关评测系统功能单一、评测不充分的问题;
60、(3)本发明通过全方位的评测,能够有效检测智能软件所存在的缺陷,为智能软件在安全攸关领域内的应用提供保障。本发明还提出了一种包含项目管理模块、测试流水线配置模块、环境容器化配置及创建模块、测试自动化执行模块以及评测报告生成模块共5个模块的安全攸关智能软件一体化评测系统,可对智能软件评测任务实施便捷的项目管理、自定义配置以及高自动化程度的测试执行,有效提升评测效率。