正交缺陷分类法一种软件缺陷分析方法

本文主要介绍如何结合 ODC 理论分析客户上报的软件缺陷,从而找到当前开发测试流程当中存在的问题,提出改进方案,提高产品质量。

Defect(软件缺陷)分析是软件开发和测试中一个重要的环节。传统的使用严重等级,重要性等分类方法无法帮助开发人员快速定位问题,也无法准确评估测试人员的效率。 正交缺陷分类法(Orthogonal Defect Classification,ODC)介绍了一种不同于大家常用的非常有效的软件缺陷分类及分析方法,它定义了八个正交的缺陷属性用于对缺陷的分类。所谓正交性是指缺陷属之间不存在关联性,各自独立,没有重叠的冗余信息。对于缺陷提交者,他需要给这个缺陷分配“活动(Activity)”、“触发(Trigger)”、“影响(Impact)”这三个属性。当一个开发人员关闭一个缺陷时,他可以分配“阶段(Age)”、“来源(Source)”、“限定符(Qualifier)”、“类型(Type)”以及“目标(Target)”这些属性。下面将介绍这些不同的属性的含义:

Activity:就是当缺陷被发现时实际的处理步骤。比如单元测试,功能测试,系统测试等等。 Trigger:描述了暴露缺陷时存在的环境或者条件。针对不同的 Activity,会对应有不同的 Trigger。 Impact:是指缺陷可能对用户造成的影响。 Target:将要在
哪里改正错误,
例如:design、code 等等。 Type:表示所进行的实际修正的种类,比如算法,接口,初始化等等。针对不同的 Target,也会定义不同的 Type。 Qualifier:指明了所进行的修复应归于缺失,错误或者还是外来的代码或者信息。 Source:指明了发现的缺陷的来源,是出现在内部代码编写中,重用自一个程序库中,从一个平台转移到另一个平台上的,或者是外包一个软件销售商的。 Age:确定这个缺陷是新代码还是旧代码,或者是重写的代码。

客户问题的特征

客户报过来的问题,通常有两种。一部分问题可能是由于客户自己操作不当,环境配置不当或者是对软件功能的理解有误引起的,这个不同于我们所说的缺陷,不需要代码改动,只需要技术人员的支持就可以解决的。另外一部分问题是被定位到软件缺陷,需要开发人员进行代码改动才能解决的。这个是我们今天分析的重点。这部分缺陷是本来应该在开发测试流程当中发现,而却没有发现,给客户带来不良影响的问题。修复这些软件缺陷需要付出高昂的代价,因而也是我们今天分析的重点。

定义分析模型

ODC 理论里边定义的 8 个属性涵盖的面较为广泛,比如根据不同的 Activity 和 Target 都会对应有不同的 Trigger 和 Type,全部都分析的话需要耗费大量时间。对于我们今天要分析的客户报告过来的被定为软件缺陷,并且有代码改动的问题,并不是 ODC 的每一个属性都有必要进行分析。下面我们通过逐个分析 ODC 属性的意义来选取能给我们带来比较大价值的属性。

首先,我们来看 Activity,当客户发现软件缺陷时,他们的实际处理步骤只有 Function Test 和 System Test,所以 Activity 只有这两种值,我们就不需要做深入分析了。

确定 Activity 只有 Function Test 和 System Test 这两种时,那我们的 Trigger 也就是只针对这两种的了,所以包含有这些值:

Coverage Variation Sequencing Interaction Workload/Stress Recovery/Exception StartUp/Restart Hardware Configuration Software Configuration

Impact: 涉及到这个缺陷对于用户的实际感受或影响,通过对 impact 的分析可以得到客户关注焦点和客户满意度,是我们需要分析的。

Target: 因为我们分析的都是被确定为是软件缺陷的有代码改动的问题,所以 Target 都是在 code 范围内,这里 Target 就不做深入分析了。

Type: 确定 Target 是 code 之后,那么对于 Type 的属性值就是这些:

Assignment/Initialization Checking Algorithm/Method Function/Class/Object Timing/Serialization Interface/Messages Relationship

Qualifier: 能够定位这个 defect 产生是由于缺失,错误或者还是外来的代码。结合 Type 的分析还能指导如何预防这个 Defect 的产生,所以是我们需要分析的。

Source: 由于大部分问题都是内部代码产生的,不在我们分析重点。

Age: 可以分析出流露到客户那里的问题有多少是新代码的问题,有多少是一直存在着的问题等等。

另外,这些被客户发现的 defect 都是测试遗漏的,从测试的角度我们还可以分析一下如何从测试当中遗漏的。还有以及常用的根据模块的分析。

所以,我们重点分析的是如表 1 展示的这些属性:

表 1. 利用 ODC 属性分析客户问题

Component Trigger Impact Type Qualifier Age Defect Leakage Reason from testing Component A

Component B

Component C

...

Coverage
Variation
Sequencing
Interaction
Workload/Stress

Recovery/
Exception

StartUp/Restart
Hardware Configuration
Software Configuration

Installability

Integrity/
Security

Performance
Maintenance
Serviceability
Migration
Documentation
Usability
Standards
Reliability
Accessibility
Capability
New Requirement

Assignment/
Initialization

Checking
Algorithm/
Method

Function/
Class/
Object

Timing/
Serialization

Interface/
Messages

Relationship

Missing

Incorrect

Extraneous New

BASE / Prior Release

Rewritten

Refixed Config/Env difference

Missing in test design

Missing in test execution

Incorrect test case

Incorrect test execution

时间: 2024-10-30 04:25:57

正交缺陷分类法一种软件缺陷分析方法的相关文章

软件缺陷分析-软件测试之犯罪心理学

作为一名测试人员,最大的成就就是像福尔摩斯一样,利用超强的观察力,严密的逻辑推理能力,迅速找出软件的"罪犯",将其绳之以法.可是在成为"福尔摩斯"之前,观察力.逻辑推理能力,是需要不断训练的.这篇文章实际就是软件测试的"犯罪心理学"(初级版):利用软件缺陷数据,对缺陷进行分类汇总,计算缺陷分析指标,进而发现软件生命周期的各个阶段的不足,制定相应改进方法,增强软件过程人为活动的规范性,最终目标提升软件交付质量,提升测试效率   一.缺陷管理库 缺陷

直接流量的秘密 5种直接流量分析方法

中介交易 SEO诊断 淘宝客 云主机 技术大厅 直接流量是网站分析中的一个神秘的黑盒子.至少在今天之前,我一直都是这么认为的.因为你永远都无法说清楚直接流量中具体包含了哪些流量来源(收藏,弹窗,IM,等其他流量来源).并且也无法像搜索流量和推荐流量一样对直接流量进行细分.因此,当直接流量发生变化时,我们几乎不能通过传统逐层细分的方法来找到原因,也无法提供有效的建议和措施.那么,对待直接流量我们真的束手无策了吗?不,本篇文章将用5种方法对直接流量进行分析.也许这些方法也可以帮助你解开直接流量的秘密

网站是否被搜索引擎惩罚五种分析方法浅析

每次百度更新的时候,总是几家欢喜几家愁,有的网站排名提升了,有的网站排名下降了,很多站长一旦发现自己网站排名下降了就会非常的担心自己的网站是不是被搜索引擎K站了,或者是被降权了,可是仅仅通过排名下降就确认网站被K或者降权那是非常不科学的,往往会导致自己做大量的无用功甚至做出对网站不利的事情,对此分析网站是否被K或者被降权是非常重要的!其中有五种分析方法笔者认为比较好用,下面就和广大的站长朋友们分享一下! 一:使用百度的site命令分析,具体的操作方法是在搜索引擎的对话框里面输入site:网站域名

.Net下几种日志管理方法

.Net下几种日志管理方法 日志是应用程序中不可缺少的一部份,不仅可以记录应用程序的运行状态,还可以记录一些BUG,便于应用程序的更新与修改.在.Net有好几种方法可以对日志进行管理.1.数据库日志.2.文本日志.3.系统事件日志. 首先,对于数据库日志而言,它的使用简单而且方便.这里就不做太多的讨论,相信写过与数据相关的项目的人都会用数据来记录一些日志.然而它唯一不好的就是:必须先保证你的数据库链接是正确无误的.然而这一保证不是必然的,所以这里我再讨论一下其它的两种情况,文本日志及系统事件日志

企业处理事件风暴的 2 种最佳管理方法

Moogsoft 的员工 Steve Burton 曾分享过一个非常极端但不少见的事例:有个服务提供商 4 万台服务器每小时生成超过 60 万个事件,而且其中有 4.7 万张帮助工单,每月有 2000 次以上的二级升级.也就是说,每天都有 66 次升级,不过这还不是最糟糕的.最糟的是,这 4.7 万张帮助工单须由几百号人进行手动分析.排列优先级以及分类. 现阶段事件管理现状 目前,IT运营中的事件管理 ( Event management ) 是手动的.劳动密集型的(因此成本高昂)活动,难以扩展

数据驱动设计:数据处理流程、分析方法和实战案例

一.大数据思维 在2011年.2012年大数据概念火了之后,可以说这几年许多传统企业也好,互联网企业也好,都把自己的业务给大数据靠一靠,并且提的比较多的大数据思维. 那么大数据思维是怎么回事?我们来看两个例子: 案例1:输入法 首先,我们来看一下输入法的例子. 我2001年上大学,那时用的输入法比较多的是智能ABC,还有微软拼音,还有五笔.那时候的输入法比现在来说要慢的很多,许多时候输一个词都要选好几次,去选词还是调整才能把这个字打出来,效率是非常低的. 到了2002年,2003年出了一种新的输

性能测试需求指标分析方法

六.设计测试模型 1.业务模型的设计 一个系统的业务模型是通过业务调研获得,业务模型的正确性反映在两个方面首先业务选择的正确性和业务比例的正确性. 首先业务选择,一个系统可能支持几百个业务活动(也有叫做交易)但是只有少数的业务活动非常频繁,占总业务量的80%以上,那么在性能测试时只需关心这些占了大部分业务量的少量业务上. 其次业务比例,如何精确统计业务的数量是关键问题,针对一个全新的系统可能要通过对使用系统的涉众进行调研,搞清楚他们群体数量,操作行为周期.在通过组合这些数据确定在常规业务日中各种

正确的网站分析方法

摘要: 正确的网站分析方法,可以在最快的时间内了解一个网站的整体结构状态,为了下一步展开优化计划进行信息准备.在这里,我将对于搜索引擎优化的第一步工作,也就是网站分析提一 正确的网站分析方法,可以在最快的时间内了解一个网站的整体结构状态,为了下一步展开优化计划进行信息准备.在这里,我将对于搜索引擎优化的第一步工作,也就是网站分析提一些自己的意见和见解,以及简单的方法如何获得这些数据,希望对于那些初步入门的SEO爱好者有所帮助. 当我们开始分析一个网站的时候,我们首先要经过第三方的手段进行网站的外

基于分类模型的广告推荐方法研究

基于分类模型的广告推荐方法研究 北京交通大学  李哲 论文的主要工作如下.第一,我们结合Hadoop平台实现了针对某互联网公司提供的广告日志数据的可视化统计与分析工具,利用该工具对数据进行分析并发现了特征之间和广告之间的依赖关系.第二,提出了利用非广告特征和广告特征依赖关系的单标记分类模型的一种改进方法,其利用了互信息来选择组合特征从而加入特征之间的依赖关系.第三,提出了利用广告之间依赖关系的多标记分类模型改进方法,其通过一种启发式的方法来构建分类器链从而更好地利用广告之间的依赖关系.最后,在H