当前位置:文档之家› 开发静态测试规范

开发静态测试规范

开发静态测试规范南京大汉网络有限公司2010年1月修订历史记录目录1目的 (3)2范围 (3)3术语 (3)4角色与职责 (3)5入口准则 (4)6输入 (4)7主要活动 (4)1 编码过程 (4)2 开发负责人(或部门经理)检查 (4)3 QA检查 (4)8开发支持流程 (5)1 运行环境规范 (5)2 F IND B UGS配置说明 (5)3 E CLIPSE设置 (8)4 代码检查规范 (9)5 F IND B UGS使用规范 (9)9输出 (10)10出口准则 (10)11引用文档 (10)1目的本文档的目的是为了规范开发人员在开发阶段对代码进行静态测试。

静态测试一方面可以提高开发人员编写代码的质量;另一方面,测试人员藉此可以把更多的精力放在业务逻辑的确认上面,而不是花大量精力去研究一些要在特殊状况下才可能出现的BUG(典型的如Null Pointer Dereference)。

使单元测试消耗工作量更少,也可以提高测试的效率。

2范围本文档所涉及的角色有:开发人员、开发负责人(或部门经理)、QA。

适用于公司所有软件编码过程。

3术语4角色与职责5入口准则编码阶段6输入公司编码规范7主要活动1编码过程当开发人员完成了部分功能模块开发的时候(指代码撰写完成,并已debug通过之后),在Eclipse的problems中没有Error和Warnings的情况下,可运用FindBugs对该模块涉及的JAVA文件进行扫描,通过FindBugs发现一些不易察觉的BUG或者是性能问题。

(具体操作步骤参考8.2FindBugs配置说明)。

2开发负责人(或部门经理)检查在编码进行中或者是编码结束后,由开发负责人(或部门经理)负责对代码质量进行走查,(除FindBugs运行检出的问题外)在检查的过程中出现的其他问题,都将记录在《问题跟踪表》中。

检查方式:可对整个工程或者是单独的代码块进行检查。

由开发负责人(或部门经理)对《问题跟踪表》中的问题进行跟踪。

开发人员对《问题跟踪表》中的问题进行修改。

并且要保证Eclipse—>Problems中没有Errors和Warnings存在,并且FindBugs没有检测出任何隐藏BUG的情况下才能通过。

3QA检查开发负责人(或部门经理)检查完代码后,由QA进行复查,QA将复查出的问题记录在《静态测试检查单》-问题跟踪表中。

QA复查通过后,才能进行产品预演。

测试人员在进行测试之前,需要查看《静态测试检查单》—QA复查单,在QA确认编码阶段已经结束的情况下,才能进行产品预演。

8开发支持流程1运行环境规范2FindBugs配置说明介绍如何使用FindBugs对工程进行检查,FindBugs主要有两种使用方式,一种Eclipse插件的方式;另外一种是单独运行的方式。

(注意:开发人员在编码的过程中可以使用Eclipse插件的方式对单个文件进行检查,但是最终必须要保证在GUI界面单独运行的方式中没有BUG出现,才算通过。

) FindBugs单独运行:1.找到$FindBugs_home\bin\findbugs.bat,双击它,会出现一个GUI界面,在GUI的界面中,操作菜单:文件/新建(如图)【project name】:填入工程名称。

【要分析的类包和目录】:通过“添加”按钮,选择要分析的class文件路径,(注意:只选择要分析的目录,不建议选择class根目录,选择根目录会对所有的class文件进行分析,在分析的过程中会很慢,甚至会有内存溢出的现象。

)【辅助类位置】:该工程所依赖的JAR包所在路径地址。

【源文件目录】:该工程JAVA源文件的路径地址。

(注意:此处为JAVA源文件的根目录,而不是具体到某个包的目录,否则分析结果会找不到源文件进行显示。

)2.以上操作完成后,点击“完成”按钮,FindBugs就开始进行检查了,检查结果如图所示:3.将执行的结果导出为XML文件,方便日后查看。

选择文件->Export filterEclipse插件:1)将edu.umd.cs.findbugs.plugin.eclipse_1.3.9.20090821.zip包解压,放到Eclipse\ plugins目录下。

2)启动Eclipse,点击project->properties,确认FindBugs插件是否已经正确安装,如果已经安装好,便可以看到FindBugs界面,如图:3)安装好以后,就可以使用FindBugs来检查我们的工程。

选择需要检查的工程,右击:工程名->FindBugs-> Fund Bugs,扫描完毕结果如图所示:4)对扫描完毕后的问题进行级别过滤,点击project->properties->FindBugs问题级别优先选择检查规则3Eclipse设置目前我们的产品都是在JDK1.4上面开发的,在从JDK1.4转换到JDK1.6时在Eclipse 中会出现泛型的问题,下面将介绍如何过滤这些问题的检查。

首先,Eclipse->Project->Properties->Java Compiler->Error/Warnings ,将“Generic type”下面的三个选项全部至为“Ignore”。

在看下一个菜单Validation->HTML Syntax,将“Attributes”下面的“Undefined attribute name”和“Undefined attribute value”这两项分别至为“Ignore”即可。

4代码检查规范FindBugs主要有九种检查规则,每一个规则中都有不同的检查条目,由于每个规则所拥有的条目很多,所以只针对每个规则常见的条目进行介绍:【Performance】:性能问题【Correctness】:代码的正确性【Internationalization】:国际化问题【Multithreaded currectness】:线程问题【Bad practice】:不好的习惯【Malicious code vulnerability】:恶意代码【Security】:安全性问题【Experrimental】:实验性问题5FindBugs使用规范介绍在使用的过程中,每个角色如何去分配代码中的BUG。

团队合作检查:对于团队合作的代码,开发人员首先要保证problems中没有Error和Warnings的情况下,使用FindBugs对自己开发的文件进行的检查,并把检查的问题全部修改完成后,提交CVS。

由开发负责人对代码进行复查,复查结果要填写在《静态测试检查单》如果复查有问题,将问题记录在《静态测试检查单》-问题跟踪表中,开发负责人要追踪问题,直到所有问题都被解决。

如果复查没有问题或问题已经修改完毕,开发负责人将检查单提交给QA,由QA对代码进行再次复审,QA检查通过后,才可进行产品预演。

如果预演未通过需要修改,则再次按照以上流程进行。

独立开发检查:定制开发项目(或者产品开发个人独立完成的模块),开发人员首先要保证problems中没有Error和Warnings的情况下,使用FindBugs对自己开发的文件进行的检查,并把检查的问题全部修改完成后,提交CVS。

如果开发负责人是开发人员本身,那么由部门经理对代码进行复查(以此类推),并将复查的结果填写在《静态测试检查单》,如果复查有问题,将问题记录在《静态测试检查单》-问题跟踪表中,部门经理要对问题进行追踪,直到所有问题都被解决。

如果复查没有问题开发静态测试规范南京大汉网络有限公司 第10页/共10页 或问题已经修改完毕,部门经理将检查单提交给QA ,由QA 对代码进行再次复审,QA 检查通过后,才可进行产品预演。

如果预演未通过需要修改,则再次按照以上流程进行。

更新包检查:1) 开发人员,在编码撰写完成之后,并且debug 之后。

problems 中没有Error和Warnings 的情况下,使用FindBugs 对所做的文件进行单独的检查。

将检查完毕的代码提交CVS 。

2) 开发负责人(或部门经理):从CVS 开发库将代码checked 出,并根据开发人员所填写《xxx 版本修改记录》中提供的文件,对单个文件或者是工程进行复查。

开发负责人(或部门经理)将复查的结果填写在《静态测试检查单》,如果复查有问题,将问题记录在《静态测试检查单》-问题跟踪表中开发负责人(或部门经理)要对问题进行追踪,直到所有问题都被解决。

如果复查没有问题或问题已经修改完毕,开发负责人(或部门经理)将检查单提交给QA 。

3) QA 人员,在接到开发负责人(或部门经理)所提供的《静态测试检查单》后,从CVS 将更新包提取出来,覆盖到本地工程目录中,通过Eclipse 将更新包中的JAVA 文件进行编译,并根据《xxx 版本修改记录》中所提供的文件,对编译后的JAVA 文件进行复查。

QA 检查通过后,才可进行产品预演。

如果预演未通过需要修改,则再次按照以上流程进行。

9 输出《静态测试检查单》-问题跟踪表《静态测试检查单-》-开发负责人检查单《静态测试检查单》- QA 复查单10 出口准则由QA 检查确认,满足以下两个条件才可进行产品预演:1) Eclipse-> Problems 中没有Errors 和Warnings 存时。

2) FindBugs 没有检查出任何BUG 。

11 引用文档无。

相关主题