[发明专利]基于Go语言代码分割的众测任务包生成方法及保护方法无效
申请号: | 202110690940.8 | 申请日: | 2021-06-22 |
公开(公告)号: | CN113434391A | 公开(公告)日: | 2021-09-24 |
发明(设计)人: | 黄松 | 申请(专利权)人: | 中国人民解放军陆军工程大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京纵横知识产权代理有限公司 32224 | 代理人: | 董建林 |
地址: | 210014 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 go 语言 代码 分割 任务 生成 方法 保护 | ||
本发明公开了一种基于Go语言代码分割的众测任务包生成方法及保护方法,其生产方法包括:对项目文件的Go语言源代码进行扫描,获取包括Go语言源代码中所有函数声明信息的声明总表;从项目文件中选定待分割的函数声明;根据所述声明总表将每个待分割的函数声明进行代码分割生成代码分割单元;将预设数量的代码分割单元打包生成众测任务包;本发明能够有效解决单元众包软件测试过程中,源代码泄露的问题。
技术领域
本发明涉及一种基于Go语言代码分割的众测任务包生成方法及保护方法,属于单元众包软件测试技术领域。
背景技术
在单元众包软件测试过程中,主要风险源于开放环境下发包方知识产权的泄露。理想状态下的单元众包测试是所有人都可信,发包方不进行保护,测试工人自由测试,充分发挥利用了众包环境的多样性。这种众包工人自由地下载、测试、上传结果并且和社区间的工人进行讨论但缺少监督的众包模式可以定义为“自由主义众测”。目前大部分的众包软件测试都是遵循自由众测模式,原因是大部分的众包软件测试是黑盒的。通过代码保护技术,任务发布者可以将任务打造为一个安全的黑盒,从而避免攻击者对代码的盗取。如果发包方自信自己的加密黑盒能够保障程序代码的安全,那么他们完全可以接受自由主义众测的模式。然而白盒代码测试是需要工人对代码进行阅读的。程序代码不受加密壳的保护,众测工人可以轻松获取完整的项目代码。所以在单元众包软件测试中“自由主义众测”是一种弱安全性的模式。为了解决上述问题,本申请提出了一种基于Go语言代码分割的众测任务包生成方法及保护方法。
发明内容
本发明的目的在于克服现有技术中的不足,提供一种基于Go语言代码分割的众测任务包生成方法及保护方法,解决单元众包软件测试过程中,源代码泄露,安全性不高的技术问题。
为达到上述目的,本发明是采用下述技术方案实现的:
第一方面,本发明提供了一种基于Go语言代码分割的众测任务包生成方法,包括:
对项目文件的Go语言源代码进行扫描,获取包括Go语言源代码中所有函数声明信息的声明总表;
从项目文件中选定待分割的函数声明;
根据所述声明总表将每个待分割的函数声明进行代码分割生成代码分割单元;
将预设数量的代码分割单元打包生成众测任务包。
优选的,所述获取包括Go语言源代码中所有函数声明信息的声明总表包括:
通过依赖扫描器获取Go语言源代码的所有Go代码包;
使用转换器将每个Go代码包下所有文件转化为抽象语法树;
使用函数分析器通过分析抽象语法树中的函数声明结点,获取每个函数声明,并将结果保存为每个Go代码包的声明表;
使用声明分析器提取每个Go代码包的声明表,汇总后得到声明总表。
优选的,所述函数声明包括函数声明在其函数体中调用的其他函数声明信息、变量声明信息以及常量声明信息。
优选的,所述根据所述声明总表将每个待分割的函数声明进行代码分割生成代码分割单元包括:
在声明总表中查找待分割的函数声明与其相关声明生成声明关系表;
根据声明关系表生成声明关系图,并将声明关系图作为代码分割单元。
优选的,所述在声明总表中查找待分割的函数声明与其相关声明生成声明关系表包括:
在声明总表中查找待分割的函数声明使用的各类声明;
在声明总表中查找各类声明使用的其他声明,通过不断递归分析,直到所有声明不再使用其他声明;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军陆军工程大学,未经中国人民解放军陆军工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110690940.8/2.html,转载请声明来源钻瓜专利网。