[China merge world tour] Coverity Development Testing

442 views

Published on

Presentation from Coverity at the China Merge World Tour - Coverity Development Testing

Published in: Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
442
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

[China merge world tour] Coverity Development Testing

  1. 1. 1 Coverity Development Testing 刘记明 北京奥索 2013年6月 Logo area
  2. 2. 2 Coverity Development Testing 通过持续集成和开发测试,快速降低风险
  3. 3. 3 “这是一个由软件主宰的世界” 软件 - Marc Andreessen Health Financial Communications SCM / Logistics Enterprise Mobile 81%的业务领导人物科技是企业经营模 式的关键要素 到2012年底, 工作场所将会使用超过6 千万平板电脑和1亿7千5百万台智能手 机 到2016年,全球2千家企业中的99%会 在任务关键应用中选用开源软件 Automotive
  4. 4. 4 Toyota:软件导致普锐斯刹车问 题 纳斯达克高管抱怨软件致使Facebook 上线延迟 Knight 软件故障耗资4亿4千万美元
  5. 5. 5 Coverity的价值 开发通过以下方式促进软件软件开发行业转型: 降低运营成本 加快开发和投放市场时间 保护品牌免受灾难性故障损害
  6. 6. 6 为何风险重重? 软件发展的速度和复杂程度远远超出了原有测试方法的能力范围 开发测试 软件复杂性 投放市场时间 测试方法安全测试 功能测试 性能测试 手动测试
  7. 7. 7 很少在开发阶段发生缺陷漏报 设计 开发 质量和安全保证 部署 我们的任务和目标: 在左侧两个阶段完成安全和质量测试 5倍成本 10倍成本 30倍成本
  8. 8. 8 转型成熟度模型 Level 1 自动检测缺陷 在软件构建流程中 检测关键质量和安 全缺陷 不会引入新缺陷 Level 3 优化开发者工作流 利用常见缺陷工作 流,整合入现有工 作流并测试效力 Level 4 代码管理 建立并执行一致的 源代码质量和安全 政策 建立源代码验收标 准 Complete 企业代码保证 如果引入新的缺陷, 所有旧代码被清除, 构建失败 所有受变更影响的 代码和关键代码都 经过测试 同SDLC整合高 开发测试采用 高 Level 2 识别残余风险 识别由于不充分自 动测试所导致的风 险区域 确保关键代码经过 测试并且按优先级 排序
  9. 9. 9 Coverity Static Analysis 原理 模拟多个编辑器 行为 同现有创建系统 集成 静态测试所有 执行路径 找出缺陷和不一 致的编码模式 分析构建 找出缺陷位置和 根本原因 在整个团队中共 享和管理缺陷分 类 展示 & 管理
  10. 10. 10 真实、重要的结果 关注发现真实缺陷而不是风格违规或其他表面问题。 拥有超过12年的开源代码和商业代码分析经验 行业领先的 低误报率/漏报率 误报率明显低于 15% 误报浪费时间、阻碍采用、降低结果可信度 最广泛的检查库+ 最深厚的算法 在大代码库实现深度、广度、可扩展性三者之间的最优平衡 高质量成果
  11. 11. 11 找出关键缺陷 • Tomcat Webserver 5.5.17 • 用于web应用的开源服务器 • 在成千上百的缺陷当中, 我们发现了可能导致整个服务器死锁的 “reverse lock bug” • 小概率事件-传统测试很难发现
  12. 12. 12 单元测试有效性 High Risk Code 高风险 代码
  13. 13. 13 降低风险 13 在我们的关键代码中,所有行为被 修改的组件必须100%经过测试 (除去错误-处理) 自定义测试政 策 Test Advisor 评 估测试政策 开发者获得可 行工作项目 现有 Coverity 静态分析引 擎 + 我们构建的新工具 一致UI
  14. 14. 14 降低风险架构 测试建议 解决由于不充分测试所导致的风险问题 测试策略评估 • 关键代码分析 • 变更影响分析 • 测试执行分析 测试监测 代码所有权和变更 历史 静态代码分析 定制 测试策略
  15. 15. 15 将质量纳入整个开发内循环 代码 构建 测试 逐日构建 持续集成 发现并修复质量缺陷
  16. 16. 16 工作流 16 • 安全审计 • 产品发布管理 (此处仅用于展示– 还可能有其它工作流) QA 每日/持续构建• 桌面分析 • 检查缺陷 • 动作优先排序 • 进行修复 • 跟踪进程 代码检入 静态分析测试 • 功能测试 • 性能测试 • 压力测试 • 集成测试 开发 产品发布& 管理 静态分析测试
  17. 17. 17 Issue Responsibility Is Critical 1
  18. 18. 18 成功的关键要素 18 代码 构建 测试 每日构建 持续集成 高保真编译 高性能分析 低误报率 侦测关键缺陷 简单缺陷导航, 便于理解 综合分类与修复 管理可视性和管 控 团队合作
  19. 19. 19 成功的关键要素 19 代码 构建 测试 每日构建 持续集成 高保真编译 高性能分析 低误报率 侦测关键缺陷 简单缺陷导航, 便于理解 综合分类与修复 管理可视性和管 控 团队合作 开发者采用 工作流 集成 管理监督
  20. 20. 20 按指标管控 每天进行 自动高保真分析 20 快速将结果分类,以便对 问题进行分类和优先级排 序精确数据 根据综合数据分析,制 定精确行动 可靠数据
  21. 21. 21 机构 ‘热图’ Confidential: For Coverity and Partner use only. Copyright Coverity, Inc., 201321
  22. 22. 22 转型成熟度模型 Level 1 自动检测缺陷 在软件构建流程中 检测关键质量和安 全缺陷 不会引入新缺陷 Level 3 优化开发者工作流 利用常见缺陷工作 流,整合入现有工 作流并测试效力 Level 4 代码管理 建立并执行一致的 源代码质量和安全 政策 建立源代码验收标 准 Complete 企业代码保证 如果引入新的缺陷, 所有旧代码被清除, 构建失败 所有受变更影响的 代码和关键代码都 经过测试 同SDLC整合高 开发测试采用 高 Level 2 识别残余风险 识别由于不充分自 动测试所导致的风 险区域 确保关键代码经过 测试并且按优先级 排序
  23. 23. 23 Coverity Development Testing Platform Security Advisor Test Advisor Analysis Packs Coverity SAVE™ Static Analysis Verification Engine SDLC Integrations Policy Manager Quality Advisor Architecture Analysis Dynamic Analysis FindBugs™ Analysis Analysis Integration Toolkit Coverity Connect Test Execution Third Party Metrics Build/ Continuous Integration HP ALM IDE Code Coverage Defect Tracking SCM Confidential: For Coverity and Partner use only. Copyright 2012 Coverity, Inc.
  24. 24. 24  经证实运营成本显著降低  实现在案和离岸代码管理度量可视化  能够找出由于崩溃或突发行为所导致的缺陷  强化了应用生命周期管理流程 Coverity 总结

×