毕业论文-安卓环境下Web服务自动测试方法研究

时间:2022-06-16 19:15:13 浏览量:

  南京邮电大学

 毕 业 设 计(论 文)

 题

 目 安卓环境下 Web 服务自动测试方法研究

 专

 业 计算机科学与技术 学生姓名

 班级学号

 指导教师

 指导单位 计算机学院、软件学院

  日期:

  2014 年 3 月 10 日至 2014 年 6 月 13 日

  毕业设计(论文)原创性声明

 本人郑重声明:所提交的毕业设计(论文),是本人在导师指导下,独立进行研究工作所取得的成果。除文中已注明引用的内容外,本毕业设计(论文)不包含任何其他个人或集体已经发表或撰写过的作品成果。对本研究做出过重要贡献的个人和集体,均已在文中以明确方式标明并表示了谢意。

  论文作者签名:

 日期:

  年

 月

  日

 摘

 要

 随着智能手机的快速普及,智能手机操作系统市场风生水起。为了让智能手机用户能够随时随地查询互联网所提供的服务,一种高效的办法就是将应用系统的功能拓展到手机终端上,让手机能够通过移动网以及互联网访问 Web 网站并处理各种各样的业务。因此,智能手机的应用软件及其需要的服务将有广阔的发展前景。

 随着安卓移动平台的发展,Web 服务在移动端的应用越来越广泛,这使软件测试研究迎来了了新的挑战。测试贯穿于软件生命周期的各个阶段,在软件测试过程中,存在着大量的重复的劳动,这无疑是对人力和财力的巨大浪费。而且,长期从事重复劳动,会导致测试人员的工作积极性降低,从而影响软件测试的质量。为把测试人员从繁琐的重复劳动中解放出来,提高软件测试的质量和效率,自动化测试的引入势在必行。

 本课题通过了解安卓平台的开发方法和理解 Web 服务以及软件测试的有关知识,学习分析基于 WSDL 接口说明的 Web 服务自动测试方法,最终在安卓平台上实现 Web 服务自动化测试。以手机号码归属地查询为例,自动生成手机号,并测试其相应归属地。

 关键词:Web 服务;软件测试;安卓;WSDL;SOAP

 ABSTRACT

  With the rapid development of smart phones, smart phone operation system markets become quite hot. In order to make smart phone users to check the Internet anytime and anywhere, services provided an efficient way to expand the function of the system will be applied to the mobile phone terminal, so that the mobile phone can access to the Websites and process a variety of business through mobile networks and the Internet. Therefore, the smart phone applications and the need for the service will have broad prospects for development.

 With the development of Android mobile platform, the use of Web Services has been increasingly prevalent in recent years on mobile terminals, which makes Software Testing has new challenges. Various stages of testing throughout the software life cycle, during Software Testing process, there are a lot of duplication of labor; this is undoubtedly a huge waste of human and financial resources. And has long been engaged in the duplication of effort will lead to the testing staff actively reduced, thus affecting the quality of Software Testing. To make testers freed from the tedious repetition of labor, improve the quality and efficiency of Software Testing, the introduction of automated testing is imperative. By understanding the development approach of Android platform and the relevant knowledge of Web Services and Software Testing and learning to analyze some automatic methods for testing Web Services based on the description of WSDL interface, it finally makes Web Services testing automatically on Android platform. Taking the inquiries of phone number attribution for example, generating the phone number automatically, and testing their corresponding attribution.

 Key words :Web Services; Software Testing; Android; WSDL; SOAP

 目

 录

 第一章

 绪论............................................................................................. 1 1.1 课题背景 .............................................................................................................. 1

 1.2 研究目的和意义 .................................................................................................. 2

 1.3 论文主要内容 ...................................................................................................... 2

 1.4 章节安排 .............................................................................................................. 3

 第二章

 相关技术简介 ............................................................................ 4 2.1Web 服务简介 ....................................................................................................... 4 2.1.1Web 服务和面向服务的体系架构 ................................................................ 4 2.1.2 简单对象访问协议(SOAP)

 ..................................................................... 5 2.1.3Web 服务描述语言(WSDL)

 ..................................................................... 7 2.2Web 服务测试简介 ............................................................................................... 8 2.2.1Web 服务测试整体结构 ................................................................................ 8 2.2.2Web 服务测试的基本方法 ............................................................................ 9 2.2.3 测试的视角.................................................................................................. 11 2.3Android 简介 ....................................................................................................... 13 2.3.1Android 系统的架构 .................................................................................... 13 2.3.2Android 开发环境介绍 ................................................................................ 14 2.4 本章小结 ............................................................................................................ 16

 第三章

 Android 环境下程序设计与实现 ............................................ 18 3.1Android 开发环境的搭建 ................................................................................... 18 3.2 手机号码归属地查询器架构设计 .................................................................... 25 3.2.1 功能需求分析.............................................................................................. 25 3.2.2 软件设计流程.............................................................................................. 26 3.3 手机号码归属地查询器的实现 ........................................................................ 27 3.3.1 查询界面...................................................................................................... 27 3.3.2 查询控制模块的实现.................................................................................. 28 3.4 本章小结 ............................................................................................................ 30 第四章

 界面实现和实验结果测试 ...................................................... 31 4.1 安卓虚拟机测试 ................................................................................................ 31 4.2 问题及分析 ........................................................................................................ 34 4.3 本章小结 ............................................................................................................ 35

 结束语 ....................................................................................................... 36 致

 谢 ....................................................................................................... 37 参考文献 ................................................................................................... 38

 南京邮电大学 2014 届本科生毕业设计(论文)

 1 第一章

 绪论 1.1 课题背景 手机作为人们日常生活必不可少的随身物品,让我们越来越离不开它,其功能已经远远超过了接打电话的范围,几乎涉及到生活的所有方面。安卓系统正是为了这种高性能的便携终端而开发的操作系统,它是 2007 年由谷歌发布的手机软件平台。它的开源性使第三方的开发者更容易对其进行操作,这也使得更多的软件设计人员支持它重视它,目前安卓系统是使用量最多的手机操作系统。

 随着时代的不断进步,科技的不断发展,人们使用的手机由不带操作系统的功能手机变为多核智能手机。运算速度越来越快,功能越来越强大。仅以以下几个例子作分析。

 (1)手机产业的发展 今天,全世界有超过 46 亿的手机在使用中,是 1990 年的 370 倍。目前美国人均 0.87 台手机,共计约二亿七千万部手机;俄罗斯人均 1.3 台手机,共计约一 亿八千七百万部手机;日本人均 0.86 台手机,共计约一亿一千万部手机;中国人均 0.47 台手机,共计约六亿三千四百万部手机。

 随着芯片集成度及方案商技术的提高,国产手机在 2012 年呈现了爆炸式增长。从出货量上看,2013 年 1 到 5 月手机出货量为 1.97 亿部,同比增长 54.7%,占国内手机出货量的 79.5%;其中智能机出货量为 1.42 亿部,同比增长 182.1%,占国内智能机出货量的 76.9%。

 (2)全球智能手机产业的发展 据统计 2013 年 1-8 月,全球智能手机出货量为 2.86 亿部,同比增长 100.3%,市场占有率达到 72.2%,其中 Android 手机出货量 2.69 亿部,占同期智能手机出货量的 94.1 %,现在智能手机市场上以谷歌公司的安卓操作系统为主导,微软、苹果和诺基亚的操作系统紧随其后。安卓操作系统是一个最受欢迎的、免费开源的、基于 Linux 的手机操作系统,其开放性优于其他手机系统,是谷歌公司 2007年公布的。由于它的开源性,客户可以自己编写并制定其界面及操作方式,是第一个完全为移动设备开发的,具有真正开源意义的操作系统。在安卓平台的架构上主要分成四部分,分别是界面部分、应用程序、总线和操作系统。常用于手机、PDA、平板电脑,以及各式各样的信息终端等。本论文的手机号码归属地查询器就是基于安卓平台设计开发的。

 (3)智能手机应用程序 APP 市场的发展 就国外媒体 Facebook 移动注册用户数据分析:Android 下载应用的注册人数1.92 亿,且注册用户增长率也再迅猛增加。第三方站点 148apps.biz 公布的安卓App Store 应用总量达到 552,247 个,其中视频娱乐类的应用排在第三,仅次于游

 南京邮电大学 2014 届本科生毕业设计(论文)

 2 戏和电子书,总量为 56,998 个,比重为 10.32%。

 由于 Web 服务本身特殊的性质,很多传统的软件测试技术对于 Web 服务已失去其原有的功效。因此需要研究针对 Web 服务的新的测试方法和技术,从而为服务软件的功能、性能、质量和可靠性方面提供有力的支持。目前,国内外已经开始对 Web 服务测试进行研究并取得了一些初步的研究成果。

 1.2 研究目的和意义 Web 服务已经逐渐成为 Internet 上的重要组件之一,Web 服务天生的优点使它完全适合于为移动设备提供服务:智能手机的不断普及,移动网民越来越多。Web 服务和移动设备的结合,必将推动移动应用和移动互联网的发展。

 Web 服务采用 SOA 体系架构,引入了一种新的 Web 应用的开发、部署和集成的模式。Web 服务是一组部署在应用服务器上的软件构件,其服务接口及绑定形 式 可 以 通 过 W3C 等 国 际 标 准 组 织 制 定 的 基 于 XMIJ 的 标 准 ( 如WSDL,UDDI,SOAP 等)定义、描述、检索和调用,是实现各种异构平台上的应用间互连互通的主要技术方向,松散耦合性、简单性、高度可集成性、规范性、开放性和行业支持是 Web 服务的几大特点和优势。

 在此基础上,我们提出安卓环境下的 Web 服务自动测试方法研究这一课题。为了保证 Web 服务的质量,必须对其进行详尽的测试,而由于 Web 服务是基于接口设计而实现的,因此采用自动化的测试方法对于提高 Web 服务测试的质量和效率显得尤为重要。

 1.3 论文主要内容 本课题理解 Web 服务和测试相关知识,了解分析基于 WSDL 接口说明的Web 服务自动测试方法。在当前 Web 服务和移动平台发展的大背景下,选择在Android 平台下研究 Web 服务的自动化测试,研究在安卓环境下 Web 服务的解决方案并实现。本文主要描述了 Web 服务及其测试的相关理论知识和 Android平台下 Web 服务开发,最后介绍一种基于 Android 的 Web 服务自动测试研究与实现的实现方案。

 Android 平台手机号码归属地查询软件的开发是基于 Android 手机平台,运用 Java 语言,从 Google 上获取手机号码归属地信息。该应用可以实现手机号码归属地的查询功能,并且支持手机号的随机生成。之所以选择 Java 语言,是因为他有面向对象、多线程、可靠安全等特性,且它的编译和使用和平台无关,即有良好的可移植性。编辑工具 Eclipse 可以对查询器进行编写、仿真和测试,它是一个开放源代码的、基于 Java 的可扩展开发平台。

 本文主要涉及该项目的研究背景、设计流程并实现功能,最后进行项目测试。

 南京邮电大学 2014 届本科生毕业设计(论文)

 3 1.4 章节安排

 本论文共分 4 个部分:

 第一章为绪论,对论文的课题背景、研究的目的和意义以及论文的主要内容进行了概述。

 第二章主要对相关技术进行介绍,包括 Web 服务、Web 服务的软件测试和Android 环境的相关理论知识。

 第三章主要介绍了 Android 平台的搭建,手机号码归属地查询器的设计和实现。

 第四章给出测试结果,并对实验过程当中出现的问题进行分析。

 南京邮电大学 2014 届本科生毕业设计(论文)

 4 第二章

 相关技术简介 2.1Web 服务简介2.1.1Web 服务和面向服务的体系架构 (1)Web 服务 Web 服务是一种面向服务的架构的技术,通过标准的 Web 协议提供服务,目的是保证不同平台的应用服务可以互操作。

 根据 W3C 的定义,Web 服务(Web Service)是一个软件系统,用以支持网络间不同机器的互动操作。网络服务通常是许多应用程序接口(API)所组成的,它们通过网络,例如国际互联网(Internet)的远程服务器端,执行客户所提交服务的请求。Web 服务过程中会由服务器提供一个机器可读的描述(通常基于WSDL)以辨识服务器所提供的 Web 服务。另外,虽然 WSDL 不是 SOAP 服务端点的必要条件,但目前基于 Java 的主流 Web 服务开发框架往往需要 WSDL 实现客户端的源代码生成。

 概括来说,Web 服务的核心标准包括基本标准 SOAP、WSDL 和 UDDI。

 1)SOAP:一个基于 XML 的可扩展消息信封格式,需同时绑定一个传输用协议。这个协议通常是 HTTP 或 HTTPS,但也可能是 SMTP 或 XMPP。

 2)WSDL:一个 XML 格式文档,用以描述服务端口访问方式和使用协议的细节。通常用来辅助生成服务器和客户端代码及配置信息。

 3)UDDI:一个用来发布和搜索 Web 服务的协议,应用程序可借由此协议在设计或运行时找到目标 Web 服务。

 (2)面向服务的体系架构 Web 服务采用了面向服务的体系架构(SOA)。SOA 的主要组成部分涉及三方面,这是由 SOA 中的三个主要角色决定的,而三个主要角色对应于体系结构中的相应模块。这三个角色分别是服务提供者(Service Provider)、服务注册(Service Registry)(或称为服务注册中心、服务注册机构等)和服务请求者(Service Requester)。

 在 SOA 中,当应用程序利用 Web 服务在三个角色之间进行交互时,必然涉及三个主要操作。这三个操作分别是:发布(publish)、查找(find)和绑定(bind)。如图 2.1 描述了 Web 服务中涉及的主要角色和构建及其相互之间的关系。服务所有者通过向服务注册中心注册服务描述来发布(Publish)服务,并通过服务访问平台提供服务;服务提供者在服务注册中心搜索(Find)满足需求的服务,根据其服务描述解析服务调用方式,并动态绑定(Bind)服务提供者,获取服务。

 南京邮电大学 2014 届本科生毕业设计(论文)

 5

  UDDIRegistryServiceRequesterService ProviderFindUDDI,WSDLBindPublicationUDDI,WSDLServiceDescriptionServiceDescriptionService 图 2.1

 Web 服务体系架构

 2.1.2 简单对象访问协议(SOAP)

 (1)SOAP 概述

 常规的分布式通信协议有一个对称的需求:通信连接的两端需要使用同一个分布式对象模型来实现,并且需要开发一些公用的库进行部署,如 CORBA,DCOM。为了解决这些制约,就开发了简单对象访问协议(SOAP)。SOAP 有助于在各类程序和平台之间实现互操作性,从而使更多的用户可以访问这些已有的应用。

 SOAP 是一个基于 XML 的通信协议,它在两个计算机之间交换消息,而无需考虑这两个计算机的操作系统、编程环境或对象模型框架。SOAP 是 Web 服务消息传输协议的事实上的标准。SOAP 的主要应用是应用程序间的通信。当使用 HTTP 作为请求和响应参数时,SOAP 使用 XML 作为编码模式。SOAP 方法是一个遵循 SOAP 编码规则的 HTTP 请求和响应。SOAP 端点是一个基于 HTTP的 URL,该 URL 标识了方法调用的目标对象。

 SOAP 是一个轻量级连线协议,用于在不同系统间交换结构化和类型化信息,从而实现远程方法调用。“轻量级连线协议”这一术语意味着 SOAP 仅仅具有两个基本特征。SOAP 能接收或发送 HTTP(或其他的)传输协议包,并可处理XML 消息。

 SOAP 的目的很明确:在网络上交换数据。SOAP 尤其关注封装、XML 数据的编码以及定义数据发送和接收的规则。简而言之,SOAP 是一个在服务实例之间传送消息的网络应用协议,而这些服务实例是使用 WSDL 进行描述的。SOAP本身并没有定义注入编程模型等任何应用语义,也没有定义任何具体语义的实

 南京邮电大学 2014 届本科生毕业设计(论文)

 6

  现。然而对于模块内的编码数据,SOAP 定义了一个简单的机制,可提供模块化打包模型和编码机制。这使得 SOAP 可以使用在许多不同的系统中,诸如消息传送系统,RPC 等。SOAP 也不关心 SOAP 消息的路由、可靠的消息传送、防火墙的穿越等问题。然而,SOAP 提供了一个框架,可以采取可扩展的方式传送具体的应用信息。

 在基于 XML 的消息传送分布式计算中,充当请求者或提供者的互联网节点的基本需求是:

 1)能够构造或解析 SOAP 消息; 2)能够在网络上通过发送或接收消息进行通信。虽然 SOAP 可以使用不同的协议(如 HTTP, FTP 或 RMI)来传输消息,定义远程系统及初始化通信,然而最适合 SOAP 的传输协议还是 HTTP。基于 HTTP 的 SOAP 意味着,SOAP 消息将作为 HTTP 请求或响应的一部分进行发送,从而在支持 HTTP 的任何网络上都很容易地进行通信。

 (2)SOAP 的使用 每一个 SOAP 消息本质上都是一个 XML 文档。SOAP 消息包含一个<Envelope>元素,<Envelope>元素必须包含一个<Body>元素,并可以包括也可以不包括一个<Header>元素。SOAP<Header>元素包含一些信息块,这些信息块主要关于如何处理消息。SOAP<Envelope>是 SOAP 消息必须运载的主要的端到端信息。

  HTTP 与 SOAP 协同工作跟与其他协议协同工作会存在细微差别。HTTP 是无状态协议,对两个计算机之间由请求(从客户端到服务器)和响应(由服务器返回客户端)组成每一个连接都是如此。每一个请求和相应都被分成两部分,headers 部分和 body 部分。当然,客户端和服务器可以加载任何他们需要的 headers,向各种特定的通讯协议开放。一个 SOAP 中 body 的请求和响应在 XML 中(如果以前没有使用过 XML 也无须担心,用户并不需要了解太多 XML 与 SOAP 是怎样工作的也可以正常使用)。每一个 SOAP 消息的请求和响应,由一个可选的 SOAP header 和必需的 SOAP body 组成,装在 SOAP“信封”中。信封标识也属于 SOAP 的内容,并且设置了用于命名空间的其他内容。headers 描述 body 中的数据,body 中包含了方法调用或者调用结果。为了通过 SOAP 调用远程服务器上的一个对象,我们要打开连接到相应 URL 的 HTTP,通过SOAP Action 的 header 部分辨识对象。我们发送一个包含 SOAP 信封的 XML 文档,SOAP 中的 headers 部分和 body 部分要通过调用对象方法和方法需要的参数来确定。客户端要解析 SOAP 服务器返回的响应,提取其中的数据结构,在需要时可使用它们。SOAP 服务器会做出后续行动,接受 SOAP 请求,解析其内容并在本地计算机上传递参数调用相应的方法。服务器端向客户端返回一个

 南京邮电大学 2014 届本科生毕业设计(论文)

 7

  或多个所需值的 SOAP 响应。

 综上所述,SOAP 特点可总结如下:1)是一种通信协议;2)用于应用程序之间的通信; 3)是一种用于发送消息的格式;4)被设计用来通过因特网进行通信;5)独立于平台;6)独立于语言;7)简单并且可扩展;8)允许绕过防火墙。

 2.1.3Web 服务描述语言(WSDL)

 (1)WSDL 概述 Web 服务描述语言(Web Services Description Language, WSDL)是用 XML文档来描述 Web 服务的标准,是 Web 服务的接口定义语言,它用一种和具体语言无关的抽象方式定义了给定 Web 服务收发的有关操作和消息,与 XML 一样,具有可扩展性。通过 WSDL,可以描述 Web 服务的以下基本属性:服务做些什么;服务所提供的操作(方法);如何访问服务;服务交互的数据格式以及必要协议;服务位于何处;协议相关的地址,如 URL 等。WSDL 是一种 XML Application,它将 Web 服务描述定义为一组服务访问点,客户端可以通过这些服务访问点对包含面向文档信息或面向过程调用的服务进行访问(类似远程过程调用)。WSDL 首先对访问的操作和访问时使用的请求响应消息进行抽象描述,然后将其绑定到具体的传输协议和消息格式上以最终定义具体部署的服务访问点。相关的具体部署的服务访问点通过组合就成为抽象的 Web 服务。

 WSDL 经常使用 SOAP 和 XML 架构的组合,在互联网上提供 Web 服务。一个客户端程序连接到 Web 服务就能“读取”WSDL 文件,决定在服务器端采取怎样合适的操作。使用的任何特殊的数据类型都嵌入在 XML 架构中的 WSDL 文件中。然后客户端使用 SOAP 来调用 XML 或 HTTP 文件中列出的操作之一。

 WSDL 规范事实上分成两部分:服务接口定义(抽象接口)和服务实现(具体端点)。这样可以分别地、独立地定义和复用各个部分:

 服务接口定义描述了通用的 Web Service 接口定义的结构。服务接口定义包含服务所支持的所有操作、操作参数和抽象数据类型。

 服务实现部分将抽象接口绑定到具体的网络地址、具体的协议和具体的数据结构。Web Service 客户端可以绑定到一个具体的实现并调用服务。

 (2)WSDL 结构

  Web Service 接口定义描述了消息、操作和端口类型,并且具体的描述保持了平台独立性和语言独立性。Web Service 接口定义被视为 Web Service 的抽象定义,它并不携带任何具体的部署信息。可以使用 Web Service 接口定义来描述服务所提供的具体的接口类型。Web Service 接口定义精确地描述了需要发送的消息的类型,以及如何应用各种 Internet 标准消息传送协议和编码模式,以便用与服务提供者的规范相兼容的方式格式化消息。

 南京邮电大学 2014 届本科生毕业设计(论文)

 8

  一个基本的 WSDL 文档包含 7 个重要的元素。下面将分别介绍这几个元素以及他们的作用。

  1)Types - 数据类型定义的容器,它使用某种类型系统(一般地使用 XML Schema 中的类型系统)。

  2)Message - 通信消息的数据结构的抽象类型化定义。使用 Types 所定义的类型来定义整个消息的数据结构。

  3)Operation - 对服务中所支持的操作的抽象描述,一般单个 Operation 描述了一个访问入口的请求响应消息对。

  4)PortType - 对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持。

  5)Binding - 特定端口类型的具体协议和数据格式规范的绑定。

 6)Port - 定义为协议数据格式绑定与具体 Web 访问地址组合的单个服务访问点。

 7)Service - 相关服务访问点的集合。

 2.2Web 服务测试简介

 2.2.1Web 服务测试整体结构 根据 Web 服务架构和业务模型,Web 服务测试可分为三个层次:基础设施测试、独立的 Web 服务测试以及 Web 服务集成测试,如图 2.2 所示。同时,测试组织和管理是 Web 服务测试的三个层次中都需要解决的问题,对测试的系统性、有效性至关重要。

 集成的Web服务测试单独的Web服务测试Web服务基础设施验证及确认测试组织及管理 图 2.2

 Web 服务测试整体结构

 (1)Web 服务基础设施的验证与确认

  虽然标准化和开放性是 Web 服务的主要宗旨,但与传统的应用系统相比,Web 服务中间件的稳定性和可靠性相对薄弱。一方面,是由于 Web 服务的整个

 南京邮电大学 2014 届本科生毕业设计(论文)

 9

  技术架构还尚未成为成熟的产业标准。在 W3C 联盟以及相关研究机构的大力支持下,标准规范体系还处于不断发展和完善的过程中,不同的标准之间的概念模型和表示体系可能互不兼容,并进一步导致相关应用程序的不兼容。

 另一方面,Web 服务规范体系采用 XML 作为基本的编码语言。由于 XML技术的简单、灵活、可伸缩、易定制,基于 XML 数据描述和 XMI, Schema 数据建模定义的 Web 服务的协议栈具有标准化和开放性的特点。但是同时,XML 为描述性语言,其通用性和灵活性为协议的可证明性提出了挑战。当 Web 服务用于高可信性或实时要求较高的应用中,需要更严格的验证方法。例如,SOAP RPC(Remote Procedure Call)是 Web 服务的基础和核心协议,由于编码格式的不同,SOAP RPC 与传统的 DCE RPC 及 ONC RPC 采用了完全不同的消息映射和消息处理机制。SOAP 协议还处于完善过程中,对于 SOAP 协议本身的验证还有待于进一步加强。

 ( (2)独立的 Web 服务测试 Web 服务首先作为独立的功能节点发布,再通过工作流定义和解析动态集成为完整的业务流程。独立的 Web 服务测试就是从以下三个方面保证各服务节点的质量:

  1) 服务的实现应在功能、性能等各方面与发布的服务描述相一致。为验证一致性,除服务提供者外,服务中介及用户都应能在一定的安全约束下,远程测试该服务。

  2) 由于服务发布的开放性,对于每一个服务请求,可能存在多个满足需求的服务描述。服务中介应能根据一定的度量和评价标准,对多个服务进行测试、比较和评估,并依照需求的满足程度排序。

 3) 在服务实现的演化过程中,应建议一定的机制来支持对不同版本的跟踪及回归测试。

 (3)集成的 Web 服务测试 通过对服务流描述的解析,Web 服务可以动态地集成。Web 服务集成的描述、解析和执行将是 Web 服务区别与其它分布式计算技术的一个主要特征。目前已经提出了多种 Web 服务描述语言,如 IBM 的 WSFL、微软的 XIANG 以及IBM 的 BPEL4WS。

 集成的 Web 服务测试就是在服务流描述执行前,通过静态验证以及动态模拟的方法,确认服务描述能够正确地描述业务需求,能够由服务中介正确地解析,并能由所有服务节点正确地执行。

 2.2.2Web 服务测试的基本方法

 (1)易测试性

  软件的易测试性是指使用一定的测试策略迫使软件中存在的故障被暴露的

 南京邮电大学 2014 届本科生毕业设计(论文)

 10

  概率。软件的易测试性设计是在软件的设计和编码中考虑测试问题,一般包括合约式设计(Design by Contract)、内建式测试和内建式自测试等几种方法。为了对Web 服务进行充分、全面的测试,其易测试性问题也将是测试者重点考虑的问题。由于当前的 Web 服务描述文件(WSDL)中只包括了输入/输出的数量、每个输入/输出的变量类型、输入的顺序和输出返回的顺序以及如何调用该 Web 服务的信息,为了执行 Web 服务的黑盒测试和回归测试,以上这些信息还远远不够。现在已有一些学者正对如何扩展服务的描述文件进行研究,也有些研究人员提出由服务开发者提供一些测试用例,作为提供者/请求者间合约的一部分,并连同服务描述文档一同发布,以供集成者和用户测试使用。

  此外,Web 服务测试与传统软件测试的一个很大的不同在于 Web 服务实现时并未包含用户接口。因此,我们在测试 Web 服务前需要构建一个测试客户端,用于从测试人员那里获得测试输入,然后向服务发送请求并接收和解析服务的响应。

 (2)功能测试

  功能测试是 Web 服务测试中最基本的一项测试。如果某个 Web 服务不能正确地工作,那么它的性能、可靠性、安全和互操作性等问题将无从谈起。Web服务的功能测试的目标很明显,那就是保证 Web 服务对特定的用户请求能做出正确的响应。其测试的主要内容包括:对于允许的输入数据是否返回期待的输出?在边界值输入的条件下服务做出何种反应?当一个出错条件发生时将会出现什么样的状况?是否保证其预期的安全或授权要求?是否支持所有期望的通讯协议?

  在这个过程中,作为服务的开发者,他们拥有服务的代码,可以为服务设计面向结构和面向功能的测试用例,在服务发布之前对其进行充分的测试以保证期望的功能。而服务提供者、集成者、服务中介和用户只获取服务的接口描述文档,Web 服务对他们而言就是一种 Web 组件,因此他们可以使用组件测试的相关技术。

 (3)非功能性测试

  当请求一个服务时,服务使用者和服务提供者间应遵循服务级别协议(Service-level Agreement, SLA)。SLA 是一种合法的合约,在合约中服务提供者列出了其对于某特定 Web 服务所保证的服务质量(QoS)的级别。它通常是服务提供者和用户经过协商以后达成的一致协议。它的一个重要功能是解决服务质量问题,服务若未能保证其期望的服务质量的情形都被视为对 SLA 协议的违背。因此,我们应加强 SLA 的测试。与此测试相关的 QoS 属性包括以下几个方面。

  1)可用性(availability)。反映了 Web 服务做好准备(即可用)的可能性。较高的可用性意味着该服务更有可能在给定时间对一个请求进行处理。可用性常常用

 南京邮电大学 2014 届本科生毕业设计(论文)

 11

  百分数来度量,例如一个 Web 服务的可用性可通过平均故障间隔时间和平均修复时间的百分率比值来表示。

  2)可访问性(accessibility)。反映了能访问服务的用户群体和访问服务的便易程度。

  3)完整性(integrity)。完整性描述了 Web 服务能保证其交易执行正确性的可能性。

  4)性能(performance)。性能是反映 Web 服务质量的一个重要方面。主要包括两个因素:吞吐量(throughput)和响应时延(latency)。较大的吞吐量和较短的响应时延代表高的可靠性。吞吐量表示在给定时间内 Web 服务所处理的请求的数量;响应时延表示服务对某个请求做出响应所花费的时间的长短。吞吐量越大,响应时延越短,性能就越好。

  5)可靠性(reliability)。反映了 Web 服务即使是在系统或者网络出现故障的情况下能够正确运行并提供持续服务的能力。一个 Web 服务的可靠性通常是由每月或每年交易失败的次数来表示。

  6)安全性(security)。包括诸如身份验证、加密和数字签名的技术和过程。一般来说,SLA 合约中定义了某特定 Web 服务所需的一定的安全性。因此,服务提供者就必须保证那个级别的安全性。

 (4)回归测试 在 SOA 体系结构下,只有服务提供者掌握着服务的演化和升级情况,这给回归测试带来了很大的复杂性。我们知道,回归测试是在对软件做了修改后,为保证修改并未带来新的错误而进行的重新测试,这就需要服务的使用者和系统的集成者被告知服务是否发生变更,然而,在实际应用中,服务提供者并不一定知道有哪些用户正在使用该服务,所以提供者也就无法提醒用户服务的接口或是实现已经发生了改变。例如,在某个基于 Web 服务的应用的整个生命周期中,服务可能改变它自身的功能或 QoS 而保持服务的接口不变,这样的话就可能会影响整个应用的系统行为,这可以视为对 SLA 协议的违背。因此,所有使用该服务的应用都需进行回归测试。

 2.2.3 测试的视角 在进行 Web 服务测试的时候,通常可以从服务开发者,服务提供者,服务集成者,UDDI 注册中心和用户五个角度测试。

 (1)服务开发者

  作为服务的开发者,他们主要的目标就是要发布一个高可靠性的服务。因此,在开发过程中,他们测试服务,最大程度地发现程序中存在的缺陷。从这一点来讲,Web 服务开发者与传统的软件开发者没有较大的不同点,他们同样都可以利用白盒测试技术检测程序中存在的错误;在程序做出修改后,为防止其引入新的

 南京邮电大学 2014 届本科生毕业设计(论文)

 12

  错误,回归测试也是必需的。另外,服务开发者也可能试图评估服务的非功能属性及其处理异常情况的能力。尽管在这种情况下,测试代价比较有限(因为开发者测试自己的服务并不存在支付费用的问题),但是这样的非功能性测试却不能反映服务真正运行时的情况,因为它并没有考虑到提供者和使用者的基础设施配置、网络配置情况和负载等问题。

 (2)服务提供者

  服务提供者和服务请求者之间应就 Web 服务所保证的服务级别问题做出协商,这就是 SLA 合约。服务提供者应测试服务,以确保其符合 SLA 合约中服务级别的约定。但是与开发者不同的是,提供者只能采用黑盒测试的方法,因为服务对外只显示其接口信息。与服务开发者类似,提供者所进行的非功能性测试也未反映使用者的基础设施配置、网络配置情况和负载等真实的运行时情况。服务提供者了解服务升级和变更的情况,但不了解服务具体做了哪些修改,所以他们在服务变更后能及时地进行回归测试。

 (3)服务集成者 服务集成者在构建自己的组合应用过程中进行测试的主要目的是为确保任何绑定到组合应用中的服务都能满足其功能性和非功能性的要求。然而,SOA结构的动态绑定的特性给他们的测试工作带来了很大的挑战:

 1)被绑定的服务可以是众多候选服务中的任何一种,甚至是未知的服务; 2)QoS 测试需考虑所有可能的绑定; 3)集成者并不知道服务是否已发生了变更,因此回归测试变得十分困难。

 (4)UDDI 注册中心

  作为服务的发布者,UDDI 注册中心需要对注册服务的质量进行评估,其评估结果将作为服务检索的依据。一般来说,主要从两个方面来考虑 UDDI 端的测试:一方面 UDDI 服务器需要保证被注册的服务具有一定的质量,另一方面 UDDI服务器除了知道服务的具体供应商以外,还需要向服务请求者提供最能满足用户需求的服务。

 (5)用户

 就服务的使用者而言,他们仅仅关注在自己的应用中使用服务并能保证其能正常工作。对他们来说,SOA 典型的动态特征既有其优越的地方,也有其令人不适的缺陷:一方面,动态性给应用带来了良好的性能、附加的特色或是开销的削减;另一方面,我们很难预测请求的响应时间和服务的可用性。此外,用户测试需要耗费大量的资源和花费:如用户在测试时需反复地调用服务,而有些服务对每次的使用都要收取一定的费用,这在一定程度上增加了用户端测试的开销。一种可能的策略就是服务提供者为用户测试引入特殊的考虑,如提供服务的部分功能供用户测试使用,或者限制用户的使用次数(当超过使用次数限制时才收取

 南京邮电大学 2014 届本科生毕业设计(论文)

 13

  一定的费用)。

 2.3Android 简介 2.3.1Android 系统的架构 Android 是基于 Linux 开放性内核的操作系统,是 Google 公司在 2007 年 11月 5 日公布的手机操作系统,它采用了软件堆层(Software Stack)的架构,主要分为三部分。底层 Linux 内核只提供基本的功能。其他的额应用则由各软件公司自行开发,部分程序以 Java 开发。Android 不仅是一个操作系统,更是一个开源的体系架构。Android 软件平台从上到下主要由五个部分构成:应用程序、应用程序框架、程序库、Android 运行库以及 Linux 内核。

 (1)应用程序层是由运行在 Android Dalvik 虚拟机上的应用程序构成。该层它包括电话簿、地图、浏览器等常用的手机应用程序。Android 嵌入式平台的应用程序与其他手机系统平台相比更注重灵活性和个性,比如开发人员可以根据自己的爱好设计出个性化的电话簿、地图等应用程序,而不像其他手机系统直接固化这些系统软件。Android 的应用程序通常涉及用户界面和用户交互。Android本身提供了桌面(Home)、联系人(Contact)、电话(Phone)和浏览器(Browsers)等众多的核心应用。所有的核心应用都使用 Java 语言编写,同时开发者可以使用应用程序框架层的 API 实现自己的程序,这也是 Android 开源优势的体现。

 (2)应用程序框架层主要由消息管理器、资源管理器、视图管理器等开发人员可以直接调用的应用组件组成,这些组件是设计人员从事 Android 应用程序开发的基础,是 Android 系统为方便开发人员直接封装好的应用组件,同时也可以对这些组件进行继承开发出个性化的应用程序。

 (3)程序库(Libraries):

 Android 本身还包含了一整套核心库,能被系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。核心库主要包括:

 1)界面管理:管理界面布局,并且为应用程序提供转换图层的无缝融合。

 2)媒体库:支持录制和播放多种格式的音视频文件。

 3)SQLite 库:具有强大功能的轻型关系型数据库引擎。

 4)SGL:2D 的图形引擎 5)OpenGL:使用硬件 3D 加速或者使用软件 3D 加速。

 6)FreeType:管理向量字体和位图字体的显示。

 7)WebKit:网络浏览器引擎,支持 Android 浏览器和可嵌入的 Web 视图。

 (4)Android 运行库(RunTime):

 所有的 Android 应用程序都运行在它自己的进程里,该进程是一个 Dalvik虚拟机的实例。Dalvik 虚拟机是 Google 自主研发的,它被设计成一个设备,可

 南京邮电大学 2014 届本科生毕业设计(论文)

 14

  以同时高效地运行多个虚拟系统。Dalvik 在保证 API 方面兼容的同时,针对移动手机进行了优化,占用更小的资源,提高了运行效率。Dalvik 虚拟机依赖于底层Linux 内核提供的功能,如线程机制和内存管理机制。

 (5)Linux 内核层:

 Android 基于 Linux2.6 内核来提供系统的核心服务,如安全性,内存管理,进程管理,网络协议栈和驱动模型。Linux 内核也同时作为硬件和软件栈之间的抽象层。从总体架构中看,Android 平台显示出了自身的特点,如集成了 WebKit浏览器、Dalvik 虚拟机等模块。这些模块的应用也成为了 Android 开发的焦点,开发者可以利用 Android 提供的模块接口,开发出具有特色的应用程序。

 在 Android 架构中,底层的 Linux 内核使用 C 语言编写,Libraries 釆用 C 或者 C++编写,但是应用程序框架层、应用程序层和运行时环境中的 Android 核心库采用 Java 语言编写,也就是说 Android 虽然底层用的是 C 或者 C++但是应用程序的开发则用的是 Java。这样能在短时间内为 Android 提供大量的应用软件,因为 Java 的开发周期较短。一个大量应用程序作支持的智能手机平台,才会被用户喜欢,才能被市场接受。

 2.3.2Android 开发环境介绍 (1)Android 运行环境 Android 没有使用 Java 自带的运行环境来执行应用程序,而是采用 Android系统自己的运行环境来执行。Android 运行环境主要由虚拟机和核心库两个部分组成。虚拟机主要用来运行 Android 应用程序,Android 应用程序只能在 Android系统下运行且拥有独立进程,利用一个主控平台的资源,可以使多个虚拟机同时运行,通过 SDK 中的 dx 工具将程序转化成可执行文件,这种文件采用新的算法对占用内存空间得到明显改善,Dalvik 是基于 Linux 下的虚拟机,它的一些重要功能和 Linux 类似,这种类似体现在操作体统对线程的管理上,以及应用程序对内存的占用上体现出来的;核心库为 Android 系统提供了 Java 语言中库文件的很多功能,这样就可以调用 Java 的库函数,就可以和调用 Android 库函数一样了。

 为了让程序员更快的学习 Android 系统开发,降低对 Android 开发的准备时间以及难度,Android 函数库中里包含了很多 Java 程序所需要的函数库,如Network, Datastructure, Filesystem, Uutilities 等,这样做能够使 JavaSE 的类库和Android 的虚拟机的类库更为相似,进而提高其兼容性,短时间内就能让 Google Android 系统能够拥有大量的可执行的应用程序。另外,Android 函数库中里包含 Apache Harmony 类库,可以让 Google 安卓编程不用被 SUN 束缚,进行开源式的开发产品。

 (2)布局结构

 南京邮电大学 2014 届本科生毕业设计(论文)

 15

  每个安卓应用程序的布局文件包括主要包括配置文件和图片文件,这些文件的整体被称之为安卓应用程序的资源文件,它和程序源码以及安卓系统编译生成的二进制文件组成了应用程序的基本架构。架构配置文件以.xml 为后缀,被命名为 AndroidManifest 用于存放应用的配置文件,负责管理整个程序的信息资源。在 Android 系统中,任何程序的启动都需要 AndroidManifest.xml 来做调动,或者任何一个应用程序中不同界面的跳转,都是一个触发事件 Activity 的执行,而AndroidManifest.xml 就是用来支配相关资源并作出回应。

 Android 系统应用程序的界面布局方式主要有几下几种:

 线性布局(LinearLayout):将各模块和控件水平或垂直摆放。

 相对布局(RelativeLayout):根据参照的控件,修改各模块的相对坐标。

 绝对布局(AbsoluteLayout):根据设定好的 X,Y 坐标值,摆放各控件。

 单帧布局(FrameLayout):每一个控件都会覆盖上一个打开的控件。

 表格布局(TableLayout):以列的形式管理控件。

 这几种布局方式既可以相互独立又可以相互包含,它们是安卓系统应用程序布局结构的基础

 Android 系统应用程序严格按...

相关热词搜索: 毕业论文 环境 测试