[china merge world tour] coverity development testing

24
1 Coverity Development Testing 记明 北京奥索 20136Logo area

Upload: perforce

Post on 07-Jul-2015

125 views

Category:

Business


2 download

DESCRIPTION

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

TRANSCRIPT

Page 1: [China   merge world tour] Coverity Development Testing

1

Coverity Development Testing

刘记明

北京奥索

2013年6月

Logo area

Page 2: [China   merge world tour] Coverity Development Testing

2

Coverity Development Testing

通过持续集成和开发测试,快速降低风险

Page 3: [China   merge world tour] Coverity Development Testing

3

“这是一个由软件主宰的世界”

软件

- Marc Andreessen

Health

Financial

Communications

SCM / Logistics

Enterprise

Mobile

81%的业务领导人物科技是企业经营模

式的关键要素

到2012年底, 工作场所将会使用超过6千万平板电脑和1亿7千5百万台智能手

到2016年,全球2千家企业中的99%会在任务关键应用中选用开源软件

Automotive

Page 4: [China   merge world tour] Coverity Development Testing

4

Toyota:软件导致普锐斯刹车问

纳斯达克高管抱怨软件致使Facebook 上线延迟

Knight 软件故障耗资4亿4千万美元

Page 5: [China   merge world tour] Coverity Development Testing

5

Coverity的价值

开发通过以下方式促进软件软件开发行业转型:

降低运营成本

加快开发和投放市场时间

保护品牌免受灾难性故障损害

Page 6: [China   merge world tour] Coverity Development Testing

6

为何风险重重?

软件发展的速度和复杂程度远远超出了原有测试方法的能力范围

开发测试 软件复杂性

投放市场时间

测试方法 安全测试

功能测试

性能测试

手动测试

Page 7: [China   merge world tour] Coverity Development Testing

7

很少在开发阶段发生缺陷漏报

设计 开发 质量和安全保证 部署

我们的任务和目标:

在左侧两个阶段完成安全和质量测试

5倍成本 10倍成本 30倍成本

Page 8: [China   merge world tour] Coverity Development Testing

8

转型成熟度模型

Level 1 自动检测缺陷

在软件构建流程中

检测关键质量和安

全缺陷 不会引入新缺陷

Level 3 优化开发者工作流

利用常见缺陷工作

流,整合入现有工

作流并测试效力

Level 4 代码管理

建立并执行一致的

源代码质量和安全

政策 建立源代码验收标

Complete 企业代码保证

如果引入新的缺陷,所有旧代码被清除,

构建失败 所有受变更影响的

代码和关键代码都

经过测试

同S

DL

C整合

开发测试采用 高

Level 2 识别残余风险

识别由于不充分自

动测试所导致的风

险区域 确保关键代码经过

测试并且按优先级

排序

Page 9: [China   merge world tour] Coverity Development Testing

9

Coverity Static Analysis 原理

模拟多个编辑器行为

同现有创建系统集成

静态测试所有 执行路径

找出缺陷和不一致的编码模式

分析 构建

找出缺陷位置和根本原因

在整个团队中共享和管理缺陷分类

展示 & 管理

Page 10: [China   merge world tour] Coverity Development Testing

10

真实、重要的结果 关注发现真实缺陷而不是风格违规或其他表面问题。

拥有超过12年的开源代码和商业代码分析经验

行业领先的 低误报率/漏报率 误报率明显低于 15%

误报浪费时间、阻碍采用、降低结果可信度

最广泛的检查库+ 最深厚的算法 在大代码库实现深度、广度、可扩展性三者之间的最优平衡

高质量成果

Page 11: [China   merge world tour] Coverity Development Testing

11

找出关键缺陷

• Tomcat Webserver 5.5.17

• 用于web应用的开源服务器

• 在成千上百的缺陷当中, 我们发现了可能导致整个服务器死锁的 “reverse lock bug”

• 小概率事件-传统测试很难发现

Page 12: [China   merge world tour] Coverity Development Testing

12

单元测试有效性

High Risk Code

高风险 代码

Page 13: [China   merge world tour] Coverity Development Testing

13

降低风险

13

在我们的关键代码中,所有行为被

修改的组件必须100%经过测试

(除去错误-处理)

自定义测试政

Test Advisor 评

估测试政策

开发者获得可

行工作项目

现有 Coverity 静态分析引

擎 +

我们构建的新工具

一致UI

Page 14: [China   merge world tour] Coverity Development Testing

14

降低风险架构

测试建议

解决由于不充分测试所导致的风险问题

测试策略评估 • 关键代码分析 • 变更影响分析 • 测试执行分析

测试监测 代码所有权和变更

历史 静态代码分析

定制

测试策略

Page 15: [China   merge world tour] Coverity Development Testing

15

将质量纳入整个开发内循环

代码

构建

测试 逐日构建 持续集成

发现并修复质量缺陷

Page 16: [China   merge world tour] Coverity Development Testing

16

工作流

16

• 安全审计 • 产品发布管理

(此处仅用于展示– 还可能有其它工作流)

QA

每日/持续构建 • 桌面分析 • 检查缺陷 • 动作优先排序 • 进行修复 • 跟踪进程

代码检入

静态分析测试

• 功能测试 • 性能测试 • 压力测试 • 集成测试

开发 产品发布& 管理

静态分析测试

Page 17: [China   merge world tour] Coverity Development Testing

17

Issue Responsibility Is Critical

17

Page 18: [China   merge world tour] Coverity Development Testing

18

成功的关键要素

18

代码

构建

测试 每日构建 持续集成

高保真编译

高性能分析

低误报率

侦测关键缺陷

简单缺陷导航,

便于理解

综合分类与修复

管理可视性和管

团队合作

Page 19: [China   merge world tour] Coverity Development Testing

19

成功的关键要素

19

代码

构建

测试 每日构建 持续集成

高保真编译

高性能分析

低误报率

侦测关键缺陷

简单缺陷导航,

便于理解

综合分类与修复

管理可视性和管

团队合作

开发者采用

工作流集成

管理监督

Page 20: [China   merge world tour] Coverity Development Testing

20

按指标管控

每天进行

自动高保真分析

20

快速将结果分类,以便对

问题进行分类和优先级排

序 精确数据

根据综合数据分析,制

定精确行动 可靠数据

Page 21: [China   merge world tour] Coverity Development Testing

21

机构 ‘热图’

Confidential: For Coverity and Partner use only. Copyright Coverity, Inc., 2013 21

Page 22: [China   merge world tour] Coverity Development Testing

22

转型成熟度模型

Level 1 自动检测缺陷

在软件构建流程中

检测关键质量和安

全缺陷 不会引入新缺陷

Level 3 优化开发者工作流

利用常见缺陷工作

流,整合入现有工

作流并测试效力

Level 4 代码管理

建立并执行一致的

源代码质量和安全

政策 建立源代码验收标

Complete 企业代码保证

如果引入新的缺陷,所有旧代码被清除,

构建失败 所有受变更影响的

代码和关键代码都

经过测试

同S

DL

C整合

开发测试采用 高

Level 2 识别残余风险

识别由于不充分自

动测试所导致的风

险区域 确保关键代码经过

测试并且按优先级

排序

Page 23: [China   merge world tour] Coverity Development Testing

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.

Page 24: [China   merge world tour] Coverity Development Testing

24

经证实运营成本显著降低

实现在案和离岸代码管理度量可视化

能够找出由于崩溃或突发行为所导致的缺陷

强化了应用生命周期管理流程

Coverity 总结