首页> 中文学位 >嵌入式软件覆盖测试通用技术研究
【6h】

嵌入式软件覆盖测试通用技术研究

代理获取

目录

声明

摘要

第1章 绪论

1.1 研究背景和意义

1.2 研究现状

1.3 主要研究内容

1.4 论文组织结构

第2章 嵌入式软件覆盖测试理论

2.1 嵌入式系统

2.1.1 嵌入式系统及其特点

2.1.2 嵌入式软件介绍

2.2 软件测试相关概念

2.3 覆盖测试技术

2.3.1 覆盖测试概述

2.3.2 覆盖原则分类

2.3.3 覆盖率分析

2.4 嵌入式软件测试

2.4.1 嵌入式软件测试环境

2.4.2 嵌入式软件测试特点

2.4.3 嵌入式软件覆盖测试

2.5 源代码分析技术

2.6 插桩技术

2.7 本章小结

第3章 嵌入式软件覆盖测试通用技术研究

3.1 嵌入式软件覆盖测试模型

3.2 源代码分析技术

3.2.1 Eclipse CDT、JDT简介

3.2.2 ASTParser源代码分析

3.2.3 基于ASTParser的源程序修改

3.3 插桩技术

3.3.1 程序块的划分原则

3.3.2 插桩策略

3.3.3 探针函数的设计

3.4 覆盖算法

3.4.1 语句覆盖算法

3.4.2 分支覆盖算法

3.4.3 条件覆盖算法

3.5 平台通用性设计方案

3.6 本章小结

第4章 实验评估

4.1 环境搭建

4.2 通信方式

4.3 测试平台设计

4.4 测试实例

4.4.1 源代码分析

4.4.2 被测程序插桩

4.4.3 编译插桩后的被测程序

4.4.4 控制被测程序执行

4.4.5 接收测试数据

4.4.6 生成测试结果

4.5 本章小结

第5章 结论

5.1 总结

5.2 进一步工作

参考文献

致谢

攻读硕士期间发表的论文情况

展开▼

摘要

随着软件应用领域的不断扩展,嵌入式系统得到了充分的发展,并被广泛地应用于工业控制、智能家居、消费电子、物联网、无线通讯等领域。作为嵌入式系统的重要组成部分,嵌入式软件的质量引起了各方的高度重视。软件测试是保证软件质量的重要手段。其中覆盖测试技术是软件白盒测试的重要方法之一。与传统软件相比,嵌入式软件具有专用性,一般只能在特定的硬件平台上执行。而且由于嵌入式软件的开发环境和运行环境不一致,导致无论在宿主机测试如何充分,也不能保证在目标机上就能正常执行。此外嵌入式软件存在实时性、系统资源有限等特点,传统软件覆盖测试技术并不能直接应用于嵌入式软件测试。当前大部分针对嵌入式软件的测试是基于全数字仿真平台的,被测软件运行在仿真模拟环境中,测试之前需要耗费大量的时间精力对目标机进行数字仿真,且随着嵌入式系统日趋复杂,仿真的代价越来越高。同时测试工具都主要针对特定被测软件,测试平台都是从底层重新做起,没有一个很好的通用平台提供支持,导致测试周期长资源利用率低。
  针对嵌入式软件覆盖测试的特点,本文对嵌入式软件覆盖测试关键技术的进行深入研究,包括源代码分析、程序插桩、覆盖算法等,提出了嵌入式软件覆盖测试模型。基于Eclipse CDT/JDT工具实现对被测程序源代码分析,通过修改CDT/JDT部分源码以定制测试所需的抽象语法树信息,再进行预处理,得到标准的被测软件程序结构信息以供后续使用。从程序块的划分原则、插桩策略、探针函数设计三个方面讨论了插桩技术。阐述了语句覆盖、分支覆盖、条件覆盖、基本路径覆盖四种覆盖策略的覆盖算法。特别地,针对覆盖测试流程中源代码分析、插桩植入探针、编译链接、程序执行、测试数据分析等阶段,分别提出了旨在提高通用性的解决方案。在源代码分析阶段,依托Eclipse CDT/JDT开源包实现对C、C++、JAVA多种不同语言源代码分析,得到包含被测程序关键信息的抽象语法树,对抽象语法树中的冗余信息进行消除,提高遍历的效率;在插桩阶段,阐述了插桩位置的选择策略、插桩策略以及探针函数设计策略,以减少插桩对被测软件的影响,提高程序执行效率,并通过设立探针函数库来支持不同语言、不同插桩策略下对探针函数的需求;在编译阶段,针对使用不同语言开发运行在不同平台上的嵌入式软件可以自定义编译时使用的编译器,编译后可以直接在目标机运行;在执行阶段,由于测试是基于半实物测试环境的,在半实物测试环境下,宿主机是测试模型的核心,目标机环境具有可替换性,只需要更换目标机即可实现对不同硬件平台被测软件的测试,实现测试平台与具体测试硬件资源无关性;在测试数据传输时,使用XML作为测试数据存储的媒介,XML能方便有效地表示结构化数据,通过XML实现数据的标准化、结构化,解决不同平台、不同系统之间的数据结构差异的问题。
  本文根据提出的测试模型,搭建了嵌入式软件交叉测试环境,设计并实现了一个支持该模型的嵌入式软件测试平台,平台能够对基于C、C++、JAVA语言开发的嵌入式软件进行覆盖测试,支持的覆盖策略包括语句覆盖、分支覆盖、条件覆盖、基本路径覆盖。利用该测试平台对多个被测软件进行测试,以可视化的数据和图形显示测试结果。实验结果表明该测试系统能够准确高效地完成测试任务。

著录项

  • 作者

    郭旺;

  • 作者单位

    西南大学;

  • 授予单位 西南大学;
  • 学科 软件工程
  • 授予学位 硕士
  • 导师姓名 丁晓明;
  • 年度 2015
  • 页码
  • 总页数
  • 原文格式 PDF
  • 正文语种 中文
  • 中图分类 TP311.53;
  • 关键词

    嵌入式软件; 覆盖测试; 通用设计; 插桩技术;

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号