品质管理品质知识敏捷开发中高质量Java代码开发实践

上传人:蜀歌 文档编号:145608748 上传时间:2020-09-22 格式:PDF 页数:6 大小:1.35MB
返回 下载 相关 举报
品质管理品质知识敏捷开发中高质量Java代码开发实践_第1页
第1页 / 共6页
品质管理品质知识敏捷开发中高质量Java代码开发实践_第2页
第2页 / 共6页
品质管理品质知识敏捷开发中高质量Java代码开发实践_第3页
第3页 / 共6页
品质管理品质知识敏捷开发中高质量Java代码开发实践_第4页
第4页 / 共6页
品质管理品质知识敏捷开发中高质量Java代码开发实践_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《品质管理品质知识敏捷开发中高质量Java代码开发实践》由会员分享,可在线阅读,更多相关《品质管理品质知识敏捷开发中高质量Java代码开发实践(6页珍藏版)》请在金锄头文库上搜索。

1、最新卓越管理方案您 可自由编辑 最新卓越管理方案您 可自由编辑 本文将介绍在敏捷开发过程中如何通过采取一系列的步骤来保证和提高整个项目的代码质 量,阐述了每一步可以利用的工具和最佳实践,从而使开发过程更加规范化,成就高质量的 代码。 概述概述 Java 项目开发过程中,由于开发人员的经验、代码风格各不相同,以及缺乏统一的标准和管 理流程,往往导致整个项目的代码质量较差,难于维护,需要较大的测试投入和周期等问题。 这些问题在一个项目组初建、需求和设计均具有不完全可预期性和完备性的全新项目中将尤 为突出。本文将结合敏捷开发周期短,变化快等特点,介绍如何通过在开发过程中采取一系 列步骤来保证和提高整

2、个开发团队的代码质量, 并阐述了每一步可以利用的工具和最佳实践, 从而使开发过程更加规范化,成就高质量的代码,减少测试的投入,并促进整个团队的技能 提高,最终提高开发效率和质量。 品质管理品质知识敏捷开 发中高质量 Java 代码开发 实践图 1.敏捷开发中的 Java 代码质量保证步骤 品质管理品质知识敏捷开 发中高质量 Java 代码开发 实践图 1.敏捷开发中的 Java 代码质量保证步骤 步骤一:统一编码规范、代码样式步骤一:统一编码规范、代码样式 规范统一的编码会增加项目代码的可读性和可维护性,但实际情况往往是项目组内的 Java 代码开发人员的编码风格常常各不相同,这可能是由于不同

3、的经验习惯或者缺乏编码规范方 面的学习造成的。这样一来,其他项目成员或者维护人员在阅读项目代码时就需要花费更多 的时间来理解代码作者的意图,所以制定并采取统一的编码规范就显得很重要。编码规范主 要应包含以下几个方面: 一般规则和格式规范。例如代码缩进、程序块规范、每行最大代码长度等。 命名规则。例如包名、类名、变量、方法、接口、参数等命名规范 文档规范。例如类文件头声明、类注释、成员变量和方法注释等规范。 编程规范。例如异常、并发、多线程等方面的处理方式。 其他规范。例如日志格式、属性文件格式,返回值和消息格式。 项目的编码规范可以参考已有的一些 Java 编程规范书籍和其他相关资料并结合项目

4、的本身 来制定,可供参考的书籍有Java 编程风格(英文书名为:TheElementsofJavaStyle)。 编码规范要形成文档,而且要简洁明了,并组织项目成员一起学习,确保所有成员正确理解 所有条目。 一旦编码规范确定,就可以利用 Eclipse 自身提供的功能来控制代码样式和格式。具体做法 是,点击 Eclipse 的 Windows-Preference 菜单项,在打开的 Preferences 对话框的左侧栏 中找到 Java 节点下的子项 CodeStyle(如图 2),该项和它的子项允许您对 Java 代码的样 式进行控制。 图 2.Eclipse 代码样式设置窗口 例如,为了

5、使用自动格式化工具,可以在 Eclipse 提供的默认代码格式配置的基础上建立自 定义的格式。在 Formatter 面板中,点击 New,输入新的名字并选择一个默认的配置作为初 始化格式,如图 3 所示。 图 3.创建新的代码格式配置 单击 OK 后就可以在新打开的窗口中进行修改定制自己需要的格式。如图 4 所示。 图 4.创建新的代码格式配置 修改完成后点击 Apply 保存所作修改。同时可以点击 Export 将当前的格式定义导出成一个 XML 文件,这样项目组的其他成员就可以很方便通过点击图 3 中的 Import 按钮来导入该 XML 文件来使用同一个代码格式定义。 这样每次在提交代

6、码到版本控制服务器前就可以通过 Eclipse 界面里的 Source-Format 菜 单来对代码进行格式化, 从而使整个项目的代码具有相同的格式。 同样可以通过对 CodeStyle 下的其他项目进行设置来帮助对 Java 代码的样式进行控制。 将所有这些样式文件导出成 XML 文件后,同编码规范一起归档,供所有项目成员使用。 步骤二:静态代码分析步骤二:静态代码分析 在完成源代码的开发以后,下面要进行的工作就是审视和测试代码。除了通过运行测试代码 来检查功能之外,还能利用一些静态分析工具来快速、直接地提高代码质量。静态代码分析 工具并不需要运行代码,可以直接对 Java 文件和 Clas

7、s 文件进行分析,通过一些检查条件 的设置,快速找到代码中的错误和潜在缺陷。现在的静态分析工具很多,有 FindBugs、PMD、 IBMRationalTool,等等。在这里,选择 FindBugs 作为静态代码分析工具。FindBugs 可以和 日常开发工具 Eclipse 进行集成,在开发过程中,就可以方便的开始静态代码的检查。通过 检查 Class 文件或者 JAR 文件,将字节码和一组缺陷模式进行对比,来发现可能存在的代码 问题。在 Eclipse 的开发环境中,用插件安装的方式安装了 Findbugs 后,在 Eclipse 的配 置选项中就会多出来 FindBugs 的配置选项。

8、可以对自己的项目进行配置,选择需要的 Detector 检查代码。 图 5.FindBugs 的配置选项 设置好自己的规则后,在需要检查的代码文件夹上点击右键,就可以启动 FindBugs 检查。 代码可以是一个项目,也可以只是几个文件。 图 6.运行 FindBugs 检查完毕后,会出现 FindBugs 视图,把所有检查的结果根据错误分组展示。点击结果里面 的每一个错误,会自动打开对应的代码。当根据规则改正了所有的错误,或者说潜在错误, 这些代码也就通过了静态代码检查。FindBugs 的检查结果可以是 XML 文件,也可以是文本文 件,便于项目的集成管理和检查保存。 图 7.FindBu

9、gs 检查结果 步骤三:单元测试步骤三:单元测试 单元测试用例设计和评审单元测试用例设计和评审 单元测试是软件开发过程中重要的质量保证环节,在此环节中,设计和评审对于保证整个单 元测试过程的完整性和有效性来说十分重要。设计阶段需要具体考虑要对哪些代码单元进行 测试,被测单元之间的关系,测试策略,以及单元测试用例设计等,并最终输出单元测试 用例设计文档,用来指导具体的单元测试执行。在用例设计中,通过对代码单元输入和期 待输出的定义来保证该单元的功能正确性,边界值的测试和异常测试非常重要。同时也配合 测试用例和功能块的匹配方法来衡量用例设计的完整性。 在用例设计完成之后,下一步的工作就是进行测试用

10、例的评审。个人的理解和经验始终是有 限的,用例评审可以借集体之力,对用例设计进入查漏补缺,进一步保证测试用例的有效性。 由于单元测试属于白盒测试范畴,它主要通过对代码的逻辑结构进行分析来设计测试用例, 因此,评审员的选择最好以理解代码逻辑结构为前提,如果评审员来自相关模块,还能够有 效的发现模块相关性和依赖性所带来的问题。 模拟对象技术模拟对象技术 在实际项目中,开发人员自己的代码往往需要和其他的代码模块或系统进行交互,但在测试 的过程中,这些需要被调用的真实对象常常很难被实例化,或者这些对象在某些情况下无法 被用来测试,例如,真实对象的行为无法预测,真实对象的行为难以触发,或者真实对象的 运

11、行速度很慢。这时候,就需要使用模拟对象技术(Mock),利用一个模拟对象来模拟我们 的代码所依赖的真实对象,来帮助完成测试,提高测试覆盖率,从而提高代码质量。模拟对 象技术利用了在面向接口的编程中,由于代码直接对接口进行调用,所以代码并不知道引用 的是真实对象还是模拟对象,这样就可以顺利的完成对代码的测试。 模拟技术有很多种,如 jMock,EasyMock,Mockito,PowerMock 等等。其中 Mockito 消除了 对期望行为的需求,避免了这些代码的大量初始化。 图 8.Mockito 示例 在模拟对象过程中,先模拟一个需要调用的 List 对象 LinkedList,再设定这个

12、对象的行为, 当调用 get(0)的时候,返回”first”。这样,测试代码就可以利用这个对象来测试我们的 功能代码,需要调用和返回值的时候,可以顺利的得到模拟对象的返回值。也需要对模拟对 象进行错误情况的模拟,保证代码对错误的处理的正确性。 测试覆盖率分析测试覆盖率分析 为了衡量单元测试的质量和覆盖的范围,需要对单元测试的代码进行测试覆盖分析。常用的 衡量测试覆盖率的指标主要有语句覆盖率、分支覆盖率、路径覆盖率、条件覆盖率和方法覆 盖率等。具体采用哪些指标可以根据项目的实际情况来定,以避免因过高的指标增加了代码 开发人员的工作量而影响了项目整体的进度。 EMMA 是一款比较流行的开源 Jav

13、a 测试覆盖率分析工具,支持类、方法、代码行、基本代码 块等多种类型的测试覆盖率分析,支持将覆盖率分析结果导出为多种格式的报告,并采用多 种颜色来高亮显示不同的覆盖率状态。EclEmma 是一款基于 EMMA 的 Eclipse 插件,方便在 EclipseIDE 中进行测试覆盖率分析。如图 9,在测试用例写好后,可以在右键点击测试类, 选择 CoverageAs-JUnitTest. 图 9.运行测试覆盖分析 单元测试跑完后, Coverage 视图中会显示所选择的测试的覆盖率。 双击打开某一具体的类后, 可以看到高亮显示的覆盖分析结果,如图 10 所示。红色代表测试没有覆盖到该行,黄色表

14、示部分覆盖,绿色的行表示该行在本次测试中被覆盖到。 图 10.查看测试覆盖分析结果 在 Coverage 视图中可以通过点击鼠标右键将测试覆盖分析的结果导出成需要的格式,例如 HTML。 图 11.导出测试覆盖分析结果 图 12 显示了导出的 report。 图 12.测试覆盖分析报告 为了保证单元测试的有效性和质量,可以规定一个测试覆盖率的下限,例如所有的包和类的 覆盖率必须达到 80%以上。不过值得注意的是,不要单纯追求高覆盖率,要同时注意测试用 例的质量,如果测试用例本身就写的有错误,那么即使测试覆盖率很高也没有意义。 步骤四:持续集成步骤四:持续集成 持续集成(ContinuousIn

15、tegration)是利用一系列的工具,方法和规则,做到快速的构建 开发代码,自动的测试化,来提高开发代码的效率和质量。利用自动构建工具,随时都能把 提交的代码构建出来,提供一个可以测试使用的版本,让用户和开发人员同时看到相同的功 能,尽早的发现问题和错误,也可以尽快的得到测试人员和用户的反馈。 要做到持续集成,就要利用一系列工具,把开发过程中的重复工作自动化。搭建自动的构建 服务器,自动的进行单元测试和发布新版本,一个集成的服务器可以提供构建过程的结果报 告,自动通知开发人员构建结果,并且保存历史数据。IBMRationalTeamConcert(RTC)可以 提供工作任务的管理,项目计划的

16、安排,代码版本管理控制,自动构建可用版本,生成构建 结果报告。这些过程构成了项目的持续集成过程,其中,版本的自动构建和代码的自动单元 测试是持续集成的关键过程,RTC 在这些过程上提供了有力的支持。 自动构建自动构建 RTC 提供了 buildengine 来负责构建 build,首选,启动 buildengine,并和 RTC 服务器建立 了连接。再创建项目的 build 定义。在这个定义中,需要设定编译哪些模块的代码,需要跳 动哪个 ANT 文件来启动编译,和一些编译过程中的参数的设定。当这些都准备好了,编译对 于项目而言,就变成一个简单的事情。 可以看到,通过在 build 定义上,点击请求构建,就可以触发一次构建过程。选择需要的构 建参数,这个过程就会在后台运行。每一个开发人员,做了稍许的代码改变和提交,都可以 触发新的构建过程,来保证我们代码的有效性。申请一个新的构建的过程如图 13、图 14 所 示。 图 13.申请一个新的构建 图 14.构建申请界面 当构建结束后。RTC 服务器会提供构建结果报告。开发人员可以查询到这次构建的详细信息。 图 15.构建结果 整个开

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号