敏捷开发-jenkins持续构建

shaogaige 贡献于2016-10-06

作者 李辰  创建于2016-03-24 02:03:00   修改者李辰  修改于2016-03-24 03:43:00字数1530

文档摘要:Jenkins的解决方案代码风格各异,通过统一checkstyle样式来检查常出现空指针类似的基础bug,可以通过findbugs静态检查多余if或者trycatch,可以通过pmd检查单元测试用例测试功能结果,可以通过junit报告检查大量重复代码,可以通过duplicatecode报告来检查测试用例覆盖度,能够通过clover来检查基础功能,可以通过selenium自动化测试性能测试,可以通过jmeter来完成Jenkins是基于Java开发的一种持续集成工具,用于监控秩序重复的工作,它能够集成这些插件,做到统一管理,解决项目问题。
关键词:

Jenkins的解决方案 1) 代码风格各异,通过统一checkstyle样式来检查 2) 常出现空指针类似的基础bug,可以通过findbugs静态检查 3) 多余if或者try catch,可以通过pmd检查 4) 单元测试用例测试功能结果,可以通过junit报告检查 5) 大量重复代码,可以通过duplicate code报告来检查 6) 测试用例覆盖度,能够通过clover来检查 7) 基础功能,可以通过selenium自动化测试 8) 性能测试,可以通过jmeter来完成 Jenkins是基于Java开发的一种持续集成工具,用于监控秩序重复的工作,它能够集成这些插件,做到统一管理,解决项目问题。 主要包括: 1、持续的软件版本发布/测试项目。  2、监控外部调用执行的工作。  Jenkins能够集成各式插件,如常用CI插件:deploy,junit,findbugs,pmd,checkstyle,clover, duplicate code,jmeter,selenium等, 项目中重点关注指标: 1. Comment rate(工具sourceMonitor) 原理:指示注释行(包括/*……*/和//……形式的注释)占总行数的比例。 指标要求:30%以上。 (注:重要的,复杂的,容易误解的代码,不要吝惜注释,注释不要一行行重复代码,而是 解释你的意图。不重要的,不复杂的,简单明了看方法名字就知道干什么的代码,不需要注释) 2. Findbugs(Jenkins支持,CI:findbugs) 原理:Findbugs ( findbugs.hpi ) 可以进行代码走查的自动化,能够提示垃圾代码或者提供代码优化的建议,寻找代码缺陷。 指标要求:都需要清零。 如a.未关闭的数据库连接; b.缺少必要的null check; c.多余的null check; d.多余的if后置条件; e.相同的条件分支; f.重复的代码块; g.错误的使用了“==”; h.建议使用stringbuffer代替字符串连加等等。 3. pmd(Jenkins支持,CI:pmd) 原理:通过静态分析获知代码错误,可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等等。 指标要求:高级别的需要清零,需要我们这边自定义级别。 4. duplicate rate(Jenkins支持,CI:duplicate code) 原理:通过静态分析获知代码错误,可以做到检查Java代码中是否含有未使用的变量、是否含有空的抓取块、是否含有不必要的对象等等。 指标要求:10%以内。 5. sourceMonitor(工具sourceMonitor) 原理:圈复杂度指示一个函数可执行路径的数目。函数深度指示函数中分支嵌套的层数。 指标要求:最高圈复杂度20,平均圈复杂度5。 以下语句为圈复杂度的值贡献1: a. if/else/for/while语句 b. 三元运算符语句 c. if/for/while判断条件中的"&&"或“||” d. switch语句 e. 后接break/goto/ return/throw/continue语句的case语句 f. catch/except语句等等。 6. junit(Jenkins支持,CI:junit) 原理:开发人员自己写好单元测试用例,jenkins定时/手动驱动执行。 指标要求:错误清零。 7. LLT(Jenkins支持,CI:clover) 原理:可以检查测试用例覆盖度。 指标要求:50%以上,增量版本100%,未覆盖到需要检查原因。 8. QDI(工具infushion) 原理:对整个系统的一个评估,检查系统的架构、设计模式,对后期代码重构具有重要指导意义。 指标要求:120以内。 详细内容参照《inFusion错误类型分析.docx》

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档