毕业论文——面向WinForm Control的自动化测试框架的设计与实现.doc

上传人:滴答 文档编号:1255693 上传时间:2019-01-19 格式:DOC 页数:70 大小:1.25MB
下载 相关 举报
毕业论文——面向WinForm  Control的自动化测试框架的设计与实现.doc_第1页
第1页 / 共70页
毕业论文——面向WinForm  Control的自动化测试框架的设计与实现.doc_第2页
第2页 / 共70页
毕业论文——面向WinForm  Control的自动化测试框架的设计与实现.doc_第3页
第3页 / 共70页
毕业论文——面向WinForm  Control的自动化测试框架的设计与实现.doc_第4页
第4页 / 共70页
毕业论文——面向WinForm  Control的自动化测试框架的设计与实现.doc_第5页
第5页 / 共70页
点击查看更多>>
资源描述

1、目录摘要随着控件技术的不断发展,用户对 WinForm Control 的需求不断增加,使得WinForm Control 逐渐产品化,一批以 WinForm Control 为产品的公司或者部门的建立更加推动了其快速发展。与此同时,也给 WinForm Control 的自动化测试提出了新的要求。目前,现有的用于 WinForm Control 自动化测试的自动化测试框架都是单元测试框架,只能用于测试 WinForm Control 的基本属性、方法和事件,而其他测试只能手动进行,因此,开发一套面向 WinForm Control 的自动化测试框架是非常有必要的。本文深入研究了 WinFor

2、m Control 的特点,详细分析了 WinForm Control 自动化测试的原理及过程,对现有的单元测试框架做了简单的介绍,通过研究,在单元测试框架 NUnit 的基础上,着重处理鼠标和键盘的交互操作,并将 GUI 测试思想应用到 WinForm Control 的自动化测试中,将 WinForm Control 的各个组成部分抽象成一个 ComponentGUI,让测试人员可以方便地定位控件并进行自动化测试,最终实现了面向 WinForm Control 的自动化测试框架。整个框架在设计上充分考虑了代码的可复用性、可移植性和可维护性。目前,该自动化测试框架已经在日本多家控件公司投入使

3、用,达到实用化水平。关键词:WinForm Control 自动化测试 GUI InputAbstractWith the continuous development of control techniques and the increasing demand for WinForm Control,WinForm Control is gradually commercialized in recent years,and the establishment of a group of corporations or departments taking WinForm Control

4、as their product further promotes its rapid development. Meanwhile, new requirements of automatic testing of WinForm Control have been arisen. At present,existing automatic testing frameworks for WinForm Control are all unit testing frameworks,which can only be used to test the basic attributes,meth

5、ods and events of WinForm Control,that is to say,other tests have to be operated manually. Thus,it is very necessary to develop a automatic testing framework for WinForm Control.In this article,the features of WinForm Control are firstly introduced,then,the principles and procedures of automatic tes

6、ting for WinForm Control are discussed in detail and existing unit testing frameworks are also introduced briefly. Finally,a new automatic testing framework for WinForm Control is introduced. The new framework is mainly based on the following ideas:on the basis of the unit testing framework NUnit,fo

7、cusing on the handling of the interactive operations of keyboard and mouse; and the ideas of GUI based testing are introduced in the automatic testing for WinForm Control:the components of WinForm Control are abstracted to a ComponentGUI,so that the testers can easily locate controls and test them.

8、The proposed framework takes into account the reusability,the portability and the maintainability of codes. At present,this automatic testing framework has been put into practical use in many Japanese control corporations.KeyWords: WinForm Control Automatic Testing GUI Input目录目录第一章 绪论 .11.1 研究背景 .11

9、.2 国内外现状 .21.3 课题的意义 .21.4 论文的工作和结构 .3第二章 WinForm Control 及常用单元测试框架 .52.1 WinForm Control 的定义及分类 .52.1.1 WinForm Control 的定义 .52.1.2 WinForm Control 的分类 .62.2 常用单元测试框架 .92.2.1 JUnit 测试框架原理 .92.2.2 CppUnit 测试框架原理 .122.2.3 NUnit 测试框架原理 .132.2.4 XU 测试框架原理 .152.3 小结 .16第三章 WinForm Control 自动化测试研究与分析 .17

10、3.1 WinForm Control 自动化测试原理分析 .173.1.1 基本属性、方法和事件的测试 .173.1.2 鼠标和键盘相关事件的测试 .203.1.3 GUI 测试 .243.2 WinForm Control 自动化测试的流程 .263.3 WinForm Control 自动化测试的优点 .263.4 小结 .27第四章 面向 WinForm Control 的自动化测试框架的设计 .294.1 GUI 测试框架的设计 .294.2 Input 测试框架的设计 .354.2.1 鼠标输入测试框架的设计 .354.2.2 键盘输入测试框架的设计 .384.3 结果比较方法的设

11、计 .404.4 面向 WinForm Control 的自动化测试框架的优点 .414.5 小结 .42第五章 面向 WinForm Control 的自动化测试框架的验证 .455.1 制定测试用例 .455.2 编写测试脚本 .465.3 运行测试脚本 .515.4 生成测试报告 .535.5 小结 .54第六章 结束语 .55致谢 .57参考文献 .59第一章 绪论 1第一章 绪论随着计算机技术的发展,人们对软件产品的质量有了更高的要求,因此软件测试工作在整个软件开发的过程中也越发重要。从繁杂的手工测试到实用性强的自动化测试,从最初只提供简单的捕捉/回放功能的测试工具到功能和灵活性更强

12、的测试脚本工具,自动化测试已经取得了很大的进步 2。但随着软件规模的不断扩大,软件类型的不断增多,人们希望自动化测试能够更加高效和简便。自动化测试框架的出现,加速了自动化脚本的生成,提高脚本的可维护性,加速脚本执行效率等,目的是减少实现和维护的成本,使测试人员可以把精力集中在应用程序的测试用例设计上,而不是开发测试。1.1 研究背景2001年后,.NET Framework2.0的诞生,人们将它看作是多年来最重要的新技术。.NET Framework以多种方式对面向组件的开发模式做了强而有力的支持。.NET Framework为开发人员提供了两种控件支持:一种是 Web Control,一种是

13、WinForm Control15。其中WinForm Control是目前发展最快,应用最广泛的。.NET Framework使得开发人员可以通过将多个标准 WinForm Control组合,而定制出符合用户需求的应用程序。开发人员还可以通过继承某个标准WinForm Control,附加新的功能与业务逻辑满足自己的需要。更高级的开发人员可以直接从.NET Framework提供的Control基类派生出自定义的 WinForm Control(Custom Control) 20。尽管面向组件的开发模式和.NET Framework的支持,使得WinForm Control的开发人员以及

14、厂商获取了更多的好处,但却给WinForm Control的测试工作带来了很多困难,因为目前市场上并不存在面向WinForm Control的自动化测试框架,因此,对于WinForm Control的测试,除了最基本的属性、方法和事件的测试可以利用目前常用的单元测试框架实现自动化测试以外,其他大部分对于WinForm Control的测试都必须依靠测试人员手动完成。但随着WinForm Control的不断发展,最终用户对WinForm Control的种类、质量、功能以及用户界面的要求也在不断增加,这就推动了市场的壮大,同时促进了一批以WinForm Control为产品的公司或者部门的建立

15、,最终将推动WinForm Control从产品向产业进一步发展,因此,自动化测试WinForm Control也成为一种必然,那么开发一套面向WinForm Control的自动化测试框架是非常有必要的。面向 WinForm Control 的自动化测试框架的设计与实现21.2 国内外现状目前,可用于对 WinForm Control 的基本属性、方法和事件进行自动化测试的单元测试框架很多,常用的单元测试框架根据开发语言不同,可分为 13:1 JUnit:JUnit 就是为 Java 程序开发者实现单元测试提供一种框架,使得Java 单元测试更规范有效,并且更有利于测试的集成。此框架是由 A

16、lan Ray 和Erich Gamma 开发的。2 CppUnit:CppUnit 是从著名的 JUnit 框架为 C+移植过来的。是由 Michael Feathers 开发的。3 Microsoft.NET Framework 提供的单元测试框架,包括:NUnit、CsUnit 、MbUnit 和 XU。许多.NET 开发人员都或多或少有一些使用 NUnit 的经验,它是.NET 的一个最主要的单元测试框架,是由 James Newkirk所开发的。虽然 NUnit 涵盖了.NET 应用程序单元测试的大多数必要情景,但MbUnit 可以让单元测试更进一步。MbUnit 是由 Jonath

17、an “Peli” de Halleux 首先编写的一个开源单元测试框架。最新推出的单元测试框架为 XU,此框架从现有框架中脱颖而出的因素有很多。最重要的一点是,它是由 James Newkirk 和Brad Wilson 构建的。Newkirk 是 Microsoft 负责 CodePlex 项目的产品经理,曾帮助构建 NUnit,他撰写了大量有关于单元测试的书籍。Brad Wilson 是 thedotguy上的一位资深博客作者,模式和实施方案小组的前成员,还是 Microsoft 的特别员工。这一全新框架的目标是利用在过去五年内积累的有关单元测试的最佳实践,构建一种能体现并鼓励这些实践的

18、全新框架 23。1.3 课题的意义目前,单元测试框架技术一直在不断发展,现有的单元测试框架也一直在被更新和改进,但随着 WinForm Control 的类型和复杂度不断增加,现有的单元测试框架无法准确定位 WinForm Control,尤其是无法获取 WinForm Control 的各个组成部分信息并进行测试,而且现有的单元测试框架也无法模拟鼠标和键盘的操作,因此无法测试用鼠标和键盘对 WinForm Control 操作后的结果是否正确,也无法监听鼠标或键盘触发的事件是否正确,验证数据和脚本代码维护也有诸多不便,由此可见,现有的单元测试框架已经无法满足现有 WinForm Contro

19、l 的自动化测试需求。本人通过在西安某控件开发公司一年的实习,在 NUnit 单元测试框架的基础上,设计并实现了 GUI 测试框架和 Input 测试框架,最终成功开发了这套面向 WinForm Control 的自动化测试框架,此框架不仅基本解决了现有第一章 绪论 3WinForm Control 自动化测试存在的问题,而且对于面向控件的自动化测试框架的研究具有长远的现实意义。目前,该框架已被很多日本控件公司投入使用,取得了良好的市场反映。1.4 论文的工作和结构本论文选题来自西安某控件开发公司基于面向 WinForm Control 的自动化测试系统研发项目。本人在 WinForm Con

20、trol 自动化测试的研究与设计自动化测试框架的工作经历了四个主要阶段:第一阶段:学习阶段。在原有单元测试框架的理论基础上,进一步对 NUnit单元测试框架进行了深入学习,阅读了大量自动化测试及 WinForm Control 开发技术的书籍,为后续的工作奠定了良好的专业理论基础。同时,为了更好地进行自动化测试框架的设计,学习了 C#语言和相关开发工具。第二阶段:研究阶段。对 WinForm Control 的测试特点进行分析和研究,总结了 WinForm Control 自动化测试的特点和原理,并给出了 WinForm Control 自动化测试的流程,为 WinForm Control 自

21、动化测试框架的设计提供了明确方案。第三阶段:设计阶段。根据目前 WinForm Control 自动化测试存在的问题,在之前研究方案的基础上,设计了 GUI 测试框架和 Input 测试框架,最终实现了面向 WinForm Control 的自动化测试框架。第四阶段:验证阶段。通过几个典型的测试用例,证明了面向 WinForm Control 的自动化测试框架的实用性。根据所完成的工作,将论文结构安排如下:第一章 绪论本章首先分析了课题的研究背景,然后通过介绍国内外现有的单元测试框架,分析了现有的单元测试框架无法满足 WinForm Control 自动化测试需求的原因,阐明了开发一套面向 W

22、inForm Control 的自动化测试框架的意义,最后对论文的工作进行了总结以及对各章节内容进行了安排。第二章 WinForm Control 及常用单元测试框架本章介绍了 WinForm Control 的定义及分类,并分析了几个常用的单元测试框架的原理。第三章 WinForm Control 自动化测试研究与分析本章根据 WinForm Control 的特点,研究总结了 WinForm Control 自动化测试的原理,着重研究了鼠标和键盘的事件处理,提出了 WinForm Control 的 GUI 测试思想,并给出了 WinForm Control 自动化测试的流程及分析了 Wi

23、nForm Control面向 WinForm Control 的自动化测试框架的设计与实现4自动化测试的优点。第四章 面向 WinForm Control 的自动化测试框架的设计本章详细描述了如何对 GUI 测试框架和 Input 测试框架进行设计实现,以及对结果比较方法的设计实现,并分析了面向 WinForm Control 的自动化测试框架的优点。第五章 面向 WinForm Control 的自动化测试框架的验证本章将此框架运用于 WinForm Control 的自动化测试工作中,根据具体的测试用例,运用此框架编写测试脚本,根据脚本运行的情况及测试结果报告,验证了框架的正确性和实用性

24、。第六章 结束语本章一方面对本文所研究的项目加以总结,另一方面提出进一步改进和完善该项目的方法。希望能有更多更好的面向控件领域的自动化测试框架推出,并投入实际生产当中。第二章 WinForm Control 及常用单元测试框架 5第二章 WinForm Control 及常用单元测试框架2.1 WinForm Control 的定义及分类控件(Control)是在图形用户界面(GUI)中屏幕上的一种对象,用户可操作该对象来执行某一行为。 控件是用户可与之交互以输入或操作数据的对象。控件通常出现在对话框中或工具栏上 16。WinForm Control 是控件的一种,目前,对于 WinForm

25、Control 的应用非常广泛。2.1.1 WinForm Control 的定义.NET Framework 为开发人员提供了两种控件支持。一种是 Web Control,一种是 WinForm Control。顾名思义,Web Control 是 Web 开发所需要的控件产品,而 WinForm Control 则是在设计和开发 Windows 应用程序时,用到的控件 17。WinForm Control 是可重用的控件,它们封装了用户界面的功能,可以在基于 Windows 的客户端应用程序中使用。 “Windows 窗体”不仅提供了许多现成控件,还提供了自行开发控件的基础结构。可以组合现

26、有控件、扩展现有控件或创作自己的自定义控件。WinForm Control 是从 System.Windows.Forms.Control 直接或间接派生的类。以下列表描述了开发 Windows 窗体控件的常见方案 9:1 组合现有控件来创作一个复合控件。复合控件封装有一个可以作为控件重复使用的用户界面。其中的一个示例就是由文本框和重置按钮组成的控件。可视化设计器为创建复合控件提供了有力的支持。若要创作复合控件,请从 System.Windows.Forms.UserControl 派生。基类 UserControl 为子控件提供了键盘路由并使子控件可以作为一个组进行工作。2 扩展现有控件,对

27、其进行自定义或为其添加功能。一个不能更改颜色的按钮和一个具有跟踪点击次数属性的按钮就是扩展控件的具体示例。可以通过从任何 Windows 窗体控件派生控件并重写或添加属性、方法和事件的方式来自定义 Windows 窗体控件。3 创作一个不是通过组合或扩展现有控件而形成的控件。在这种方案中,需从基类 Control 派生控件。可以添加和重写基类的属性、方法和事件。面向 WinForm Control 的自动化测试框架的设计与实现64 WinForm Control 的基类提供了客户端基于 Windows 的应用程序中的可视显示所需的机制。Control 提供窗口句柄,处理消息路由,并提供鼠标和键

28、盘事件以及许多其他用户界面事件。还提供了高级布局,并具有特定于可视显示的属性,如 ForeColour、BackColour、Height 、Width 和许多其他属性。此外,它还提供了安全性、线程支持以及与 ActiveX 控件的交互性。由于基类提供了很多基础结构,使得开发自己的 Windows 窗体控件变得相对简单。2.1.2 WinForm Control 的分类目前,微软已经推出三代控件,分别是:1 ActiveX 控件: ActiveX 控件是微软公司提供的功能强大的程序设计和开发技术,是 COM 组件开发技术的重要组成部分。它是 OLE 的第三个版本,对原先OLE 控件的最大扩展是

29、增加了 Internet 功能,它不仅可以在支持 OLE 控件的容器中使用,更可以作为一个 Internet 控件,直接成为网页的一部分。另外,ActiveX控件作为一种可重用的组件,相当于一个封装好的代码模块,它是通过其方法、属性、事件来与应用程序进行通信的,此外,ActiveX 控件是与开发语言无关的。用户在使用控件时不必考虑它是 VC 还是用 VB 等其它语言开发的,应用程序都是通过 COM 与控件进行通信的 19。可见,任何支持 ActiveX 控件的软件平台上都可以使用 ActiveX 控件,它使得不同厂商所开发的控件可以真正地组装在一起,从而令软件的生产过程类似于硬件业的各个插件的

30、装配过程一样,实现了软件的工业化,大大降低了软件的开发成本,极大地提高了软件的生产效率,实现了软件资源的共享。2 COM 控件:COM 组件是以 WIN32 动态链接库(DLL )或可执行文件(EXE)形式发布的可执行代码组成,它是遵循 COM 规范编写的,是一些小的二进制可执行文件,COM 控件可以给应用程序、操作系统以及其他组件提供服务。自定义的 COM 控件可以在运行时刻同其他组件连接起来构成某个应用程序。COM 组件可以动态的插入或卸出应用,而且必须是动态链接的,它必须隐藏(封装)其内部实现细节,必须可以在不妨碍已有用户的情况下被升级,且可以透明的在网络上被重新分配位置 24。3 WinForm Control:常用的 WinForm Control 可以分为六大类 11,分别是:(1)最根本的父控件 Form:这个类别中只包含一种控件:窗体类。这样分类的理由在于:窗体类是所有其他类的父亲(parent ) ,这里的“父亲”你可以作以下的理解。如果这里的“ 父亲” 你理解作 “容器” ,那么窗体类是所有控件的父类。这就是说,每个控件在视觉上都处在某个窗体中(或者是在别的控件中,例如

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文资料库 > 毕业论文

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。