




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海师范大学硕士学位论文基于w e b 日志的测试集生成方法设计与研究 摘要 对于w e b 应用系统,创建有效的测试用例是非常困难的。为了全面测试一个w e b 应用系统的功能,测试用例必须能够测试复杂的应用系统状态以及并发的用户交互。 目前,应用于w e b 应用系统的测试方法主要有:基于模型的白盒测试,基于用户会话 的测试,基于时间划分的w e b 日志测试方法等。 论文在分析w e b 应用的系统结构以及测试的相关技术,w e b 挖掘技术和w e b 日 志格式、预处理方法等内容的基础上,研究了基于模型的自盒测试,基于用户会话的 测试和基于时间划分的w e b 日志测试等三种方法的主要思想,总结和比较了它们各自 的优缺点。发现了基于用户会话的测试方法在构造测试集的过程中存在的问题,包括 忽略了多用户交互,服务器状态等。针对基于时间划分的w e b 曰志测试方法存在的问 题,如可能拆分或者合并真实的用户会话,本论文提出了基于访问序列的w e b 日志测 试方法。 基于访问序列的w e b 日志测试方法,通过利用w e b 服务器日志数据,寻找有序序 列来创建测试用例,既可以测试多层次的用户交互和服务器状态相关性,又可以在一 定程度上保证用户会话的完整性。 论文最后通过实验比较了基于时间划分的w e b 日志测试方法与基于访问序列的 w e b 日志测试方法在生成测试集的规模大小,覆盖率和故障检测方面的有效性。实验 表明,基于访问序列的w e b 日志测试方法在覆盖率和故障检测方面更加有效,测试集 规模适中。 关键词:w e b 应用系统,w e b 测试,w e b 数据挖掘,用户会话,w e b 日志,访问序列 a b s t r a c t c r e a t i n ge f f e c t i v et e s tc a s e si sad i f f i c u l tp r o b l e m ,e s p e c i a l l yf o rw e ba p p l i c a t i o n s i n o r d e rt ot e s tw e ba p p l i c a t i o nc o m p l e t e l y ,t e s tc a s e ss h o u l ds a t i s f yt e s t i n gr e q u i r e m e n t sa n d c a nt e s tc u r r e n tu s e rb e h a v i o r sf o rc o m p l e xa p p l i c a t i o ns t a t e a tp r e s e n t ,t h e r e a r es o m e a p p r o a c h e so nt e s t i n go fw e ba p p l i c a t i o n :m o d e lb a s e dw h i t e b o xt e s t i n g ,u s e rs e s s i o n b a s e d t e s t i n g ,t i m eb a s e dw e bl o gt e s t i n g t h i st h e s i s ,w ea n a l y s i st h es t r u c t u r ea n dt e s t i n gt e c h n o l o g yo fw e ba p p l i c a t i o n ,w e b m i n i n ga n dw e bl o g ,s t u d ym o d e lb a s e dw h i t e - b o xt e s t i n g ,u s e rs e s s i o nb a s e dt e s t i n ga n d t i m eb a s e dw e bl o gt e s t i n g ,s u m m a r i z ea n dc o m p a r et h e s ea p p r o a c h e s a d v a n t a g e sa n d s h o r t c o m i n g s w ef i n du s e rs e s s i o nb a s e dt e s t i n ga p p r o a c h s h o r t c o m i n g ,i n c l u d ei n g n o r i n g m u i l t u s e r sa l t e m a t i o na n dt h es t a t u so fs e r v e r t i m eb a s e dw e bl o gt e s t i n ga p p r o a c hh a s s o m es h o r t c o m i n g s ,s u c ha ss p l i t t i n go rc o m b i n i n gu s e rs e s s i o n i no r d e rt os o l v et h e s e p r o b l e m s ,w ep r o p o s ea c c e s ss e q u e n c eb a s e dw e bl o ga p p r o a c h a c c e s ss e q u e n c eb a s e dw e bl o ga p p r o a c hu s e sw e bl o gd a t aa n ds e a r c h e sa c c e s s s e q u e n c et oc r e a t i n gt e s tc a s e t h i sa p p r o a c hc a nt e s tm u l t i - u s e ra l t e m a t i o na n ds t a t u so f s e r v e r ,e n s u r eu s e rs e s s i o n sc o m p l e t ei nac e r t a i nd e g r e e t h et h e s i sv e r i f i e st h ev a l i d i t yo ft i m eb a s e dw e bl o gt e s t i n ga p p r o a c ha n da c c e s s s e q u e n c eb a s e dw e bl o gt e s t i n ga p p r o a c hf r o mt h es i z eo ft e s ts u i t e ,c o v e r a g ea n df a u l t d e t e c t i o nw i t ht h ee x p e r i m e n t sf i n a l l y t h ee x p e f i m e n t a lr e s u l t ss h o wt h a ta c c e s ss e q u e n c e b a s e dw e bl o gt e s t i n ga p p r o a c hi ss u p e r i o rt ot i m eb a s e dw e bl o gt e s t i n ga p p r o a c h k e y w o r d s :w e ba p p l i c a t i o n ,w e bt e s t i n g ,w e bd a t am i n i n g ,u s e rs e s s i o n ,w e bl o g s ,a c c e s s s e q u e n c e s i i 学位论文独创性声明 本论文是我个人在导师指导下进行的研究工作及取得的研究成果。论文中除 了特,i i j j j n 以标注和致谢的地方外,不包含其他人或机构已经发表或撰写过的研究 成果。其他同志对本研究的启发和所做的贡献均已在论文中做了明确的声明并表 示了谢意。 论文作者签名: 粥而 论文使用授权声明 日期:础- 弓f 本人完全了解上海师范大学有关保留、使用学位论文的规定,即:学校有权 保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部 分内容,可以采用影印、缩印或其它手段保存论文。保密的论文在解密后遵守此 规定。 论文作者签名:试向 导师签名: 日期:砷曩j 弓7 日期:扔d 孕f 弓f 上海师范人学硕+ 学位论文绪论 1 1 论文研究的背景 第一章绪论 伴随着计算机技术、网络技术的发展,万维网( w r o r l dw i d ew 曲) 由最初的小站点 集合发展成为现在复杂的w e b 应用系统。w e b 应用系统为大量的用户提供了访问全球 w e b 资源的交错平台,其在分布的硬件平台上运行大范围的软件程序,并为经济、信息 分类、娱乐、协调工作、调查以及大量的其他活动提供服务。 在i n t e m e t i n t r a n e t 环境下,利用浏览器和服务器构成的软件系统被称为是w e b 应 用系统。对于w e b 应用系统,用户不需要安装任何专门的客户端软件,只要浏览器软 件即可,并且不受硬件平台的限制。目前,w e b 应用系统主要有以下三种应用: 1 ) 电子商务:在线交易系统、订单传输系统、在线支付系统、在线认证系统、信 息查询系统等。 2 ) 办公自动化及协同计算:人们协同工作不受地域、时间的限制,这使得完成复 杂的任务成为可能,支持企业的文档管理: 3 ) 电子政务:网上发布政府的功能、法律法规,政府网上办公、政府网上招标及 采购、政府数据上网等; w e b 技术的飞速发展,组件技术、面向对象技术的日益发展和成熟,w e b 应用系统 的应用领域越来越广泛,w e b 应用系统的复杂性也越来越高。如何确保w e b 应用系统 的质量,已经成为亟待解决的问题,也成为人们研究的重点。 关于如何确保软件质量,人们己经提出各种各样的方法和技术,如形式化方法、面 向对象方法和软件测试技术。其中,软件测试技术在软件生产实践过程中发展和应用的 最快,软件测试己经成为软件质量保证的关键技术之一,也是软件开发过程中的一个重 要环节。 与传统软件相比,w e b 应用系统有很多独特的地方,其中对测试有影响的方面主要 有以下几点: 1 ) w e b 应用的用户数量巨大,并要求能提供对w e b 资源的跨平台全局访问,需要 有并发处理事务的能力,因而需要进行多用户的性能测试。 2 ) 使用环境不尽相同。硬件设备,网络连接,操作系统,中间件、服务端支持, 浏览器等都有所不同,形成了异构、自治的工作环境,这就需要考虑兼容性测试。 1 绪论上海师范人学硕十学位论文 3 ) 重于信息的发布。大多数传统软件强调的是运算的功能,而在w e b 上,信息的 搜索和获取占了很大的一部分,需要通过测试来确保信息的正确显示。 总之,w e b 具有与分布、异构、并发和平台无关的特性,这些特点使得w e b 应用 系统的测试要比传统软件的测试更加困难。尽管传统的测试方法也可以用于w e b 应用 系统测试,但已经不能完全胜任对w e b 的测试。 目前,国外针对w e b 功能测试的方法主要有:基于模型的白盒测试方法,基于用 户会话的测试方法以及基于时间划分的w e b 日志测试方法等。 基于模型的白盒测试方法【1 3 】:其主要思想是,通过分析w e b 应用系统,获得所需 的信息并创建模型,进而根据模型来生成测试用例。这些方法与传统软件测试方法相比, 使得构造合适的测试集变得方便,然而它们需要人为的去设计测试用例,花费的代价比 较高。 基于用户会话的测试方法【4 刁】:其主要思想是,从用户请求中收集用户会话数据, 然后使用不同的策略来生成测试用例。这些方法的优点主要是,减少了与w e b 应用系 统复杂多变技术的依赖性,测试用例的生成不需要人为的设计,有效性较好。然而这些 方法忽略了w e b 使用过程中的多用户交互以及服务器的状态相关性。 基于时间划分的w 曲日志测试方法【8 】:其主要思想是,对w 曲同志数据运用时间 划分策略来自动生成测试用例,该方法的优点是测试用例的生成,考虑了多用户交互及 服务器状态,不足之处是有可能拆分完整的用户会话,进而不能真实的重现用户操作, 影响测试的有效性。 随着w e b 系统更加广泛地应用在政府、金融、教育、军队等生产生活的各个领域, w e b 系统的质量已经成为一个部门或组织成功的关键部分,在这种背景下,研究w e b 应用软件测试技术具有现实的意义。 1 2 课题来源 国家自然科学基金项目“软件参数配对覆盖测试集生成的若干问题研究 , 2 0 0 7 1 1 2 0 0 9 1 2 3 0 ( 项目编号:6 0 6 7 3 0 6 7 ) 。 上海华腾软件系统有限公司“上海地铁6 号线a f c 系统软件测试与实现”, 2 0 0 7 7 2 0 0 8 7 。 2 上海师范大学硕十学何论文 绪论 1 3 论文的主要工作 本论文的主要工作如下: ( 1 ) 分析比较三种w e b 测试方法 分析比较了基于模型的白盒测试方法,基于用户会话的测试方法以及基于时间划 分的w e b 日志测试方法,发现以上方法存在的诸多问题,如忽略多用户交互和服务器 状态,可能拆分或者合并逻辑用户会话。 ( 2 ) 提出基于访问序列的w e b 同志测试方法 针对三种w e b 测试方法存在的问题,提出了基于访问序列的w e br 志测试方法, 该方法生成的测试用例,既考虑了多用户交互和服务器状态,又保证了逻辑用户会话的 相对完整性。 ( 3 ) 实验验证 本文以在线购书网站为例,获得其w e b 服务器日志,然后对日志数据进行处理, 构建访问树,求得访问序列来生成测试用例,并在覆盖率、故障检测有效性以及测试集 规模方面与基于时l 日j 划分的w 曲日志测试方法【8 1 进行了比较。实验结果表明,基于访问 序列的w e b 日志测试方法拥有更好的有效性。 1 4 论文创新点 本文深入分析了w e b 应用系统功能测试方法,通过分析基于模型的白盒测试方法, 基于用户会话的测试方法和基于时间划分的w e b 日志测试方法的不足方面,提出了基 于访问序列的w e b 日志测试方法。 本文的创新点主要有: ( 1 ) 通过对w e b 服务器同志的分析来自动的生成测试用例; ( 2 ) 在测试用例的生成过程中,考虑了多用户交互及服务器状态,保证了用户会话的 相对完整性; ( 3 ) 运用w e b 日志挖掘方法,得到访问序列,并将其应用于生成测试用例的过程中。 1 5 论文结构 本论文共分八个章节,各个章节的安排如下: 第一章是全文的概述,介绍了本论文的背景、意义、主要工作和创新点。 绪论 上海师范大学硕十学位论文 第二章介绍了w e b 应用系统的相关概念。主要是w e b 应用系统的体系结构及其特 点和故障源分析。 第三章主要介绍了w e b 软件测试的相关技术、内容和方法。由于我们研究的w e b 测试方法主要关注于功能测试,因此重点介绍了功能测试的相关内容。 第四章主要介绍了基于模型的白盒测试方法和基于用户会话的测试方法,详细介绍 了基于u m l 的r i c c a 和t o n e l l a 方法和e l b a u m 方法,最后指出了基于用户会话方法的 局限性,该方法忽略了多用户交互以及服务器状态。 第五章主要介绍了w e b 挖掘技术和w e b 日志的格式、预处理过程。 第六章主要介绍了基于w e b 同志的测试方法。首先介绍了已有的基于时f f i j 戈l j 分的 w e b 日志测试方法,此种方法解决了基于用户会话方法的不足,考虑了多用户交互和 服务器状态,但是会拆分组合逻辑上的用户会话。接下来,针对基于时间划分方法的 不足,我们提出并详细介绍了基于访问序列的方法,该方法在确保多用户交互的基础 上,保证了用户会话的相对完整性。 第七章通过实验,选取了开源的在线购书电子商务网站,运用基于时间划分的w e b 日志测试方法和本文提出的基于访问序列的w e b 日志测试方法来生成测试用例,并从 覆盖率、故障检测能力和测试集规模方面,进行了有效性比较。实验结果表明,基于 访问序列的w e b 日志测试方法在功能覆盖率、故障检测率以及测试集规模方面,是比 较有效的w e b 测试方法。 第八章对论文进行了总结和展望。在总结本文的几项主要工作的同时,展望了今后 的研究方向。 4 上海师范人学硕十学位论文w e b 应川系统概述 2 1b s 结构 第二章w e b 应用系统概述 w e b 系统通常采用b s 结构,即浏览器服务器结构。b s 结构通常为三层结构,处 于最顶层的是浏览器,处于中间层的是由一台或多台服务器组成的应用服务器,处于最 底层的是由数据库系统组成的数据层。其中,中间层应用服务器的扩展性良好,能够灵 活的增加新的应用服务。 在b s 体系结构中,客户端、业务逻辑和数据是分层相对独立的,客户端只需要浏 览器即可进行业务处理,而系统的业务逻辑在应用服务器端就可以完全实现。客户端通 过浏览器向分布在网络中的服务器发送请求,w e b 服务器接到请求后,会传送请求的内 容到客户端以作应答。这个内容通常带有一些标记语言,这些标记语言会被客户端的浏 览器解释成为w 曲页面。 b s 结构的主要特点是可以不受时间、地域限制的进行查询、浏览等业务处理,具 有较强的分布性;只需要修改网页,即可实现所有用户的同步更新,添加网页,即可增 加新的业务,维护方便。但存在数据传输速度慢、数据安全性等问题,并且对于服务器 的要求过高。 2 2w e b 应用系统体系结构 w e b 应用系统体系结构通常由客户机、服务器和网络组成,如图2 1 所示。 客户端 2 2 1 客户机 i n t e m e t i n t r a n e t w e b 服务器 应用服务器数据库服务器 图2 1w e b 应用系统体系结构图 f i g2 - 1a r c h i t e c h t u r eo fw e ba p p l i c a t i o n 基于w e b 的系统大多都是数据访问系统。客户端运行在w e b 浏览器环境下,浏览 w e b 应h j 系统概述 上海师范大学硕十学位论文 器能够解释静态超文本标记语言( h t m l ) 并自动将服务器返回内容显示为w e b 页信 息。除了静态内容,浏览器也支持活动内容,如客户端脚本、动念h t m l 、j a v aa p p l e t 、 c s s 、 a c t i v e x 控件等。然而,在实际应用中,由于不同的浏览器型号、版本,以及对 应的不同显示技术,使得有些信息往往不能j 下常地显示,从而产生兼容性问题以及显示 故障。 2 2 2 服务器 多个服务器程序可以包含在一台物理计算机上,一个服务器程序也可以分布在多台 物理计算机上。w e b 系统通常在后端包括多个服务器,允许用户通过浏览器从客户端计 算机进行访问,得到他们所需的w e b 页面内容或数据库记录。以下是几种常见的服务 器类型。 ( 1 ) 数据库服务器 数据库服务器是w e b 应用的数据仓库。大多数w e b 系统使用的是关系数据库服务 器( r d b s ) ,如m i c r o s o f t 的s q ls e r v e r ,o r a c l e ,i b m 的d b 2 等。 ( 2 ) 应用服务器 应用服务器主要用于处理商业逻辑,将数据处理与运算技术分离成独立的部件。这 部分涵盖的技术主要有j d b c 、s e r v l e t 、j s p 、e j b ,主要的执行环境是m mw e b s d h e r e 、 b e a w e b l o z i c 等。 ( 3 ) w 曲服务器 w e b 页面或h t m l 文件及其相关内存储在w e b 服务器上,供客户端计算机访问。 常见的w e b 服务器有m i c r o s o f t 的i i s ,a p a c h e 等。w e b 服务器是基于w e b 的系统中最 主要的服务器类型。 2 2 3 网络 网络将客户机连接到服务器并将服务器连接在一起。网络也会带来一些问题,包括 性能、配置、安全、兼容性、可靠性和不可达性。 网络传输可能包括由t c p i p 网络所支持的多种协议,也可能存在使用不同网络操 作系统的网络,或是多种通过网关相互连接的网络。 6 上海师范大学硕七学位论文 w e b 应用系统概述 2 3w e b 应用特点及故障源分析 从w e b 系统软件体系结构可以看出,w e b 应用系统具有以下特点: ( 1 ) 大规模的用户数量。w e b 应用系统为大规模数量的用户提供了访问w e b 资源 的全球交错平台。尽管一些传统的软件系统,如操作系统,也为大规模数量的用户提供 服务,但这些系统通常是本地访问的,并且将用户数量分散为可控大小的组。 ( 2 ) 不同的使用环境。与传统的软件平台相比较,w e b 用户使用不同的硬件设备, 网络连接,操作系统,中间件和w e b 服务器支持,以及w e b 浏览器。 ( 3 ) 以文件和信息为中心。与以计算为中心的传统系统相比较,w e b 系统关注于 文件和信息。尽管新的w e b 系统包含了一些计算能力,但是搜索文件和信息,仍是大 多数w e b 用户的主要使用目的。 w e b 应用系统可以被看作是,增强潜在数据库的应用,为用户提供全球访问和图形 用户接口,方便用户搜索和得到需要的信息及文件的系统。由于以上特性,越来越多的 w e b 应用系统逐渐变成多层次的,功能分散在不同的层或是子系统。 由于w e b 应用的多层体系结构,客户、硬件、数据通信以及服务器之问的复杂依 赖关系,故障可能发生在层内以及层问。在客户端,由于浏览器的型号、版本有很大的 不同,以及显示技术的不同,往往不能正常地显示一些信息,从而产生兼容性问题以及 显示故障;在服务器端,可能存在不可达或者根本不存在的超链接,影响用户的使用; 在用户访问达到高峰时,服务器响应时间太长甚至不接受用户的访问:并发用户的行为 会影响到与站点交互的情况,用户之间也可能相互干扰。可以看出由于基于w e b 的应 用程序的复杂性,为了保证质量,必须做各种软件测试,如功能测试、压力测试、浏览 器兼容性测试、数据库测试以及安全测试等。 2 4 本章小结 本章主要介绍了w e b 应用系统的特点,通过对w e b 应用系统及其体系结构的分析, 有利于寻找有效的测试方法。 7 相关技术研究上海师范大学硕+ 学位论文 第三章相关技术研究 本章主要介绍了w e b 测试的相关方法,包括功能测试、安全测试、兼容性测试和 性能测试,重点研究了w e b 功能测试。 3 1w e b 测试方法概述 分布、异构、与平台无关和并发是w e b 应用系统的特点,这些使得w e b 应用系统 测试比传统软件复杂的多。为了确保w e b 应用系统具有良好的性能、功能、安全性和 兼容性,需要多方面进行测试。 根据不同的测试目的,w e b 测试可被划分为功能测试、性能测试、兼容性测试、安 全测试。 功能测试:主要用来测试w e b 应用是否符合规格说明的要求,确保功能上正确无 误。内容包括h t m l 语法检查、链接检查、表单测试、j a v a 组件测试等。 安全测试:主要用来确保w e b 应用的信息安全,其重点是测试s s l 配置、登录模 块、事务完整性等方面。 兼容性测试:确保w e b 应用在不同软件、硬件和网络配置下的运行情况。主要用来 测试在不同的浏览器中w e b 应用是否都可以正常的显示,从而确保页面中的某些代码 组件如a c t i v e x ,c s s 等在不同的平台配置里都具有正确性。 性t i 钡, 1 试:性能是衡量用户对应用系统是否满意的重要方面之一,根据测试目的的 不同,性t i n 试可分为负载测试和压力测试。负载测试的目标是判断系统性能是否能够 满足它的负载需求,对w e b 应用系统而言,就是检测w e b 系统能否在需求范围内正常 工作。通常在进行基本测试和负载测试之后,才进行压力测试。压力测试用来测试系统 的限制和故障恢复能力,通常都是针对系统资源限制薄弱的环节来进行设计的。 3 2w e b 功能测试技术 3 2 1 功能测试的内容 功能测试,主要测试w e b 组件以确保w e b 客户端能够正确显示其预期的功能。这 类的测试通常包括分析已有的w e b 组件和检测它们与相关标准和规范说明的一致性。 8 上海师范人学硕士学位论文相关技术研究 功能测试的类型通常包括: ( 1 ) h t m l 语法检测 从语法上分析h t m l 文件,检测它们与相关语言规范和文件标准的一致性。大多 数验证程序和相似的工具也可以进行在这些文件上进行拼写检测。 ( 2 ) 链接测试 链接是w e b 应用系统的一个主要特征,由于w e b 内容的非线性结构。链接测试可 分为三个方面,一是测试是否链接到了正确的页面;二是测试所链接的页面是否存在, 三是保证w e b 应用系统上没有无法链接到的孤立页面。链接测试可以借助自动化工具 完成。 ( 3 ) 表单测试 表单测试需要对表单的每一个字段进行测试,确保正常运行同时提交的表单数据要 符合设计者的要求。表单测试包括以下四个方面: 检查表单捕获无效数掘的能力,如数字格式和日期的数据; 测试边界值; 使用t a b 键确保表单的字段可以按j 下确的顺序向前和向后移动; 确认表单能够正确地更新信息。 ( 4 ) 组件测试,。 运行在客户端的j a v a 小程序,或者其他运行于服务器端的j a v a 程序,都是需要测 试的。 3 2 2 功能测试的方法 根据测试要求的难易程度的不同,功能测试可分为:简单功能测试、边界测试、任 务特征测试、强制错误情况测试、探测性测试等,以确保w e b 系统在不同层次上运行 的质量。 简单功能测试主要做一些链接可达性的检查工作。边界测试是抽取输入数据域的边 界数据进行测试。任务特征测试是根据任务的交互性、不确定性等特征,进行有针对性 的测试。强制错误情况测试是根据设计时的规格说明,人为输入明显错误的数据,然后 观测系统的运行情况,主要测试系统的容错性。探测性测试就是边设计边执行测试,试 探性地前进几步并及时调整。 9 相关技术研究上海师范大学硕十学位论文 3 2 3w e b 功能测试的特点 与传统软件系统相比,w e b 的分布性和复杂性造成了w e b 应用系统执行时的不确定 性:由于运行环境是时刻变化的,对同样的输入,输出往往会有很大的不同。因此,通 常采取以下的方法进行测试:一是不确定性测试,即在给定输入后就让程序自由运行, 然后观察输出结果,需要执行若干次测试,然后进行综合分析、比较。二是确定性测试, 即在给定输入后,人为干预程序的执行,使其向预想的状态转移或者执行预定的动作, 以检测可能的错误。以上两种方法均属于传统的白盒测试方法。 3 3 本章小结 本章介绍了、b 测试的相关技术,包括功能测试、安全测试、兼容性测试和性能测 试。本文主要研究w e b 应用系统的功能测试,因此重点介绍了功能测试,为下文介绍具 体的功能测试方法做准备。 1 0 上海师范人学硕+ 学位论文基于模型的测试v s 基于用户会话的测试 第四章基于模型的测试v s 基于用户会话的测试 本章介绍了基于模型的测试与基于用户会话的测试的主要思想,分析比较了这两种 方法的优缺点,指出了基于用户会话方法的局限性。 4 1 基于模型的测试 4 1 1 基于模型的测试概述 基于模型的测试是白盒测试的一种,从w e b 应用系统的编码中提取信息并在此基 础上创建模型,进而生成测试用例。 目前,提出的针对w e b 应用系统功能需求的测试方法f l 】【2 】【3 】均是基于模型测试技术。 l i u 等提出w e b t e s t m o d e l ,这个模型将每个w e b 应用构件看作一个对象,生成基于 不同对象间数据流的测试用例。r i c c a 和t o n e l l a 2 】提出一个基于u m l 的模型,实现w e b 应用进展的分析和测试用例的生成。d il u c c a e t 等【3 】提出一个相似的模型,既考虑独立 w e b 页面的单元测试,又考虑不同页而间的集成测试,并提出了专门的策略用于测试 客户端和服务器端的页面。 这些方法的优点是扩展了传统基于路径的测试方法,对w e b 应用系统的控制流或 数据流进行了适当的评价,以确定w e b 应用系统的质量和可靠性。 4 1 - 2 基于u m l 的r i c c a 和t o n e l l a 测试方法呦 r i c c a 和t o n e l l a 测试方法首先创建个模型,模型中结点代表网站对象( 页面,表 单) ,边代表对象之间的联系( 如提交、包含、链接等) 。图4 1 显示了一个在线购书 网站上用户购书的例子。当用户请求浏览某一特定页面时,图书详细信息页面会动态的 生成。图书详细信息页面包括图书信息和( 通过e l ,e 4 ) 两个表单:一个是将图书添 加到购物车,另一个是对图书进行评价。表单需要收集用户的输入。如果图书评价的表 单被提交( e 5 ) ,那么将重新生成更新了图书评价的图书详细信息页面。如果提交的是 一个有效的图书数量( e 2 ) ,那么将生成更新的购物车页面。否则,仍然显示图书详细 信息页面( e 3 ) 。 基丁模型的测试v s 基于川户会活的测试 上海师范大学硕士学位论文 图4 1 简单的在线购书网站模型 f i g4 1s i m p l ew e bm o d e lf o ro n l i n eb o o k 为了生成测试用例,根据b e i z e r 9 】的步骤,得到与图4 1 相匹配的路径需求表达式: ( e l e 3 + e 4 e 5 ) 木( e l e 2 + e l e 3 + e 4 e 5 ) ,“宰,表示“合”关系,“+ 表示“并”关系。 通过在路径需求表达式中标识线性独立路径集合来生成测试请求。从图4 1 的路径需求 表达式中得到的测试请求为e l e 2 ,e l e 3 ,e 4 e 5 ,选择包含测试请求的测试用例进行测试。 线性独立路径是这样的一个路径,包含图中至少一条没有被访问过的边,并且所有线性 独立路径的集合,要确保图中的每条边至少包含在一个测试请求中【10 1 。 r i c c a 和t o n e l l a 测试方法有两种运行模式,分别是: ( 1 ) r t 1 。根据路径需求表达式确定测试请求,根据测试请求选择测试用例进行测 试。其前提条件是:1 ) 只测试线性独立路径;2 ) 所测试的结构( 如表单) 虽然包含在 多重页面中,但仅从一个网页源头抽象出与上下文独立的相等功能;3 ) 忽略环连接, 如导航行为。 ( 2 ) r t 2 。减少r t 一1 的前提条件,在输入值的选择上比r t 1 更精细。与r t 1 相 比,r t 2 把边界值作为输入,采用“单个条件所有条件 策略【1 1 1 进行测试,即:根据 整体的路径需求表达式确定测试需求,根据测试需求选择测试用例进行测试。在此基础 上增加单个的边界值作为输入对测试请求进行测试,两种方法相比较,r t 2 能发现较 多的故障。 基于u m l 的r i c c a 和t o n e l l a 测试方法是基于模型测试方法的一种,本质上是自盒 测试方法,其限制因素为: 1 ) 人为地设计测试用例,花费较大; 2 ) 生成的测试用例不够充分,不能真实的再现用户使用剖面。 基于用户会话的测试方法通过收集u r l 和n a m e v a l u e 对形式的用户交互( 用户请 1 2 上海师范大学硕+ 学位论文基丁模犁的测试v s 基于用户会话的测试 求) ,然后运用策略来生成测试用例,能够很好的解决基于模型的测试方法存在的不足。 4 2 基于用户会话的测试 4 2 1 捕获重现测试方法 捕获重现测试方法是一种可以模拟用户真实使用场景的测试方法。对于w e b 应用 系统,可以通过捕获重现用户请求来进行测试。这种方法的优点是: 1 ) w e b 应用系统配置及代码的改变不会影响到用户的使用行为; 2 ) 可以重现由用户输入而引起的错误【9 】; 3 ) 能够优先确定经常被访问的代码的可靠性1 0 1 。 对于w e b 应用系统而言,用户请求的获得是容易的并且这些数据和应用系统的实 现及服务器技术是独立的。 4 2 2 基于用户会话的测试方法概述 基于用户会话的测试方法是一种针对w e b 应用系统的捕获重现测试方法。该方法 通过捕获用户请求( 切r l 和n a m e v a l u e 对) 来重现用户的使用场景。 使用基于模型的方法测试w e b 应用系统的一个限制因素是,要找到被检测系统期 望的输入需要花费的代价。这些输入的选择是复杂的并且需要人工完成。基于用户会话 的测试方法通过收集用户请求来帮助解决这些问题,测试者捕获用户请求来创建用户会 话,然后对用户会话应用策略【4 】以生成测试用例。 由于通常的w e b 应用操作包含接收请求和处理请求,而且一个w e b 应用的运行环 境与执行测试控制的环境是同一个体系架构,因此收集用户的请求信息可以很容易的完 成。例如,很小的结构改变,就可以使得a p a c h ew e b 服务器记录所有接收到的请求。 通过在发送的w e b 页面中添加j a v a s c r i p t 片段的方法,可以捕获所有的用户会话,因此 所有请求会产生一个服务器端的日志脚本。利用j a v as e r v l e tf i l t e r 是另一种可选的方法, 它能够在服务器端动态的拦截请求和回应。当然,我们也可以从w e b 服务器日志中得 到用户会话数据。 基于用户会话的方法提供了一个特别的收集途径。该方法不需要附加的结构来收集 需要的数据。这就减小了对w e b 应用性能的影响。收集请求的另一个优点是在较高的 抽象水平下,异构的w e b 应用体系结构的一些复杂性被隐藏了,这就减少了该技术与 l3 基丁模璎的测试v s 基于朋户会话的测试上海师范大学硕士学位论文 w e b 应用构件| 白j 的依赖性。 从用户会话中收集到u r l 和n a m e v a l u e 对集合后,有很多生成测试用例的策略。 一是直接重用用户会话数据;二是重现多用户的混合交互;三是混合常规的用户请求和 可能有问题的请求( 例如,在提交表单的同时进行导航操作) 。 e l b a u m 等【4 l 为了研究基于用户会话测试的有效性,提出了三种具体的方法,并通 过实验与基于模型的测试方法相比较,证实了这些方法的有效性。 4 3e l b a u m 方法4 1 e l b a u m 等【4 j 最先使用用户请求来平衡基于用户会话的测试,提出了三种生成测试 用例的方法。u s 1 :直接重用单独的用户会话;u s 2 :组合不同的用户会话;u s 3 : 重现修改的用户会话。 当一个请求来自于一个新的m 地址时作为用户会话的开始,当用户离开w e b 站点 或是会话超时的时候认为用户会话结束。 u = u l ,u 2 ,u m 表示一个用户会话集,任意的u j u ,u i 包含n 个请求r 1 到r n ,1 1 为任意数,并且每个r i 包含u r l n a m e v a l u e * 。“宰,表示零或多次发生。 4 3 1u s 一1 :直接重用单独的用户会话 u s 1 ,将每个u i u 转变为一个测试用例。方法是:将与u i 相关的请求r 1 到r n ( n 为任意数) 转变为能够发送到w e b 服务器的h t t p 请求。 4 3 2u s 2 :组合不同的用户会话 ( 1 ) 从u 中选出一个未使用的会话u 。; ( 2 ) 将u a 中r 1 到r i 的请求复制到测试用例中;( i 为随机数,1 i n ) ( 3 ) 在u 中随机的选择一个会话u b ,要求b a 且存在r j u b ,r j 与r i 有相同的u r l ( 4 ) 如果不存在r j u b ,r j 与r i 有相同的u r l ,那么选择其他满足步骤( 3 ) 中条件 的用户会话;如果在u 中找不到满足步骤( 3 ) 中条件的会话u b ,那么将u 。直接作为一 个测试用例( 方法同u s 1 ) ; ( 5 ) 如果存在r j u b ,r j 与r i 有相同的u r l ,那么将u b 中r j 之后的所有请求放入测 试用例中r i 之后; 1 4 上海师范人学硕+ 学位论文基丁模犁的测试v s 基丁用户会话的测试 ( 6 ) 将u 。标记为使用过,重复上述过程直到u 中所有的会话都使用过为止。 4 3 2u s 一3 :重现修改的用户会话 由于用户可以通过表单的输入值来影响w e b 应用系统的行为,因此修改主要关注 于表单的输入。对于表单输入的修改,主要是随机删除n a m e v a l u e 对中v a l u e 的一些字 符,生成变异的用户输入以导致新的使用场景的出现( 如,修改用户登录名或密码的字 符以导致错误的登录场景) 。 生成测试用例的方法如下: ( 1 ) 从u 中选出一个未使用的会话u a ; ( 2 ) 从u 。中随机选择一个未使用的请求r i ,如果t l 。中不存在未使用的请求r i ,那 么直接重用t l 。作为一个测试用例( 同u s 1 ) ; ( 3 ) 如果r i 未包含n a m e v a l u e 对,那么将r i 标识为已使用,重复上述步骤; ( 4 ) 如果r i 包含n a m e v a l u e 对,那么修改n a m e - v a l u e 对: 对于每个n a m e 。v a l u e 对,随机删除v a l u e 中字符,然后为修改后的每个 n a m e v a l u e 对创建一个测试用例; 对于所有n a m e v a l u e 对,随机删除v a l u e 中字符,然后为修改后的所有 n a m e v a l u e 对创建一个测试用例; ( 5 ) 将u a 标记为使用过,重复上述过程直到u 中所有的会话都使用过为止。 e l b a u m 等【4 】通过实验发现,基于用户会话的方法在覆盖率和故障检测方面优于基 于模型的测试方法。对于提出的三种基于用户会话的方法而言,u s l 方法的有效性最 好,即组合用户会话的方法并不如单独使用用户会话。我们分析其原因是,用户会话的 组合没有考虑应用系统的状态,不能真实再现多用户交互的应用系统行为。 4 4 基于用户会话测试的局限性 基于用户会话的测试方法与基于模型的测试方法相比有一些额外的潜在的优点。首 先,由于这些方法利用用户请求来生成测试用例,因此减少了与w e b 应用复杂多变的 技术的依赖性,而这正是基于模型的测试方法的主要限制之一。其次,u r l 和n a m e v a l u e 对的获取由w e b 应用处理,不需要人为的努力。也就是说这种方法不需要测试工程师 过多的参与。再次,基于用户会话的方法,每个用户都是测试数据的提供者。用户越多 就可以获取越多的u r l 和n a m e v a l u e 对,利用大量丰富的数据可以生成强大的测试用 基丁模犁的测试v s 基于用户会话的测试上海师范大学硕十学位论文 例,提高覆盖率和错误检测能力。最后,不同于传统的捕获重用方法,基于用户会话的 方法自动捕获可靠的用户交瓦,从用户交互中得到测试用例,而不是由测试者创建交瓦。 然而,基于用户会话的测试方法存在其局限性。由于一个用户会话包含的是一个单 独用户的请求,使得用户会话的划分丢弃了多用户的交互。尽管组合用户会话的方法考 虑了用户交互,但是并不能够真实的模拟用户使用场景,其有效性也并不理想。 在w e b 应用系统的实际运行过程中,多用户交互是存在的。一个用户的行为可能 影响共享的应用系统状态,这将f 、日j 接的影响其它用户的行为。例如,表4 1 描述的场景, 两个用户同时访问书店应用系统,在基于用户会话的测试中,捕获的日志将被划分为两 个测试用例u s e r l 和u s e r 2 。从u s e r l 中得到的测试用例先被重新执行,然而模拟的u s e r l 将尝试购买不存在的书并会执行错误的代码,如表4 2 所描述。 t a b l e4 1d e s c r i p t e db e h a v i o ro fab o o k s t o r ea p p l i c a t i o n sm u l t i u s e ri n t e r a c t i o n 表4 1 关于书店应用系统的多用户交互行为描述 捕获的曰忐行为描述 u s e r l i n d e x j s p 进入网上书店 u s e r 2 a d d b o o k j s p 向数据库添加谭浩强c 语言程序设计 u s e r l s e a r c h j s p 搜索所有谭浩强的书 u s e r l b u y j s p 购买c 语言程序设计 t a b l e4 2r e p l a y e db e h a v i o ro fab o o k s t o r ea p p l i c a t i o nw i t hu s e rs e s s i o n sb a s e dt e s t i n ga p p r o a c h 表4 2 书店应用系统使用基于用户会话的测试方法重现的行为描述 重现的日志行为描述 u s e r l i n d e x j s p 进入网上书店 u s e r l s e a r c h j s p搜索所有谭浩强的书 u s e r lb u y j s p 购买c 语言程序设计 u s e r 2 a d d b o o k j s p 向数据库添加谭浩强c 语言程序设计 为了解决基于用户会话测试方法的问题,精确重现获得的同志,可以将捕获的整个 日志作为测
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论