一种基于Eclipse插件的Java源代码缺陷检测方法及其系统的制作方法
【专利摘要】本发明涉及一种基于Eclipse插件的Java源代码缺陷检测方法及其系统,所述方法包括:S1、将检测插件置入到Eclipse平台;S2、在所述检测插件的模式数据库中选择预设的缺陷模式和存储路径;S3、根据所选择的缺陷模式和存储路径,选择所述Eclipse平台中待测试java文件和/或待测试工程并执行检测;S4、分析处理检测结果。该方法可以在Java开发环境下直接进行代码缺陷的检测,从而提高了软件开发测试的效率。
【专利说明】—种基于Ec I i pse插件的Java源代码缺陷检测方法及其系统
【技术领域】
[0001]本发明涉及软件测试【技术领域】,尤其涉及一种基于Eclipse插件的Java源代码缺陷检测方法及其系统。
【背景技术】
[0002]软件测试是一种软件质量的保证活动,其动机是使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求,或弄清预期结果与实际结果之间的差别的过程。软件测试通常从两个方面进行,即动态测试和静态测试。而在软件开发过程中我们认为,Bug发现的越晚,修正的成本就越高,测试阶段修正Bug的成本是编码阶段的约4倍的关系。为了减少成本,Bug被发现的越早越好。在编程阶段,静态的分析代码就能找到代码的Bug,是很多人的梦想。
[0003]因此,静态测试技术正逐渐受到软件业界的青睐,已成为美国的一种主流的软件测试技术。具有代表性的代码缺陷静态测试工具主要有Stanford大学的研究项目Metal,Maryland大学研发的Java程序静态测试工具FindBugs,开源的Java程序静态测试工具PMD,美国Klocwork公司研发的代码缺陷检测工具K8。
[0004]但通过使用上述测试工具,我们会发现,目前代码缺陷检测工具主要是以客户端软件形式存在,用户在使用过程中需要提前安装软件,再将编写好的源代码导入软件内进行缺陷检测,发现代码缺陷后需要返回到开发环境中修改。这种开发环境和测试环境的分离,给开发过程中代码缺陷的及时检测带来了困难。
【发明内容】
[0005]基于上述问题,本发明提供一种基于Eclipse插件的Java源代码缺陷检测方法及其系统,可以在Java开发环境下直接进行代码缺陷的检测,从而提高了软件开发测试的效率。
[0006]根据上述目的,本发明提供一种基于Eclipse插件的Java源代码缺陷检测方法,所述方法包括:
[0007]S1、将检测插件置入到Eclipse平台;
[0008]S2、在所述检测插件的模式数据库中选择预设的缺陷模式和存储路径;
[0009]S3、根据所选择的缺陷模式和存储路径,选择所述Eclipse中待测试java文件和/或待测试工程并执行检测;
[0010]S4、分析并处理检测结果。
[0011]其中,所述步骤S3具体包括:
[0012]S31、选择待测试工程,获取所述待测试工程的路径信息,并作为参数传递给缺陷检测线程,所述缺陷检测线程读取所述待测试工程的参数并执行检测;
[0013]S32,选择待测试java文件,获取所述待测试java文件的相关路径信息,作为参数传递给所述缺陷检测线程,所述缺陷检测线程读取所述待测试java文件的参数并执行检测。
[0014]其中,所述待测试工程的参数包括:所述待测试工程的绝对路径、结果数据库存放路径以及缺陷模式的用户配置结果。
[0015]其中,所述待测试java文件的参数包括:所述待测试java文件的绝对路径、结果数据库存放路径以及缺陷模式的用户配置结果。
[0016]其中,所述步骤S4包括:将检测结果分类并分别排序,然后对每个检测结果进行判断并保存判断结果。
[0017]其中,所述方法还包括:
[0018]步骤S5,将处理后的检测结果导出并生成报表文件。
[0019]根据本发明的另一个方面,提供一种基于Eclipse插件的Java源代码缺陷检测系统,所述系统包括:
[0020]插件置入单元,用于将检测插件置入到Eclipse平台;
[0021]参数配置单元,用于在所述检测插件的模式数据库中选择预设的缺陷模式和存储路径;
[0022]检测单元,用于根据所选择的缺陷模式和存储路径,分别选择Eclipse中的待测试java文件和/或待测试工程并执行检测;
[0023]分析单元,用于对检测结果进行分析和处理。
[0024]另外,所述系统还包括:导出单元,用于将处理后的检测结果导出并生成报表文件。
[0025]本发明的一种基于Eclipse插件的Java源代码缺陷检测方法及其系统,采用在Eclipse平台安装、配置和使用插件方法,可以在java开发生命周期的早期发现代码缺陷,并直观得将详细信息的展示在开发人员面前,提高了软件开发测试的效率。同时,本发明的方法操作简单,依赖于Eclipse平台,直接安装好插件,重新启动Eclipse,即可使用。
【专利附图】
【附图说明】
[0026]通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
[0027]图1示出了本发明的基于Eclipse插件的Java源代码缺陷检测方法的流程图。
[0028]图2示出了本发明的基于Eclipse插件的Java源代码缺陷检测方法的步骤SI的流程图。
[0029]图3示出了本发明的基于Eclipse插件的Java源代码缺陷检测方法的步骤S2的模式配置过程的流程图。
[0030]图4示出了本发明的基于Eclipse插件的Java源代码缺陷检测方法的步骤S2的路径配置过程的流程图。
[0031]图5示出了本发明的基于Eclipse插件的Java源代码缺陷检测方法的步骤S4的流程图。
[0032]图6示出了本发明的基于Eclipse插件的Java源代码缺陷检测方法的步骤S5的流程图。
[0033]图7示出了本发明的基于Eclipse插件的Java源代码缺陷检测系统的结构框图。
【具体实施方式】
[0034]下面将结合附图对本发明的实施例进行详细描述。
[0035]Java语言作为一种可以撰写跨平台应用软件的面向对象的程序设计语言,具有卓悦的通用型、高效性、平台移植性和安全性,拥有全球最大的开发者专业社群。为帮助开发,常用的 Java IDE 包括 Eclipse, MyEclipse, JBulid 等,其中最常见的是 Eclipse。
[0036]Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。Eclipse为大中型的应用程序提供了完善的组件管理机制,提供了一个完整的界面框架。以这个平台为基础,不需要去开发一个界面框架、建立菜单、简历工具栏等重复性工作,开发者不需要在软件的界面上花太多的时间,只要集中精力开发插件功能就可以。
[0037]因此,本发明提出的基于Eclipse插件的Java源代码缺陷检测方法,是将传统的缺陷检测软件的功能以插件的形式,集成到Eclipse中。保证了开发人员可以在java开发过程中,及时的对代码进行缺陷检测并在eclipse中直接显示和定位代码缺陷所在,并提供详细的缺陷描述。帮助开发人员更好的完善自己的代码模块,将开发环境和测试环境紧密结合起来。
[0038]下面结合附图,对本发明的基于Eclipse插件的Java源代码缺陷检测方法进行详细说明。
[0039]图1示出了本发明的基于Eclipse插件的Java源代码缺陷检测方法的流程图。
[0040]参照图1,该方法包括以下步骤:
[0041]S1、将检测插件置入到Eclipse平台;
[0042]S2、在所述检测插件的模式数据库中选择预设的缺陷模式和存储路径;
[0043]S3、根据所选择的缺陷模式和存储路径,分别选择Eclipse中的待测试java文件和/或待测试工程并执行检测;
[0044]S4、分析并处理检测结果;
[0045]S5,将处理后的检测结果导出并生成报表文件。
[0046]图2示出了本发明的基于Eclipse插件的Java源代码缺陷检测方法的步骤SI的流程图。
[0047]如图2所示,步骤SI具体为:
[0048]Sll,将jar格式的检测插件置于Eclipse的plugins文件夹内;
[0049]S12,启动Eclipse,,自动加载插件功能;
[0050]S13,Eclipse主界面显示新增菜单栏、工具栏图标、缺陷视图。
[0051]图3示出了本发明的基于Eclipse插件的Java源代码缺陷检测方法的步骤S2的模式配置过程的流程图。
[0052]如图3所示,模式配置具体为:
[0053]S211,点击菜单栏“缺陷检测”的子菜单项“模式配置”;
[0054]S212,系统读取模式数据库中的内容,以树形结构显示在对话框中,每一项前有勾选框;
[0055]S213,用户勾选或者取消相应的缺陷模式名称,决定检测时执行哪些缺陷模式的检测;
[0056]S214,点击“完成”,将用户修改后的数据写回到模式数据库中;或者点击“取消”,直接关闭对话框。
[0057]图4示出了本发明的基于Eclipse插件的Java源代码缺陷检测方法的步骤S2的路径配置过程的流程图。
[0058]如图4所示,路径配置具体为:
[0059]S221,点击菜单栏“缺陷检测”的子菜单项“路径配置”;
[0060]S222,打开路径选择对话框,文本框内显示目前的存储路径,点击“浏览”,弹出路径选择对话框;
[0061]S223,选择存储的目标路径,点击“确定”,新路径显示在文本框内,执行下一步;或者点击“取消”,路径不变,直接关闭对话框;
[0062]S224,将选择的路径写入在sys.1ni文件内。
[0063]本实施例的步骤S3具体包括:
[0064]S31、选择待测试工程,获取所述待测试工程的路径信息,并作为参数传递给缺陷检测线程,所述缺陷检测线程读取所述待测试工程的参数并执行检测;
[0065]S32,选择待测试java文件,获取待测试java文件的相关路径信息,作为参数传递给所述缺陷检测线程,所述缺陷检测线程读取所述待测试java文件的参数并执行检测。
[0066]步骤S31具体为:
[0067]S311,选中待测试工程,点击工具栏中的“工程测试”图标,或者菜单栏“缺陷检测”的子菜单项“工程测试”;
[0068]S312,获取选中工程的相关路径信息,作为参数传递给检测线程;
[0069]S313,开启缺陷检测线程,由线程读取相关参数,执行检测;
[0070]其中,步骤S31中,待测试工程的参数包括:所述待测试工程的绝对路径、结果数据库存放路径以及缺陷模式的用户配置结果。
[0071]步骤S32的具体过程为:
[0072]S321,选中待测试java文件,点击工具栏中的“文件测试”图标,或者菜单栏“缺陷检测”的子菜单项“文件测试”;
[0073]S322,获取选中java文件的相关路径信息,作为参数传递给检测线程;
[0074]S323,开启缺陷检测线程,由线程读取相关参数,执行检测;
[0075]其中,待测试java文件的参数包括:所述待测试java文件的绝对路径、结果数据库存放路径以及缺陷模式的用户配置结果。
[0076]缺陷检测线程的具体工作过程包括:
[0077]S301,线程挂起;
[0078]S302,获取目的地址和模式文档;
[0079]S303,进行预处理;
[0080]S304,执行缺陷检测;
[0081]S305,将结果写入数据库;
[0082]S306,判断是否完成所有检测过程,否则返回步骤S301,是则结束。
[0083]图5示出了本发明的基于Eclipse插件的Java源代码缺陷检测方法的步骤S4的流程图。
[0084]如图5所示,所述S4具体为:
[0085]S41,点击“查看”,获取存储检测结果的缺陷数据库内信息,展示在缺陷结果视图区;
[0086]S42,选择不同的查询条件,输入查询内容,按回车键,将显示符合搜索条件的结果;也可以选择按列升序或降序排列;
[0087]S43,双击一条缺陷内容,编辑器将跳转到java文件内该缺陷对应的行,右侧三个缺陷视图区也将显示与该缺陷相应的关联内容;
[0088]S44,对缺陷进行判断:DTS缺陷视图区的“判断”列,从Defect、False Alarm、Uncertainty中选择一个判断结果,鼠标点击其他位置,则保存结果。
[0089]其中,步骤S43中,三个缺陷视图为:“缺陷描述”视图、“详细描述”视图、“缺陷代码”视图。“缺陷描述”视图将描述具体位置的变量或者函数是何种缺陷;“详细描述”视图区从缺陷描述文档中读取该类型缺陷的详细描述;“缺陷代码”视图区,用户可以写入相关的代码,完成后鼠标焦点转移,自动将数据写入数据库中。
[0090]图6示出了本发明的基于Eclipse插件的Java源代码缺陷检测方法的步骤S5的流程图。
[0091]如图6所示,步骤S5具体为:
[0092]S51,点击菜单栏“缺陷检测”的子菜单项“导出报表”,打开导出报表对话框;
[0093]S52,填入报表头的相应信息,点击“next”进入步骤S53,或者点击“cancel ”退出;
[0094]S53,勾选要输出的缺陷类型和判断类型,点击“Finish”进入步骤S54,或者点击“cancel ” 退出;
[0095]S54打开导出报表进度条,获取待导出的缺陷数据库信息,在用户选择的存储路径下生成报表文件,写入报表详细内容。
[0096]其中。步骤S52中,报表头的相关信息包括:报表名、部门、作者、日期、存储路径。
[0097]其中,步骤S54中,报表的详细内容包括:缺陷分布饼图、缺陷数量统计表、目录、详细缺陷报告、缺陷文件。
[0098]图7示出了本发明的基于Eclipse插件的Java源代码缺陷检测系统的结构框图。
[0099]参照图7,本发明的另一个实施例中,提供一种基于Eclipse插件的Java源代码缺陷检测系统,包括:
[0100]插件置入单元10,用于将检测插件置入到Eclipse平台;
[0101]参数配置单元20,用于在所述检测插件的模式数据库中选择预设的缺陷模式和存储路径;
[0102]检测单元30,用于根据所选择的缺陷模式和存储路径,分别选择Eclipse中的待测试java文件和/或待测试工程并执行检测;
[0103]分析单元40,用于对检测结果进行分析处理。
[0104]导出单元50,用于将处理后的检测结果导出并生成报表文件。
[0105]本发明的一种基于Eclipse插件的Java源代码缺陷检测方法及其系统,具有以下有益效果:
[0106]1.提供java工程和文件的缺陷检测功能;
[0107]作为缺陷检测插件的核心功能,提供了工程和文件两种检测方式,可以检测出正在开发的java代码目前存在的缺陷,将开发环境和测试环境结合起来,帮助开发人员提高自身的代码质量。
[0108]2.允许用户按需求设定不同的缺陷检测模式;
[0109]针对不同的开发环境和代码质量需求,用户可以有针对性的设定不同的缺陷检测模式,效率更高,灵活性更强。
[0110]3.提供检测结果的定位、查询和修改功能;
[0111]缺陷数据库可以按不同的条件进行查询、排序;针对每一条检测结果,双击会自动执行缺陷定位,同时展示缺陷描述、详细描述,用户通过个人的专业判断后可以进行缺陷判断以及缺陷代码记录。
[0112]4.提供将缺陷结果导出成PDF报表功能;
[0113]用户自行设置导出路径、文件名以及其他报表相关信息。导出的报表包括目录、缺陷分布饼图、缺陷数量统计表、详细缺陷报告、缺陷文件。其中饼图详细统计了各类缺陷数目,所占比例,以及每个缺陷的详细内容;表格记录了缺陷的所有信息。
[0114]5.允许用户配置输出路径用来存放缺陷结果数据库;
[0115]结果数据库的存放可以按照用户个人需求来选择目的位置,选择后将存入sys.1ni文件内,保证其有效性。
[0116]另外,本发明的一种基于Eclipse插件的Java源代码缺陷检测方法及其系统,采用在Eclipse平台安装、配置和使用插件方法,可以在java开发生命周期的早期发现代码缺陷,并直观得将详细信息的展示在开发人员面前,提高了软件开发测试的效率。同时,本发明的方法操作简单,依赖于Eclipse平台,直接安装好插件,重新启动Eclipse,即可使用。
[0117]虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
【权利要求】
1.一种基于£¢111)86插件的拓妨源代码缺陷检测方法,其特征在于,所述方法包括: 31、将检测插件置入到£(:111)86平台; 32、在所述检测插件的模式数据库中选择预设的缺陷模式和存储路径; 33、根据所选择的缺陷模式和存储路径,选择所述£(:111)86平台中待测试』文件和/或待测试工程并执行检测; 34、分析并处理检测结果。
2.根据权利要求1所述的基于£411)86插件的拓妨源代码缺陷检测方法,其特征在于,所述步骤33具体包括: 331、选择待测试工程,获取所述待测试工程的路径信息,并将其作为参数传递给缺陷检测线程,所述缺陷检测线程读取所述待测试工程的参数并执行检测; 332,选择待测试扣%文件,获取所述待测试扣%文件的相关路径信息,并将其作为参数传递给所述缺陷检测线程,所述缺陷检测线程读取所述待测试扣%文件的参数并执行检测。
3.根据权利要求2所述的基于£(:111)86插件的拓妨源代码缺陷检测方法,其特征在于,所述待测试工程的参数包括:所述待测试工程的绝对路径、结果数据库存放路径以及缺陷模式的用户配置结果。
4.根据权利要求2所述的基于£(:111)86插件的拓妨源代码缺陷检测方法,其特征在于,所述待测试文件的参数包括:所述待测试文件的绝对路径、结果数据库存放路径以及缺陷模式的用户配置结果。
5.根据权利要求1所述的基于£411)86插件的拓妨源代码缺陷检测方法,其特征在于,所述步骤34包括:将检测结果分类并分别排序,然后对每个检测结果进行判断并保存判断结果。
6.根据权利要求1所述的基于£(:111)86插件的拓妨源代码缺陷检测方法,其特征在于,所述方法还包括: 步骤35,将处理后的检测结果导出并生成报表文件。
7.一种基于£(:111)86插件的拓妨源代码缺陷检测系统,其特征在于,所述系统包括: 插件置入单元,用于将检测插件置入到平台; 参数配置单元,用于在所述检测插件的模式数据库中选择预设的缺陷模式和存储路径; 检测单元,用于根据所选择的缺陷模式和存储路径,选择所述匕11?86平台中的待测试扣%文件和待测试工程并执行检测; 分析单元,用于对检测结果进行分析和处理。
8.根据权利要求7所述的基于£(:111)86插件的拓妨源代码缺陷检测方法及其系统,其特征在于,所述系统还包括: 导出单元,用于将处理后的检测结果导出并生成报表文件。
【文档编号】G06F11/36GK104461864SQ201410610811
【公开日】2015年3月25日 申请日期:2014年11月3日 优先权日:2014年11月3日
【发明者】宫云战, 朱红, 金大海, 黄俊飞, 王雅文, 张大林 申请人:北京邮电大学