PMD使用说明
- 格式:doc
- 大小:648.63 KB
- 文档页数:17
北京昆仑通态自动化软件科技有限公司存盘数据浏览测试工程(通嵌合一)使用说明版本号:5.5(10.0000)修订历史记录目录1.概述 (4)2.工程说明 (4)3.测试要点、 (4)3.1基本属性与显示属性窗口测试 (4)3.2外观设置 (4)3.3时间条件 (4)3.4数值条件 (4)3.5通用属性与特殊属性 (4)3.6存盘数据浏览构件的函数使用方法 (4)4.测试用例 (5)4.1基本属性与显示属性窗口测试 (5)4.1.1 基本属性与显示属性测试 (5)4.1.2 基本属性—通用版本专用 (5)4.2外观设置 (6)4.2.1 外观设置 (6)4.3时间条件 (6)4.3.1 时间条件下的数据 (6)4.4数值条件 (7)4.4.1 数值条件测试 (7)4.5通用属性 (7)4.5.1 Name,Left,Top,Width,Height,Focus,Visible属性 (7)4.5.2 通网版专用-Zorder属性 (7)4.6调用函数方法 (8)4.6.1 公共函数方法调用 (8)4.6.2 嵌入版专用-打印指定的数据PrintContext (8)5.问题列表 (9)5.1存盘数据浏览构件的Focus属性无效 (9)5.2存盘数据浏览构件的高度设置出现非法操作 (9)5.3存盘数据浏览构件的方法SetCellValue不起作用 (9)5.4存盘数据浏览构件的方法获取指定列的宽度GetColWidth不起作用 (9)5.5存盘数据浏览构件的方法设置指定列的宽度SetColWidth (10)输入框测试工程使用说明1.概述2.工程说明本工程组态约定如下:1.通网版专用部分:字体或区域方框线使用紫色,这部分内容属于通网版的测试点.2.嵌入版专用部分:字体或区域方框线使用紫色,这部分内容属于嵌入版的测试点3.测试要点3.1基本属性与显示属性窗口测试主要测试在运行状态下能不能进行时间范围的设置,测试数据输出到关联变量的数据跟随行变化的数据值发生改变而改变,数据的显示格式与组态下的选取的格式结果是否一样;时间列的显示是否与设置的一样。
TaKaRa Code:D103A pMD®18-T Simple Vector目录内 容 Page●制品说明 1●制品内容 1●保 存 1●纯 度 1●用 途 1●pMD®18-T Simple Vector的结构 1 ●实验操作 2■Control DNA片段的克隆实验2■一般DNA片段的克隆实验2●相关说明 3 ●使用注意 4 ●Q&A4●制品说明pMD ®18-T Simple Vector是一种高效克隆PCR产物(TA Cloning)的专用载体。
本载体由pUC18载体改建而成,它消除了pUC18载体上的多克隆酶切位点,再在pUC18载体的多克隆酶切位点处导入了Eco R V酶切位点,使用Eco R V进行酶切反应后,再在两侧的3'端添加“T”而成。
因大部分耐热性DNA聚合酶进行PCR反应时都有在PCR 产物的3'末端添加一个“A”的特性,所以使用本制品可以大大提高PCR产物的连接、克隆效率。
本载体尽管消除了LacZ 基因上的多克隆酶切位点,但不影响β-半乳糖苷酶的正常表达,因此,PCR 产物克隆后仍可以利用α-互补性进行蓝白菌落的筛选,挑选阳性克隆。
由于本载体上消除了多克隆酶切位点,克隆后的PCR 产物将无法使用载体上的限制酶切下,需要在PCR 扩增引物上导入合适的酶切位点。
此时如果使用PCR 扩增引物导入的酶切位点进行DNA 酶切时,酶切反应将不会受到T 载体上其它多克隆酶切位点上的限制酶影响,可以大大提高酶切效率,增加亚克隆成功率。
由于本载体以pUC18载体为基础构建而成,所以它具有同pUC18载体相同的功能。
此外,本制品中的高效连接液Solution I 可以在短时间内(约30分钟)完成连接反应,其连接液可以直接用于细菌转化,大大方便了实验操作。
本制品中的Control Insert(500 bp)还可以用于Control 反应。
●制品内容pMD ®18-T Simple Vector(50 ng/μl) 20 μl×1支 Control Insert(50 ng/μl) 10 μl×1支 Solution I*75 μl×2支** 使用时请于冰中融解。
使用PMD检查代码BugPMD是一种开源分析Java代码错误的工具,他分析Java源代码并找出源代码潜在的Bug,例如发现不需要使用的变量、空的catch块和不需要创建的对象等。
它还包含一个CPD工具可以探测一块代码中相同的部分;PMD是通过规则的方式来进行检查的代码项。
PMD包含16个规则集,涵盖了Java 的各种常见问题。
●基本(rulesets/basic.xml)——规则的一个基本集合:catch不该为空,无论何时重写equals(),都要重写hashCodeI()等。
●命名(rulesets/naming.xml)——对标准的java命名规范的测试:变量名称不应太短;方法名不应过长;类名称应当以小写字母开头;方法和字段名应该以小写字母开头等。
●未使用的代码(rulesets/unusedcode.xml)——查找未使用的私有字段和本地变量、执行到的语句、从未调用的私有方法等。
●设计(rulesets/design.xml):检查各种设计良好的原则,例如switch语句应当有default块,应当避免深度嵌套的if块,不应当给参数重新赋值,不应该对double 值进行相等比较。
●导入语句(rulesets/imports.xml):检查import语句的问题,比如一个类被导入两次或者导入lang包中的类。
●JUnit测试(ruleset/junit.xml):查找测试用例和测试方法的特定问题,例如方法名称的正确拼写,以及suite()方法是不是static和public;●字符串(rulesets/string.xml):找出处理字符串时遇到的常见问题,例如重复的字符串标量,调用String构造函数,对String变量调用toString()方法。
●括号(rulesets/braces.xml):检查for、if、while和else语句是否使用了括号。
●代码尺寸(rulesets/codesize.xml):测试过长的方法、有太多方法的类,以及重构方面的类似问题。
Java静态检测工具的简单介绍- Sonar、Findbugs2010-11-04 13:55:54标签:sonar休闲职场Java静态检测工具的简单介绍 from:/?p=9015静态检查:静态测试包括代码检查、静态结构分析、代码质量度量等。
它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。
代码检查代码检查包括代码走查、桌面检查、代码审查等,主要检查代码和设计的一致性,代码对标准的遵循、可读性,代码的逻辑表达的正确性,代码结构的合理性等方面;可以发现违背程序编写标准的问题,程序中不安全、不明确和模糊的部分,找出程序中不可移植部分、违背程序编程风格的问题,包括变量检查、命名和类型审查、程序逻辑审查、程序语法检查和程序结构检查等内容。
”。
看了一系列的静态代码扫描或者叫静态代码分析工具后,总结对工具的看法:静态代码扫描工具,和编译器的某些功能其实是很相似的,他们也需要词法分析,语法分析,语意分析...但和编译器不一样的是他们可以自定义各种各样的复杂的规则去对代码进行分析。
静态检测工具:1.PMD1)PMD是一个代码检查工具,它用于分析 Java 源代码,找出潜在的问题:1)潜在的bug:空的try/catch/finally/switch语句2)未使用的代码:未使用的局部变量、参数、私有方法等3)可选的代码:String/StringBuffer的滥用4)复杂的表达式:不必须的if语句、可以使用while循环完成的for循环5)重复的代码:拷贝/粘贴代码意味着拷贝/粘贴bugs2)PMD特点:1)与其他分析工具不同的是,PMD通过静态分析获知代码错误。
也就是说,在不运行Java程序的情况下报告错误。
2)PMD附带了许多可以直接使用的规则,利用这些规则可以找出Java源程序的许多问题3)用户还可以自己定义规则,检查Java代码是否符合某些特定的编码规范。
3)同时,PMD已经与JDeveloper、Eclipse、jEdit、JBuilder、BlueJ、CodeGuide、NetBeans、Sun JavaStudio Enterprise/Creator、IntelliJ IDEA、TextPad、Maven、Ant、Gel、JCreator以及Emacs 集成在一起。
TaKaRa Code:D102ApMD®19-T Vector宝生物工程(大连)有限公司目录内 容 Page●制品说明 1●制品内容 1●保 存 1●纯 度 1●用 途 1●pMD®19-T Vector的结构 1 ●实验操作 2■Control DNA片段的克隆实验2■一般DNA片段的克隆实验2●相关说明 3 ●使用注意 4 ●Q&A4●制品说明pMD ®19-T Vector是一种高效克隆PCR产物(TA Cloning)的专用载体。
本载体由pUC19载体改建而成,在pUC19载体的多克隆位点处的Xba I和Sal I识别位点之间插入了Eco R V识别位点,用Eco R V进行酶切反应后,再在两侧的3'端添加“T”而成。
因大部分耐热性DNA聚合酶进行PCR反应时都有在PCR 产物的3'末端添加一个“A”的特性,所以使用本制品可以大大提高PCR产物的连接、克隆效率。
由于本载体以pUC19载体为基础构建而成,所以它具有同pUC19载体相同的功能。
此外,本制品中的高效连接液Solution I 可以在短时间内(约30分钟)完成连接反应,其连接液可以直接用于细菌转化,大大方便了实验操作。
本制品中的Control Insert(500 bp)还可以用于Control 反应。
本载体与pMD ®18-T Vector 相比,本制品的 β-半乳糖苷酶的表达活性更高,菌落显示蓝色的时间缩短,菌落显示的蓝色更深。
因此,克隆后更容易进行克隆体的蓝白筛选。
●制品内容pMD ®19-T Vector(50 ng/μl) 20 μl×1支 Control Insert(50 ng/μl)10 μl×1支 Solution I*75 μl×2支* 使用时请于冰中融解。
●保存: -20℃●纯度■ Control Insert 经克隆后的白色菌落中,有90%以上含有Insert DNA 片段。
PMD安装和使用说明——for CPD 1简介PMD是一个针对Java语言的静态的代码分析器,它检查Java源文件中的潜在问题,也包含一些编码规范的问题。
另外,Eclipse 的 PMD 插件提供了一项叫做 CPD(或复制粘贴探测器)的功能,用于寻找重复的代码。
为在 Eclipse 中使用这项便利的工具,需要安装具有 PMD 的 Eclipse 插件,该插件具有 CPD 功能。
PMD的官方网站:官方的文档/products.html2安装安装PMD的eclipse插件版,最简单的方法是使用远程站点进行安装和更新。
步骤如下:1.打开Eclipse;2.在菜单中选择Help | Software Updates | Find and Install...3.选择“Search for new features to install”(如果是更新而不是新装,则选择“Search for updates of the currently install features”),点击Next;4.点击New Remote Site...;5.输入Nam e和URL,点击OK按钮;Name:PMDURL: /eclipse6." PMD "将出现在Sites to include in search页面中,选中PMD,点击Finish;7.In the Search Results页面,选中PMD,点击Next。
8.选中“I Accept the terms of the license agreements”,点击Next;9.确认安装路径正确,点击Finish;10.等待Eclipse下载需要的jar文件包,点击Install;11.根据提示,选择Yes重启Eclipse。
3CPD使用方法1.选中你的Java项目,右键=>PMD=>子菜单项里有“Find Suspect Cut And Paste”一项,如下图所示:2.点中“Find Suspect Cut And Paste”,出现如下对话框。
PMD简介PMD 的功能PMD (Programming Mistake Detector) 是⼀个开源的静态代码检查⼯具。
静态代码检查就是在不运⾏代码的情况下检查代码中的内容,然后和事先制定的规则进⾏⽐对,指出代码中不符合规则的部分。
PMD ⼯具可以在以下⽅⾯对项⽬的开发过程进⾏帮助:1. 在开发阶段,让开发者通过⾃我检测发现代码中的错误,及时修改2. 在审查阶段,减轻⼈⼯ pull request 审查的⼯作量3. 通过制定规则(或使⽤已有的规则),统⼀项⽬的代码规范,提⾼代码质量4. 新成员可以快速熟悉项⽬的规范,缩短融⼊团队的时间PMD ⽀持多种语⾔,⽐如项⽬本⾝的 Java,Salesforce 相关的 Apex、VisualForce,还有 JavaScript、XML 等。
PMD 对于各种语⾔都预设了⼀套代码规则,也⽀持开发⾃定义规则,可以使⽤ Java 类或者 XPath。
以后的⽂章我们会详细阐述。
PMD 的⼯作原理PMD 将代码转化为抽象语法树(AST,Abstract Syntax Tree)。
抽象语法树是将代码结构通过“树”的形式展现出来,每部分代码(类、变量声明、if-else 语句、变量赋值、数据库查询等)会成为树的各个节点。
在代码转化为语法树后,PMD 中制定的规则会检测树的相应节点,分析其属性或结构,从⽽找出违反规定的部分。
举个例⼦。
下⾯的这段 Apex 代码在转化为语法树之后,其结构是:可以看到,树的根节点就是类的声明,然后⼦节点就是类中的函数,再往下是 if 语句等元素。
PMD 的命令⾏使⽤PMD 可以通过命令⾏来对代码进⾏检测。
⾸先下载 PMD 的发⾏包:解压之后,⽂件夹的结构应该是这样:然后需要我们⾃⼰加⼊规则集⽂件。
规则集⽂件是⼀个 XML ⽂件,其中通过 rule 节点来引⽤已经开发的规则。
详细步骤见。
这⾥是⼀个⽰例,⽂件名叫 rules.xml。
<?xml version="1.0"?><ruleset name="Custom Rules"xmlns="/ruleset/2.0.0"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd"><description>My custom rules</description><!-- Your rules will come here --><rule ref="category/apex/bestpractices.xml"></rule><rule ref="category/apex/codestyle.xml"></rule><rule ref="category/apex/design.xml"></rule><rule ref="category/apex/documentation.xml"></rule><rule ref="category/apex/errorprone.xml"></rule><rule ref="category/apex/performance.xml"></rule><rule ref="category/apex/security.xml"></rule></ruleset>准备⼀个代码⽂件,⽐如叫 testApex.cls,将它和 rules.xml ⽂件放在 PMD 的⽂件夹下。
两个Java代码检查工具PMD---它会对代码中的如下部分进行检查:未使用的本地变量空的catch块未使用参数空if语句重复的import语句未使用的私有方法可能是Singletons的类短/长变量及方法名字安装方法:先下载插件(附件中),安装方法如下:打开Myeclipse->Help->Search for new features to install ->new Archived site ->选择下载的包(附件中有)->安装->重启Myeclipse->完成CheckStyle---检查如下部分:Javadoc注释命名约定标题Import语句体积大小空白修饰符块混合检查(包活一些有用的比如非必须的System.out和printstackTrace)它们的作用不像PMD,Checkstyle能够检查Javadoc注释;但是PMD提供了一项叫作CPD的很有用的功能,它检查代码的拷贝粘贴部分。
我使用 PMD找到的最频繁的错误是未使用的import语句,未使用的私有变量以及意外重复拼写。
Checkstyle 可以发现更多的错误。
包括漏掉的 Javadoc注释,超过80个字符的行、不合约定的变量名、用tab来代替空格等等。
两个工具都允许创建自定义的规则。
如果想在你的组织中使用它们中的一个,Checkstyle似乎更好一些:它检查公司编码约定的大多数项目。
如果增强代码质量是主要目标,那PMD是一个好的选择.安装方法:打开Myeclipse->Help->Search for new features to install ->new Remote site ->输入URL:/update ->安装->重启Myeclipse->完成CheckStyle使用手册介绍CheckStyle是SourceForge下的一个项目,提供了一个帮助JAVA开发人员遵守某些编码规范的工具。
静态分析工具PMD使用说明目录静态分析工具PMD使用说明 (1)目录 (2)1.编写目的 (3)2.PMD简介 (4)3.PMD的安装和运行 (5)3.1安装并从命令行运行PMD................................................ 错误!未定义书签。
3.2在Eclipse中安装PMD插件运行方式 (6)3.3 使用Ant进行调用......................................................... 错误!未定义书签。
4.关于PMD规则 (9)5.编写自定义的PMD规则 (14)6.结束语 (16)7.参考资料 (16)1.编写目的质量是衡量一个软件是否成功的关键要素。
而对于商业软件系统,尤其是企业应用软件系统来说,除了软件运行质量、文档质量以外,代码的质量也是非常重要的。
软件开发进行到编码阶段的时候,最大的风险就在于如何保证代码的易读性和一致性,从而使得软件的维护的代价不会很高。
在软件开发的过程中,以下几种情形随处可见:1) 软件维护时间长,而且维护人员的积极性不高:做过软件维护的开发人员,尤其是在接手不是自己开发产品的源码的时候,即使有良好的文档说明,仍然会对代码中冗长、没有注释的段落“叹为观止”。
理解尚且如此困难,何况要修改或者增加新的功能。
因此,很多开发人员不愿意进行软件维护的工作。
2)新的开发人员融入团队的时间比较长:除了没有良好的培训、文档等有效的机制以外,每个人一套的编码风格,也容易造成新成员对于已有代码的理解不够,甚至出现偏差。
提高代码的质量,除了要提高逻辑上的控制以及业务流程的理解外,代码本身也存在提高的空间,例如一些潜在的问题可以很早的就避免。
类似于编码规范上的内容,如果全靠编码人员进行自行检查,那么无疑需要很大的工作量,如果可以使用代码的静态检查工具进行检查的话,那么将大大的提高编码的效率。
项目组目前代码检查的工作基本上都是通过人工的方式,实行起来比较困难,检查的效果也不是很明显。
PMD正是这样一种工具,可以直接使用它自带的规则(当然也可以使用自己的规则)对Java源程序进行分析找出程序存在的问题,可以很大程度上的减轻代码检查工作的繁琐,为项目组今后的维护和开发工作起到指导的作用。
本文主要介绍了如何使用pmd工具进行代码的自动化检查,以规避一些潜在的问题并找出代码的逻辑错误。
2.PMD简介PMD是一种开源分析Java代码错误的工具。
与其他分析工具不同的是,PMD 通过静态分析获知代码错误。
也就是说,在不运行Java程序的情况下报告错误。
PMD附带了许多可以直接使用的规则,利用这些规则可以找出Java源程序的许多问题,例如:®潜在的bug:空的try/catch/finally/switch语句®未使用的代码:未使用的局部变量、参数、私有方法等® 可选的代码:String/StringBuffer的滥用®复杂的表达式:不必须的if语句、可以使用while循环完成的for循环®重复的代码:拷贝/粘贴代码意味着拷贝/粘贴bugs®循环体创建新对象:尽量不要再for或while循环体内实例化一个新对象@ 资源关闭:Connect,Result,Statement等使用之后确保关闭掉此外,用户还可以自己定义规则,检查Java代码是否符合某些特定的编码规范。
例如,你可以编写一个规则,要求PMD找出所有创建Thread和Socket 对象的操作。
3.工作原理PMD的核心是JavaCC解析器生成器。
PMD结合运用JavaCC和EBNF(扩展巴科斯-诺尔范式,Extended Backus-Naur Formal)语法,再加上JJTree,把Java源代码解析成抽象语法树(AST,Abstract Syntax Tree)。
显然,这句话不那么好懂,且看下文具体说明。
从根本上看,Java源代码只是一些普通的文本。
不过,为了让解析器承认这些普通的文本是合法的Java代码,它们必须符合某种特定的结构要求。
这种结构可以用一种称为EBNF的句法元语言表示,通常称为“语法”(Grammar)。
JavaCC根据语法要求生成解析器,这个解析器就可以用于解析用Java编程语言编写的程序。
不过实际运行中的PMD还要经过JJTree的一次转换。
JJTree是一个JavaCC的插件,通过AST扩充JavaCC生成的解析器。
AST是一个Java符号流之上的语义层。
有了JJTree,语法分析的结果不再是“System, ., out, ., . println”之类的符号序列,而是一个由对象构成的树型层次结构。
例如,下面是一段简单的Java代码以及与之对应的AST。
Java源代码:public class Foo {public void bar() {System.out.println("hello world");}}对应的抽象语法树CompilationUnitTypeDeclarationClassDeclarationUnmodifiedClassDeclarationClassBodyClassBodyDeclarationMethodDeclarationResultTypeMethodDeclaratorFormalParametersBlockBlockStatementStatementStatementEXPressionPrimaryExpressionPrimaryPrefixNamePrimarySuffixArgumentsArgumentListExpressionPrimaryExpressionPrimaryPrefixLiteral4.PMD的安装和运行4.1.在Eclipse中安装PMD插件运行方式安装PMD插件/eclipse/启动Eclipse IDE,打开工程,选择 "Windows"->"Preferences"下的PMD项,其中Rules Configuration 项目可以配置PMD的检查规则,自定义检查规则也可以在此通过Import的方式导入到PMD中配置好后,鼠标右键点击工程中需要检查的JavaSource,选择"PMD"->"Check Code With PMD" ,之后PMD就会通过规则检查你的JavaSource了并且将信息显示在PMD自己的视图上以上代码PMD会检查出:代码中出现System.out.println等警告描述。
PMD 的 CPD:帮助发现代码重复:一旦运行了 CPD,您的 Eclipse 根目录下就会创建出一个 report 文件夹,其中包含一个叫做 cpd.txt 的文件,文件中列示了所有重复的代码。
4.2. 其他方式4.2.1.1. 安装并从命令行运行PMD4.2.1.2. 使用Ant进行调用,PMD就会按照你设定好的规则自动执行代码检查了5.关于PMD规则选择合适的规则运行所有的规则集中的规则会产生非常多的冲突,这些冲突中的很多是不重要的。
在这么多的冲突中寻找你关心的部分结果就没有什么效率可言了。
所以需要从明显的规则集,也就是说必须要改的地方开始是比较好的一个选择,例如只是运行unusedcode检查,然后修改没有使用的局部变量和成员变量。
然后运行基本的检查,修改所有的空语句,例如if语句等。
最后可以执行与设计相关的或者存在一定争议的规则集,或者自定义的规则集。
PMD 自带了很多规则集合,并且分类写入不同的 ruleset 文件,如Basic 包含每人都必须遵守的代码最佳实践,如EmptyCatchBlockBraces 关于条件分支的规则,如IfStmtsMustUseBracesCode Size 关于代码大小的规则,如方法的长度,参数的长度,属性的个数等Clone 克隆实现的规则,如是否有super.clone()Controversial 一些有争议的规则,如UnnecessaryConstructor不必要的构造器Coupling 对象连接有关的规则Design 可以检查有问题的设计,如SwitchStmtsShouldHaveDefaultFinalizers 使用finalizers时需遵循的规则,如FinalizeOnlyCallsSuperFinalizeImport Statements 和import有关的规则,如DuplicateImports重复importJ2EE 唯一规则UseProperClassLoader,class.getClassLoader()可能不正确,用Thread.currentThread().getContextClassLoader() 代替Javabeans 和javabean规范有关的规则,有BeanMembersShouldSerialize 属性必须序列化和MissingSerialVersionUID缺少序列化IDJUnit Tests 和JUnit测试有关的,如JUnitSpelling拼写检查等Logging (Java) 检查Logger的一些错误用法,如MoreThanOneLogger多个LoggerLogging (Jakarta) 使用Jakarta Logger的一些规则,有UseCorrectExceptionLogging异常处理不当和ProperLogger是否正确定义LoggerMigrating JDK 版本移植的规则,如ReplaceVectorWithList用List代替VectorNaming 和命名有关的规则,名称太短或太长,命名的约定等Optimizations 优化性能的一些规则,如LocalVariableCouldBeFinal本地变量如果只赋值一次,则应该声明为finalStrict Exceptions 比较严格的异常处理方针,如AvoidCatchingThrowable Strings 使用String和StringBuffer时应遵守的规则,如StringToStringSun Security 编写安全的代码,有MethodReturnsInternalArray直接返回内部的数组,更安全的做法是返回一个拷贝和ArrayIsStoredDirectlyUnused Code 检查未使用的代码,如UnusedPrivateField未使用的私有属性Java Server Pages 编写jsp的一些方针,如NoLongScriptsJava Server Faces 编写jsf的一些方针,有DontNestJsfInJstlIteration,在Jsf里使用jstl的标签自定义规则:有两个办法来自定义规则,可以编写java类和编写XPath,编写java类的一般步骤是,先确定要查找的代码形式,利用PMD自带的designer.bat工具查看AST(抽象语法树),然后编写规则类(继承net.sourceforge.pmd.AbstractRule),然后编写一个ruleset的XML文件,最后就可以运行PMD进行检查。