SlideShare a Scribd company logo
1 of 30
Download to read offline
持续集成之代码度量模型与应用
   —— 廖光明(西剑 bruce.liaogm@alipay.com )
廖光明 PMP,CSM
                      支付宝-技术部-质量部 丏家

 IT从业15年,超过10年软件工程领域跟踪、研究和实践;

 目前热衷于Web系统代码质量精细化管控工程探索和一些开源工具的
  整合;

 对软件工程多个热点课题具有独立见解和企业级解决方案成功实施:
     智能需求工程
     测试需求分析可规化方法
     多维度统一配置管理(UCM)
     单元测试及嵌入式测试
     UI 自动化测试框架
     网站性能模型与Benchmark应用
     PBO(Project Based Organization)方案与实施
     软件度量体系
实施和培训的客户有:Motorola、华为、Cisco、eBaoTech、Newegg.com等。
目录

     代码质量管控的挑战


     建立有效的度量模型


     度量模型在持续集成平台中的应用


     发展与挑战


     Q&A
代码质量管控的挑战

       精准

       快速

       协同
代码质量-精细化管控


       • 管什么?

       • 如何控?
目录

     代码质量管控的挑战


     建立有效的度量模型


     度量模型在持续集成平台中的应用


     发展与挑战


     Q&A
模型有效性分析




    与组织
    目标一
     致
模型有效性分析



    有针

    对性

    与组织
    目标一
     致
模型有效性 - 针对性分析



     有针

     对性

     与组织
     目标一
      致
模型有效性分析



       有针

       对性

       与组织
       目标一
        致
  可操

  作性
模型有效性分析



       有针

       对性

       与组织
       目标一
        致
  可操         工具

  作性         支持
模型有效性 - 工具支持




• 工具不能解决你所有的问题!
度量模型
代码质量等
          质量维度                操作分解                 检查方式
  级
                                                CI平台+人工
          简版规范    CheckList 全部符合
                                                Review
         PMD扫描    PMD扫描无1、2级问题                  CI平台
符合度评估
          安全扫描    通过平台扫描                        安全平台
          日志打印    安全觃范CheckList 全部符合            人工Review
                  1.异常情况处理全面严谨                  人工Review

          严谨性     2.Line和Branch覆盖率高于75%         CI平台
                                                CI平台+人工
                  3.TC具有明确的Checkpoint,TC可重复运行
                                                Review
          可扩展性    具有合适领域模型 or 统一扩展配置方式          人工Review
                   1.代码层次结构清晰,无耦合性超长代码(每 CI平台+人工
优秀度评估             个Method的statements<10) Review
          可读性      2.接口注释清晰              人工Review
                  3.内部注释完备                      人工Review
         代码规范性    无PMD二级以下的问题                   CI平台
                  代码重复度<5%                      CI平台
           其他
                  Method代码复杂度<5%                CI平台
注:红色标记维度为必须满足维度
度量模型-工具检测维度




按照优先级和操作性,逐步增加精细化维度
度量模型-人工检测维度
目录

     持续集成的挑战


     建立有效的度量模型


     度量模型在持续集成平台中的应用


     发展与挑战


     Q&A
度量模型-应用策略
                   Code

                   Review


              持续
              集成
                      代码度量模
                            型



• 度量模型:作为代码质量标准,引导团队代码质量意识和方向!
• 持续集成:实时检测代码符合模型中客观质量维度的情况!(客观)
• CR(CodeReview):人工Review及时保证业务一致性!(主观)
宣传组织质量标准,通过CI平台、人工抽查,形成期望的质量氛围和
  PDCA循环!
持续集成平台
Dashboard

   项目质量       系统质量    部门质量    发布质量



服务管理层

       质量策略      代码度量模型      过程觃范



服务层
度量模型应用




1. 主干与分枝评估机制:时机、评估人、质量目标、范围;
2. 不要忘记目的:发现问题,尽快改正。
系统代码质量横向比较




1.服务型系统与应用型系统质量要求区别;
2.新老系统区别;
3.系统月度质量目标是否达成;
4.确定部门改进的系统范围和目标;
系统代码质量纵向比较




• 发现系统质量变化趋势,月度差异
• 分析原因确定单个系统质量改进优先级目标
系统质量纵向比较-维度分布




• 单个系统质量维度变化分布;
• 单个系统质量定期目标是否达成;
模型应用-建立有效执行体系


   组织    管理层

   保障        认同

        流程

        保障
目录

     持续集成的挑战


     建立有效的度量模型


     度量模型在持续集成平台中的应用


     发展与挑战


     Q&A
发展

范围
更科学的度量指标
更多的自劢化
???
发展-Code Review平台


         记录

         跟踪

         右键

         提交
    经验        SVN库
    库         集成
挑战

• 业务压力
• 技术挑战
挑战 - 部署度量



系统依   配置一
            应用部   DB部署   性能基   业务验
赖性检   致性检
            署验证   验证     线验证    证
 测     测
目录

     持续集成的挑战


     建立有效的度量模型


     度量模型在持续集成平台中的应用


     发展与挑战


     Q&A
Q&A



     谢谢聆听!
 支付宝-技术部-质量部
 廖光明 (旺旺:西剑)
 Mail: bruce.liaogm@alipay.com
 MSN: liaogm2002@hotmail.com

More Related Content

Similar to 持续集成之代码度量模型与应用

Top100summit 宗刚-全生命周期性能评估体系的实践
Top100summit 宗刚-全生命周期性能评估体系的实践Top100summit 宗刚-全生命周期性能评估体系的实践
Top100summit 宗刚-全生命周期性能评估体系的实践drewz lin
 
分布式系统测试实践
分布式系统测试实践分布式系统测试实践
分布式系统测试实践drewz lin
 
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)jalamar
 
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)LetAgileFly
 
客服系統的軟體架設計分享
客服系統的軟體架設計分享客服系統的軟體架設計分享
客服系統的軟體架設計分享Johnson Gau
 
先期產品品質規劃 華宇
先期產品品質規劃  華宇先期產品品質規劃  華宇
先期產品品質規劃 華宇營松 林
 
QCon - Engineering Productivity in Large Scale Development
QCon - Engineering Productivity in Large Scale DevelopmentQCon - Engineering Productivity in Large Scale Development
QCon - Engineering Productivity in Large Scale DevelopmentVincent Xia
 
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践 QCon - 支持百度万人开发的工具装备及百度工程效率提升实践
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践 Vincent Xia
 
Web系统性能测试方案浅谈
Web系统性能测试方案浅谈Web系统性能测试方案浅谈
Web系统性能测试方案浅谈beiyu95
 
baidu fuye
baidu fuyebaidu fuye
baidu fuyedachmx
 
百度 fuye
百度 fuye百度 fuye
百度 fuyedachmx
 
软件工程 第八章
软件工程 第八章软件工程 第八章
软件工程 第八章浒 刘
 
打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012Qiao Liang
 
service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012Qiao Liang
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松Michael Zhang
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松areyouok
 
姚彤 从360手机卫士的研发经历看大型移动应用开发
姚彤 从360手机卫士的研发经历看大型移动应用开发姚彤 从360手机卫士的研发经历看大型移动应用开发
姚彤 从360手机卫士的研发经历看大型移动应用开发Trinea Trinea
 
Qfd培训教材 质量机能展开(ppt 51页)
Qfd培训教材 质量机能展开(ppt 51页)Qfd培训教材 质量机能展开(ppt 51页)
Qfd培训教材 质量机能展开(ppt 51页)abarshih
 
QM-054-品質機能展開
QM-054-品質機能展開QM-054-品質機能展開
QM-054-品質機能展開handbook
 

Similar to 持续集成之代码度量模型与应用 (20)

Top100summit 宗刚-全生命周期性能评估体系的实践
Top100summit 宗刚-全生命周期性能评估体系的实践Top100summit 宗刚-全生命周期性能评估体系的实践
Top100summit 宗刚-全生命周期性能评估体系的实践
 
分布式系统测试实践
分布式系统测试实践分布式系统测试实践
分布式系统测试实践
 
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_ 敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
 
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
Scrum gathering 2012 shanghai_敏捷测试与质量管理分会场演讲话题:快速可持续的高质量发布(路宁)
 
客服系統的軟體架設計分享
客服系統的軟體架設計分享客服系統的軟體架設計分享
客服系統的軟體架設計分享
 
Xpp
XppXpp
Xpp
 
先期產品品質規劃 華宇
先期產品品質規劃  華宇先期產品品質規劃  華宇
先期產品品質規劃 華宇
 
QCon - Engineering Productivity in Large Scale Development
QCon - Engineering Productivity in Large Scale DevelopmentQCon - Engineering Productivity in Large Scale Development
QCon - Engineering Productivity in Large Scale Development
 
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践 QCon - 支持百度万人开发的工具装备及百度工程效率提升实践
QCon - 支持百度万人开发的工具装备及百度工程效率提升实践
 
Web系统性能测试方案浅谈
Web系统性能测试方案浅谈Web系统性能测试方案浅谈
Web系统性能测试方案浅谈
 
baidu fuye
baidu fuyebaidu fuye
baidu fuye
 
百度 fuye
百度 fuye百度 fuye
百度 fuye
 
软件工程 第八章
软件工程 第八章软件工程 第八章
软件工程 第八章
 
打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012打造面向服务的敏捷团队 Q con-beijing2012
打造面向服务的敏捷团队 Q con-beijing2012
 
service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012service-oriented agile team-Q con-beijing2012
service-oriented agile team-Q con-beijing2012
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
 
腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松腾讯大讲堂30 运维工具让你的开发运营更轻松
腾讯大讲堂30 运维工具让你的开发运营更轻松
 
姚彤 从360手机卫士的研发经历看大型移动应用开发
姚彤 从360手机卫士的研发经历看大型移动应用开发姚彤 从360手机卫士的研发经历看大型移动应用开发
姚彤 从360手机卫士的研发经历看大型移动应用开发
 
Qfd培训教材 质量机能展开(ppt 51页)
Qfd培训教材 质量机能展开(ppt 51页)Qfd培训教材 质量机能展开(ppt 51页)
Qfd培训教材 质量机能展开(ppt 51页)
 
QM-054-品質機能展開
QM-054-品質機能展開QM-054-品質機能展開
QM-054-品質機能展開
 

More from drewz lin

Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearyWeb security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearydrewz lin
 
Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013drewz lin
 
Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13drewz lin
 
Owasp2013 johannesullrich
Owasp2013 johannesullrichOwasp2013 johannesullrich
Owasp2013 johannesullrichdrewz lin
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2drewz lin
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2drewz lin
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfdrewz lin
 
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equalCsrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equaldrewz lin
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21drewz lin
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansendrewz lin
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaoladrewz lin
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsdrewz lin
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentationdrewz lin
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsdrewz lin
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martindrewz lin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowaspdrewz lin
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usadrewz lin
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013drewz lin
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架drewz lin
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈drewz lin
 

More from drewz lin (20)

Web security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-kearyWeb security-–-everything-we-know-is-wrong-eoin-keary
Web security-–-everything-we-know-is-wrong-eoin-keary
 
Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013Via forensics appsecusa-nov-2013
Via forensics appsecusa-nov-2013
 
Phu appsec13
Phu appsec13Phu appsec13
Phu appsec13
 
Owasp2013 johannesullrich
Owasp2013 johannesullrichOwasp2013 johannesullrich
Owasp2013 johannesullrich
 
Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2Owasp advanced mobile-application-code-review-techniques-v0.2
Owasp advanced mobile-application-code-review-techniques-v0.2
 
I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2I mas appsecusa-nov13-v2
I mas appsecusa-nov13-v2
 
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolfDefeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
Defeating xss-and-xsrf-with-my faces-frameworks-steve-wolf
 
Csrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equalCsrf not-all-defenses-are-created-equal
Csrf not-all-defenses-are-created-equal
 
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
Chuck willis-owaspbwa-beyond-1.0-app secusa-2013-11-21
 
Appsec usa roberthansen
Appsec usa roberthansenAppsec usa roberthansen
Appsec usa roberthansen
 
Appsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaolaAppsec usa2013 js_libinsecurity_stefanodipaola
Appsec usa2013 js_libinsecurity_stefanodipaola
 
Appsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_editsAppsec2013 presentation-dickson final-with_all_final_edits
Appsec2013 presentation-dickson final-with_all_final_edits
 
Appsec2013 presentation
Appsec2013 presentationAppsec2013 presentation
Appsec2013 presentation
 
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitationsAppsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
Appsec 2013-krehel-ondrej-forensic-investigations-of-web-exploitations
 
Appsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martinAppsec2013 assurance tagging-robert martin
Appsec2013 assurance tagging-robert martin
 
Amol scadaowasp
Amol scadaowaspAmol scadaowasp
Amol scadaowasp
 
Agile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usaAgile sdlc-v1.1-owasp-app sec-usa
Agile sdlc-v1.1-owasp-app sec-usa
 
Vulnex app secusa2013
Vulnex app secusa2013Vulnex app secusa2013
Vulnex app secusa2013
 
基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架基于虚拟化技术的分布式软件测试框架
基于虚拟化技术的分布式软件测试框架
 
新浪微博稳定性经验谈
新浪微博稳定性经验谈新浪微博稳定性经验谈
新浪微博稳定性经验谈
 

持续集成之代码度量模型与应用