- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于白箱测试的C语言代码在线评测系统的研究与实现.doc
基于白箱测试的C语言代码在线评测系统的研究与实现
摘 要 在程序设计语言教学过程中,教师往往运用手把手教学的方式对学生的源代码编程进行审核,这类传统的教学模式效率低下,也不便于学生之间的交流。构建一个基于白箱测试的建立在C语言基础上的教学平台,提高师生互动,促进大家学习交流,简化程序的评测过程,提高学习的效率。
【关键词】白箱测试 在线评测 C语言
高校程序设计类课程传统的手工评测方式有许多难以克服的弊端,对教学效果和学生编程能力的提高造成了许多障碍。随着计算机技术的发展,特别是Internet技术的普遍应用, 源代码在线评测系统应运而生,应用于各高校程序设计类课程的辅助教学,同时还可以当做程序编程设计等竞赛的模拟系统,和传统的手工测评方式相比较而言,优势明显。
1 研究内容
在分析和总结前人研究工作的基础上,本研究基于白箱测试实现对C语言源代码的评测,使其能够应用在具体教学实践中。
1.1 评测系统的关键技术
评测系统要用到以下几个关键技术:操作 My SQL 数据库;编译源代码;执行被测试的数据;测试运行结果;获取评测时间等。
1.2 代码安全性检测
代码安全检测是研究的核心内容。一旦源代码使用者提供了错误的恶意性质的代码,必然会影响服务器的正常运行。所以确保代码的安全性是保障系统正常使用的核心,需要及时对用户提供的源代码进行安全性检测,以白箱测试中的静态分析技术为前提,设计这一模块,针对C语言源代码常见的安全漏洞机械能给你检测,分析。重点研究存储越界错误、动态内存分配错误、内存泄漏、类型不一致错误、数组越界、死循环等类六类安全漏洞的检测方法。
1.3 代码剽窃检测
分析常见的代码剽窃的几种方式,及目前国内外代码剽窃检测技术的发展情况。代码剽窃检测这项技术的最终要的计算方法就是代码相似度的检测。检测两种代码的相似情况的主要方法有两种,属性计数和结构度量。结合实际教学环境,选择合适的代码相似度计算机方法,提出解决学生在日常的编程、考试中代码剽窃自动检测的设计方案。
2 评测技术的关键技术
本研究主要是对实现评测系统的技术进行研究,主要包括以下几个方面:评测系统的关键技术、代码安全检测、代码剽窃检测。
2.1 评测系统关键技术
(1)采用C语言操作MySQL数据库。用到的API主要有:MYSQL*mysql_init(MYSQL*mysql),用来实现初始化一个MySQL对象。
MYSQL* mysql_connect(MYSQL*mysql,const char*host,const*user,const char*passwd),用来实现连接数据库。
int mysql_query(MYSQL *mysql,const char*query),实现对SQL语句的执行操作。
(2)对源代码进行编译,实现对源代码的编译要用到以下主要参数:
-o out_file:表示将编译后的可执行文件存储为out_file。如out_file为空,则则编译后的可执行文件存储为a.out;
-O2:在编译的过程中会采取优化处理方式;
-Wall:在编译时,程序会及时输出警告信息;
-Im:-I编译时,链接库会被连接;-I后面会出现需要要链接的库名。-Im表示会链接数学库;
-Static:在编译过程中,进行连接链接库时,会使用静态链接库进行连接,及时避免连接动态的链接库。
(3)源代码文件编译通过之后,会生成一个名为“main”的文件’接下来的工作是测试程序的正确性,源代码的正确性测评采用的是黑盒测试,执行被测试程序的过程如下:重定向输入输出文件;创建一个子进程;设置资源限制;用函数调用要执行的程序。
(4)用来检测程序运行情况的思路是这样的:在对待评测程序进行评测时,要使用标准的输入文件,把标准文件输出的数据和待评测程序输出的数据比较分析,假设待评测程序的结果和标准的一样,那么久可以判断此待评测程序编码是正确的,如果有出入,就认为待评测程序是错误的,当然,在检测和对照的过程中,要确保时间合适,注意监视内存情况,假设超出时间和内存的限制就需要及时返回错误代码,测评时间就是看测试前后系统时间差。
2.2 代码安全检测
在检测代码安全性之前,要检查C语言是否存在安全漏洞,如果有,就好及时分析,在安全漏洞中破坏性较大的、典型很难发现的的一共有六种。
(1)存储越界错误;
(2)动态内存分配错误:
(3)内存泄漏;
(4)类型不一致错误;
(5)指针错误;
(6)死循环。
针对对内存泄漏和数组越界两大类漏洞找到合适的检测方法。
2.3 代码剽窃
您可能关注的文档
- 基于微信墙的外语课堂交互探究.doc
- 基于微信平台的数字信号处理智慧课堂建设.doc
- 基于微信的农业专家在线服务系统的设计与开发.doc
- 基于微课的翻转课堂之“IF虚拟语气”的案例分析.doc
- 基于微课的翻转课堂教学模式研究:以高职英语写作为例.doc
- 基于微课的高职英语信息化教学应用探索.doc
- 基于微课视域下的初中英语课堂教学策略探究.doc
- 基于思维导图支撑的微课教与学在计算机基础课程的应用研究.doc
- 基于思维导图的小学教育语义本体库构建.doc
- 基于情感化设计三层次理论的深入研究.doc
- 自媒体时代政府话语权的挑战与重塑:困境剖析与应对策略.docx
- 流质契约的法理剖析与制度构建:基于公平与效率视角.docx
- 新会计准则对制造业上市公司真实盈余管理的影响:基于经验数据的深度剖析.docx
- 国内品牌男装网络直销模式的创新扩散机制与实践洞察.docx
- 论不动产预告登记制度的法律解析与完善路径.docx
- 佐科时期印尼与澳大利亚安全合作:基于地缘政治与战略利益的深度剖析.docx
- 自体窦房结与心房肌组织移植:大鼠心脏电生理的变革与机制探寻.docx
- 我国土地回转法律制度的构建与完善:理论、实践与展望.docx
- 基于数字化转型的商业银行IT服务管理系统:设计、实现与效能提升.docx
- 联检多种肿瘤相关自身抗体:食管癌诊断的新视角与价值评估.docx
文档评论(0)