概述
Java 工程开发程中开发员验代码风格相缺乏统标准理流程导致整工程代码质量较差难维护需较测试投入周期等问题问题工程组初建需求设计均具完全预期性完备性全新工程中尤突出文结合敏捷开发周期短变化快等特点介绍通开发程中采取系列步骤保证提高整开发团队代码质量阐述步利工具正确实践开发程更加标准化成高质量代码减少测试投入促进整团队技提高终提高开发效率质量
图 1 示敏捷开发程历需求调研例分析例分解进入开发迭代阶段迭代程中采五步骤保证提高整工程代码质量:统编码标准代码样式静态代码分析〔static code review〕单元测试持续集成代码评审重构〔Review & Refactor〕文针步骤工具方法进行详细描述
图 1 敏捷开发中 Java 代码质量保证步骤
步骤:统编码标准代码样式
标准统编码会增加工程代码读性维护性实际情况工程组 Java 代码开发员编码风格常常相验惯者缺乏编码标准方面学造成样工程成员者维护员阅读工程代码时需花费更时间理解代码作者意图制定采取统编码标准显重编码标准应包含方面:
· 般规格式标准例代码缩进程序块标准行代码长度等
· 命名规例包名类名变量方法接口参数等命名标准
· 文档标准例类文件头声明类注释成员变量方法注释等标准
· 编程标准例异常发线程等方面处理方式
· 标准例日志格式属性文件格式返回值消息格式
工程编码标准参考已 Java 编程标准书籍相关资料结合工程身制定供参考书籍 Java 编程风格〔英文书名:The Elements of Java Style〕编码标准形成文档简洁明组织工程成员起学确保成员正确理解条目
旦编码标准确定利 Eclipse 身提供功控制代码样式格式具体做法点击 Eclipse Windows > Preference 菜单项翻开 Preferences 话框左侧栏中找 Java 节点子项 Code Style〔图 2〕该项子项允许您 Java 代码样式进行控制
图 2 Eclipse 代码样式设置窗口
例动格式化工具 Eclipse 提供默认代码格式配置根底建立定义格式 Formatter 面板中点击 New输入新名字选择默认配置作初始化格式图 3 示
图 3 创立新代码格式配置
单击 OK 新翻开窗口中进行修改定制需格式图 4 示
图 4 创立新代码格式配置
修改完成点击 Apply 保存作修改时点击 Export 前格式定义导出成 XML 文件样工程组成员方便通点击图 3 中 Import 钮导入该 XML 文件代码格式定义
样次提交代码版控制效劳器前通 Eclipse 界面里 Source>Format 菜单代码进行格式化整工程代码具相格式样通 Code Style 工程进行设置帮助 Java 代码样式进行控制样式文件导出成 XML 文件编码标准起档供工程成员
步骤二:静态代码分析
完成源代码开发面进行工作审视测试代码通运行测试代码检查功外利静态分析工具快速直接提高代码质量静态代码分析工具需运行代码直接 Java 文件 Class 文件进行分析通检查条件设置快速找代码中错误潜缺陷现静态分析工具 FindBugsPMDIBM Rational Tool等等里选择 FindBugs 作静态代码分析工具FindBugs 日常开发工具 Eclipse 进行集成开发程中方便开始静态代码检查通检查 Class 文件者 JAR 文件字节码组缺陷模式进行发现存代码问题 Eclipse 开发环境中插件安装方式安装 Findbugs Eclipse 配置选项中会出 FindBugs 配置选项工程进行配置选择需 Detector 检查代码
图 5 FindBugs 配置选项
设置规需检查代码文件夹点击右键启动 FindBugs 检查代码工程文件
图 6 运行 FindBugs
检查完毕会出现 FindBugs 视图检查结果根错误分组展示点击结果里面错误会动翻开应代码根规改正错误者说潜错误代码通静态代码检查FindBugs 检查结果 XML 文件文文件便工程集成理检查保存
图 7 FindBugs 检查结果
步骤三:单元测试
单元测试例设计评审
单元测试软件开发程中重质量保证环节环节中设计评审保证整单元测试程完整性效性说十分重设计阶段需具体考虑代码单元进行测试测单元间关系测试策略单元测试例设计等终输出单元测试例设计文档指导具体单元测试执行例设计中通代码单元输入期输出定义保证该单元功正确性边界值测试异常测试非常重时配合测试例功块匹配方法衡量例设计完整性
例设计完成步工作进行测试例评审理解验始终限例评审集体力例设计进入查漏补缺进步保证测试例效性单元测试属白盒测试范畴通代码逻辑结构进行分析设计测试例评审员选择理解代码逻辑结构前提果评审员相关模块够效发现模块相关性赖性带问题
模拟象技术
实际工程中开发员代码需代码模块系统进行交互测试程中需调真实象常常难实例化者象某情况法测试例真实象行法预测真实象行难触发者真实象运行速度慢时候需模拟象技术〔Mock〕利模拟象模拟代码赖真实象帮助完成测试提高测试覆盖率提高代码质量模拟象技术利面接口编程中代码直接接口进行调代码知道引真实象模拟象样利完成代码测试
模拟技术种 jMockEasyMockMockitoPowerMock 等等中 Mockito 消期行需求防止代码量初始化
图 8 Mockito 例
模拟象程中先模拟需调 List 象 LinkedList设定象行调 get(0) 时候返回〞first〞样测试代码利象测试功代码需调返回值时候利模拟象返回值需模拟象进行错误情况模拟保证代码错误处理正确性
测试覆盖率分析
衡量单元测试质量覆盖范围需单元测试代码进行测试覆盖分析常衡量测试覆盖率指标语句覆盖率分支覆盖率路径覆盖率条件覆盖率方法覆盖率等具体采指标根工程实际情况定防止高指标增加代码开发员工作量影响工程整体进度
EMMA 款拟流行开源 Java 测试覆盖率分析工具支持类方法代码行根代码块等种类型测试覆盖率分析支持覆盖率分析结果导出种格式报告采种颜色高亮显示覆盖率状态EclEmma 款基 EMMA Eclipse 插件方便 Eclipse IDE 中进行测试覆盖率分析图 9测试例写右键点击测试类选择 Coverage As > JUnit Test
图 9 运行测试覆盖分析
单元测试跑完Coverage视图中会显示选择测试覆盖率双击翻开某具体类高亮显示覆盖分析结果图 10 示红色代表测试没覆盖该行黄色表示局部覆盖绿色行表示该行次测试中覆盖
图 10 查测试覆盖分析结果
Coverage 视图中通点击鼠标右键测试覆盖分析结果导出成需格式例 HTML
图 11 导出测试覆盖分析结果
图 12 显示导出 report
图 12 测试覆盖分析报告
保证单元测试效性质量规定测试覆盖率限例包类覆盖率必须达 80 值注意单纯追求高覆盖率时注意测试例质量果测试例身写错误测试覆盖率高没意义
步骤四:持续集成
持续集成〔Continuous Integration〕利系列工具方法规做快速构建开发代码动测试化提高开发代码效率质量利动构建工具时提交代码构建出提供测试版户开发员时相功早发现问题错误快测试员户反应
做持续集成利系列工具开发程中重复工作动化搭建动构建效劳器动进行单元测试发布新版集成效劳器提供构建程结果报告动通知开发员构建结果保存历史数IBM Rational Team Concert (RTC) 提供工作务理工程方案安排代码版理控制动构建版生成构建结果报告程构成工程持续集成程中版动构建代码动单元测试持续集成关键程RTC 程提供力支持
动构建
RTC 提供 build engine 负责构建 build首选启动 build engine RTC 效劳器建立连接创立工程 build 定义定义中需设定编译模块代码需跳动 ANT 文件启动编译编译程中参数设定准备编译工程言变成简单事情
通 build 定义点击请求构建触发次构建程选择需构建参数程会台运行开发员做稍许代码改变提交触发新构建程保证代码效性申请新构建程图 13图 14 示
图 13 申请新构建
图 14 构建申请界面
构建结束RTC 效劳器会提供构建结果报告开发员查询次构建详细信息
图 15 构建结果
整开发程中构建版程应该数次通次构建时代码编译情况运行软件版构建定义RTC 支持设置构建方案定时动触发次构建
图 16 构建定义
动单元测试
构建动重点提高代码质量单元测试呢?果天代码版代码已通单元测试样代码质量根保证构建脚动调程中通 ANT 脚加 JUnitEMMAFindBugs ANT 脚调次构建检查工作动进行遍测试测试生成测试结果报告 RTC 提供报告展示利 Hudson 开源工具集成测试报告方便查阅
图 17 动测试报告
步骤五:代码评审重构
代码评审〔Code Review〕 Java 工程开发程中重步骤代码评审帮助发现静态代码分析程中法发现问题例代码编写否符合编码标准代码逻辑者功否存错误代码执行效率性否需改良方代码注释否完整正确代码否存冗余重复代码评审帮助新进入工程组成员快速学解工程促进验分享时保证工程成员良沟通代码评审包括两种形式级评审〔Peer Review〕组评审〔Group Review〕级评审指工程成员间互相评审组评审指通召开评审会议工程成员起工程代码进行评审
提高代码评审效性效率助外部工具拟常代码评审工具 Jupiter Code StrikerJupiter 款开源 Eclipse 插件允许成员评审意见定位真实代码具体行代码评审结果 XML 文件形式保存结果提交版理效劳器进行享图 18 显示 Jupiter 进行代码评审界面
图 18 Jupiter 代码评审界面
代码评审务创立Jupiter 代码评审分成三阶段评审阶段 (Individual Phase)团队评审阶段〔Team Phase〕问题修复阶段〔Rework Phase〕评审阶段评审成员发现代码问题者缺陷记录问题会作记录保存评审表格中团队评审阶段团队全部者局部成员会起评审阶段发现问题进行定性果问题确实存该问题分配某成员解决 Jupiter 中该问题设置成相应状态问题修复阶段团队成员会修复属问题相应记录设置成已解决等正确状态
Codestriker 款基 Web 常代码评审工具代码评审针某具体行针整代码文件评审意见会保存数库中评审员时评代码作者针某具体评回复Codestriker 支持邮件通知版控制效劳器进行集成踪显示文件容改变图 19 显示 Codestriker 界面
图 19 Codestriker 报告界面
实践中代码进行组评审会拟费时根实际情况挑选核心代码进行组评审者工程前期安排较组评审等工程组成员代码评审标准求较理解进行代码评审验提高逐渐减少组评审次数达局部代码进行级评审保证质量
通代码评审发现问题通代码重构时解决掉较涉代码重构工程成员助 Eclipse 重构功完成工程成员写实现相功代码通讨整合成公类者方法拟复杂者拟高层次重构工作例整工程层面代码组织形式改变需整工程组讨完成
结
软件开发没成变万通流程方法希家文启发收益结合您实际工程特点实践步骤方法加完善改良造高效高质量 Java 代码您工程成功奠定坚实根底
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档