依赖性分析及其在软件测试中的应用

依赖性分析及其在软件测试中的应用

论文摘要

依赖性分析和程序切片,是一种程序分解技术,在软件工程的诸多领域都有广泛应用。现代软件规模的巨大和复杂使得设计和测试这些软件极其困难,其中软件测试通常要占到开发成本的50%甚至更多,提高软件测试效率,对于降低软件开发成本,加快软件开发周期有直接的作用。由于现代软件系统的巨大规模,真正的实用的测试方法总是根据情况和要求,有侧重点的进行,这就使得依赖性分析在软件测试过程中有着重要意义。平衡软件测试的效率和效果是当前软件测试具有理论意义和实际价值的热点问题。程序切片和依赖性分析是重要的程序分解技术,将依赖性分析应用于软件测试可以使得软件测试更有目的性和针对性,在有条件的保证软件测试效果的前提下,有效地提高软件测试效率。基于对依赖性分析在软件测试中的应用能力分析,本文进行了以下一些研究工作:软件测试数据自动生成是软件测试的一个重要研究领域,其中数组变量和指针变量导致的变量不确定问题是测试数据自动生成中的一个困难问题,本文通过理论分析得出非定态路径约束解空间可进一步划分为多个子空间的结论。基于分析结论,利用一种特殊的程序切片技术,本文给出一个将非定态路径的测试转换为定态路径测试的算法。通过分析EFSM不同测试序列的依赖关系模式(切片),可以有效的约减测试集,提高测试效率。由于EFSM依赖关系的特殊性,对于EFSM依赖图,现有的基于标志已访问节点的遍历算法不适于解决该问题。本文对EFSM的依赖关系的传递性进行了分析,并给出一个基于变迁的EFSM后向切片算法。修改影响分析本质上也属于约减测试用例的范畴,通过分析修改的软件部分与软件其他部分的依赖性关系,确定需要重新测试的部分,从而避免了对整个软件的完全重新测试,提高了测试效率。本文针对面向对象程序,提出类成员后向切片方法以找出所有被修改所影响的类成员。该方法比类防火墙技术的精度要高,复杂度低于语句级粒度分析方法。现代软件中,并发程序设计得到越来越普遍的应用。然而,并发程序的依赖性分析有着其特殊的复杂性,在这方面,本文进行的研究工作有:为了使程序切片技术能应用于更广泛的并发程序,我们在现有算法的基础上,并进一步考虑到互斥体间可能存在的同时有定义和引用关系的情况,将现有的并发程序切片算法推广到可以计算有互斥机制的并发程序的程序切片,得到了更为精确的切片算法。

论文目录

  • 摘要
  • ABSTRACT
  • 插图索引
  • 第1章 绪论
  • 1.1 研究背景
  • 1.2 国内外研究现状
  • 1.3 本文的研究内容
  • 第2章 依赖性分析和程序切片
  • 2.1 引言
  • 2.2 数据依赖和控制依赖
  • 2.3 流分析和程序切片
  • 2.4 依赖图和程序切片
  • 2.5 小结
  • 第3章 基于依赖性分析对非定态路径的变换
  • 3.1 引言
  • 3.2 基本概念
  • 3.3 非定态路径测试问题的研究
  • 3.4 转换算法
  • 3.5 举例
  • 3.6 小结
  • 第4章 基于依赖性分析的回归测试
  • 4.1 引言
  • 4.2 基本概念
  • 4.3 调用点分离类型分析(STA)
  • 4.4 构造面向对象程序的调用关系
  • 4.5 回归测试策略与程序修改分析
  • 4.6 回归测试策略
  • 4.7 小结
  • 第5章 扩展有限状态机的依赖性分析
  • 5.1 引言
  • 5.2 背景知识和现有算法的问题
  • 5.3 EFSM 中的依赖关系的传递性
  • 5.4 依赖传递函数
  • 5.5 EFSM 的后向切片算法
  • 5.6 小结
  • 第6章 考虑互斥机制的并发程序切片
  • 6.1 引言
  • 6.2 基本概念
  • 6.3 互斥机制对切片的影响
  • 6.4 切片算法
  • 6.5 小结
  • 第7章 并发过程间程序分析的不可判定问题
  • 7.1 引言
  • 7.2 过程间并发程序模型
  • 7.3 利用反射的思想构造并发过程间程序分析的PCP 问题实例
  • 7.4 导致不可判定的因素
  • 7.5 小结
  • 第8章 JAVA 程序分析平台的设计与实现
  • 8.1 引言
  • 8.2 8.2 JAVACC 和JTB 工具简介
  • 8.3 系统框架
  • 8.4 系统的实现
  • 8.5 程序界面及执行效果示意图
  • 8.6 小结
  • 结论
  • 参考文献
  • 致谢
  • 附录 A 攻读学位期间发表的论文和参加的项目
  • 攻读学位期间发表的论文
  • 攻读学位期间参加的项目
  • 相关论文文献

    • [1].基于云计算的计算机软件测试[J]. 计算机与网络 2019(22)
    • [2].《软件测试》课程教学方法的探索[J]. 武夷学院学报 2019(12)
    • [3].基于职业技能大赛的高职“软件测试”课程实践教学设计[J]. 无线互联科技 2019(24)
    • [4].“以赛促建”的高职“软件测试”课程方案建设[J]. 无线互联科技 2020(05)
    • [5].软件测试中接口测试概述与实践[J]. 数字技术与应用 2020(03)
    • [6].谈软件工程中软件测试的重要性及方法[J]. 时代农机 2020(03)
    • [7].基于探索性测试的软件测试研究与实践[J]. 计算机应用与软件 2020(06)
    • [8].软件测试课程“停课不停学”全线上教学模式探索[J]. 计算机教育 2020(07)
    • [9].基于开源测试工具构建软件测试实践教学[J]. 现代计算机 2020(20)
    • [10].对基于云计算技术的软件测试分析[J]. 电子技术与软件工程 2020(15)
    • [11].建立中国金融业软件测试标准的探索[J]. 金融电子化 2020(04)
    • [12].云计算下的软件测试系统研究[J]. 数字通信世界 2018(11)
    • [13].软件测试关键技术研究——以绩效考核为例[J]. 信息与电脑(理论版) 2018(23)
    • [14].运用稳健六西格玛分析软件测试系统[J]. 电子质量 2018(12)
    • [15].认识软件测试[J]. 科技风 2019(14)
    • [16].探讨如何在软件测试阶段有效的提高软件质量[J]. 中外企业家 2019(19)
    • [17].浅析大数据背景下软件测试的挑战与展望[J]. 中外企业家 2019(21)
    • [18].软件测试标准化国内外现状研究[J]. 中国标准化 2019(11)
    • [19].技能大赛视域下“软件测试”课程教改研究[J]. 中小企业管理与科技(下旬刊) 2019(08)
    • [20].云计算在软件测试中的应用[J]. 电子技术与软件工程 2019(19)
    • [21].众测项目融入到软件测试课程案例库构建研究[J]. 电子世界 2019(22)
    • [22].大数据云计算时代软件测试所面临的挑战[J]. 教育教学论坛 2017(51)
    • [23].浅析软件测试中的心理学应用[J]. 电脑知识与技术 2017(31)
    • [24].浅谈我国软件测试行业人才现状及培养体系[J]. 软件 2017(12)
    • [25].大数据在软件测试中的应用[J]. 电子技术与软件工程 2018(03)
    • [26].常用的自动化软件测试工具评估方法[J]. 电子技术与软件工程 2018(03)
    • [27].软件工程中软件测试的应用研究[J]. 计算机产品与流通 2017(10)
    • [28].大数据背景下软件测试的挑战与展望[J]. 江苏科技信息 2018(19)
    • [29].以职业能力和岗位需求为核心构建软件测试课程教学[J]. 教育现代化 2018(24)
    • [30].大数据背景下软件测试的挑战与展望[J]. 软件 2018(06)

    标签:;  ;  ;  ;  ;  ;  ;  ;  

    依赖性分析及其在软件测试中的应用
    下载Doc文档

    猜你喜欢