用于自动分析软件风险的方法和系统技术方案

技术编号:12564760 阅读:53 留言:0更新日期:2015-12-23 08:50
此处描述的技术能够执行对软件程序的自动风险分析。自动风险分析器可确定软件的二进制码和软件的源文件之间、源文件和软件的函数(即子例程)之间、对软件的源代码的改变和软件中的缺陷、新特征、和/或特征增强之间、在软件的各属性(例如,与对源代码的改变相关联的属性)之间等的相关性。自动风险分析器可将对应于第一时间实例的相关性和对应于第二时间实例的相关性作比较来确定与底层因素相关的各种时间关系中的任意一种,底层因素包括但不限于新特征、特征增强、缺陷、搅动率、代码覆盖、代码复杂度等。自动风险分析器可基于时间关系确定软件的风险。

【技术实现步骤摘要】
【国外来华专利技术】【专利说明】软件的自动风险分析 背景 软件的测试通常是与软件的开发同时进行的,以便改善软件在软件的生命周期的 相对前期的质量。然而,软件中的缺陷普遍在缺陷被引入软件的开发周期之后进行的开发 周期中被发现。在这种情况下,标识和分析缺陷可能相对具有挑战性。 随着软件开发从一个周期进展到另一周期,追踪缺陷到特定的开发周期允许对在 特定周期中开发的软件中的特征的质量的评估和理解。不能这样做的困难之一是可能引入 各种问题中的任意一种。例如,当导致缺陷的具体的软件代码改变未知时,风险评估和过程 纠正可能变得相对困难。将用于解决该缺陷的资源转移到软件的正确组件和/或合适的工 程团队可能变得相对困难。被采用供工程团队使用的对于进程的有效性的反馈可能变得相 对有限。基于特定模式的缺陷的对于个人和他们的团队的反馈可能变得相对有限。对于 软件质量的进行中的改善可能变得不切实际,因为如果引起缺陷的具体代码改变是未知的 话,则对于现有缺陷的根本原因分析效果变得不太有效。 已进行了各种尝试来手动地解决这些问题。例如,诸如Visual Studio?团队服 务器(VSTS)或者Product Studio?之类的追踪工具依赖于缺陷寻找者将缺陷链接到软件 特征或软件开发周期的有效性。提交缺陷的人通常将附加信息与该缺陷相关联,从而将缺 陷链接到之前发布的特征和/或之前的开发周期。使用这一信息,选择性的缺陷通常按分 类来分析或单独的实践来分析,以创建对于链接到过去的开发周期的缺陷的手动报告。然 而,找到缺陷的人可能不是在软件的开发周期期间测试该软件特征的人。如果找到缺陷的 人不具有以上提及的信息,则这人可能不能准确地将缺陷链接到产品特征。此外,这样的手 动技术传统来说是不可缩放的,这可能导致这类技术相对不太有效。 概述 在此描述了用于执行对软件的自动风险分析等的各种方法。例如,可在软件的开 发期间自动对软件执行这一风险分析。风险分析的目的是确定软件程序的风险。风险是能 够对软件程序的执行带来负面影响的因素。 描述了示例方法。根据这一方法、软件程序的多个源代码文件与包括在软件程序 的经编译的表示中的二进制码相关以提供第一相关性。对于多个时间段中的每个时间段, 在各个时间段期间发生的对于多个源代码文件中的源代码文件的改变被基于第一相关性 而映射到软件程序的经编译的表示中的缺陷以提供缺陷映射。确定软件程序的属性。属性 至少包括代码覆盖和/或代码复杂度。对于每个时间段,确定该时间段的缺陷映射和属性 之间的中间关系。对应于第一时间段的中间关系被相关于对应于第二时间段的中间关系以 提供时间关系。多个因素的各个子集将干扰软件程序的执行的可能性基于该时间关系来确 定。 描述了一种示例系统,该系统包括相关逻辑、缺陷映射逻辑、属性确定逻辑、关系 逻辑、时间分析逻辑、以及风险分析逻辑。相关逻辑被配置成将软件程序的多个源代码文件 与包括在软件程序的经编译的表示中的二进制码相关以提供第一相关性。缺陷映射逻辑被 配置成对于多个时间段中的每个时间段,基于第一相关性将在各个时间段期间发生的对于 多个源代码文件中的源代码文件的改变映射到软件程序的经编译的表示中的缺陷以提供 缺陷映射。属性确定逻辑被配置成确定软件程序的属性,属性至少包括代码覆盖和/或代 码复杂度。关系逻辑被配置成对于每个时间段,确定该时间段的缺陷映射和属性之间的中 间关系。时间分析逻辑被配置成将对应于第一时间段的中间关系与对应于第二时间段的中 间关系相关以提供时间关系。风险确定逻辑被配置成基于时间关系来确定多个因素的各个 子集将干扰软件程序的执行的可能性。 描述了一种包括计算机可读介质的计算机程序产品,所述计算机可读介质具有记 录于其上的计算机程序逻辑,所述计算机程序逻辑用于使得基于处理器的系统能够执行对 软件程序的自动风险分析。计算机程序产品包括第一程序逻辑模块、第二程序逻辑模块、第 三程序逻辑模块、第四程序逻辑模块、第五程序逻辑模块、以及第六程序逻辑模块、。第一程 序逻辑模块用于使得基于处理器的系统能够将软件程序的多个源代码文件与包括在软件 程序的经编译的表示中的二进制码相关以提供第一相关性。第二程序逻辑模块用于使得基 于处理器的系统能够对于多个时间段中的每个时间段,基于第一相关性将在各个时间段期 间发生的对于多个源代码文件中的源代码文件的改变映射到软件程序的经编译的表示中 的缺陷以提供缺陷映射。第三程序逻辑模块用于使得基于处理器的系统能够确定软件程序 的属性,属性至少包括代码覆盖和/或代码复杂度。第四程序逻辑模块用于使得基于处理 器的系统能够对于每个时间段,确定该时间段的缺陷映射和属性之间的中间关系。第五程 序逻辑模块用于使得基于处理器的系统能够将对应于第一时间段的中间关系与对应于第 二时间段的中间关系相关以提供时间关系。第六程序逻辑模块用于使得基于处理器的系统 能够基于时间关系来确定多个因素的各个子集将干扰软件程序的执行的可能性。 提供概述以便以简化形式介绍将在以下详细描述中进一步描述的一些概念的选 集。本
技术实现思路
并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制 所要求保护主题的范围。此外,注意到本专利技术不限于在详细描述和/或本文的其它章节中 所述的特定实施例。本文呈现这些实施例仅用于说明性的用途。基于本文所包含的描述, 其它实施例对于相关领域的技术人员将是显而易见的。 附图简述 本文结合的并且组成本说明书的一部分的附图示出了本专利技术的各实施例,并且还 与本描述一起用于解释所涉及的原理以及使相关领域的技术人员能够实现和使用所公开 的技术。 图1是根据一实施例的示例自动风险分析系统的框图。 图2描绘了根据一实施例的用于执行对软件程序的自动风险分析的示例方法的 流程图。 图3是根据一实施例的自动风险分析器的示例实现的框图。 图4描绘了其中可实现各实施例的示例计算机。 通过下面的结合附图对本专利技术进行的详细说明,所公开的技术的特点和优点将变 得更加显而易见,在附图中,类似的附图标记在整个说明书中标识对应的元素。在附图中, 相同的参考标号一般指相同的、功能上相似的和/或结构上相似的元素。其中元素第一次 出现的附图由对应的参考标号中最左侧的数字指示。 详细描述 I.序言 以下详细描述参考示出本专利技术的示例性实施例的附图。但是,本专利技术的范围不限 于这些实施例,而是由所附权利要求书定义。因此,诸如所示实施例的修改版本之类的在附 图所示之外的实施例仍然由本专利技术所包含。 本说明书中对"一个实施例"、"实施例"、"示例实施例"等的引用指的是所述实施 例可包括特定的特征、结构或特点,但是每一实施例不一定包括该特定的特征、结构或特 点。此外,这些短语不一定指相同的实施例。此外,当结合实施例描述具体特征、结构或特性 时,应当理解在相关领域的技术人员的知识范围内能够结合其他实施例来实现具体特征、 结构或特性,无论是否被显式地描述。 II.示例实施例 本文描述的示例实施例能够执行对软件程序的自动风险分析。例如,可在软件程 序的开发期间自动对软件程序执行这一风险分析。风险分析的目的是确定软件程序的风 险。风险是能够对软件程序的执行带来负面影响的因素。风险分析涉及多个操作,所有的 操作可并行执行,所有的本文档来自技高网
...

【技术保护点】
一种方法,包括:将软件程序的多个源代码文件与包括在所述软件程序的经编译的表示中的多个二进制码相关以提供多个第一相关性;对于多个时间段中的每个时间段,基于所述多个第一相关性将在各个时间段期间发生的对于所述多个源代码文件中的一个或多个源代码文件的一个或多个改变映射到所述软件程序的经编译的表示中的一个或多个缺陷以提供一个或多个缺陷映射;确定所述软件程序的一个或多个属性,所述软件程序的所述一个或多个属性包括代码覆盖或代码复杂度中的至少一个,所述代码覆盖指示所述软件程序由一个或多个软件测试所测试的量,所述代码复杂度指示被包括在所述软件程序的开始点和所述软件程序的结束点之间的路径的数目;对于所述多个时间段中的每个时间段,确定该时间段的一个或多个缺陷映射和所述一个或多个属性之间的一个或多个中间关系;将对应于所述多个时间段中的第一时间段的一个或多个中间关系与对应于所述多个时间段中的第二时间段的一个或多个中间关系相关以提供一个或多个时间关系;以及基于所述一个或多个时间关系来确定多个因素的一个或多个相应子集将干扰所述软件程序的执行的一个或多个可能性。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:V·纳拉辛汉A·K·加内桑
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1