1974年1月创刊(月刊)
主管/主办:重庆西南信息有限公司
ISSN 1002-137X
CN 50-1075/TP
CODEN JKIEBK
编辑中心
    计算机软件 栏目所有文章列表
    (按年度、期号倒序)
        一年内发表的文章 |  两年内 |  三年内 |  全部
    Please wait a minute...
    选择: 显示/隐藏图片
    1. 基于主题一致性保持和伪相关反馈库扩展的缺陷报告重构方法
    刘文杰, 邹卫琴, 蔡碧瑜, 陈冰婷
    计算机科学    2024, 51 (7): 1-9.   DOI: 10.11896/jsjkx.230400069
    摘要118)      PDF(pc) (2083KB)(297)    收藏
    为了加快开发人员定位软件缺陷,研究人员提出了一系列基于文本检索的缺陷定位技术,自动为用户所提交的缺陷报告推荐可疑的代码文件。由于用户的专业知识不同,编写的缺陷报告质量不一致,因此某些低质量的缺陷报告无法被成功定位。对低质量的缺陷报告进行重构从而改进其定位效果,是常见的解决方案。现有基于查询扩展和查询缩减的主流重构方法,容易出现重构前后查询主题不一致或所依赖伪相关库质量差导致重构质量低的问题。对此,提出了一种基于主题一致性保持和伪相关反馈库扩展的缺陷报告重构方法,由主题一致性保持的查询缩减阶段和伪相关反馈库扩展的查询扩展阶段两部分组成。查询缩减阶段将缺陷报告的概要问题描述和从问题描述文本中提取的关键词合并来解决主题不一致性问题;查询扩展阶段综合使用多种定位工具(即 Lucene,BugLocator 和 Blizzard)来获得伪相关反馈库,并从中提取查询扩展关键词,以解决现有伪相关反馈库质量差导致的重构质量低的问题;最后将查询缩减和扩展阶段的输出合并得到重构后的查询。通过在6个 Java 项目上进行实验发现,对于使用现有缺陷定位方法无法在TOP 10可疑推荐文件中定位的低质量缺陷报告,使用所提重构方法后,能定位其中21%~39%的缺陷即Accuracy@10,MRR@10为 10%~16%。对比现有重构技术,所提重构方法在Accuracy@10和MRR@10 两个指标上分别可以提升7%~32%和2%~13%。
    参考文献 | 相关文章 | 多维度评价
    2. 面向ARINC653操作系统的综合化航空电子软件代码自动生成方法
    凌仕翔, 杨志斌, 周勇
    计算机科学    2024, 51 (7): 10-21.   DOI: 10.11896/jsjkx.230600216
    摘要66)      PDF(pc) (5977KB)(210)    收藏
    综合化航空电子系统(Integrated Modular Avionics,IMA)是一类典型的安全关键系统,具有分布式、异构、计算资源和物理资源强耦合等特征。随着IMA系统趋于复杂化和智能化,系统的功能越来越多地采用软件来实现,如何对这类复杂软件进行建模并自动生成代码成为一个重要挑战。文中提出了一种基于AADL(Architecture Analysis and Design Language)的综合化航空电子系统代码生成方法。首先,提出HMC4ARINC653(Heterogeneous Model Container for ARINC653)属性集扩展,使其具备描述IMA软件架构、异构功能行为和非功能属性的能力;其次,提出IMA模型到C代码及ARINC653系统配置文件的映射规则,并遵守MISRA C安全编码规范,生成的代码能够在ARINC653操作系统上部署并仿真执行;最后,设计并实现了相应的原型工具,以ARINC653操作系统和工业界实际案例,验证了所提方法和工具的有效性。
    参考文献 | 相关文章 | 多维度评价
    3. 基于特征重要性的深度学习自动调度优化研究
    杨恒, 刘勤让, 范旺, 裴雪, 魏帅, 王轩
    计算机科学    2024, 51 (7): 22-28.   DOI: 10.11896/jsjkx.230500220
    摘要92)      PDF(pc) (3424KB)(203)    收藏
    随着深度学习和硬件架构的快速发展,模型和硬件架构的多样性导致采用手工优化方式实现深度学习模型的高性能部署面临严峻的挑战,因此现有的AI编译器框架通常采用自动调度的方法来实现这一过程。但是已有的TVM自动调度优化方法中存在着代价模型数据集不平衡以及调度时间过长的问题,为了解决这些问题,提出了一种基于特征重要性的自动调度优化方法。首先采用xgboost算法对特征重要性进行分析,然后基于重要性系数降低特征维度并对数据标签值进行重分配,以实现提高代价模型精度和优化自动调度效率的目的。实验结果表明,应用所提优化方法,使3种深度学习模型的自动调度时间缩短了9.7%~17.2%,推理时间最多缩短了15%。
    参考文献 | 相关文章 | 多维度评价
    4. 基于自然语言需求的SCADE模型测试用例自动生成方法
    邵温欣, 杨志斌, 李维, 周勇
    计算机科学    2024, 51 (7): 29-39.   DOI: 10.11896/jsjkx.230600126
    摘要70)      PDF(pc) (5135KB)(203)    收藏
    随着安全关键软件规模和复杂性不断增加,模型驱动开发方法在安全关键领域得到了广泛应用。SCADE作为一种重要的建模方法和工具,能够表达确定性并发行为且具有精确时间语义等特性,适用于安全关键软件的建模、测试与验证。目前,已有方法主要采用手工方式构造SCADE模型测试用例,存在需求与测试用例不一致、成本代价高且容易出错的问题。文中提出了一种基于自然语言需求的SCADE模型测试用例自动生成方法。首先,给出了基于模型检测的测试用例自动生成方法,通过自然语言需求处理生成原子命题,用于生成前提假设Assume和观察者模型,同时给出了陷阱性质(Trap Properties) 生成规则来生成陷阱性质用于模型检测;其次,给出了基于覆盖分析和变异测试的测试用例质量评估方法,并在SCADE模型上进行变异测试;最后,设计和实现了原型工具,并基于一个工业界案例飞行员弹射座椅控制系统进行了案例分析,验证了所提方法的有效性。
    参考文献 | 相关文章 | 多维度评价
    5. R语言程序包依赖关系与更新情况的实证研究
    程弘正, 杨文华
    计算机科学    2024, 51 (6): 1-11.   DOI: 10.11896/jsjkx.230200069
    摘要224)      PDF(pc) (3059KB)(462)    收藏
    作为一款统计分析和统计制图的优秀工具,R在统计分析和人工智能领域得到了广泛应用,并且拥有丰富的开源生态系统,相关R语言程序包(R包)的数量也在持续增长。R包开发模式的特征,即新开发R包往往通过引入已有的R包来实现功能,导致R包之间的依赖关系非常复杂,甚至出现依赖冲突。而引起此问题的原因除了依赖关系外,还有R包的更新。为了了解现有R包的发展现状,需要对R包的依赖和更新情况进行深入实证研究。但已有关于R的实证研究关注的主要是整个R生态系统,没有专门针对R包的依赖和更新的具体分析。为了弥补这一空缺,基于CRAN与GitHub上的数据对常用R包的依赖关系、包的更新情况、存在的依赖冲突隐患以及R包的依赖更新情况4方面展开了详细分析。发现R包之间的依赖关系复杂、每个包依赖的包的数量普遍较多但依赖集中于一部分R包,虽然常用R包的更新频率较快,但其中依然存在不少依赖间的冲突(不一致);同时,还对这些R包的依赖冲突进行了检测和分类。实证研究结果能够让R开发者和使用者更加了解R包的发展现状,同时提供了一些可以帮助R包的开发者在开发过程中避免隐患的建议,总结了研究者在R包依赖和更新相关问题上可以进一步探究的方向。
    参考文献 | 相关文章 | 多维度评价
    6. 基于词汇的源代码克隆检测技术综述
    刘春玲, 戚旭衍, 唐永鹤, 孙雪凯, 李晴浩, 张雨
    计算机科学    2024, 51 (6): 12-22.   DOI: 10.11896/jsjkx.230400117
    摘要179)      PDF(pc) (2194KB)(438)    收藏
    代码克隆指在软件开发过程中对源代码复用、修改、重构产生的文本相似或结构相似的代码。代码克隆对提升软件开发效率、节约开发成本有积极作用,但也会引起Bug传播,并对软件的稳定性、可维护性产生负面影响。代码克隆检测在剽窃检测、漏洞检测、版权侵权等领域具有重要的研究意义和应用价值。基于词汇的克隆检测技术能快速检测1-3型克隆,能扩展到其他编程语言,已被广泛应用于大规模克隆检测任务中。文中对近5年基于词汇的克隆检测技术的研究现状进行了梳理,根据相似性算法中的基本计算粒度将其分为4类,并对10余个技术特征进行了分析和总结,讨论其局限性及面临的挑战,最后结合新技术的发展提出了基于词汇的克隆检测技术未来可能的研究方向。
    参考文献 | 相关文章 | 多维度评价
    7. 一种基于词法特征和数据挖掘的无意义变量名检测方法
    姜艳杰, 东春浩, 刘辉
    计算机科学    2024, 51 (6): 23-33.   DOI: 10.11896/jsjkx.231100030
    摘要192)      PDF(pc) (2719KB)(477)    收藏
    标识符是代码的重要组成部分,也是人们理解代码语义的关键元素之一。变量名是最常见的标识符之一,其质量对于代码的可读性和可理解性有着重要的意义。然而,因为各种原因程序员经常使用一些毫无意义的变量名,如“a”和“var”等。这些无意义的变量名严重降低了代码的可理解性,需要进行检测并重构(重命名)。为此,提出了一种基于词法特征和数据挖掘的自动化方法,以检测代码中无意义的变量名。首先,对开源代码中的无意义变量名进行了实证分析,发现无意义变量名通常比较短且不包含任何有意义的单词,因此可以利用词法特征筛选出名称较短且不包含有意义单词的可疑变量名。如果可疑变量名包含缩写词,则使用缩写词扩展算法进行扩展,以获得完整的变量名。然后,基于数据挖掘算法判断可疑变量名是否为约定俗成的常用变量名。有些常用的变量名,如 “i”和“e”,虽然字面上没有明确的语义,但是通过约定俗成的表示规范,程序员可以理解该变量的语义,因此不算是无意义的变量名,也不需要进行重构。如果可疑变量名称不是约定俗成的常用变量名,则断定该变量名为无意义的变量名,并提醒程序员进行重命名。在开源数据集上进行实验,结果表明,该方法具有较高的准确率,其平均查准率为85%,平均查全率为91.5%。
    参考文献 | 相关文章 | 多维度评价
    8. 重新审视面向CNN模型的测试样例选取:考虑模型校准
    赵通, 沙朝锋
    计算机科学    2024, 51 (6): 34-43.   DOI: 10.11896/jsjkx.230400029
    摘要135)      PDF(pc) (2876KB)(381)    收藏
    深度神经网络(DNN)已被广泛应用于各种任务,而在部署前对DNN进行充分测试尤为重要,因此需要构建能够对DNN进行充分测试的测试集。由于标注成本受限,通常通过测试样例选取的方式得到测试子集。然而,人们使用基于预测不确定性的方法(该方法在发现误分类样例和提升重训练表现方面表现出卓越的能力)进行测试样例选取时,忽略了对测试样例的预测不确定性估计是否准确的问题。为了填补上述研究的空白,通过实验定性和定量地揭示了模型校准程度和测试样例选取任务中使用的不确定性指标之间的相关性。校准模型会使模型有更准确的预测不确定性估计,因此研究了不同校准程度的模型用不确定指标选取得到的测试子集质量是否不同。在3个公开数据集和4个卷积神经网络(CNN)架构模型上进行了充分的实验和分析,结果表明在CNN架构模型上:1)不确定指标和模型校准存在一定程度的相关性;2)校准程度好的模型所选择的测试子集质量优于校准程度差的模型选择的测试子集质量。在发现模型误分类样例的能力上,70.57%经过校准训练后的模型对应的实验结果优于未校准模型对应的实验结果。因此在测试样例选取任务中考虑模型校准十分重要,且可以使用模型校准来提升测试样例选取的表现。
    参考文献 | 相关文章 | 多维度评价
    9. 一种结合代码片段和混合主题模型的软件数据聚类方法
    魏林林, 沈国华, 黄志球, 蔡梦男, 郭菲菲
    计算机科学    2024, 51 (6): 44-51.   DOI: 10.11896/jsjkx.230300091
    摘要82)      PDF(pc) (2397KB)(261)    收藏
    使用主题模型进行文档聚类是众多文本挖掘任务中一种常见的做法。许多研究针对软件问答网站的数据,利用主题模型进行聚类来分析不同领域在社区的发展情况。然而,这些软件相关数据往往包含代码片段且文本长度分布不均,使用传统单一的主题模型对文本数据建模,易得到不稳定的聚类结果。文中提出了一种结合代码片段和混合主题模型的聚类方法,并使用Stack Overflow作为数据源,构造了在该平台上被提问数量排名前60的Python第三方库数据集,经过建模,该数据集最终划分为以下6个不同的领域:网络安全、数据分析、人工智能、文本处理、软件开发和系统终端。实验结果表明,在自动评估和人工评估的指标上,使用代码片段结合文本进行主题建模,在聚类结果划分的质量上表现良好,而联合多个模型进行实验,一定程度上提高了聚类结果的稳定性和准确性。
    参考文献 | 相关文章 | 多维度评价
    10. 面向TPU粗粒度指令的自动张量化方法
    刘磊, 周志德, 刘兴祥, 车皓阳, 姚雷, 江贺
    计算机科学    2024, 51 (6): 52-60.   DOI: 10.11896/jsjkx.230800049
    摘要73)      PDF(pc) (3610KB)(287)    收藏
    张量化是通过调用硬件特定指令对张量运算进行加速的过程。TPU支持多种粗粒度指令,可表示神经网络级别的算子,且没有明确的运算规模限制。现有张量化方法对于粗粒度指令需要手写大量的IR匹配片段,且难以实现灵活的双缓存(ping-pong buffer)形式的指令并行优化,不利于扩展至TPU场景。为此,提出了一种面向TPU粗粒度指令的自动张量化方法——Tir2TPU。首先,基于TensorIR抽象语法树的分析对运算程序进行指令替换。其次,设计了一种模拟硬件行为的并行模型以实现指令并行优化。最后,构建了基于TPU硬件特征的程序调度空间以实现快速自动调优。实验对矩阵乘法等5种机器学习模型中常用的算子进行了性能评估。实验结果表明,Tir2TPU自动优化生成的算子与TPU自有编译器相比可取得最高3.1倍、平均1.78倍的运算加速,并且可取得平均90%的手工优化性能。
    参考文献 | 相关文章 | 多维度评价
    11. 基于提示学习的轻量化代码生成方法
    徐一然, 周宇
    计算机科学    2024, 51 (6): 61-67.   DOI: 10.11896/jsjkx.230400137
    摘要80)      PDF(pc) (2373KB)(240)    收藏
    代码自动生成是提高软件开发效率的有效途径之一,已有的研究一般将代码生成作为一项序列到序列的任务,并且大规模预训练语言模型的微调过程往往伴随着高昂的算力开销。文中提出了一种基于提示学习的轻量化代码生成方法(Prompt Learning based Parameter-Efficient Code Generation,PPECG),该方法通过查询代码语料库中与当前需求最相似的结果作为提示,指导预训练语言模型进行代码生成,并且在该过程中固定模型的绝大多数参数以实现减少算力开销的目的。为了验证PPECG的有效性,文中选取了两个代码生成数据集,分别是CONCODE和Solidity4CG,通过计算生成结果的BLEU,CodeBLEU以及Exact Match值来验证PPECG的有效性,实验结果表明,PPECG有效地减少了微调时的显存开销,且在上述指标上基本接近甚至优于目前的SOTA方法,能够较好地完成代码生成的任务。
    参考文献 | 相关文章 | 多维度评价
    12. 基于机器学习识别偶然正确测试用例
    田帅华, 李征, 吴永豪, 刘勇
    计算机科学    2024, 51 (6): 68-77.   DOI: 10.11896/jsjkx.230400017
    摘要77)      PDF(pc) (2289KB)(263)    收藏
    基于频谱的故障定位(Spectrum-Based Fault Localization,SBFL)技术已被广泛研究,可以帮助开发人员快速找到程序错误位置,以降低软件测试成本。然而,测试套件中存在一种特殊的测试用例,其执行了错误的语句但能输出符合预期的结果,这种测试用例被称为偶然正确(Coincidental Correct,CC)测试用例。CC测试用例会对SBFL技术的性能产生负面影响。为了减轻CC产生的负面影响,提升SBFL技术性能,文中提出了一种基于机器学习的CC测试用例识别方法(CC test cases Identification via Machine Learning,CCIML)。CCIML结合怀疑度公式特征和程序静态特征来识别CC测试用例,从而提高SBFL技术的故障定位精度。为了评估CCIML方法的性能,文中基于Defects4J数据集进行对比实验。实验结果表明,CCIML方法识别CC测试用例的平均召回率、准确率和F1分数分别为63.89%,70.16%和50.64%,该结果优于对比方法。除此之外,采用清洗和重标策略处理CCIML方法识别出的CC测试用例后,最终取得的故障定位效果也优于对比方法。其中,在清洗策略和重标策略下,错误语句怀疑度值排在第一位的数量分别为328和312,相比模糊加权K近邻(Fuzzy Weighted K-Nearest Neighbor,FW-KNN)方法,定位到的故障数量分别增长了124.66%,235.48%。
    参考文献 | 相关文章 | 多维度评价
    13. 基于序列的程序语义规则挖掘与违规检测方法
    李孜, 周宇
    计算机科学    2024, 51 (6): 78-84.   DOI: 10.11896/jsjkx.230300224
    摘要56)      PDF(pc) (2042KB)(230)    收藏
    在软件开发中,违反语义规则的源码可以正常地编译或运行,但却存在性能或功能上的缺陷。因此,如何准确地检测此类缺陷成为了一项挑战。已有的研究通常采用基于项集的规则挖掘与检测方法,但由于未能良好地结合源码的顺序信息与控制流信息,此类方法在检测能力以及准确率上都存在较大的提升空间。针对该问题,提出了一种基于序列的程序语义规则提取与违规检测方法 SPUME。该方法将程序源码转化为中间表示序列,使用序列规则挖掘算法从中提取语义规则,并基于语义规则对源码中的缺陷进行检测。为验证SPUME 的有效性,文中将其与3种基线方法进行了对比,包括PR-Miner,Tikanga以及Bugram。实验结果表明,相较于基于无序项集进行规则挖掘的PR-Miner,以及结合了图模型的Tikanga,SPUME在检测效果、检测速度以及准确率上都有显著提升。相比基于Ngram语言模型的Bugram方法,SPUME在准确率与其相当的情况下,高效地检测出了更多程序缺陷。
    参考文献 | 相关文章 | 多维度评价
    14. 基于多目标优化算法NSGA-II的软件多样化组合方法
    谢根琳, 程国振, 梁浩, 王庆丰
    计算机科学    2024, 51 (6): 85-94.   DOI: 10.11896/jsjkx.221100194
    摘要60)      PDF(pc) (3347KB)(283)    收藏
    软件多样化因能有效提升系统弹性、增加恶意二进制分析的成本而被广泛应用于软件开发等场景中。而如何对现有软件多样化技术进行组合部署,以在获得更高安全增益的同时保持较低的性能开销,是当前软件多样化研究的核心问题之一。针对现有软件多样化组合方法中搜索算法效率低、搜索空间小、安全性评估指标不全面、难以综合考量软件多样化对各类攻击的影响等问题,提出了一种基于多目标优化算法的软件多样化组合方法,将软件多样化组合问题构建为综合考量TLSH相似度、gadget质量分数和CPU时钟周期数指标的多目标优化模型,并设计了包括染色体编码、自适应交叉和变异算子,以及针对组合方案的有效性验证算法等在内的NSGA-II求解算法。最后,在GNU核心工具组数据集上进行实验,结果表明,该组合方法可有效生成高安全增益、低性能开销的软件多样化组合方案。
    参考文献 | 相关文章 | 多维度评价
    15. 基于ART优化选择策略的遗传算法生成测试数据方法
    李志博, 李清宝, 兰明敬
    计算机科学    2024, 51 (6): 95-103.   DOI: 10.11896/jsjkx.230100012
    摘要57)      PDF(pc) (2887KB)(248)    收藏
    测试数据自动生成方法是软件测试领域研究的热点。基于遗传算法的启发式搜索算法是一种路径覆盖生成测试数据的方法。文中提出了一种基于自适应随机测试(Adaptive Random Testing,ART) 算法更新种群的方法,将ART融入遗传算法,优化选择操作,动态更新种群,从而增加种群进化过程中的个体多样性,提高了收敛速度,有效地减少了陷入局部最优。 实验结果显示,与传统遗传算法生成测试数据的方法相比,改进的算法明显提高了路径覆盖率,减少了种群平均进化代数。
    参考文献 | 相关文章 | 多维度评价
    16. 过程间流敏感的指针分析技术研究
    帅东昕, 葛丽丽, 谢金言, 张迎周, 薛渝川, 杨嘉毅, 密杰, 卢跃
    计算机科学    2023, 50 (12): 1-13.   DOI: 10.11896/jsjkx.221000195
    摘要430)      PDF(pc) (2019KB)(1668)    收藏
    指针分析技术是一种基础的静态程序分析技术,也是软件安全方向的研究热点之一,在软件缺陷检测、恶意代码分析、程序验证、编译器优化等应用场景中发挥着重要的作用,指针分析的精度在这些应用场景中至关重要。流敏感分析和过程间分析是提高指针分析精度最有效的两种技术。文中对现有的提高过程间流敏感指针分析精度的技术进行总结,从为提高精度所消除的信息入手,将分析方法分为两大类:一类是消除分析中的虚假信息,以避免指向信息沿虚假的返回路径或是虚假调用关系传播;另一类是消除分析中保守的指向关系,在每个程序点处根据设置的规则尽可能确定指针的唯一指向,而不是笼统地计算指针的多个可能指向。据此,详细比较了过程间流敏感指针分析技术的异同,并对指针分析技术未来的研究方向进行了展望。
    参考文献 | 相关文章 | 多维度评价
    17. 软件缺陷标题质量的实证研究
    续永, 孙龙飞, 张汤浩然, 毛新军
    计算机科学    2023, 50 (12): 14-23.   DOI: 10.11896/jsjkx.230300211
    摘要259)      PDF(pc) (2840KB)(1408)    收藏
    软件缺陷标题用简洁的语言描述了软件缺陷的关键信息,有助于软件开发者快速地掌握软件缺陷的梗概,进而高效地开展软件缺陷管理工作。当前诸多软件开发实践中可以发现,软件缺陷标题的质量参差不齐,存在冗长、晦涩、缺乏对关键信息的描述等问题,导致难以阅读和理解,影响了软件缺陷管理的效率和质量。因此有必要深入探究影响软件缺陷标题质量的具体因素以及当前软件缺陷标题的质量情况。文中围绕这两个方面的问题开展了定性和定量相结合的实证研究,选取190个在线文档进行定性分析以获取开发者对缺陷标题质量的需求,基于分析结果采取GQM范式构建了缺陷标题质量度量模型,并以此对GitHub中5个开源项目的1 804个软件缺陷标题进行质量问题普遍性分析。研究结果表明:1)开发者主要关注软件缺陷标题4个方面的质量需求,即简洁(110,58%)、清楚(65,34%)、提供期望信息(157,83%)和提供具体描述(67,35%);2)70%的软件缺陷标题存在不同程度的质量问题。缺乏期望信息和描述不具体是最常见的两类质量问题,42%的软件缺陷标题缺乏期望信息,24%的软件缺陷标题需要补充具体描述。文中的研究发现有助于指导报告者提交高质量的软件缺陷标题。
    参考文献 | 相关文章 | 多维度评价
    18. 基于GAN数据增强的软件缺陷预测聚合模型
    徐金鹏, 郭新峰, 王瑞波, 李济洪
    计算机科学    2023, 50 (12): 24-31.   DOI: 10.11896/jsjkx.221100171
    摘要363)      PDF(pc) (1772KB)(1545)    收藏
    在软件缺陷预测任务中,通常基于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指标来看,所提方法与传统的采样方法没有明显差异。
    参考文献 | 相关文章 | 多维度评价
    19. 基于录制回放的移动应用可访问性增强方法
    李向民, 沈立炜, 董震
    计算机科学    2023, 50 (12): 32-48.   DOI: 10.11896/jsjkx.230300164
    摘要217)      PDF(pc) (5601KB)(1326)    收藏
    移动应用的可访问性指在不受身体和认知障碍的影响下便捷地使用移动应用的能力,其对老年人与残疾人群体具有重要意义。缩短一个应用使用过程中的交互路径(减少操作步骤数)是增强移动应用可访问性的一种重要方式。录制回放技术基于所录制的脚本自动执行交互过程中的固定操作,实现交互操作的缩减。然而,现有的录制回放工具仍存在局限性,包括依赖ROOT权限或使用侵入式手段才能进行录制并实现脚本可迁移。另外,已有工具录制的脚本不支持参数化的操作。针对这些问题,提出了基于录制回放的移动应用可访问性增强方法。在该方法的录制过程中,以可访问性服务为媒介,避免申请ROOT权限或使用侵入式手段,设计路径索引算法保证脚本的可迁移性,设计脚本参数化算法记录参数化操作,从而生成具有终端迁移性和操作数据泛化性的应用执行脚本。基于该方法开发了录制回放原型工具RRA并构建了面向10个流行应用的50个常见执行脚本。使用这些脚本在同一设备上的回放成功率为80%,与对比方法SARA相当。对RRA成功回放的40个脚本中的5个脚本进行参数化录制,在同一设备上的回放成功率达100%。对两种方法均能录制成功的29个脚本以及5个参数化脚本进行迁移执行,RRA的回放成功率为94%,高于SARA。
    参考文献 | 相关文章 | 多维度评价
    20. 面向JavaScript引擎报错机制的类别导向模糊测试方法
    卢凌, 周志德, 任志磊, 江贺
    计算机科学    2023, 50 (12): 49-57.   DOI: 10.11896/jsjkx.221200166
    摘要172)      PDF(pc) (1646KB)(1245)    收藏
    报错机制是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个已被确认。
    参考文献 | 相关文章 | 多维度评价
    21. 基于测试用例自动化生成的协议模糊测试方法
    徐威, 武泽慧, 王子木, 陆丽
    计算机科学    2023, 50 (12): 58-65.   DOI: 10.11896/jsjkx.221000225
    摘要388)      PDF(pc) (2254KB)(1297)    收藏
    网络协议作为设备之间交互的规范,在计算机网络中发挥着至关重要的作用。协议实体中的漏洞会使设备遭受远程攻击,存在巨大的安全隐患。模糊测试是发现程序中安全漏洞的重要方法。在协议进行模糊测试之前需要对其进行逆向分析,在协议格式以及状态机模型的指导下生成高质量的测试用例。但上述过程中,测试用例生成需要手工构造,并且构造的测试用例难以覆盖深层次状态。针对上述问题,提出了一种自动化的测试用例生成技术。在模板中定义测试用例生成规则,基于状态迁移路径生成算法构建完备的测试路径,有效地对协议程序进行模糊测试。实验结果表明,与当前先进的协议模糊器Boofuzz相比,所提方法的有效测试用例生成数量增加了51.8%。在4个真实软件中进行测试,验证了3个已公开漏洞,同时发现了一个新的缺陷并得到了开发人员的确认。
    参考文献 | 相关文章 | 多维度评价
    22. RVTDS:面向微处理器的追踪调试系统
    高轩, 何港兴, 车文博, 扈啸
    计算机科学    2023, 50 (12): 66-74.   DOI: 10.11896/jsjkx.230100030
    摘要269)      PDF(pc) (2922KB)(1206)    收藏
    软件调试是嵌入式系统开发中最具挑战性的难点之一。在进行高复杂性、高实时性系统调试时,单步-断点时间开销大,易破坏程序执行行为;采用串接机制的JTAG接口,在实现对处于工作状态的复杂多核处理器的并行访问时存在缺陷。片上追踪调试技术通过专用硬件非侵入地获取程序执行状态,有效解决了上述问题。现有的片上追踪调试技术相关研究以追踪完整信息为主,易产生大量无意义的数据;此外,也未考虑压缩后的数据在窄总线上的传输问题。文中设计并实现了一种基于RISC-V指令集的面向多核微处理器的非侵入式追踪调试系统RVTDS,通过复用RISC-V核内平台级别中断控制器,解决多核微处理器高速并行调试时的数据丢失问题;提出了面向片上总线的数据流追踪方案和基于指令位域匹配的控制流过滤机制以实现信息筛选,提供总线带宽统计功能;提出了基于差分编码的数据压缩方法,数据平均压缩率达82%以上;提出了一种数据打包方案以实现窄总线上的数据传输问题,每拍有效数据平均可容纳约1.5个路径信息。系统验证结果表明,RVTDS与传统片上追踪调试方法相比,追踪数据量小,可以灵活高效地完成复杂多核微处理器多种片内运行信息的采集、传输和存储。
    参考文献 | 相关文章 | 多维度评价
    23. 基于CodeBERT的设计模式语言模型
    陈时非, 刘东, 江贺
    计算机科学    2023, 50 (12): 75-81.   DOI: 10.11896/jsjkx.230100115
    摘要178)      PDF(pc) (2161KB)(1269)    收藏
    设计模式是对实际软件设计方案的经验性总结,是软件开发中辅助软件设计的有效方案之一。现有设计模式挖掘研究的任务大多是在源代码中识别设计模式的实例,少有考虑用自然语言语料对设计模式建模。为了提升设计模式语言分类模型的推荐效果,将代码、类图或对象协作纳入考虑范围,提出了一种基于CodeBERT的设计模式分类挖掘模型dpCodeBERT,以实现自然语言与代码语言的对照理解。首先,通过随机组合合成多分类算法数据和代码搜索数据作为模型输入,dpCodeBERT模型能够获取transformer层中的模型为令牌生成的注意力权重;然后,分析令牌和语句注意力权重以发现更有效的模型输入类别,进一步改造训练输入;最后,dpCodeBERT模型能够通过全连接层将分布式特征映射到样本空间并输出复数值的方式实现具体软件工程任务,如设计模式选择和设计模式代码搜索任务。在拥有80个软件设计问题的设计模式选择任务的数据集上的实验结果显示,相比同类基准模型,所提模型在设计模式检测准确率(RCDDP)和平均倒数排名(MRR)两个指标上平均提升了10%~20%,设计模式选择更加准确。通过深度研究模型数据需求,dpCodeBERT挖掘了CodeBERT对类级代码的理解,探索了CodeBERT在设计模式挖掘中的应用,具有预测准确、拓展性强等特点。
    参考文献 | 相关文章 | 多维度评价
    24. RPA流程标准化定义与设计
    赖琪, 蔡宇辉, 夏斯琼, 谢晓全, 刘沛, 李肯立
    计算机科学    2023, 50 (12): 82-88.   DOI: 10.11896/jsjkx.230100020
    摘要231)      PDF(pc) (1745KB)(1217)    收藏
    为解决机器人流程自动化(Robotic Process Automation,RPA)领域缺乏统一流程描述方法的问题,文中提出了一种用于定义和描述RPA流程的规范,主要包括RPA流程中的各类对象,可用于分析复杂RPA应用场景;同时,为更好地定义与描述工作流系统的流程,并解决RPA领域暂无流程建模标准而导致的流程脚本不兼容问题,以业务流程模型和符号(Business Process Model and Notation,BPMN)标准为基础,定义了一套RPA流程建模符号及标签系统。最后,以一种银行系统的典型业务流程为例,展示了使用该规范定义与描述此业务流程的结果,并使用Petri网进行了流程的正确性证明。
    参考文献 | 相关文章 | 多维度评价
    25. 自主机器人的主动观察模式及软件实现架构
    肖怀宇, 杨硕, 毛新军
    计算机科学    2023, 50 (9): 90-100.   DOI: 10.11896/jsjkx.221200053
    摘要413)      PDF(pc) (4588KB)(3997)    收藏
    自主机器人运行在开放环境中,对环境信息的感知受限,难以获得有关环境完整、及时的信息。为有效完成任务,自主机器人需要主动地观察环境,即根据任务的需求,自发地决策、调度和执行观察行为,针对性地获取与任务相关的环境信息。主动观察的需求给自主机器人的观察模式以及软件系统构造提出了两方面的挑战:一方面,为支持任务的有效实现,需设计主动的观察模式,从机制层面确保自主机器人能够基于任务需求,观察所需的环境信息;另一方面,主动的观察模式导致自主机器人观察、决策等软构件的功能抽象和数据交互更为复杂,需要针对上层复杂机制的实现设计适配的软件架构。为应对上述挑战,文中将自主机器人的行为定义为任务行为和观察行为两类,针对开放环境中两类典型的环境信息受限场景——片面观察场景和过时观察场景,提出了两类主动观察模式来构建观察行为与任务行为的协同机制,并基于这两类主动观察模式设计了观察行为的决策和调度算法。另外,还设计了一个基于多智能体系统的自主机器人软件架构,实现了所提出的主动观察模式。最后,为验证所提出的主动观察模式的有效性,选取开放环境中一个典型的任务——图书馆服务机器人的图书传送任务开展实验验证。该任务中,自主机器人对图书的位置信息受限,容易导致图书传送任务失败。文中选取当前自主机器人领域主流的反应式观察和伴随观察模式作为对比方法,通过从行为执行过程、行动轨迹和时间消耗3方面进行对比,验证了所提方法的有效性。
    参考文献 | 相关文章 | 多维度评价
    26. 基于依赖模型的REST接口测试用例生成方法研究
    刘盈盈, 杨秋辉, 姚邦国, 刘巧韵
    计算机科学    2023, 50 (9): 101-107.   DOI: 10.11896/jsjkx.220800071
    摘要385)      PDF(pc) (2740KB)(4063)    收藏
    REST接口中普遍存在依赖关系,导致生成合理的接口调用序列与输入参数变得十分困难。现有的大多数方法只考虑了其中一种依赖关系,并需要人工执行繁杂的前置操作,生成的测试用例有效性仍然较低。针对以上问题,文中提出了一种基于依赖模型的测试用例生成方法。通过解析OpenAPI文档,该方法提取了接口内的操作间依赖关系与参数间依赖关系,并据此建立了两种依赖模型,从模型生成测试用例,最后从3方面确定测试预言。实验结果表明,该方法的输入度量覆盖率达到了100%,状态码类别、状态码、响应资源类型的覆盖率分别达到了100%,91.67%,83.33%,并能在限定时间内检出接口内部缺陷;与RESTler和RESTest相比,该方法的输出度量覆盖率最大提高了36%,触发了最多次的异常响应状态码,检测到接口异常响应的比例最大提高了10%。该方法为REST接口的测试用例生成问题提供了有价值的参考。
    参考文献 | 相关文章 | 多维度评价
    27. 基于迭代轨迹划分的单分支循环程序终止性分析
    王垚, 李轶
    计算机科学    2023, 50 (9): 108-116.   DOI: 10.11896/jsjkx.220700214
    摘要138)      PDF(pc) (1693KB)(3825)    收藏
    秩函数作为循环程序终止性分析的重要方法已得到广泛研究。文中着重研究了单分支循环的终止性。首先提出了双向迭代循环概念,将单分支循环分为双向迭代循环和非双向迭代循环。其次,针对双向迭代循环程序,建立了一种划分思路,提出了三段式秩函数的概念,并证明了若该双向迭代循环存在三段式秩函数,则其是终止的。而对非双向迭代循环,引用增函数的划分思路,即利用增函数将原程序空间划分为更小的空间,并通过计算更小空间上的秩函数来证明原程序的终止性。最后,将三段式秩函数的计算问题归结为SVM分类问题,并利用工具Z3或bottema对由SVM所得的候选秩函数进行验证。
    参考文献 | 相关文章 | 多维度评价
    28. 基于深度学习和信息反馈的智能合约模糊测试方法
    赵明敏, 杨秋辉, 洪玫, 蔡创
    计算机科学    2023, 50 (9): 117-122.   DOI: 10.11896/jsjkx.220800104
    摘要450)      PDF(pc) (2388KB)(3924)    收藏
    主流区块链平台以太坊上频繁发现由不安全编程引起的智能合约安全漏洞。为了提高模糊测试对合约代码的覆盖率,以更全面地检测安全漏洞,提出了一种智能合约模糊测试方法。首先构造智能合约交易序列数据集,再基于深度学习构建智能合约交易生成模型以生成模糊测试初始种子;然后根据覆盖率和分支距离信息,对智能合约进行信息反馈引导的模糊测试,提出了特定的测试用例染色体编码方式,并设计实现了相应的交叉和变异算子。所提方法能有效覆盖智能合约的深层次状态以及严格条件守卫的分支代码。在500个智能合约上进行实验,结果表明,所提方法的代码覆盖率为93.73%,漏洞检测率为 93.93%,与ILF,sFuzz,Echidna方法相比,所提方法的代码覆盖率提高了3.80%~25.49%,漏洞检测率提高了4.64%~24.02%。所提方法有助于提升以太坊智能合约安全测试的有效性,具有参考价值。
    参考文献 | 相关文章 | 多维度评价
    29. 自主机器人的伴随观察模式及其软件实现框架
    薛元洲, 杨硕, 毛新军
    计算机科学    2023, 50 (7): 1-9.   DOI: 10.11896/jsjkx.221200020
    摘要357)      PDF(pc) (1775KB)(2142)    收藏
    自主机器人是一类运行于开放环境下、可自主决策和执行其自主行为的信息物理系统,它根据任务需求进行决策产生行为策略并调度执行。环境状态的动态变化性常常导致规划的行为策略不再适用于当前环境,使得行为执行的结果不符合预期,从而影响自主机器人的任务实现。上述问题对自主机器人软件的行为决策和软件构造均提出了更高的要求。一方面,自主机器人需在行为策略执行过程中加强对环境状态及其变化的观察,并基于观察的结果及时、灵活地调整行为决策,提升机器人的观察模式及行为决策算法的复杂度。另一方面,上述观察、决策、执行行为的复杂交互提升了软件构件抽象及数据交互的复杂性,如何抽象机器人的传感、决策、效应等软构件功能,并提供相适配的软件架构,成为自主机器人软件构造面临的重要挑战。针对上述挑战,首先提出自主机器人伴随行为的思想,显式定义观察与效应行为之间的伴随交互关系,根据行为执行不同阶段提出前提伴随观察模式和目标伴随观察模式,以提升自主机器人对环境变化的感知能力和决策调整能力。其次,开发了一款基于多智能体系统的自主机器人软件开发框架AutoRobot,该框架将机器人的传感器、效应器及规划器抽象为一组自主的软件智能体,智能体间通过自主决策和协同实现上述伴随观察模式。AutoRobot框架针对不同角色智能体设计和封装了一组可重用的软件组件,可有效支持自主机器人软件的复用和高效开发。最后,开展了仿真环境下的实验分析,通过与ROSPlan和DESPOT两种自主机器人任务规划和执行方法进行对比,验证了基于伴随观察模式的任务规划与执行的高效性和有效性。
    参考文献 | 相关文章 | 多维度评价
    30. 针对缺陷根源定位的测试用例生成技术
    杜昊, 王允超, 燕宸毓, 李星玮
    计算机科学    2023, 50 (7): 10-17.   DOI: 10.11896/jsjkx.220700128
    摘要272)      PDF(pc) (2014KB)(2030)    收藏
    缺陷根源定位是软件调试的重要阶段,基于频谱的缺陷根源定位方法是软件自动化调试研究中的热点问题,但其定位效果很大程度上取决于测试用例的质量。不同类型软件的测试输入通用性差,随机生成的测试输入则存在过拟合或混杂项过多的问题,导致分析结果误差较大,致使目前该类技术的应用场景有限。针对测试用例生成问题,提出了基于崩溃路径的分阶段探索方法Dgenerate,并实现原型工具Dloc。首先利用二进制插桩手段在程序执行输入阶段于基本块中插桩路径信息,根据此信息将原始测试输入划分为普通型和引导型;然后利用动态能量调度算法探索崩溃相关路径生成高质量的测试用例;最后在原始程序中执行测试用例并追踪执行时信息,通过统计分析的方法有效地定位到程序缺陷根源的位置。文中选取了6个不同类型软件中的15个真实CVE漏洞进行实验,结果显示Dloc生成的测试用例与已有技术相比可以将定位效率平均提升75%,并且Dloc能够以87%的准确性在评分前五的位置中输出缺陷根源相关代码片段,验证了所提方法系统的可行性和实用性。
    参考文献 | 相关文章 | 多维度评价
    首页 | 前页| 后页 | 尾页 第1页 共2页 共53条记录