【技术实现步骤摘要】
一种基于B/S架构的程序源代码的评判系统及方法
本专利技术涉及一种基于B/S架构的程序源代码的评判系统及方法,具体地说是一种在B/S架构下能够对源程序进行自动插装、覆盖率获取、故障诊断、结果度量并完成代码质量评判的系统及方法。
技术介绍
当今随着计算机的日益普及,计算机软件起着越来越举足轻重的作用,软件质量问题也越发引起人们的注意。然而,计算机开发行业中的管理人员和团队领袖常常并不了解他们所领导的开发团队的编程习惯和思维定式。而开发人员通常都有自己的工作习惯和工作方式,并且某位开发人员的习惯可能不适合其正在参与的项目。若一位开发人员被安排到了不适合的开发风格和角色上,于是会引入更多的人为程序错误,甚至会导致时间的浪费以及生产力和效率低下。特别是计算机专业的学生作为初级软件开发者,培养过程中也需要逐步确立他们的编程和思维习惯。然而,在如今大学开设的计算机语言课程中,仍然需要教师手动批改学生的程序,对学生的掌握程度进行人工分析与评分。而学生在写代码的过程中,由于对代码理解程度有限,在程序出错后往往无法及时对程序进行修改,缺少一个实用性较高的自动评判系统对学生进行有针对性的指导和建议。同时,现代的软件开发工具,无论是自动化的软件测试工具,还是程序调试工具,若干质量评估可以从对已编译或源代码形式的测试代码的分析来确定,包括评估测试代码作出的描述性断言、依赖关系评估、秩复杂度评估、返回值断言、可变参数断言、以及测试有效性历史。其测试环境可用于测试应用程序代码质量,但还不足用于评估开发人员的编程习惯和思维模式,试图确定某个成员是否适合某类选定的开发模式是困难的。事实上 ...
【技术保护点】
一种基于B/S架构的程序源代码的评判系统,包括浏览器端和服务器端,其特征在于:所述浏览器端包括管理员单元组和用户单元组;浏览器端用于管理员单元组和用户单元组实现对其各自对应的信息管理、课程信息管理、任务操作管理的操作以及管理员单元组对用户单元组各个用户的用户信息进行查询、管理操作,并显示服务器端对用户当前测试任务的评判结果;所述服务器端包括:信息存取显示单元,用于对浏览器端提交的管理员信息及用户信息进行数据库存取和显示;任务检查单元,用于暂时存储用户提交的任务代码,并对代码能否通过编译进行检查;任务池管理单元,用于管理浏览器端提交的任务队列,即实现定时检测任务提交情况,获取任务提交信息,并对用户提交的任务信息进行存储管理;文件系统生成单元,用于生成任务队列中的队首任务进行处理所需的所有文件目录并读取数据库中的待测程序,将其复制到规定的目录下;脚本生成单元,用于生成执行队首任务所需的各脚本文件,并存储于指定的文件目录下;程序插装单元,用于对待测程序进行插装并运行,将生成的程序执行路径与测试用例信息存放于指定目录下;故障定位单元,用于对待测程序进行故障定位,并将定位结果进行排序后存储于数据 ...
【技术特征摘要】
1.一种基于B/S架构的程序源代码的评判系统,包括浏览器端和服务器端,其特征在于:所述浏览器端包括管理员单元组和用户单元组;浏览器端用于管理员单元组和用户单元组实现对其各自对应的信息管理、课程信息管理、任务操作管理的操作以及管理员单元组对用户单元组各个用户的用户信息进行查询、管理操作,并显示服务器端对用户当前测试任务的评判结果;所述服务器端包括:信息存取显示单元,用于对浏览器端提交的管理员信息及用户信息进行数据库存取和显示;任务检查单元,用于暂时存储用户提交的任务代码,并对代码能否通过编译进行检查;任务池管理单元,用于管理浏览器端提交的任务队列,即实现定时检测任务提交情况,获取任务提交信息,并对用户提交的任务信息进行存储管理;文件系统生成单元,用于生成任务队列中的队首任务进行处理所需的所有文件目录并读取数据库中的待测程序,将其复制到规定的目录下;脚本生成单元,用于生成执行队首任务所需的各脚本文件,并存储于指定的文件目录下;程序插装单元,用于对待测程序进行插装并运行,将生成的程序执行路径与测试用例信息存放于指定目录下;故障定位单元,用于对待测程序进行故障定位,并将定位结果进行排序后存储于数据库中;覆盖率单元,用于获取待测程序运行过程中的覆盖率信息;打分单元,用于依据评分标准对当前用户任务完成情况进行评估打分,并将计算结果存储于后台数据库中,并由任务池管理单元删除该队首任务;所述任务池管理单元获取到任务提交信息后,任务进入检测状态,由文件系统生成单元生成任务对应的文件系统与目录,并将待测程序复制到生成的目录下,由脚本生成单元将执行待测程序所需的指令生成脚本文件同时由程序插装单元对待测程序进行插装并运行,生成各测试用例的执行路径与测试用例信息,所述故障定位单元根据测试用例运行产生的路径覆盖信息使用故障定位算法进行故障定位,计算出语句的可疑度信息,按照可疑度信息的大小进行排序,并由覆盖率单元统计程序的覆盖率信息;打分单元依据评分标准计算队首任务的任务分数;上述语句可疑度信息、覆盖率信息和任务分数经信息存取显示单元反馈到浏览器端后生成结果报告,并在网页页面上显示评判结果。2.根据权利要求1所述的一种基于B/S架构的程序源代码的评判系统,其特征在于:所述的程序插装单元是通过JTB对待测程序进行编译,生成抽象语法树,然后对抽象语法树进行插装并生成插装后的源文件,通过结合测试用例运行插装后的文件,生成所述的故障定位单元所需要的信息。3.根据权利要求1所述的一种基于B/S架构的程序源代码的评判系统,其特征在于:所述故障定位单元采用的是基于覆盖信息统计的Tarantula算法和Safla算法,所需信息为测试用例运行产生的路径覆盖信息和测试用例运行的成功与否信息,然后统计语句在成功执行和错误执行的出现次数,算出每个节点的故障可疑度,并转化成JSON数据格式存储于数据库中。4.根据权利要求1所述的一种基于B/S架构的程序源代码的评判系统,其特征在于:所述的覆盖率单元通过Emma算法在待测程序执行过程中获取待测程序的执行路径并计算得出程序的覆盖率以及各函数的覆盖率,以XML文件的格式存储于指定文件目录下;在浏览器端请求结果报告页面时,信息存取显示单元解析该XML文件并转化为JSON数据的格式传至浏览器,并以表格的形式进行显示。5.根据权利要求1所述的一种基于B/S架构的程序源代码的评判系统,其特征在于:所述管理员单元组,用于为管理员实现信息管理、测试任务编译、下达的操作,包括:个人信息管理单元,用于管理员实现对个人信息的管理操作;课程信息...
【专利技术属性】
技术研发人员:陈荣,马凯,刘平月,李辉,高健,陈世峰,
申请(专利权)人:大连海事大学,
类型:发明
国别省市:辽宁;21
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。