1974年1月创刊(月刊)
主管/主办:重庆西南信息有限公司
ISSN 1002-137X
CN 50-1075/TP
CODEN JKIEBK
编辑中心
    计算机软件* 栏目所有文章列表
    (按年度、期号倒序)
        一年内发表的文章 |  两年内 |  三年内 |  全部
    Please wait a minute...
    选择: 显示/隐藏图片
    1. 实例编程研究进展与挑战
    严倩羽, 李弋, 彭鑫
    计算机科学    2022, 49 (11): 1-7.   DOI: 10.11896/jsjkx.211000225
    摘要535)      PDF(pc) (1921KB)(9326)    收藏
    程序合成指计算机自动地构造符合指定语法和用户给定规约的代码。实例编程是程序合成中一类以输入输出实例为规约形式的范式,它易用性高、学习成本低。近年来,该技术已经在数据处理、字符串变换等领域得到成功应用,具有很大的发展潜力。实例编程主要待解决的问题有两点:一是庞大程序空间中高效搜索的问题,二是程序合成解的歧义性问题。为解决第一个问题,实例编程方法在指定搜索策略时,需选取适当的领域特定语言,制定搜索算法,所应用的算法可分类为基于规则的算法和基于统计模型的算法。为解决第二个问题,实例编程方法需制定排序策略,所应用的排序策略可分类为基于给定实例的排序方法和基于用户交互的排序方法。文中对近年来的实例编程相关文献进行了整理,针对解决以上两个问题的方法、关键技术点进行了总结归纳,最后对实例编程领域未来的研究方向给出了建议。
    参考文献 | 相关文章 | 多维度评价
    2. 面向软件缺陷报告的缺陷定位方法研究与进展
    倪珍, 李斌, 孙小兵, 李必信, 朱程
    计算机科学    2022, 49 (11): 8-23.   DOI: 10.11896/jsjkx.220200117
    摘要620)      PDF(pc) (2280KB)(10326)    收藏
    软件缺陷定位是软件缺陷修复任务的一个重要步骤。面向软件缺陷报告的缺陷定位方法以描述缺陷产生现象的软件缺陷报告作为查询,以项目的源代码作为语料库,通过分析缺陷报告与源代码单元之间的相关关系,设计缺陷报告与源代码单元之间相关度的计算方法;随后,挖掘各类软件历史仓库来创建缺陷定位数据集,构建缺陷定位模型,以识别缺陷报告所描述的缺陷对应的源代码单元(即缺陷位置),实现缺陷定位。对近年来国内外学者在该研究领域取得的成果进行了系统总结。首先,介绍了软件缺陷定位的相关概念,归纳了面向软件缺陷报告的缺陷定位方法的主要流程;其次,围绕定位流程中的3个关键步骤梳理了已有研究工作;然后,总结了缺陷定位领域常用的实验数据集和实验评估指标;最后,对未来研究可能面临的挑战进行了展望。
    参考文献 | 相关文章 | 多维度评价
    3. 面向SOA的集成测试序列生成算法研究
    张冰清, 费琪, 王轶辰, 杨召
    计算机科学    2022, 49 (11): 24-29.   DOI: 10.11896/jsjkx.210400210
    摘要530)      PDF(pc) (1866KB)(10067)    收藏
    集成测试序列生成是软件集成测试研究中的一个重要课题,合理的测试序列可以在提高集成测试效率的同时有效降低测试代价。面向服务的架构SOA(Service-Oriented Architecture)是近年来在企业中被广泛应用的一类分布式架构,目前针对SOA架构中集成测试序列生成的相关研究较少。由于SOA架构中服务间组合具有多态性,单纯使用传统的自顶向下和自底向上等集成测试策略,无法得到SOA架构中服务软件之间的集成测试序列,而目前以面向对象系统中类簇为对象的集成测试序列生成研究又很难适应SOA架构中服务之间复杂的耦合关系。基于此,提出了一种基于遗传算法的集成测试序列生成方法,用于解决SOA架构中服务软件之间的集成测试问题。该方法提出了利用服务特征组的概念表征集成测试影响因素和利用集成测试优先度的概念来表征服务软件的集成测试重要度的基本思想,同时构建了测试依赖图,用于描述SOA架构中服务软件之间的复杂耦合关系,在此基础上提出了面向测试依赖图的测试优先度算法,并以降低测试代价为最优化目标设计了遗传算法,用于生成集成测试序列。最后通过实例验证了所提方法的可行性和正确性,结果表明,所提方法能够生成测试优先度相对较高的节点优先集成和测试代价较低的服务软件集成测试序列。
    参考文献 | 相关文章 | 多维度评价
    4. 基于决策树算法的API误用检测
    李康乐, 任志磊, 周志德, 江贺
    计算机科学    2022, 49 (11): 30-38.   DOI: 10.11896/jsjkx.211100177
    摘要666)      PDF(pc) (3144KB)(10689)    收藏
    通过应用程序编程接口(Application Programming Interface,API)复用已有的软件框架或类库,可有效地提高软件开发效率。然而,正确使用API须遵守很多规约,如调用顺序、异常处理等。若违反了这些规约就会造成API误用,进而可能导致软件崩溃、产生错误或漏洞。尽管很多API误用检测技术已经被提出,但是这些技术仍面临两个方面的挑战:1)难以获取API使用规约;2)难以同时检测多种不同类型的API误用。为了应对上述挑战,提出了一种基于决策树算法的API误用检测方法。首先,将API使用源代码转换为API使用图,从图中挖掘API使用规约,有效地应对了第一个挑战。其次,在获取的API规约信息的基础上构建API使用决策树,并通过融入剪枝策略来提高API使用决策树的泛化能力。最后,在检测阶段提出了粗粒度和细粒度相结合的检测方式,来提高API使用决策树的检测能力,有效地应对了第二个挑战。实验结果表明,该方法能够在一定程度上发现API误用缺陷。
    参考文献 | 相关文章 | 多维度评价
    5. AutoUnit:基于主动学习和预测引导的测试自动生成
    张大林, 张哲玮, 王楠, 刘吉强
    计算机科学    2022, 49 (11): 39-48.   DOI: 10.11896/jsjkx.220200086
    摘要660)      PDF(pc) (2609KB)(10606)    收藏
    测试用例自动生成技术旨在降低测试成本,与人工生成测试用例相比,它具有更高的测试效率。现有主流的测试工具对软件中的所有文件都平等对待,但是大多数情况下含有缺陷的文件只占整个软件项目的一小部分。因此,如果测试人员能针对更易存在缺陷的文件进行测试,就能极大地节省测试资源。针对以上问题,文中设计了一种基于主动学习的预测引导的自动化测试工具AutoUnit。首先对待测文件池中的所有文件进行缺陷预测,然后对最“可疑”的文件进行测试用例生成,之后将实际测试用例执行结果反馈给缺陷预测模型并更新该预测模型,最后根据召回率判断是否进入下一轮测试。此外,AutoUnit还能在含缺陷文件总数未知时,通过设置不同的目标召回率来及时停止预测引导。它能依据已测文件来预测含缺陷文件总数并计算当前召回率,判断是否停止预测引导,保证测试效率。实验分析表明,当测得相同数量的缺陷文件时,AutoUnit花费的最短时间为目前主流测试工具的70.9%,最长时间为目前主流测试工具的80.7%;当含缺陷文件总数未知且目标召回率设置为95%时,与最新版本的Evosuite相比,AutoUnit只需要检查29.7%的源代码文件就能达到相同的检测水平,且其测试时间仅为Evosuite的34.6%,极大地降低了测试成本。实验结果表明,该方法有效地提高了测试的效率。
    参考文献 | 相关文章 | 多维度评价
    6. ROP漏洞利用脚本的语义还原和自动化移植方法
    施瑞恒, 朱云聪, 赵易如, 赵磊
    计算机科学    2022, 49 (11): 49-54.   DOI: 10.11896/jsjkx.210900230
    摘要288)      PDF(pc) (2661KB)(10795)    收藏
    漏洞利用脚本在安全研究中有着极为重要的作用,安全研究人员需要研究漏洞利用脚本触发以及利用漏洞的方式,来对漏洞程序进行有效的防护。然而,从网络中获取的大量漏洞利用脚本的通用性和适配性都很差,局限于特定的操作系统及环境,会因运行环境的改变而失效。这个问题在基于ROP的漏洞利用脚本中尤为普遍,使得ROP漏洞利用脚本的移植利用分析变得非常困难,需要依赖于大量的人工辅助与专家经验。针对ROP漏洞利用脚本的移植利用难题,提出了ROPTrans系统,通过ROP漏洞利用脚本的语义识别,定位与运行环境相关的关键语义及其变量,随后自动化适配环境,生成目标环境下的ROP漏洞利用脚本,以实现ROP脚本的自动化移植。实验结果表明,ROPTrans的成功率可以到达80%,验证了该方法的有效性。
    参考文献 | 相关文章 | 多维度评价
    7. 自动化软件重构质量目标与非质量目标有效性研究
    郭亚琳, 李晓晨, 任志磊, 江贺
    计算机科学    2022, 49 (11): 55-64.   DOI: 10.11896/jsjkx.220300058
    摘要305)      PDF(pc) (3409KB)(10751)    收藏
    随着软件不断迭代发展,软件维护成本也相应增加。自动化重构可以降低软件维护成本,基于搜索的重构方法是解决该问题最典型的方法之一。其中目标的选择对搜索过程起决定性作用,质量目标与非质量目标都是开发人员在重构时通常会考虑的目标。然而,尚未有研究系统地分析在相同的评价环境下,哪些目标更有利于代码重构,特别是得到符合开发者预期的代码重构结果;并且也未分析质量目标与常用的非质量目标进行组合是否会有更好的效果。文中提出了基于搜索的多目标软件重构方法,探索了7个不同目标的组合对软件重构质量的影响。在6个规模不同的开源软件项目上进行了验证,应用多种指标对重构前后软件质量进行评估,并分析了不同优化目标组合的表现。实验结果表明,质量目标与非质量目标组合比单独使用质量目标组合对重构效果的提升更明显,其中质量目标与之前重构记录的一致性的组合对重构有较好的提升效果。
    参考文献 | 相关文章 | 多维度评价
    8. 基于机器视觉的Web应用页面元素识别及可视化脚本生成
    李子东, 姚怡飞, 王微微, 赵瑞莲
    计算机科学    2022, 49 (11): 65-75.   DOI: 10.11896/jsjkx.220200122
    摘要441)      PDF(pc) (2624KB)(11731)    收藏
    为了给用户提供丰富的交互响应,Web应用的可视化元素越发复杂多样,传统基于DOM的测试已不能满足Web应用的测试新需求。新一代基于机器视觉的测试方法为Web应用复杂元素的测试提供了一种有效途径。目前,此类方法主要依赖于模版匹配技术识别Web页面元素,以生成可视化测试脚本对Web应用进行测试。然而,页面元素外观的细微变化可导致模版匹配技术失效,从而无法识别Web页面元素,更无法生成可视化测试脚本。因此,如何提高基于机器视觉的Web页面元素识别的准确性,使其在复杂条件中仍然适用是一项具有挑战性的工作。基于深度学习的目标检测是当前计算机视觉和机器学习领域的研究热点,可通过大样本学习得到深层的数据特征表示,以准确识别目标,其泛化能力相比模板匹配更强。针对Web应用,从页面元素的视觉特征出发,提出了一种基于深度学习的Web页面元素识别方法,即利用基于深度学习的目标检测算法YOLOv3构建Web页面元素识别模型,自动定位元素的位置和边界,识别Web页面元素类型及功能描述;在此基础上,自动为Web应用生成可视化测试脚本,提升Web应用的测试效率。为了验证基于机器视觉的Web页面元素识别的准确性,针对同一Web应用的不同版本及不同Web应用分别进行实验,结果表明,基于机器视觉的Web页面元素识别模型的平均召回率为75.6%,可有效辅助Web应用可视化测试脚本生成。
    参考文献 | 相关文章 | 多维度评价
    9. 基于GCC编译器的流式存储优化方法
    高秀武, 黄亮明, 姜军
    计算机科学    2022, 49 (11): 76-82.   DOI: 10.11896/jsjkx.211200252
    摘要1015)      PDF(pc) (2713KB)(11676)    收藏
    针对流式存储访问引起的缓存污染与强制性缺失问题,部分高性能通用处理器平台提供了不经过缓存而直接访问存储器的专用通路及配套指令支持。在常见的流式存储应用场景中,合理采用直访主存方式可以提高芯片存储器系统的整体性能。然而,判断何时使用直访主存能够获得收益对于程序员来说是一项十分繁琐且容易出错的任务,一种行之有效的方法是通过编译器自动实现。因此,文中在深入分析流式存储访问模式使用不同类型访存操作性能收益的基础上,提出了基于GCC编译器的流式存储优化方法。该方法由编译器自动实现对程序员透明,在GCC编译器SSA-GIMPLE阶段对程序循环中具有流式访问特征的连续写或者跨步写进行识别,并根据收益分析与依赖关系筛选优化对象,最后在编译器后端匹配指令模板生成直访主存指令。使用连续/跨步写用例与STREAM测试集及变体在申威国产处理器平台上进行实验评估,结果表明,文中提出的优化方法能够显著缩短流式存储应用程序的执行时间,优化后STREAM测试集的平均加速比为1.31。另外,文中实现的流式存储优化与循环展开优化一起使用效果更好,STREAM测试集的平均加速比能达到1.45。
    参考文献 | 相关文章 | 多维度评价
    10. 结合Doc2Vec和BERT嵌入技术的补丁验证方法
    黄颖, 姜淑娟, 蒋婷婷
    计算机科学    2022, 49 (11): 83-89.   DOI: 10.11896/jsjkx.210900207
    摘要323)      PDF(pc) (2492KB)(11091)    收藏
    自动程序修复是近年来的研究热点并取得了一定的进展。现有的自动程序修复方法大多利用测试套件来验证补丁正确性。然而,使用测试套件验证自动程序修复方法生成的大量候选补丁不仅会造成巨大的开销,不完美的测试套件还会导致补丁的过拟合问题,因此如何提高补丁验证效率、有效验证补丁正确性成为亟待解决的问题。为了降低补丁验证开销并提高补丁正确率,提出了结合两种嵌入技术验证补丁正确性的方法。该方法首先利用Doc2Vec计算补丁与错误代码的相似性,然后使用一个基于BERT模型的分类器过滤通过相似性筛选出的补丁中的错误补丁。为了验证所提方法的有效性,基于5个开源的Java缺陷库进行实验,结果表明该方法能够有效地验证补丁的正确性并提高验证效率。
    参考文献 | 相关文章 | 多维度评价
    首页 | 前页| 后页 | 尾页 第1页 共1页 共10条记录