1974年1月创刊(月刊)
主管/主办:重庆西南信息有限公司
ISSN 1002-137X
CN 50-1075/TP
CODEN JKIEBK
编辑中心
    计算机软件 栏目所有文章列表
    (按年度、期号倒序)
        一年内发表的文章 |  两年内 |  三年内 |  全部
    Please wait a minute...
    选择: 显示/隐藏图片
    1. 过程间流敏感的指针分析技术研究
    帅东昕, 葛丽丽, 谢金言, 张迎周, 薛渝川, 杨嘉毅, 密杰, 卢跃
    计算机科学    2023, 50 (12): 1-13.   DOI: 10.11896/jsjkx.221000195
    摘要355)      PDF(pc) (2019KB)(1481)    收藏
    指针分析技术是一种基础的静态程序分析技术,也是软件安全方向的研究热点之一,在软件缺陷检测、恶意代码分析、程序验证、编译器优化等应用场景中发挥着重要的作用,指针分析的精度在这些应用场景中至关重要。流敏感分析和过程间分析是提高指针分析精度最有效的两种技术。文中对现有的提高过程间流敏感指针分析精度的技术进行总结,从为提高精度所消除的信息入手,将分析方法分为两大类:一类是消除分析中的虚假信息,以避免指向信息沿虚假的返回路径或是虚假调用关系传播;另一类是消除分析中保守的指向关系,在每个程序点处根据设置的规则尽可能确定指针的唯一指向,而不是笼统地计算指针的多个可能指向。据此,详细比较了过程间流敏感指针分析技术的异同,并对指针分析技术未来的研究方向进行了展望。
    参考文献 | 相关文章 | 多维度评价
    2. 软件缺陷标题质量的实证研究
    续永, 孙龙飞, 张汤浩然, 毛新军
    计算机科学    2023, 50 (12): 14-23.   DOI: 10.11896/jsjkx.230300211
    摘要194)      PDF(pc) (2840KB)(1247)    收藏
    软件缺陷标题用简洁的语言描述了软件缺陷的关键信息,有助于软件开发者快速地掌握软件缺陷的梗概,进而高效地开展软件缺陷管理工作。当前诸多软件开发实践中可以发现,软件缺陷标题的质量参差不齐,存在冗长、晦涩、缺乏对关键信息的描述等问题,导致难以阅读和理解,影响了软件缺陷管理的效率和质量。因此有必要深入探究影响软件缺陷标题质量的具体因素以及当前软件缺陷标题的质量情况。文中围绕这两个方面的问题开展了定性和定量相结合的实证研究,选取190个在线文档进行定性分析以获取开发者对缺陷标题质量的需求,基于分析结果采取GQM范式构建了缺陷标题质量度量模型,并以此对GitHub中5个开源项目的1 804个软件缺陷标题进行质量问题普遍性分析。研究结果表明:1)开发者主要关注软件缺陷标题4个方面的质量需求,即简洁(110,58%)、清楚(65,34%)、提供期望信息(157,83%)和提供具体描述(67,35%);2)70%的软件缺陷标题存在不同程度的质量问题。缺乏期望信息和描述不具体是最常见的两类质量问题,42%的软件缺陷标题缺乏期望信息,24%的软件缺陷标题需要补充具体描述。文中的研究发现有助于指导报告者提交高质量的软件缺陷标题。
    参考文献 | 相关文章 | 多维度评价
    3. 基于GAN数据增强的软件缺陷预测聚合模型
    徐金鹏, 郭新峰, 王瑞波, 李济洪
    计算机科学    2023, 50 (12): 24-31.   DOI: 10.11896/jsjkx.221100171
    摘要275)      PDF(pc) (1772KB)(1357)    收藏
    在软件缺陷预测任务中,通常基于C&K等静态软件特征数据集,使用机器学习分类算法来构建软件缺陷预测(SDP)模型。然而,大多数静态软件特征数据集中缺陷数较少,数据集的类不平衡问题较为严重,导致学习到的SDP模型的预测性能较差。文中基于生成对抗网络(GAN),并利用FID得分筛选生成正例样本数据,增强正例样本量,然后在组块正则化m×2交叉验证(m×2BCV)框架下,通过众数投票法聚合多个子模型的结果,最终构成SDP模型。以PROMISE数据库下的20个数据集为实验数据集,采用随机森林算法构建SDP聚合模型。实验结果表明,与传统的随机上采样、SMOTE、随机下采样相比,所提SDP聚合模型的F1平均值分别提高了10.2%,5.7%,3.4%,且F1的稳定性也得到相应提高;所提SDP聚合模型在20个数据集的评测中,有17个F1值最高。从AUC指标来看,所提方法与传统的采样方法没有明显差异。
    参考文献 | 相关文章 | 多维度评价
    4. 基于录制回放的移动应用可访问性增强方法
    李向民, 沈立炜, 董震
    计算机科学    2023, 50 (12): 32-48.   DOI: 10.11896/jsjkx.230300164
    摘要161)      PDF(pc) (5601KB)(1170)    收藏
    移动应用的可访问性指在不受身体和认知障碍的影响下便捷地使用移动应用的能力,其对老年人与残疾人群体具有重要意义。缩短一个应用使用过程中的交互路径(减少操作步骤数)是增强移动应用可访问性的一种重要方式。录制回放技术基于所录制的脚本自动执行交互过程中的固定操作,实现交互操作的缩减。然而,现有的录制回放工具仍存在局限性,包括依赖ROOT权限或使用侵入式手段才能进行录制并实现脚本可迁移。另外,已有工具录制的脚本不支持参数化的操作。针对这些问题,提出了基于录制回放的移动应用可访问性增强方法。在该方法的录制过程中,以可访问性服务为媒介,避免申请ROOT权限或使用侵入式手段,设计路径索引算法保证脚本的可迁移性,设计脚本参数化算法记录参数化操作,从而生成具有终端迁移性和操作数据泛化性的应用执行脚本。基于该方法开发了录制回放原型工具RRA并构建了面向10个流行应用的50个常见执行脚本。使用这些脚本在同一设备上的回放成功率为80%,与对比方法SARA相当。对RRA成功回放的40个脚本中的5个脚本进行参数化录制,在同一设备上的回放成功率达100%。对两种方法均能录制成功的29个脚本以及5个参数化脚本进行迁移执行,RRA的回放成功率为94%,高于SARA。
    参考文献 | 相关文章 | 多维度评价
    5. 面向JavaScript引擎报错机制的类别导向模糊测试方法
    卢凌, 周志德, 任志磊, 江贺
    计算机科学    2023, 50 (12): 49-57.   DOI: 10.11896/jsjkx.221200166
    摘要105)      PDF(pc) (1646KB)(1106)    收藏
    报错机制是JavaScript引擎必不可少的一部分。面对错误的程序,JavaScript引擎报错机制应输出合理的错误信息,指出错误的原因和位置,帮助开发人员修复错误。然而,JavaScript引擎报错机制中存在会阻碍开发人员修复错误的缺陷。文中提出了首个面向JavaScript引擎报错机制的类别导向模糊测试方法CAFJER。给定一个种子程序,CAFJER首先为其选择一个目标类别的错误信息,并进行动态分析得到其上下文信息。其次,CAFJER根据种子程序的上下文信息生成能触发目标类别错误信息的测试用例。然后,CAFJER将生成的测试用例输入不同JavaScript引擎中进行差分测试。若输出的错误信息间有所差异,则说明其中可能存在缺陷。最后,CAFJER自动过滤重复的和无效的测试用例,有效减少了人工的参与。为了验证CAFJER的有效性,将CAFJER与目前先进的相似方法JEST和DIPROM进行比较,实验结果表明,CAFJER在JavaScript引擎报错机制中发现的独特缺陷数分别是JEST和DIPROM的2.17倍和26倍。在为期3个月的实验中,CAFJER还向开发者提交了17个缺陷报告,其中7个已被确认。
    参考文献 | 相关文章 | 多维度评价
    6. 基于测试用例自动化生成的协议模糊测试方法
    徐威, 武泽慧, 王子木, 陆丽
    计算机科学    2023, 50 (12): 58-65.   DOI: 10.11896/jsjkx.221000225
    摘要144)      PDF(pc) (2254KB)(1074)    收藏
    网络协议作为设备之间交互的规范,在计算机网络中发挥着至关重要的作用。协议实体中的漏洞会使设备遭受远程攻击,存在巨大的安全隐患。模糊测试是发现程序中安全漏洞的重要方法。在协议进行模糊测试之前需要对其进行逆向分析,在协议格式以及状态机模型的指导下生成高质量的测试用例。但上述过程中,测试用例生成需要手工构造,并且构造的测试用例难以覆盖深层次状态。针对上述问题,提出了一种自动化的测试用例生成技术。在模板中定义测试用例生成规则,基于状态迁移路径生成算法构建完备的测试路径,有效地对协议程序进行模糊测试。实验结果表明,与当前先进的协议模糊器Boofuzz相比,所提方法的有效测试用例生成数量增加了51.8%。在4个真实软件中进行测试,验证了3个已公开漏洞,同时发现了一个新的缺陷并得到了开发人员的确认。
    参考文献 | 相关文章 | 多维度评价
    7. RVTDS:面向微处理器的追踪调试系统
    高轩, 何港兴, 车文博, 扈啸
    计算机科学    2023, 50 (12): 66-74.   DOI: 10.11896/jsjkx.230100030
    摘要95)      PDF(pc) (2922KB)(1060)    收藏
    软件调试是嵌入式系统开发中最具挑战性的难点之一。在进行高复杂性、高实时性系统调试时,单步-断点时间开销大,易破坏程序执行行为;采用串接机制的JTAG接口,在实现对处于工作状态的复杂多核处理器的并行访问时存在缺陷。片上追踪调试技术通过专用硬件非侵入地获取程序执行状态,有效解决了上述问题。现有的片上追踪调试技术相关研究以追踪完整信息为主,易产生大量无意义的数据;此外,也未考虑压缩后的数据在窄总线上的传输问题。文中设计并实现了一种基于RISC-V指令集的面向多核微处理器的非侵入式追踪调试系统RVTDS,通过复用RISC-V核内平台级别中断控制器,解决多核微处理器高速并行调试时的数据丢失问题;提出了面向片上总线的数据流追踪方案和基于指令位域匹配的控制流过滤机制以实现信息筛选,提供总线带宽统计功能;提出了基于差分编码的数据压缩方法,数据平均压缩率达82%以上;提出了一种数据打包方案以实现窄总线上的数据传输问题,每拍有效数据平均可容纳约1.5个路径信息。系统验证结果表明,RVTDS与传统片上追踪调试方法相比,追踪数据量小,可以灵活高效地完成复杂多核微处理器多种片内运行信息的采集、传输和存储。
    参考文献 | 相关文章 | 多维度评价
    8. 基于CodeBERT的设计模式语言模型
    陈时非, 刘东, 江贺
    计算机科学    2023, 50 (12): 75-81.   DOI: 10.11896/jsjkx.230100115
    摘要105)      PDF(pc) (2161KB)(1077)    收藏
    设计模式是对实际软件设计方案的经验性总结,是软件开发中辅助软件设计的有效方案之一。现有设计模式挖掘研究的任务大多是在源代码中识别设计模式的实例,少有考虑用自然语言语料对设计模式建模。为了提升设计模式语言分类模型的推荐效果,将代码、类图或对象协作纳入考虑范围,提出了一种基于CodeBERT的设计模式分类挖掘模型dpCodeBERT,以实现自然语言与代码语言的对照理解。首先,通过随机组合合成多分类算法数据和代码搜索数据作为模型输入,dpCodeBERT模型能够获取transformer层中的模型为令牌生成的注意力权重;然后,分析令牌和语句注意力权重以发现更有效的模型输入类别,进一步改造训练输入;最后,dpCodeBERT模型能够通过全连接层将分布式特征映射到样本空间并输出复数值的方式实现具体软件工程任务,如设计模式选择和设计模式代码搜索任务。在拥有80个软件设计问题的设计模式选择任务的数据集上的实验结果显示,相比同类基准模型,所提模型在设计模式检测准确率(RCDDP)和平均倒数排名(MRR)两个指标上平均提升了10%~20%,设计模式选择更加准确。通过深度研究模型数据需求,dpCodeBERT挖掘了CodeBERT对类级代码的理解,探索了CodeBERT在设计模式挖掘中的应用,具有预测准确、拓展性强等特点。
    参考文献 | 相关文章 | 多维度评价
    9. RPA流程标准化定义与设计
    赖琪, 蔡宇辉, 夏斯琼, 谢晓全, 刘沛, 李肯立
    计算机科学    2023, 50 (12): 82-88.   DOI: 10.11896/jsjkx.230100020
    摘要90)      PDF(pc) (1745KB)(1050)    收藏
    为解决机器人流程自动化(Robotic Process Automation,RPA)领域缺乏统一流程描述方法的问题,文中提出了一种用于定义和描述RPA流程的规范,主要包括RPA流程中的各类对象,可用于分析复杂RPA应用场景;同时,为更好地定义与描述工作流系统的流程,并解决RPA领域暂无流程建模标准而导致的流程脚本不兼容问题,以业务流程模型和符号(Business Process Model and Notation,BPMN)标准为基础,定义了一套RPA流程建模符号及标签系统。最后,以一种银行系统的典型业务流程为例,展示了使用该规范定义与描述此业务流程的结果,并使用Petri网进行了流程的正确性证明。
    参考文献 | 相关文章 | 多维度评价
    10. 自主机器人的主动观察模式及软件实现架构
    肖怀宇, 杨硕, 毛新军
    计算机科学    2023, 50 (9): 90-100.   DOI: 10.11896/jsjkx.221200053
    摘要224)      PDF(pc) (4588KB)(3844)    收藏
    自主机器人运行在开放环境中,对环境信息的感知受限,难以获得有关环境完整、及时的信息。为有效完成任务,自主机器人需要主动地观察环境,即根据任务的需求,自发地决策、调度和执行观察行为,针对性地获取与任务相关的环境信息。主动观察的需求给自主机器人的观察模式以及软件系统构造提出了两方面的挑战:一方面,为支持任务的有效实现,需设计主动的观察模式,从机制层面确保自主机器人能够基于任务需求,观察所需的环境信息;另一方面,主动的观察模式导致自主机器人观察、决策等软构件的功能抽象和数据交互更为复杂,需要针对上层复杂机制的实现设计适配的软件架构。为应对上述挑战,文中将自主机器人的行为定义为任务行为和观察行为两类,针对开放环境中两类典型的环境信息受限场景——片面观察场景和过时观察场景,提出了两类主动观察模式来构建观察行为与任务行为的协同机制,并基于这两类主动观察模式设计了观察行为的决策和调度算法。另外,还设计了一个基于多智能体系统的自主机器人软件架构,实现了所提出的主动观察模式。最后,为验证所提出的主动观察模式的有效性,选取开放环境中一个典型的任务——图书馆服务机器人的图书传送任务开展实验验证。该任务中,自主机器人对图书的位置信息受限,容易导致图书传送任务失败。文中选取当前自主机器人领域主流的反应式观察和伴随观察模式作为对比方法,通过从行为执行过程、行动轨迹和时间消耗3方面进行对比,验证了所提方法的有效性。
    参考文献 | 相关文章 | 多维度评价
    11. 基于依赖模型的REST接口测试用例生成方法研究
    刘盈盈, 杨秋辉, 姚邦国, 刘巧韵
    计算机科学    2023, 50 (9): 101-107.   DOI: 10.11896/jsjkx.220800071
    摘要159)      PDF(pc) (2740KB)(3903)    收藏
    REST接口中普遍存在依赖关系,导致生成合理的接口调用序列与输入参数变得十分困难。现有的大多数方法只考虑了其中一种依赖关系,并需要人工执行繁杂的前置操作,生成的测试用例有效性仍然较低。针对以上问题,文中提出了一种基于依赖模型的测试用例生成方法。通过解析OpenAPI文档,该方法提取了接口内的操作间依赖关系与参数间依赖关系,并据此建立了两种依赖模型,从模型生成测试用例,最后从3方面确定测试预言。实验结果表明,该方法的输入度量覆盖率达到了100%,状态码类别、状态码、响应资源类型的覆盖率分别达到了100%,91.67%,83.33%,并能在限定时间内检出接口内部缺陷;与RESTler和RESTest相比,该方法的输出度量覆盖率最大提高了36%,触发了最多次的异常响应状态码,检测到接口异常响应的比例最大提高了10%。该方法为REST接口的测试用例生成问题提供了有价值的参考。
    参考文献 | 相关文章 | 多维度评价
    12. 基于迭代轨迹划分的单分支循环程序终止性分析
    王垚, 李轶
    计算机科学    2023, 50 (9): 108-116.   DOI: 10.11896/jsjkx.220700214
    摘要88)      PDF(pc) (1693KB)(3710)    收藏
    秩函数作为循环程序终止性分析的重要方法已得到广泛研究。文中着重研究了单分支循环的终止性。首先提出了双向迭代循环概念,将单分支循环分为双向迭代循环和非双向迭代循环。其次,针对双向迭代循环程序,建立了一种划分思路,提出了三段式秩函数的概念,并证明了若该双向迭代循环存在三段式秩函数,则其是终止的。而对非双向迭代循环,引用增函数的划分思路,即利用增函数将原程序空间划分为更小的空间,并通过计算更小空间上的秩函数来证明原程序的终止性。最后,将三段式秩函数的计算问题归结为SVM分类问题,并利用工具Z3或bottema对由SVM所得的候选秩函数进行验证。
    参考文献 | 相关文章 | 多维度评价
    13. 基于深度学习和信息反馈的智能合约模糊测试方法
    赵明敏, 杨秋辉, 洪玫, 蔡创
    计算机科学    2023, 50 (9): 117-122.   DOI: 10.11896/jsjkx.220800104
    摘要262)      PDF(pc) (2388KB)(3749)    收藏
    主流区块链平台以太坊上频繁发现由不安全编程引起的智能合约安全漏洞。为了提高模糊测试对合约代码的覆盖率,以更全面地检测安全漏洞,提出了一种智能合约模糊测试方法。首先构造智能合约交易序列数据集,再基于深度学习构建智能合约交易生成模型以生成模糊测试初始种子;然后根据覆盖率和分支距离信息,对智能合约进行信息反馈引导的模糊测试,提出了特定的测试用例染色体编码方式,并设计实现了相应的交叉和变异算子。所提方法能有效覆盖智能合约的深层次状态以及严格条件守卫的分支代码。在500个智能合约上进行实验,结果表明,所提方法的代码覆盖率为93.73%,漏洞检测率为 93.93%,与ILF,sFuzz,Echidna方法相比,所提方法的代码覆盖率提高了3.80%~25.49%,漏洞检测率提高了4.64%~24.02%。所提方法有助于提升以太坊智能合约安全测试的有效性,具有参考价值。
    参考文献 | 相关文章 | 多维度评价
    14. 自主机器人的伴随观察模式及其软件实现框架
    薛元洲, 杨硕, 毛新军
    计算机科学    2023, 50 (7): 1-9.   DOI: 10.11896/jsjkx.221200020
    摘要307)      PDF(pc) (1775KB)(1962)    收藏
    自主机器人是一类运行于开放环境下、可自主决策和执行其自主行为的信息物理系统,它根据任务需求进行决策产生行为策略并调度执行。环境状态的动态变化性常常导致规划的行为策略不再适用于当前环境,使得行为执行的结果不符合预期,从而影响自主机器人的任务实现。上述问题对自主机器人软件的行为决策和软件构造均提出了更高的要求。一方面,自主机器人需在行为策略执行过程中加强对环境状态及其变化的观察,并基于观察的结果及时、灵活地调整行为决策,提升机器人的观察模式及行为决策算法的复杂度。另一方面,上述观察、决策、执行行为的复杂交互提升了软件构件抽象及数据交互的复杂性,如何抽象机器人的传感、决策、效应等软构件功能,并提供相适配的软件架构,成为自主机器人软件构造面临的重要挑战。针对上述挑战,首先提出自主机器人伴随行为的思想,显式定义观察与效应行为之间的伴随交互关系,根据行为执行不同阶段提出前提伴随观察模式和目标伴随观察模式,以提升自主机器人对环境变化的感知能力和决策调整能力。其次,开发了一款基于多智能体系统的自主机器人软件开发框架AutoRobot,该框架将机器人的传感器、效应器及规划器抽象为一组自主的软件智能体,智能体间通过自主决策和协同实现上述伴随观察模式。AutoRobot框架针对不同角色智能体设计和封装了一组可重用的软件组件,可有效支持自主机器人软件的复用和高效开发。最后,开展了仿真环境下的实验分析,通过与ROSPlan和DESPOT两种自主机器人任务规划和执行方法进行对比,验证了基于伴随观察模式的任务规划与执行的高效性和有效性。
    参考文献 | 相关文章 | 多维度评价
    15. 针对缺陷根源定位的测试用例生成技术
    杜昊, 王允超, 燕宸毓, 李星玮
    计算机科学    2023, 50 (7): 10-17.   DOI: 10.11896/jsjkx.220700128
    摘要212)      PDF(pc) (2014KB)(1811)    收藏
    缺陷根源定位是软件调试的重要阶段,基于频谱的缺陷根源定位方法是软件自动化调试研究中的热点问题,但其定位效果很大程度上取决于测试用例的质量。不同类型软件的测试输入通用性差,随机生成的测试输入则存在过拟合或混杂项过多的问题,导致分析结果误差较大,致使目前该类技术的应用场景有限。针对测试用例生成问题,提出了基于崩溃路径的分阶段探索方法Dgenerate,并实现原型工具Dloc。首先利用二进制插桩手段在程序执行输入阶段于基本块中插桩路径信息,根据此信息将原始测试输入划分为普通型和引导型;然后利用动态能量调度算法探索崩溃相关路径生成高质量的测试用例;最后在原始程序中执行测试用例并追踪执行时信息,通过统计分析的方法有效地定位到程序缺陷根源的位置。文中选取了6个不同类型软件中的15个真实CVE漏洞进行实验,结果显示Dloc生成的测试用例与已有技术相比可以将定位效率平均提升75%,并且Dloc能够以87%的准确性在评分前五的位置中输出缺陷根源相关代码片段,验证了所提方法系统的可行性和实用性。
    参考文献 | 相关文章 | 多维度评价
    16. 基于Web应用前端行为模型的测试用例生成
    刘子文, 虞莉娟, 苏义鑫, 赵耀, 石柱
    计算机科学    2023, 50 (7): 18-26.   DOI: 10.11896/jsjkx.220900143
    摘要224)      PDF(pc) (2319KB)(1773)    收藏
    基于Web应用前端模型的测试用例生成是Web应用测试的重要过程,但现有的大多数针对Web应用的模型都只关注Web页面及其事件,忽略了事件触发条件和后续动作。为了更准确地描述现代Web应用程序的动态行为,文中定义了一种新的Web应用前端行为模型(Front-end Behavior Model,FBM)。由于模型中迁移的触发条件可能存在内部变量,即迁移之间存在依赖关系,使得生成的测试用例不能按照输入序列执行,从而影响测试效果。为此,提出了一种优化分组遗传算法来实现可执行迁移路径FTP的自动生成,该算法考虑FTP生成问题的特点,对染色体初始化和适应度函数做出合理的设计,加入修补算子调整个体长度生成了满足迁移覆盖的FTP,并且通过引入自适应的遗传算子和模拟退火接收机制来减少迭代次数,从而加快求解速度。实验结果表明,该算法能够在更高的求解效率的基础上有效保证迁移路径的可行性以及覆盖率。
    参考文献 | 相关文章 | 多维度评价
    17. 基于规则的高风险动态类型代码检测研究
    陈芝菲, 郝洋, 陈林, 肖亮
    计算机科学    2023, 50 (7): 27-37.   DOI: 10.11896/jsjkx.221100244
    摘要188)      PDF(pc) (1846KB)(1724)    收藏
    近年来,Python的应用呈爆炸式增长。虽然Python的动态类型特性为开发人员提供了强大的编程抽象能力,但同样也导致代码库中聚集了与类型相关的缺陷。为了减少软件代码中的类型缺陷,文中分析并检测了6种可能导致类型缺陷的高风险动态类型代码。首先,形式化地描述了每种类型的高风险动态类型代码的规则;然后,提出了一种基于规则的高风险动态类型代码检测技术;最后,对25个Python开源软件项目(总规模超过945kLOC)展开了实验评估。结果表明,高风险动态类型代码在开源软件项目中广泛存在,尤其是单个Python函数中可能存在多处变量类型不一致的代码,而基于规则的检测技术在Python软件项目中具有较高的准确率和较好的性能表现。针对高风险动态类型代码的检测技术及实验结论,将为动态类型特性的良性发展以及软件项目的质量保障提供有力的参考和支持。
    参考文献 | 相关文章 | 多维度评价
    18. 基于开发者多元特征的软件缺陷自动分派方法
    董夏磊, 项正龙, 吴泓润, 汪鼎文, 李元香
    计算机科学    2022, 49 (12): 81-88.   DOI: 10.11896/jsjkx.211100040
    摘要308)      PDF(pc) (2948KB)(366)    收藏
    软件缺陷修复是软件生命过程中一个不可忽视的问题,如何高效地进行软件缺陷的自动分派是一个十分重要的研究方向。目前已有的研究方法多侧重于缺陷报告的文本内容或开发者抛掷网络中的浅层信息,而忽视了开发者抛掷网络中的高层次拓扑信息。为此,提出了一个基于开发者多元特征的软件缺陷自动分派模型MFD-GCN。该模型充分考虑开发者抛掷网络中的高层拓扑特征,并运用图卷积网络强大的网络特征提取能力,充分挖掘出代表开发者深层合作关系和修复偏好性的多元特征,并与缺陷报告文本特征一起训练分类器。模型在两个大型开源软件项目Eclipse和Mozilla上进行实验,实验结果表明,相比近年来提出的主流分派方法,MFD-GCN模型在推荐前K个开发者时均取得了较好的推荐结果,其中,在Eclipse项目上Top-1推荐准确率达到了69.8%,在Mozilla项目上达到了59.7%。
    参考文献 | 相关文章 | 多维度评价
    19. R语言及其核心包缺陷的实证研究
    王子元, 卜德欣, 李凌菱, 张霞
    计算机科学    2022, 49 (12): 89-98.   DOI: 10.11896/jsjkx.220200181
    摘要174)      PDF(pc) (1495KB)(265)    收藏
    R语言提供了多种统计计算的功能,并被认为是最适合人工智能领域的程序设计语言之一。语言功能的正确实现是R语言程序正确运行的必要前提,但R语言中不可避免地存在着诸多软件缺陷。文中对R语言及其核心包中的历史缺陷进行了实证研究。通过分析R语言及其核心包中的7 020个缺陷报告发现:1)缺陷所涉及的35个R语言版本中R 3.1.2,R 3.0.2,R 3.5.0所含缺陷的数量较多,这些缺陷大量分布于Documentation,Graphics,Language等少数组件中;2)缺陷优先级整体较高的组件依次是Startup,Installation和Analyses,缺陷严重程度整体较高的组件依次是I/O,Installation和Accuracy,缺陷的优先级和严重性之间存在中等强度的秩相关;3)约78%的缺陷可在一年之内被修复;4)语义错误是缺陷最常见的根本原因,其中缺少功能和数据处理错误在各个阶段均占有较高的比例。这些发现揭示了R语言及其核心包中历史缺陷的一些基本规律,可在一定程度上帮助R语言开发人员提高开发质量,帮助R语言维护人员更高效地检测和修复缺陷,并帮助R语言的使用者规避潜在风险。
    参考文献 | 相关文章 | 多维度评价
    20. 开源社区众包任务的开发者推荐方法
    蒋竞, 平源, 吴秋迪, 张莉
    计算机科学    2022, 49 (12): 99-108.   DOI: 10.11896/jsjkx.220400289
    摘要291)      PDF(pc) (2059KB)(261)    收藏
    Gitcoin是一个基于开源社区GitHub的众包平台。在Gitcoin中,项目团队可以发布开发任务,开发者选择感兴趣的任务并注册,发布者选择合适的开发者完成任务并发放赏金。但是一些任务因缺乏注册者而失败,部分任务未能合格完成,顺利完成的任务也面临开发者注册间隔时间长的问题。因此,需要一种开发者推荐方法,快速为众包任务发现合适的开发人员,缩短开发者注册众包任务的时间,发现潜在合适的开发者并激励其注册,促进众包任务顺利完成。文中提出了一种基于LGBM分类算法的开发者推荐方法DEVRec(Developer Recommendation)。该方法提取任务特征、开发者特征、开发者和任务的关系特征,使用LGBM分类算法进行二分类,计算开发者注册任务的概率,最终得到众包任务的推荐人员列表。为了评估推荐效果,获取Gitcoin的1 599个已完成众包任务、343名任务发布者和1 605名开发者。实验结果显示,与对比方法Policy Model相比,DEVRec前1位、前3位、前5位和前10位推荐的准确度及MRR指标分别提高了73.11%,119.07%,86.55%,29.24%和62.27%。
    参考文献 | 相关文章 | 多维度评价
    21. 基于日志信息的不可重复构建原因分类
    马钊, 刘东, 任志磊, 江贺
    计算机科学    2022, 49 (12): 109-117.   DOI: 10.11896/jsjkx.220300227
    摘要240)      PDF(pc) (2107KB)(269)    收藏
    可重复构建指在预定义的构建环境下重新创建二进制工件的能力。由于可重复构建具有保证软件构建环境安全和提高软件构建和分发效率的作用,许多开源软件存储库(如Debian)开展了软件可重复构建实践。然而,由于缺乏足够的判断信息和源文件的复杂多样,确定软件不可重复构建的原因仍是一项费时费力的工作。为此,研究了基于机器学习的软件不可重复构建原因的分类检测。研究了4种典型的不可重复构建原因,即时间戳、文件顺序、随机性和语言环境。利用word2vec产生的词向量对文本日志进行表示,然后配合logistic回归模型,对差异日志和构建日志合并的文本语料进行学习和训练,从而实现对不可重复构建原因的自动分类。对算法进行了实现,并在671个不可重复构建的Debian软件包上进行实验,实验结果表明,该方法达到了80.75%的宏平均精度和86.07%的宏平均召回率,优于其他常用的机器学习算法。此外,还分析了差异日志和构建日志的相关性和重要性,实验结果表明两者对不可重复构建原因的分类都非常重要,缺一不可。该方法为不可重复构建原因自动分类提供了可靠的研究依据。
    参考文献 | 相关文章 | 多维度评价
    22. 一种基于多粒度特征的软件多样性评估方法
    迟宇宁, 郭云飞, 王亚文, 扈红超
    计算机科学    2022, 49 (12): 118-124.   DOI: 10.11896/jsjkx.211200029
    摘要325)      PDF(pc) (2320KB)(290)    收藏
    针对现有软件多样性评估方法普遍采用单一特征,无法准确表征软件特性进而导致评估准确度较低的问题,提出了一种基于多粒度特征的软件多样性评估方法。该方法从程序的指令、函数、基本块、二进制文件4个粒度进行分析,首先通过小素数乘积法、动态权重分配等算法获取不同粒度的差异度特征,然后根据差异度分析该粒度的多样性,进而探讨多样化技术的有效性。实验部分采用GNU 核心程序集,对指令替换、控制流平坦、伪控制流、NOP插入等7种软件多样化方法进行了综合评估,分析了不同软件多样化方法对不同粒度的特征带来的差异程度和多样性,验证了评估算法的适用性。实验结果表明,该评估方法能够从纵向和横向两个方向对软件多样化方法的有效性进行准确评估,对后续多样化技术的研究具有参考价值。
    参考文献 | 相关文章 | 多维度评价
    23. 基于云平台日志的故障检测和复杂构件系统即时可靠性度量研究
    王博, 华庆一, 舒新峰
    计算机科学    2022, 49 (12): 125-135.   DOI: 10.11896/jsjkx.220200106
    摘要590)      PDF(pc) (2170KB)(280)    收藏
    可靠性、可用性和安全性是软件质量度量的3个重要指标,而软件可靠性是软件质量最重要的指标。传统的软件可靠性评估将软件系统看作一个整体或者将软件系统调用结构视为静态结构。现今的软件结构发生了很多的改变,典型的有自主、协同、演进、动态和自适应等特征,已经渗入到当前的复杂网络结构软件系统中,传统的可靠性评估和预测方法已经不能适应当前复杂网络生态环境下的软件系统。在当前“软件定义一切”的高速信息化社会中,海量的信息系统产生了大规模的数据资源。现代信息系统的异构性、并行性、复杂性以及巨大的规模导致了日志资源的多样和复杂,基于系统日志的精准分析和故障预测对构建安全可靠的系统尤为重要。现有文献研究故障预测和软件可靠性的技术颇多,但是较少针对海量日志以及复杂构件进行软件即时可靠性度量。文中在系统分析日志解析、特征提取、故障检测、预测评估到即时可靠性计算的日志处理全过程中,使用集成学习模型对海量系统日志进行分析和故障预测,与传统的机器学习方法进行了比较,提高了故障预测的准确率、召回率和F1值;针对预测召回率低的情况,采用召回率修正即时可靠性的评估,较大程度地提高了即时可靠性的精度;根据个体的可靠性,通过基于马尔可夫理论的系统可靠性度量微服务复合构件的可靠性,从而为智能化运维提供精确的数据基础和故障定位依据。
    参考文献 | 相关文章 | 多维度评价
    24. 基于计算反射的Android应用程序接口自动生成方法
    王毅, 陈迎仁, 陈星, 林兵, 马郓
    计算机科学    2022, 49 (12): 136-145.   DOI: 10.11896/jsjkx.211100066
    摘要224)      PDF(pc) (3863KB)(258)    收藏
    随着移动设备硬件技术和5G等通信技术的发展,智能应用软件不断涌现,其提供的功能已涉及人们生活和工作的方方面面。应用内功能众多,不仅可以满足应用使用者的需求,还能被进一步发布成应用程序接口(API)用于外部调用,例如应用发布的API可以被智能语音助手调用。然而,为了生成应用内功能的API,开发者通常需要在应用开发阶段通过手工编码来实现,对于开发时没有发布的API,在应用上线以后,其功能则无法被外部调用。针对此问题,文中提出了一种基于计算反射的Android 应用API自动生成方法。该方法能够在不修改源代码的情况下,基于计算反射机制重建Android应用的Activity界面运行时软件体系结构;面向指定功能的测试用例,分析用户行为工作流以及对应的程序调用;通过模拟用户行为的方式调用指定功能,并生成对应的API。针对“豌豆荚”Android应用商店中的300个流行应用进行方法评估,实验结果显示,所提方法适用于其中的280个应用;对于指定功能,所提方法能够在15 min左右实现其API,且API的性能满足外部调用的需求。
    参考文献 | 相关文章 | 多维度评价
    25. 基于演化和语义特征的上帝类检测方法
    王继文, 吴毅坚, 彭鑫
    计算机科学    2021, 48 (12): 59-66.   DOI: 10.11896/jsjkx.210100077
    摘要342)      PDF(pc) (1514KB)(637)    收藏
    随着软件开发迭代速度的加快,开发人员在编码过程中往往由于交付压力等种种原因违反软件设计的基本原则,造成代码坏味,进而影响软件质量。上帝类是最常见的代码坏味之一,指承担了太多职责的类。上帝类违反“高内聚、低耦合”的设计原则,损害软件系统的质量,会影响代码的可理解性和可维护性。因此,文中提出一种新的上帝类检测方法。首先抽取实际项目中方法在演化、语义等维度上的特征;然后对演化、语义特征进行融合,并基于融合后的结果重新聚类,将彼此关系紧密的方法重新划归到新的类簇中;通过分析实际项目中各个类的成员方法在新的聚类结果中的分布情况,计算类的内聚度,从而找出内聚度低的类作为上帝类检测结果。实验表明,所提方法优于目前主流的上帝类检测方法。与基于度量的传统检测方法相比,该方法在查全率、查准率上均提升超过20个百分点;与基于机器学习的检测方法相比,该方法尽管查全率略低,但查准率、F1值均有显著提升。
    参考文献 | 相关文章 | 多维度评价
    26. 基于元模型的协同建模模型组装与更新方法
    张子良, 庄毅, 叶彤
    计算机科学    2021, 48 (12): 67-74.   DOI: 10.11896/jsjkx.201100024
    摘要331)      PDF(pc) (1872KB)(664)    收藏
    随着软件规模日益增大,软件复杂度不断提高,飞机、轮船等大型系统的设计与开发往往是由多个不同专业领域、具有不同职能的团队相互协同完成的。针对协同建模中局部模型之间缺失信息所导致的模型不完整问题和更新操作之间发生冲突所导致的模型不一致问题,文中首先提出了一种基于元模型的协同建模模型组装与更新方法(Model Combination and Update,MCAU),该方法在元模型上定义了协同关系与更新操作,可在协同建模过程中保证模型的完整性与一致性,并通过一个实例对所提方法进行了应用与分析。其次,文中还提出了一种基于模型驱动的软件协同建模框架(Software Collaborative Modeling Framework,SCMF),该框架可有效支持多种建模语言的扩展。最后,基于Eclipse框架开发了软件协同建模原型系统CorMo-del,并通过相关实验进一步验证了MCAU方法的有效性。
    参考文献 | 相关文章 | 多维度评价
    27. 基于次模函数最大化的测试用例集约简
    文进, 张星宇, 沙朝锋, 刘艳君
    计算机科学    2021, 48 (12): 75-84.   DOI: 10.11896/jsjkx.210300086
    摘要338)      PDF(pc) (6167KB)(755)    收藏
    随着软件回归测试规模的不断增大和成本的不断增加,测试用例集约简对于提高软件的回归测试效率显得愈发重要。在选取测试用例子集时,需考虑该子集的代表性和多样性,并采用一个有效的算法来求解。针对该测试用例集约简问题,文中提出了一种基于次模函数最大化的算法SubTSR。尽管引入的离散优化问题是NP-hard问题,但文中利用其目标函数的次模性,采用启发式贪心搜索,求得有近似度保证的次优解。在15个数据集上对SubTSR算法与其他测试用例集约简算法展开实验,针对平均错误检出率、错误检测损失率、首次错误检出位等指标,尝试改变LDA处理中的主题个数以及衡量测试用例相似度的距离,以验证SubTSR算法的有效性。实验结果表明,SubTSR算法在错误检出性能上较其他算法有着较大提升,且在多个数据集上的表现保持相对稳定。在主题个数变化引起文本表示变化时,采用曼哈顿距离的SubTSR算法的性能相较其他算法仍能保持相对稳定。
    参考文献 | 相关文章 | 多维度评价
    28. 基于深度优先搜索的模糊测试用例生成方法
    李毅豪, 洪征, 林培鸿
    计算机科学    2021, 48 (12): 85-93.   DOI: 10.11896/jsjkx.200800178
    摘要392)      PDF(pc) (2584KB)(821)    收藏
    模糊测试是挖掘网络协议漏洞的重要方法之一。现有的模糊测试方法存在覆盖路径不完全、效率低下等问题。为了解决这些问题,文中提出了基于深度优先搜索的模糊测试用例生成方法,该方法将状态机转换成有向无回路图,以获得状态迁移路径,并通过提高测试用例在发送报文中的占比来提升模糊测试效率。该方法主要包括合并状态迁移、消除循环路径、搜索状态迁移路径、标记重复状态迁移和基于测试用例引导的模糊测试5个阶段。在合并状态迁移阶段,将首尾状态相同的状态迁移进行合并。在消除循环路径阶段,根据深度优先搜索判断图中的循环,并通过删除边将状态机转换成有向无回路图。在搜索状态迁移路径阶段,搜索有向无回路图从初始状态到终止状态的全路径,并对原状态机图使用Floyd算法补充被去除的边构造测试路径,以确保充分测试状态机中的每一个状态迁移。在标记重复状态迁移阶段,对重复状态迁移进行标记,避免对重复的状态迁移进行反复测试,以缩减测试的冗余。在基于测试用例引导的模糊测试阶段,生成针对状态迁移的测试用例,并将测试用例均匀分发到重复的状态迁移上,其中的部分测试用例能够起到引导状态迁移的作用,对被测目标进行模糊测试。实验结果表明,所提方法能够取得更高的有效测试用例比例。
    参考文献 | 相关文章 | 多维度评价
    29. 基于多维度特征和混合神经网络的代码可读性评估方法
    米庆, 郭黎敏, 陈军成
    计算机科学    2021, 48 (12): 94-99.   DOI: 10.11896/jsjkx.200800193
    摘要371)      PDF(pc) (1631KB)(777)    收藏
    对代码可读性进行定量、准确的评估是有效保障软件质量、降低沟通成本以及维护成本、提高软件开发和演化效率的重要途径。然而,现有的针对代码可读性评估的研究方案大多是基于特征工程的,受到源代码表征方式、技术手段等多方面因素影响,其评估准确率并不高。为此,文中采用深度学习作为主要技术手段,提出了一种基于多维度特征和混合神经网络的代码可读性评估方法,通过整合并运用各种单一神经网络的优势,从字符级、词条级等不同维度挖掘源代码中蕴含的结构信息和语义信息,最终实现对代码可读性的量化评估。实验表明,该方法能够获得高达84.6%的评估准确率,比单独使用卷积神经网络提升了9.2%,比单独使用循环神经网络模型提升了6.5%,并且其表现优于现有的5个可读性模型,验证了所提出的多维度特征和混合神经网络的有效性。
    参考文献 | 相关文章 | 多维度评价
    30. 基于情境感知的API个性化推荐
    陈晨, 周宇, 王永超, 黄志球
    计算机科学    2021, 48 (12): 100-106.   DOI: 10.11896/jsjkx.201000127
    摘要258)      PDF(pc) (1865KB)(641)    收藏
    在软件开发的过程中,开发人员在遇到编程困境时通常会检索合适的API来完成编程任务。情境信息和开发者画像在有效的API推荐中起着至关重要的作用,却在很大程度上被忽视了。因而文中提出了一种基于情境感知的API个性化推荐方法。该方法利用程序静态分析技术,对代码文件做抽象语法树解析,提取信息构建代码库,并对开发者API使用偏好建模。然后计算开发者当前查询语句与历史代码库中查询的语义相似度,检索出top-k个相似历史查询。最终利用查询语句信息、方法名信息、情境信息以及开发者API使用偏好信息对API进行重排序并推荐给开发者。通过模拟编程任务开发的不同阶段,使用MRR,MAP,Hit,NDCG评估指标来验证所提方法的有效性。实验结果表明,所提方法的API推荐效果优于基准方法,能够为开发者推荐更想要的API。
    参考文献 | 相关文章 | 多维度评价
    首页 | 前页| 后页 | 尾页 第1页 共2页 共38条记录