温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
约束
组合
软件
安全
功能
测试
生成
研究
吴琦
计算机与通信技术Computer and Communication Technology自动化技术与应用2023 年第 42 卷第 6 期Techniques ofAutomation&Applications基于约束组合的软件安全功能测试用例生成研究吴 琦,李国要,方丽萍(安徽继远检验检测技术有限公司,安徽 合肥 230088)摘要:现有应用程序软件缺陷检测用例生成方法面对复杂应用程序时覆盖率较低,研究基于约束组合的软件安全功能测试用例生成方法。采用自适应控制协议均衡控制输入链路,提取复杂应用程序缺陷分布特征,依据缺陷分布特征定位程序安全模块缺陷。采用约束组合法构建复杂应用程序软件安全功能测试用例生成模型,实现复杂应用程序软件的安全功能测试用例自动生成。仿真结果表明,该方法提高了现有测试用例对复杂应用程序软件缺陷的测试覆盖率,最高可达99.8%。关键词:约束组合;软件安全功能;测试用例中图分类号:TP309文献标识码:A文章编号:1003-7241(2023)06-0116-04Research on Test Case Generation of Software Security FunctionBased on Constraint CombinationWU Qi,LI Guo-yao,FANG Li-ping(Anhui Jiyuan InspectionAnd Testing Technology Co.,Ltd.,Hefei 230088 China)Abstract:Existing application software defect detection use case generation methods results in low coverage of the generated test caseswhen facing complex applications.This paper researches on the software security function test case generation method based onconstraint combination.The adaptive control protocol is used to balance the control input link,extract the defect distribution char-acteristics of complex applications,and locate the defects of the program security module according to the defect distribution char-acteristics.Constraint combination method is used to construct the safety function test case generation model of complex applica-tion software to realize the automatic generation of safety function test case of complex application software.The simulation re-sults show that this method improves the test coverage of complex application software defects by existing test cases,up to 99.8%.Keywords:constraint combination;software security features;test case收稿日期:2021-07-14DOI:10.20033/j.1003-7241.(2023)06-0116-04.1引言随着软件功能不断增强,软件品种不断增多,软件集成性和复杂性越来越高。对复杂应用程序软件测试和开发过程中,受程序的过程动态性和数据源多样性因素影响,导致复杂应用程序软件故障调试难度较大,安全性受到影响。需研究应用程序软件安全功能测试用例生成方法1,满足面向群组用户复杂应用程序软件的安全功能测试能力。软件测试用例生成方法相关研究中,国外有研究学者通过设计与生成测试用例测试软件的使用效果,但并未考虑软件测试的可扩展问题;在国内,王微微等人提出Web应用前后端融合的遗传算法并行化测试用例生成方法2,利用种群并行化计算改进遗传算法,采用线程池及调度逻辑设计,控制多个浏览器进程获取覆盖路径,实现并行化计算,以此提高测试用例生成效率;徐涛等人提出一种混合粒子群组合测试用例集生成算法3,解决了软件测试过程中测试用例冗余问题,减少系统组合测试时产生的用例集规模,提高了测试效率。以上方法在生成测试用例时效率较高,但针对复杂软件生成的测试用例测试覆盖率较低。对此,本文提出面向群组用户的复杂应用程序软件安全功能测试用例生成技术。根据程序模块代码相似度特征检测结果进行复杂应用程序软件安全模块缺陷的特征定位与分类,构建复杂应用程序软件安全功能测试用例生成模型,以此实现对复杂应用程序软件的安全功能测试用例自动生成。实验结果证明,本文方法有效改善了现有测试用例对于复杂程序缺陷测试覆盖率较低的问题。2软件安全功能模块缺陷特征提取2.1输入参数为实现安全功能模块缺陷的特征提取,将待检测软件相关参数进行输入,在输入参数前,需要保证输入部分的链路能够被均衡控制,因此采用自适应的控制协议4控制输入链路,自适应控制协议公式如下:116自动化技术与应用2023 年第 42 卷第 6 期计算机与通信技术Computer and Communication TechnologyTechniques ofAutomation&Applications(1)式(1)中,pi为待测试程序模块数量,a为输入信号幅值,为输入部分的链路数量,c为输入链路的传输带宽。由于所提测试用例主要用于针对应用程序软件的安全功能进行测试,因此在待测试程序所输入的参数中,筛选程序的安全功能模块参数,程序需要测试的安全模块分布需满足式(2)。(2)式(2)中,F表示安全模块分布约束,为待测试程序安全模块中可被篡改的数据包个数。程序安全模块分布结构结合输入部分相关链路分布,得到触发检测行为信号K如下:(3)式(3)中,i为待测试程序数据包大小,以此完成待检测程序安全模块信号输入,以所输入信号为基础进行程序安全模块缺陷特征提取。2.2特征提取由于现有测试用例未提取复杂应用程序的缺陷特征5,因此对于复杂应用程序的测试覆盖率较低,因此生成测试用例前需提取复杂应用程序模块的缺陷特征分布概率。结合均衡调节方法6,得到软件安全功能模块缺陷特征的冲激响应函数为:(4)式(4)中,j为冲击信号频率,R为输入信号响应率。分析程序模块与缺陷的关联,获取安全功能模块缺陷特征点位置数据为:(5)以此实现待检测程序的缺陷特征提取,根据软件安全功能模块与缺陷的强相关性的特征与缺陷特征点分布,进行用例生成算法设计。3软件安全功能测试用例生成算法设计3.1软件缺陷定位算法为生成测试用例,依据计算所得程序缺陷的特征点位置对含有缺陷的程序模块进行筛选,得到含有缺陷的软件功能模块W表示如式(6)。(6)式(6)中,表示软件安全模块中数据的入侵率。针对不同场景,不同软件开发人员的定位需求7,采用复杂应用程序软件的数据包转发协议8,得到复杂应用程序软件安全功能模块入侵数据覆盖密度表示为:(7)式(7)中,t为被篡改数据量,为入侵攻击速度,为程序成功隔离入侵数据概率。对复杂应用程序安全功能模块缺陷所出现位置进行隶属度标记,具体分类结果见表1。表1缺陷定位分类软件缺陷类型基于文件的缺陷定位基于函数的缺陷定位基于语句的缺陷定位基于代码变更(code change)的缺陷定位等级分布ADA,B,CA,BA,B,C缺陷与模块的关联度0.8880.8000.8110.835由此,实现了软件安全模块缺陷特征的定位,以此为基础,构建复杂软件安全功能测试用例生成模型,实现相应的测试用例生成。3.2软件安全功能测试用例生成实际应用中往往存在不止一个的条件限制,也就是所说的约束条件,大量的条件限制给问题的求解带来了极大的挑战,这类优化问题,称之为多约束组合优化问题。根据软件缺陷分布特征和位置分类挖掘软件缺陷,根据样本中缺陷覆盖密度,采用约束组合法9-10实现复杂应用程序软件缺陷探测,得到可靠链路数量表达式如下:(8)式(8)中,为关联约束系数,结合可靠链路数量得到复杂应用程序软件安全功能测试用例能耗开销为:(9)式(9)中,Sj是安全功能测试用例覆盖的联合交点,为模块内存储数据量,安全功能模块缺陷与项目元数据自相关关系为:(10)式(10)中,x为相关性阙值,qi为项目元数据。缺陷报告与程序模块关联度如表2所示。根据表2中缺陷报告和程序模块相关性,得到复杂应用程序软件安全功能测试用例生成模型为:(11)式(11)中,di表示长缺陷报告文本,表示程序模块的词汇误差。采用式(11)模型实现对复杂应用程序软件的安全功能测试用例自动生成,实现对复杂应用程序软件安全功能程序控制和自动化测试,移除特殊字符和标点符号,根117计算机与通信技术Computer and Communication Technology自动化技术与应用2023 年第 42 卷第 6 期Techniques ofAutomation&Applications据缺陷报告和程序模块文本内容,实现软件安全功能测试用例自动生成。表2缺陷报告与程序模块的关联结构信息表软件安全用例约束项程序进程描述(description)评论(comment)组件(component)版本号(version)缺陷程序模块API 文档ISSTAICPC代码变更进程线1进程线2进程线3进程线4进程线5进程线6程序模块1程序模块2程序模块3程序模块4程序模块5程序模块6关联系数0.4080.3670.3720.3830.3930.3510.3690.3750.3510.3650.3540.3560.3420.4020.3650.5200.4970.4790.4930.4670.4580.481程序模块贡献度0.7990.7200.7300.7510.7700.6890.7220.7340.6890.7150.6940.6980.6700.7870.7151.0200.9740.9380.9670.9140.8980.943API 文档约束系数0.7640.8360.8110.7690.7200.8110.7420.7220.8070.7350.7360.7150.0000.7850.7600.7840.8200.8490.7710.8330.8310.784联合参数集0.6040.6020.5990.5990.5920.5860.5830.5800.5800.5650.5640.5620.2790.6190.5740.7120.7060.7000.6870.6850.6780.6764仿真测试与结果分析为了测试本方法在实现基于约束组合的软件安全功能测试用例生成和缺陷定位的应用性能,进行实验测试,设定缺陷报告和程序模块的数据规模为2 000,相关特征分布系数见表3。根据表3检测结果,设定复杂应用程序软件安全功能测试用例数为120,测试缺陷模块增强评分及性能测试,测试结果见表4。分析表4得出,采用本方法,能有效实现软件安全功能测试用例生成,评分可靠性较高。为进一步测试本方法生成的测试用例对缺陷的测试覆盖率,选用本方法、文献2方法与文献3方法同时对18个程序项目进行安全模块缺陷测试,结果如图1所示。根据图1的数据分析结果,得到本方法进行软件安全功能测试用例生成的缺陷测试覆盖率较高,最高可达99.8%;文献2方法与文献3方法