学位论文 > 优秀研究生学位论文题录展示

自动化单元测试中MOCK技术的研究与应用

作 者: 尹春娇
导 师: 李学俊
学 校: 安徽大学
专 业: 计算机技术
关键词: 单元测试 自动化测试 钩子 Mock
分类号: TP311.52
类 型: 硕士论文
年 份: 2011年
下 载: 84次
引 用: 1次
阅 读: 论文下载
 

内容摘要


软件测试方法研究是软件工程中重要研究分支之一,软件测试是软件质量保证的关键技术,占软件开发总工作量的40%甚至更多。自动化测试不仅能够大大减轻测试人员的工作量,而且可以减少测试过程中的错误,提高测试效率是保证软件质量缩短开发周期减少资金投入的一个重要的途径。在测试过程中,最基本、最小粒度的测试是单元测试。本文首先探讨了目前业界流行的自动化单元测试框架,这些框架往往很难为复杂的软件构造测试代码,所以只能应用于一些简单的单元测试,于是Tim Mackinnon提出一种用来模拟被测试对象的技术——Mock Object。Mock Object是用于解决对真实对象依赖的模拟对象。但是现实的软件工程中,除了面向对象的函数之外,还有大量的面向过程的函数,比如传统的C函数,第三方C库函数等,而这些都没有相应的模拟技术。本文深入研究了现有的Mock框架Gmock,分析了Mock技术的片面导致其模拟方面局限性,即Gmock只能模拟对象的虚函数,并在现有Mock技术的基础上,引入Hook技术,提出基于Hook技术的Mock框架SuperMock。SuperMock框架设计分为用户接口、引擎、内核三大模块,SuperMock不仅能模拟对象的虚函数和非虚函数,还解决了基于过程的用户C函数,第三方C库函数等模拟问题。本文同时给出SuperMock框架的设计全过程并通过示例分析得以验证,最后还给出了SuperMock与现有的自动化单元测试框架GoogleTest集成的过程,并通过应用示例分析验证了与GoogleTest集成进一步提高了单元测试效率。与一般基于Mock技术框架不同的是:传统的Mock框架因基于对象只能模拟对象的虚函数,SuperMock框架改变了传统的设计思想,通过定位函数在内存中的地址,实现函数拦截,以及保存和恢复原目标函数以实现函数模拟。SuperMock弥补了传统的Mock框架因其基于对象而无法全面覆盖的不足,使得单元测试在Mock技术上能全面地覆盖到任意函数。SuperMock的实现扩展了Mock概念,丰富和完善了单元测试理论,使单元测试的独立性得到了很大的提高。

全文目录


摘要  3-4
ABSTRACT  4-6
目录  6-8
第1章 引言  8-11
  1.1 问题的提出  8
  1.2 国内外研究现状  8-10
  1.3 课题研究的内容  10-11
第2章 单元测试与MOCK技术  11-25
  2.1 单元测试  11-18
    2.1.1 单元测试的定义与意义  11-12
    2.1.2 自动化单元测试框架  12-13
    2.1.3 GoogleTest  13-18
  2.2 MOCK技术  18-24
    2.2.1 Mock的相关定义  18-19
    2.2.2 GoogleMock  19-22
    2.2.3 现有Mock技术的不足  22-24
  2.3 本章小结  24-25
第3章 HOOK技术  25-33
  3.1 概念  25-26
  3.2 HOOK原理  26-27
  3.3 HOOK实现机制  27-32
  3.4 HOOK技术在软件测试中的应用  32
  3.5 本章小结  32-33
第4章 基于HOOK技术的新MOCK框架SUPERMOCK  33-62
  4.1 基于HOOK技术的SUPERMOCK  33-35
  4.2 SUPERMOCK框架设计  35-60
    4.2.1 功能分析  35-38
    4.2.2 系统架构设计  38-39
    4.2.3 Mock用户接口的设计  39-43
    4.2.4 Mock引擎的设计  43-49
    4.2.5 Mock内核的设计  49-54
    4.2.6 Mock工作流程设计  54-60
  4.3 本章小结  60-62
第5章 SUPERMOCK框架的应用  62-78
  5.1 应用实例  62-70
    5.1.1 Mock传统的C函数  63-66
    5.1.2 Mock对象函数  66-70
  5.2 SUPERMOCK和GOOGLETEST集成  70-77
    5.2.1 集成过程  71-72
    5.2.2 应用实例  72-77
  5.3 本章小结  77-78
结论  78-80
致谢  80-81
参考文献  81-83

相似论文

  1. 用户权限管理系统可靠性测试的研究与应用,TP311.53
  2. 基于Hudson的持续集成方案的研究与实践,TP311.52
  3. 工业嵌入式智能仪表软件测试技术的研究,TP311.52
  4. 软件优化技术在软件开发项目中的应用研究,TP311.52
  5. 基于统一过程自动化测试用例的设计与实现,TP311.52
  6. 单元测试方法及其在某制纸工厂作业管理系统中的应用研究,TP311.52
  7. 针对IBM Filenet的自动化测试工具的设计与实现,TP311.52
  8. 针对IBMFilenet的自动化测试工具的设计与实现,TP311.52
  9. 基于Spring框架的MVC控制器的优化与改进,TP393.09
  10. 自动化测试在大型软件系统的应用与研究,TP311.52
  11. 面向对象的软件测试方案研究,TP311.52
  12. WCDMA物理层在终端固件中的实现及测试,TN929.533
  13. 基于集合覆盖理论的网络自动化测试技术研究,TP393.06
  14. Java EE应用程序测试的研究与应用,TP312.2
  15. 基于LUA脚本语言的光模块测试系统,TP311.52
  16. 江苏电信自动化测试系统方案设计与实现,TP311.52
  17. 基于TD-LTE通信系统的通信子系统测试平台的研究与开发,TP311.52
  18. 基于虚拟化技术的自动化测试系统的设计与实现,TP311.52
  19. 网关GPRS支持节点动态测试框架的设计与实现,TP311.52
  20. 基于STAF框架的测试工具研究与实现,TP311.53

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 程序设计、软件工程 > 软件工程 > 软件开发
© 2012 www.xueweilunwen.com