动态程序分析方法与工具-四川大学

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

动态程序分析方法与工具

目录

动态程序分析方法与工具 (1)

1. 前言 (2)

1.1 研究背景 (2)

1.2 基本概念 (3)

1.3 研究价值和意义 (4)

1.4 研究路线 (4)

2. 研究方法 (4)

2.1 检索方案 (4)

2.2 系统文献综述法 (6)

2.3 文献计量法 (7)

3. 文献计量分析 (9)

3.1 年限分析 (9)

3.2 期刊分布 (9)

3.3 载文比分析 (11)

3.4 期刊类型分布 (11)

3.5 作者分析 (12)

3.6 关键词分析 (13)

4. 动态程序分析 (15)

4.1 动态程序分析方法 (15)

4.2 动态程序分析工具 (26)

4.3 动态程序分析在软件测试中的应用 (27)

5. 未来研究展望 (27)

5.1 错误定位新理论和新技术的引入与集成 (27)

5.2 程序算法检测新的发展形态 (27)

5.3 软件运行平台的新发展 (27)

6. 结束语 (27)

参考文献 (28)

摘要:

关键字:程序分析、动态程序分析、文献计量方法

1.前言

1.1研究背景

软件是一种十分特殊的人工制品:它是人类“智力活动”的产物,是对客观事物的虚拟反应,是知识的固化和凝练[1]。迄今为止,软件已有了50多年发展历史,但对于一个给定的软件,我们目前还不能完全了解它的特性。软件分析就是以软件特性为关注点的研究领域。经过这么多年的发展,目前软件生命周期中的许多活动(分析,设计,实现,测试,部署,维护等)都离不开分析技术。尽管软件分析的能力有限,但它仍然是软件领域十分有用的技术。

下面将谈到两个概念,“验证”和“确认”。“验证”是要回答“软件制品是否与软件需求规约一致”的问题,而“确认”则是回答“软件的特性是否符合用户需求”。在英文中,“验证”是“Do the thing right”,而用“Do the right thing”来解释“确认”。验证就是所谓的软件分析技术,而确认则是软件测试技术。软件分析包括对文档(需求规约、设计文档、代码注释等)的分析、对运行程序的分析,等等。而程序分析中,根据“是否需要运行程序”为准则,可以将程序分析技术划分为静态分析技术和动态分析技术两大类,本文主要尝试对动态程序分析涉及的主要方法和工具进行总结和归类,并讨论动态程序分析技术在软件测试中的应用和发展。

本文总共分为6部分,第一部分是前言,主要对研究背景、涉及到的一些基本概念、研究的价值和意义、研究路线等进行了说明。第二部分主要阐述了本文所涉及到的两种研究方法:文献计量方法和系统文献综述方法。第三部分是根据文献计量方法的策略,对检索到的文献进行具体的分析。第四部分是本文的核心内容,主要总结和归纳现有的动态程序分析技术方法和工具,并讨论了动态程序分析方法和工具在软件测试中的应用。第五部分结合本文所有信息对动态程序分析技术的发展趋势进行展望。最后一部分是结束语,归纳总结了本文的研究思想

和路线。

1.2基本概念

1)软件分析

软件分析是对软件进行人工或者自动分析,以验证、确认或发现软件性质(或规约、约束)的过程或活动。包括对文档(需求规约、设计文档、代码注释等)的分析、对运行程序的分析,等等。[1]

2)程序分析

程序分析是指对计算机程序行为进行自动分析的过程,主要包括静态分析和动态分析两种策略,它是以某种语言书写的程序为对象,对其内部的运作流程进行分析。

3)动态程序分析

动态程序分析是通过运行具体程序并获取程序的输出或者内部状态等信息来验证或发现软件性质的过程。

4)静态程序分析

静态程序分析是指在不运行软件前提下进行的分析过程。

5)软件测试:

软件测试是一组活动,执行这组活动的目的是发现程序中可能存在的潜在错误,验证在指定条件下程序运行的情况,方法则是给出指定的输入和期望的结果,观察实际的运行结果和期望结果之间的差异,从而对软件的执行正确程度做出判断。(IEEE标准610.12-1990中,对软件测试是这样定义的:软件测试是在指定的条件下操作测试系统或组件,观察和记录结果,并对测试系统或组件的不同方面做出评估的过程。)

6)文献计量方法

文献计量方法是一种以各种文献外部特征为研究对象的量化分析方法,主要用于科学文献的研究,能够揭示各门学科的发展水平。

7)系统文献综述方法

系统文献综述(systematic literature review),简称系统综述,是主要在医学

领域和社会学研究领域针对某一个研究性问题开展的基于文献的系统化综述方法,并于2004年引入软件工程领域.系统文献综述的过程包含3个主要的阶段: 制定综述方案、开展综述、形成综述报告。

1.3研究价值和意义

为了保证软件开发的质量,业界在软件测试和软件分析阶段投入了大量的人力物力,而动态程序分析在软件分析中扮演着极其重要的角色。本文对动态程序方法和工具进行了分析与总结,并讨论了其在软件测试当中的应用,不仅丰富了自己在该领域中的知识,增长了见闻,同时有利于人们在分析软件特定的质量属性时,选取合适的技术和工具。

1.4研究路线

首先提出该领域的几个需要最终回答的问题,然后确定关键字以及检索策略,接着对检索得到的论文进行筛选,然后对筛选过后剩下的论文进行数据提取和分析,最后形成报告。同时,我们借助EndNote文献管理工具对我们检索到的文献进行管理,方便我们阅读和使用。

2.研究方法

2.1 检索方案

2.1.1 研究问题

通过该系统评价最终所要回答的问题,同时可能需要进一步明确所感兴趣的研究方法(intervention)和研究结果(outcome)等其他限定条件.

1)现有程序分析的方法和工具有哪些?

2)动态程序分析的方法和工具有哪些?

3)动态程序分析方法在软件测试中的应用有哪些?

4)动态程序分析中有哪些未解决的问题?

相关文档
最新文档