软件运行时缺陷检测文献综述

 2023-08-07 15:51:45

文献综述(或调研报告):

软件运行时缺陷检测的文献综述

  1. 前言

随着人们对软件系统质量要求的不断提高,软件缺陷分析技术发展迅速。软件缺陷的主要表现有系统不可用、异常、访问冲突、错误响应、数据丢失和表现不佳等。在软件系统缺陷静态分析方面,已有许多良好的技术和理论成果,但在动态分析方面还有很长的路要走,本课题就是为了检测软件运行时缺陷并对缺陷进行分类、定位。

  1. 研究现状

在应用系统中,一项重要的工作是在运行时获取和分析系统数据,对系统进行诊断并为系统调整提供参考。因此,监控作为获取系统诊断数据的有效途径,需要解决哪些数据需要监控、如何组织和分析数据以及如何降低监控成本等问题[1]。缺陷检测时,我们需要一种能够检测出故障并定位出导致故障的部件的分析方法[2],利用软件系统提供的监控数据创建软件系统的模型使得数据驱动不依赖于系统结构的知识,可以自主学习很容易适应目标系统部署的环境。此外,应用系统还需要具有自我管理能力,即在运行时自适应地处理用户需求的变化、系统入侵或故障、操作环境变化和资源变化等。因此,运行时分析方法必须具有自调整能力,并在引用系统调整后提供服务。

2.1基于主动依赖性模型的软件缺陷检测

系统的复杂性导致确定问题领域变得越来越困难,问题的影响可以在组件之间传播,从而掩盖了根本原因[3]。解决这种复杂性从而简化问题确定的一种可执行方法在于对系统硬件和软件组件之间的依赖关系的研究[4,5]。当系统越来越复杂或系统的源代码和实现细节未知的情况下,需要一种间接的依赖关系发现方法进行构建模型,尤其是基于度量和推断的方法[6]。

开发间接方法的主要挑战是因果关系和覆盖范围。因果关系涉及区分因果关系,该因果关系表示监视数据中的简单相关性与依存关系,而覆盖范围则意味着收集尽可能多的依存关系模型,尤其是包括可能仅在错误操作期间才揭示的部分。主动依赖关系发现则是将问题显式注入系统中,监视服务行为,并通过分析监视数据来推断动态依赖性及其优势。这种方法解决了两个挑战:可控的扰动可应用于每个系统组件(提供完整的覆盖范围),而被扰动的组件的知识可消除因果关系的歧义(识别因果关系)。该过程过程为系统和工作负载的特定组合构建了一个操作依赖图,同时只需要很少的系统内部实现细节,该过程主要包括四个主要步骤:对操作相关性图进行节点/组件标识,对系统进行检测,对系统应用主动扰动和分析扰动数据并提取依赖项信息[7]。

2.2软件运行时缺陷量度

因为推测基于缺陷数量的最高缺陷分量所识别的缺陷可能与基于其他度量的缺陷分量之间存在显著差异,所以不同的缺陷标准可能导致不同的检测结果[8]。监视并探讨由四种缺陷度量(即:缺陷数量、缺陷密度、缺陷严重程度以及缺陷的矫正努力)所识别的元件之间的差异,以确定这些差异在组件对正在研究的应用程序的重要性。相关项目中,通过对一个复杂的工业智能电网系统的实证研究,表明在构建关键系统的缺陷预测模型时,需要一个全面的缺陷度量,同时多个度量可以帮助确定关键系统中重要和关键缺陷组件的测试活动的优先级。

2.3 基于自适应监视的软件缺陷检测[9,10]

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。