[china merge world tour] coverity development testing

Post on 07-Jul-2015

125 Views

Category:

Business

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

1

Coverity Development Testing

刘记明

北京奥索

2013年6月

Logo area

2

Coverity Development Testing

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

3

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

软件

- Marc Andreessen

Health

Financial

Communications

SCM / Logistics

Enterprise

Mobile

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

式的关键要素

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

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

Automotive

4

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

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

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

5

Coverity的价值

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

降低运营成本

加快开发和投放市场时间

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

6

为何风险重重?

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

开发测试 软件复杂性

投放市场时间

测试方法 安全测试

功能测试

性能测试

手动测试

7

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

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

我们的任务和目标:

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

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

8

转型成熟度模型

Level 1 自动检测缺陷

在软件构建流程中

检测关键质量和安

全缺陷 不会引入新缺陷

Level 3 优化开发者工作流

利用常见缺陷工作

流,整合入现有工

作流并测试效力

Level 4 代码管理

建立并执行一致的

源代码质量和安全

政策 建立源代码验收标

Complete 企业代码保证

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

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

代码和关键代码都

经过测试

同S

DL

C整合

开发测试采用 高

Level 2 识别残余风险

识别由于不充分自

动测试所导致的风

险区域 确保关键代码经过

测试并且按优先级

排序

9

Coverity Static Analysis 原理

模拟多个编辑器行为

同现有创建系统集成

静态测试所有 执行路径

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

分析 构建

找出缺陷位置和根本原因

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

展示 & 管理

10

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

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

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

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

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

高质量成果

11

找出关键缺陷

• Tomcat Webserver 5.5.17

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

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

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

12

单元测试有效性

High Risk Code

高风险 代码

13

降低风险

13

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

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

(除去错误-处理)

自定义测试政

Test Advisor 评

估测试政策

开发者获得可

行工作项目

现有 Coverity 静态分析引

擎 +

我们构建的新工具

一致UI

14

降低风险架构

测试建议

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

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

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

历史 静态代码分析

定制

测试策略

15

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

代码

构建

测试 逐日构建 持续集成

发现并修复质量缺陷

16

工作流

16

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

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

QA

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

代码检入

静态分析测试

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

开发 产品发布& 管理

静态分析测试

17

Issue Responsibility Is Critical

17

18

成功的关键要素

18

代码

构建

测试 每日构建 持续集成

高保真编译

高性能分析

低误报率

侦测关键缺陷

简单缺陷导航,

便于理解

综合分类与修复

管理可视性和管

团队合作

19

成功的关键要素

19

代码

构建

测试 每日构建 持续集成

高保真编译

高性能分析

低误报率

侦测关键缺陷

简单缺陷导航,

便于理解

综合分类与修复

管理可视性和管

团队合作

开发者采用

工作流集成

管理监督

20

按指标管控

每天进行

自动高保真分析

20

快速将结果分类,以便对

问题进行分类和优先级排

序 精确数据

根据综合数据分析,制

定精确行动 可靠数据

21

机构 ‘热图’

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

22

转型成熟度模型

Level 1 自动检测缺陷

在软件构建流程中

检测关键质量和安

全缺陷 不会引入新缺陷

Level 3 优化开发者工作流

利用常见缺陷工作

流,整合入现有工

作流并测试效力

Level 4 代码管理

建立并执行一致的

源代码质量和安全

政策 建立源代码验收标

Complete 企业代码保证

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

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

代码和关键代码都

经过测试

同S

DL

C整合

开发测试采用 高

Level 2 识别残余风险

识别由于不充分自

动测试所导致的风

险区域 确保关键代码经过

测试并且按优先级

排序

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

经证实运营成本显著降低

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

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

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

Coverity 总结

top related