




已阅读5页,还剩44页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海师范大学硕士学位论文基于e f s m 的w e b 应用程序的用户非预期行为测试模型的研究 摘要 w e b 应用程序的测试包括性能测试和结构化测试两类,分别用于测试w e b 应用程序的 性能表现与内部实现。结构化测试比性能测试更能准确定位程序内部错误,故此,众多 研究者针对结构化测试技术进行了研究,并提出了相应的测试模型、测试策略。但大多 数研究者忽略了用户与w e b 应用程序的交互过程中存在着的用户非预期行为,即其行为 不是通过w e b 应用程序的软件界面完成的,而是直接通过浏览器接口完成的。一旦当用 户非预期行为发生,如改变t w e b 应用程序应有调用逻辑,改变了传递的参数等,可能 会导致w e b 应用程序的行为异常,而这些异常通常是由于w e b 应用程序中的潜在缺陷所导 致的。 针对这些问题,本文在分析现有w e b 应用程序特点、测试方法和策略的基础上,主 要研究了如下内容: ( 1 ) w e b 应用程序中的用户非预期行为以及该行为可能引发的质量缺陷。 f 2 ) 总结现有w e b 应用程序行为测试技术,并提出基于e f s m 的用户非预期行为测试模 型u u b t m 。 ( 3 ) 基于u u b t m 的用户非预期行为测试策略以及测试序j ;i j u t s e q 的生成算法。 相关实验结果表明,通过u t s e q 可有效对w e b 应用程序进行用户非预期行为的测试, 从而发现w e b 应用程序中的潜在缺陷,如:状态控制缺陷和接口检查缺陷。 最后,论文以“上海应用技术学院数据结构课程网络教学平台”为实验对象,详细 地阐述了如何构建系统的u u b t m 、如何应用测试策略并逐步导出u t s e q 的过程,并对测试 结果进行了分析。 关键词:w e b 应用;用户非预期行为;测试模型;e f s m 上海师范大学硕士学位论文基于e f s m 的w e b 应用程序的用户非预期行为测试模型的研究 a b s t r a c t t h et e s t i n gt e c h n i q u e so fw e ba p p l i c a t i o n sc a nb ec l a s s i f i e di n t ot w o c a t e g o r i e s ,p e r f o r m a n c et e s t i n ga n ds t r u c t u r a lt e s t i n g a st h el a t t e rc a nl o c a t e t h ef a u lt si n s i d ew e ba p p li c a t i o n sm o r ee x a c t l y ,al o to fr e s e a r c h e r sh a v es t u d i e d o ni ta n dp r o p o s e dt e s t i n gm o d e l s ,t e s t i n gs t r a t e g i e s b u tm o s to ft h e i rs t u d y o m i tu s e r s u n a n t i c i p a t e db e h a v i o r s ,t h a ti st h eu s e rm a y b ed i r e c t l yi n t e r a c t w i t hw e ba p p l i c a t i o nv i at h eb r o w s e r si n t e r f a c e ,w h i l en o tt h ew e ba p p l i c a t i o n s o w n o n c es u c hb e h a v i o r sh a p p e n e d ,a sc h a n g i n gt h ei n h e r e n tc a l l i n gs e q u e n c e , m o d i f y i n g t h ec a l l i n gp a r a m e t e r se t c ,i tw i l ll e a dt ow e ba p p l i c a t i o n s a b n o r m a l b e h a v i o r sw h i c hu s u a l l yc a u s e db yt h el a t e n td e f e c t si n s i d et h ew e ba p p l i c a t i o n s a i m e da tt h e s ei s s u e s ,b a s e do nt h ea n a l y s i so ft h ee x i s t e dw e ba p p l i c a t i o n s c h a r a c t e r s ,w e ba p p l i c a t i o n st e s t i n gm o d e l sa n dt e s t i n gs t r a t e g i e s ,t h i st h e s i s f o c u s e so nt h ec o n t e n ta sf o l l o w i n g : ( 1 ) t h eu s e r s u n a n t i c i p a t e db e h a v i o r si nw e ba p p l i c a t i o n sa n dt h eq u a l i t y d e f e c t sa r i s ef r o mt h e 吐 ( 2 ) s u 叫n a r i z i n gt h ee x i s t e dw e ba p p l i c a t i o n s b e h a v i o rt e s t i n gt e c h n i q u e s a n dp r o p o s i n gt h eu s e r s u n a n t i c i p a t e db e h a v i o rt e s t i n gm o d e lb a s e do ne f s m , n a m e du u b t m ( 3 ) t h et e s t i n gs t r a t e g yo fu s e r s u n a n t i c i p a t e db e h a v i o r sa n dt h eg e n e r a t i n g a l g o r i s mo ft e s t i n gs e q u e n c e sn a m e du t s e q t h er e l a t e de x p e r i m e n t s r e s u l ts h o w st h eu t s e qc a ne f f e c t i v e l yt e s tu s e r s u n a n ti c i p a t e db e h a v i o r sa n dd e t e c tt h el a t e n ts t a t ec o n t r o ld e f e c t sa n d i n t e r f a c ec h e c kd e f e c t si n s i d ew e ba p p l i c a t i o n f i n a l l y ,b a s e do nt h es i t sd a t as t r u c t u r en e t w o r kt e a c h i n gp l a t f o r m s 。t h i s t h e s i sp a y st h em o s ta t t e n t i o nt os h o wh o wt ob u i l dt h eu u b t m ,h o wt o e m p l o y t h et e s t i n gs t r a t e g ya n dh o wt og e n e r a t et h eu t s e q t h et e s t i n gr e s u l t sa r e a n a l y z e da tl a s t k e yw o r d s :w e ba p p l i c a t i o n s :u s e r s u n a n t i c i p a t e db e h a v i o r ;t e s t i n gm o d e l :e f s m i i 论文独创性声明 本论文是我个人在导师指导下进行的研究工作及取得的研究成果。论文中除了特别 加以标注和致谢的地方外,不包含其他人或机构已经发表或撰写过的研究成果。其他同 志对本研究的启发和所做的贡献均己在论文中做了明确的声明并表示了谢意。 作者躲菅磅期:跏7 、了 论文使用授权声明 本人完全了解上海师范大学有关保留、使用学位论文的规定。即:学校有权保留送 交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以 采用影印、缩印或其它手段保存论文。保密的论文在解密后遵守此规定。 名鹃名矧瞧柙巾扩 上海师范大学硕士学位论文基于e f s m 的w e b 应用程序的用堂蜘塑堑垄型堕塑至箜里塞 1 1引言 第1 章绪论 随着互连网络的普及与w e b 应用技术的快速发展,w e b 应用程序( w e ba p p l i c a t i o n s , 简写为w a s ) 已成为软件开发的主流之一,已被泛应用到政府、商业、金融、科研等领域, 人们越来越关注w a 的质量,对w a 的可靠性、可用性、安全性、有效性、扩容性与可维护 性等方面提出了更高的质量要求“,但研究表明w a 的质量并不令人满意。1 。软件测试是 确保软件质量的重要手段之一,但由于w a 是基于无连接的m 阿p 协议,具有多层、并发、 异构、具有分布结构的高动态性网络应用程序,这些独特的性质导致对它的测试是非常 困难。 现有的w a 测试技术大致分为两类,一类是针对w a 的性能测试技术,主要包括功能测 试、负载和强度测试、浏览器兼容性测试以及安全性测试等,目前已有众多相关测试工 具可以用来协助完成此类测试,如用于检查页面链接的s i t e a n a l y s i s 、用于检查h t m l 语 法的w e b l i n t 和用于负载和强度测试的l o a d m a n a g e r 等。在性能测试领域,当前研究者的 研究主要集中在w a 负载和强度测试,并侧重于自动化实现,如,m e n a s c 6 0 1 提出从w a 的业 务模型、功能模型、用户行为和i t 资源四个层次对w a 进行负载测试;s u b r a y a “1 通过将w a 分解成可特定粒度的测试对象,通过对这些对象或对象集合进行测试从而实现整个w a 性 能测试过程;迟瑞峥嘲等人基于协议分析,利用脚本语言初步实现了对w a 负载的自动化 实现;梁晟“1 等人提出了一种模拟驱动的自动负载测试方法,即根据系统使用方式和客 户端各种特征的分布信息来确定测试负载、设计测试用例,并通过运行测试用例模拟不 同类型用户的典型行为以提高负载测试的针对性等。 另一类w a 测试技术是结构化的测试技术,主要通过建立w a 相关测试模型,并基于所 建模型进行相关测试。主要包括:( 1 ) 基于对象的测试模型,如l i u “1 等人提出了卧的对 象模型,并利用数据流技术进行测试;l u c c a 卿等人提出了一种基于结构的测试框架,可 以实现单元测试和集成测试等。( 2 ) 基于结构的测试模型,如r i c c a “1 等人定义t w a 的基 本组成元素,并建立了基于链接的结构测试模型,并给出了一个基于该模型的测试工具 r e w e ba n d r e w s “”等人利用状态描述w a 的页面,建立了基于链接结构测试模型并给出了 相关测试序列生成方法等。( 3 ) 基于行为的测试模型,如k u n g “”等人在其提出的w e b 钡d 试 上海师范大学硕士学位论文基于e f s m 的w e b 应用程序的用户非预期行为铡试模型的研究 模型w t m 中,从页面的状态依赖和导航行为两个方面对w e b 程序的行为特征进行了描述; 卢虹“2 1 等人用会话状态变量组成的状态向量表示w e b 程序的状态从而进行状态转换测 试;毛澄映“3 1 等人综合考虑了会话状态变量和页面导航行为,利用c o s d 图和a p n d 图生成 w s t d 图来描述w a 的系统行为等。 4 基于统计信息的w e b 测试,如s e b a s t i a n 0 1 等人利用w e b 服务器l o g 文件中的用户会话记录来生成符合相关测试策略的测试用例方法:许蕾1 等 人提出可以通过对w e b 服务器l o g 文件进行统计以获得w a 的测试重点,提高测试效率等。 两类测试相较而言,结构化测试技术可以对w a 进行深入分析,精确定位各类错误,方便 查错、排错。 现有文献所提到的结构化测试技术的默认前提是将w a 的软件行为等同于传统软件 行为,即将w a 中应有的控制流和数据流假设成软件内部控制的,而忽略了在w a 中浏览器 成为除了软件界面之外的用户交互接口,通过这个额外的接口,用户可以改变w a 应有的 内在数据流和控制流,此时用户的行为是非预期的行为。一旦用户的非预期行为作用于 w a 时,如改变了w e b 应用程序的应有调用逻辑,改变了传递的参数等,此时w a 可能的后 续状态和行为无疑是值得关注的问题。 为测试在用户非预期行为作用下的w a 系统行为,必需建立w a 的动态行为模型。通常 为了建立软件动态行为模型,可以利用状态图( s t a t e c h a r t ) 或有限状态机( f i n i t es t a t e m a c h i n e ,f s m ) 进行建模“”,s t a t e c h a r t 侧重于用图形方式来描述应用系统的动态交互 行为,而f s m 则侧重于形式化定义。利用f s m 可以精确地刻划软件系统或其子系统的行为。 因此f s m 已经被广泛应用于许多领域的应用系统建模,例如,通信协议、实时系统、面向 对象软件中类的行为及其交互等。因此基于有限状态机的测试方法也得到了广泛的研 究,许多研究人员已经提出了基于有限状态机的测试输入序列生成算法,如:t y 法、u 方法、w 方法等“”。 由于用户的非预期行为对w a 的影响本质在于其行为可能改变w a 中的状态控制变量, 从而导致w a 行为异常,直接利用f s m 进行建模,无法体现用户输入与系统状态变量之间 的关系,故此采用扩展有限状态机( e x t e n d e df i n i t es t a t em a c h i n e ,e f s m ) 对w a 系统 行为建模,利用e f s m 所建模型可有效描述用户输入数据、状态控制变量以及系统状态变 迁之间的关系,可以用于测试用户的非预期行为。利用文献 1 7 中提出的转化方法,可 以将描述w a 动态行为的e f s m 模型转化为f s m 模型,从而可利用现有f s m 相关测试序列生成 方法( 霄一方法) 来获得e f s m 的相关测试序列,并据此序列进一步研究w a 中的用户非预期 行为的测试策略与算法。 2 上海师范大学硕士学位论文 基于e f s m 的w e b 应用程序的用户非预期行为测试模型的研究 本文以作者在实际工作中研发的“上海应用技术学院数据结构课程网络教学平台” 为实验平台,并以该项目中的部分模块为例进行相关论述。 1 2 论文主要研究内容及意义 本文在分析现有w a 特点、w a 测试方法和策略的基础上,主要研究w a 中用户非预期行 为以及其可能带来的问题,并利用e f s m 构建w a 的行为模型,并通过该模型研究用户非预 期行为的测试策略与测试序列生成算法,主要包括如下内容: ( 1 ) 研究了现有w a 体系结构和组成,对w a 现有测试技术中的性能测试技术和结构化 的测试技术进行了分类总结。 ( 2 ) 分析- j w 中用户非预期行为存在的必然性、非预期行为产生的途径以及可能引 发的问题,并通过相关测试实验说明了用户非预期行为可有效检测现实w a 中存在的质量 缺陷。 ( 3 ) 研究了f s m 与e f s m 的相关定义和应用、e f s m 与f s m 转化算法以及f s m 狈9 试序列生成 算法,如w 方法等。 ( 4 ) 总结现有基于状态的w a 行为测试技术,并提出了基于e f s m 的w a 的非预期行为测 试模型u u b t m ( u s e r s u n a n t i c i p a t e db e h a v i o rt e s t i n gm o d e l ) 的构建定义。 ( 5 ) 基于u u b t m ,针对用户非预期行为的特征,研究了相关测试策略与规则。 ( 6 ) 根据测试策略与规则,给出了用户非预期行为测试序列u t s e q ( u n a n t i c i p a t e d b e h a v i o rt e s t i n gs e q u e n c e ) 的生成算法。 本论文研究内容的主要意义是: ( 1 ) 由于w a 的应用已成为当前软件开发的主流技术,但在w a 的开发过程中,开发人 员往往会忽视或遗漏对用户非预期行为的处理,给w a 的质量造成缺陷。相关实验表明, 在目前大多数实际运行的w a 中都或多或少的存在此类缺陷。 ( 2 ) 现有的w a n g 试技术中基本上没有针对用户非预期行为的测试技术,故此,本论 文所做的工作无疑是对w a 钡t j 试领域的一次有意义的补遗和探索。 ( 3 ) 通过相关实验发现,w a 表现出的缺陷的起因是用户的非预期行为,但其本质原 因是w a 程序中潜在的状态控制和接口检查缺陷所导致的,故此,本论文研究的测试策略 与相关算法具有一定的实用价值,并已经实际应用到笔者参与的多个实际w a 项目中 3 上海师范大学硕士学位论文基于e f s m 的w e b 应用程序的用户非预期行为测试模型的研究 1 3 章节安排 本论文共分六章,章节安排如下: 第一章绪论。简要介绍论文撰写的背景和意义以及论文的结构安排等。 第二章w e b 应用程序及用户非预期行为。介绍了w e b 应用程序体系结构和组成、用 户非预期行为、由于用户的非预期行为所可能引发的w e b 应用程序的质量缺陷以及相关 实验结果。 第三章w e b 应用程序的行为测试。介绍了w e b 应用程序测试面临的挑战、现有的测 试模型和测试技术和w a 的行为测试模型定义。 第四章基于e f s m 的用户非预期行为测试模型。介绍f s m 和e f s m 的定义和测试,并在 此基础上,提出基于e f s m 用户非预期行为的测试模型的思想并给出了形式化定义、测试 策略与算法。 第五章研究实例及测试实现。介绍了论文实验平台的结构和功能需求、结合该实 例说明了模型实现,e f s m 到f s m 的转化过程以及测试序列的生成过程,并对相关测试结 果进行了分析。 第六章总结与展望。对本文工作进行了总结,并展望了本论文中若干核心技术在 下一步工作中需要改进和发展之处。 4 上海师范大学硕士学位论文基于 e f s m 的w e b 应用程序的用户非预期行为测试模型的研究 2 1w a 简介 第2 章w e b 应用程序及用户非预期行为 9 0 年代中期以来,随着i n t e r n e t 技术的发展和普及,将i n t e r n e t 技术应用于企业内 部的应用开发,构造企业的i n t r a n e t 正成为各行各业进行信息化建设,提高企业运作效 率的首选方式,传统的c s ( c l i e n t s e r v e r ) 结构的软件开发模式已不再适应新的需要, 基于w e b 服务器为核心的b i s ( b r o w s e r s e r v e r ) 结构软件开发模式成为主流。w e b 浏览器 成为b s 结构应用程序的统一客户端,从而解决了c s 结构中的表示层不统一的问题。w e b 浏览器是跨平台的,而且能够提供文本、图形、图像、视频、音频等服务,是客户机用 户界面的最好选择。相对c s 结构,b i s 结构具有以下的优势“”: ( 1 ) 基亍:t c p i p ! 开放式网络标准协议,具有很强的系统独立性和平台无关性。 ( 2 ) 规范和统一了客户端的标准浏览器模式,从而解决- j c s 结构中客户端程序 的异构性和跨平台性,完全实现了跨平台访问计算机及其网络上的各种资源,同时延伸 了客户机和服务器的物理距离。 ( 3 ) 软件维护开销能够大大降低,只需要开发和维护服务器应用程序,无须开发客 户端程序。 ( 4 ) 服务器上所有的应用程序都可以通过:w e b 浏览器在客户机上执行,从而统一了用 户的界面。 ( 5 ) 降低了硬件成本。客户端无须安装复杂庞大的应用程序,对硬件的要求大大降 低。 ( 6 ) 节省了培训费用,用户只需会使用浏览器即可。 w e b j r 务器简化了客户端,只要装上操作系统,网络协议和浏览b i i p r ,而服务器 端集中了所有的应用逻辑、开发和维护等几乎所有的工作。浏览器的作用就是从网络上 下载应用w e b 应用服务器将信息组织成分布式的超文本通过超文本表示语言和超文 本传输协议来描述和组织信息,简单地实现了整个i n t e 邝e t i n t r a n e t 空间为操作背景 的超文本超媒体的数据存取。因此w a 可以实现一次部署,全局更新。 随着w e b 技术的不断发展,现有的w a 大致可以分为三类嗍: ( 1 ) 静态i w e b 站点的应用程序。 5 上海师范大学硕士学位论文基- t e f s m 的w e b 应用程序的用户非预期行为澍试模型的研究 ( 2 ) 通过客户端对象模型利用脚本提供交互的应用程序。 ( 3 ) 包含动态内容的应用程序。 其中,第 3 类w a 中通常集成了大量的技术,如j s p ,j a v as e r v l e t s ,p h p ,c g i , x 虬,o d b c ,j o b c ,或a s p 等,具有极高的动态行为,已成为当前w a 应用的主流方式。而 本文主要以此类w a 作为研究对象。 2 2w a 体系结构 肌是用来完成某个任务的一系列相关w e b 页面和其它资源的集合,页面之间的联系 通过链接和组件实现。霄a 通常为多层( n - t i e s ) 结构,最典型的是由浏览器w e b 服务器 数据库服务器构成的三层应用体系结构“”。如图2 一l 所示。特别地,对于没有后台数据 库支持的应用则缩减为两层结构,本文所论述的测试方法也主要针对前两层。w e b 浏览 器主要是通过用户的请求向服务器检索超文本文档,同时也可能嵌) k a c t i v e x 、j a v a 虚 拟机、f l a s h 等第三方插件w e b 服务器层则主要是接受来自浏览器的请求并返回已存储 其中的静态页面或动态生成特定页面,同时维护特定的会话状态变量,如s e s s i o n 、 a p p l i c a t i o n 等。由此可见,w a 本质上是一个多层、并发、异构、具有分布结构的高动 态性网络应用程序。 囱2 - 1 帆三层体系结构 6 上海师范大学硕士学位论文基于e f s m 的、e b 应用程序的用户非预期行为测试模型自! 蔓堕 2 3w a 的组成 典型的w a 需要用户输入各种数据来进行交互,这些数据可以是单行文本、多行文本、 复选框选择等。在w a 中起着重要作用的元素有:页、脚本、表单( f o r m ) 和框架等。 ( 1 ) 页。页是w a 的基础,用户所看到的信息都是以页的形式通过浏览器展现出来。 浏览器向服务器请求所需的页,w e b 服务器向浏览器发送信息页。w e b 页的组成及组织在 本质上是应用系统的用户界面的编排。在w a 中,浏览器可看作广义用户界面容器,可包 含由页的内容定义的具体用户界面。 在请求页时,客户端与服务器之间的连接才存在,一旦请求完成,连接就会断开。 在请求页时,服务器的所有活动才会出现,这是与传统c s 结构应用程序有很大的不同。 在执行浏览器请求页的脚本时才能激活服务器端的业务逻辑。脚本页可以包含用户定义 的变量、子过程和函数,这取决于具体的脚本引擎。某些脚本引擎甚至允许定义对象和 交互。服务器处理的最终结果是:更新服务器的业务状态,为发出请求的浏览器准备h t 札 格式的页。 ( 2 ) 表单。h t m l 表单是w e b 应用中最重要的输入手段,客户端的浏览器通过表单收集 用户输入的数据,并把这些数据传送到服务器,从而形成一个交互式系统。表单结构只 能收集用户输入的数据,它本身并没有能力处理这些数据,因此在服务器端必须要有一 个相对应的程序来处理这些数据。 ( 3 ) 框架。设计者可以通过框架对w e b 页的布局进行更多地控制。框架结构可将浏览 器的显示画面分成几个独立的显示部分( 子框架) ,每个子框架都有自己对应的u r l 值,而 且可以分别独立地装入w e b 页。另外,每个框架之间可以互相交互。 ( 4 ) 组件。在w a 的体系结构中,组件有服务器端组件和客户端组件两类。并非所有 的业务逻辑都是通过w e b 页中的脚本来实现的,较复杂的w a 通常需要利用中间层的组件。 中间层位于用户界面与持久系统( 如数据库服务器等) 之间,通常由一组能在服务器端运 行的已编译好的组件组成。应用服务器与w e b 服务器位于同一台计算机上,也可以部署在 不同计算机上。中间层是一个封装层,封装了所有的业务逻辑。使用中间层的一个优点 是能共享整个应用中的业务功能。使用服务器组件可以提高性能,因为脚本是解释执行 的,其运行速度远远慢于二进制代码的运行速度。 h t m l 格式的w e b 页也可以指定在客户机上运行组件。常用的客户端组件是j a v a a p p l e t 和a c t i v e x 控件。客户端组件可以访问浏览器及客户机的资源。客户端组件可以 7 上海师范大学硕士学位论文 基于e f s m 的w e b 应用程序的用户非预期行为测试模型的哑究 提供用h t m l 元素实现不了的用户界面功能客户端组件可以是显示三维物体的控件,也 可以是显示特定数据的用户界面控件。某些客户端组件不能在屏幕上显示出来,但可以 通过客户机的配置信息得知。 2 4w a 中的用户非预期行为 2 4 1w a 中的控制流与数据流 w a 的控制流指为实现特定功能,啊a 各组成元素被调用的顺序或逻辑,如w a 中的页面 调用顺序等;w a 的数据流指为实现特定功能,数据在叭中被传递或被处理的顺序或逻辑, 如w a 中页面之间传递的数据参数等。 由于w a 是多层体系结构,最常用于连接各层之间的协议是h t t p ,该协议本质是一无 状态( s t a t e l e s s ) 协议,故此,仅仅依赖h 耵p 协议,贝f j w a 中各个功能模块或页面之问的 连接也将是无状态关联或独立的。而作为应用程序而言,在实现过程中,必然需要保持 特定的状态和传递特定的交互数据。会话状态的保持与识别通常通过服务器端或客户端 的会话状态变量,如j s p 、a s p 中的s e s s i o n 变量、a p p l i c a t i o n 变量或c o o k i e s 等,这些 状态控制变量是由w e b 服务器负责解释与维护的;而各页面之间的参数传递通常可以通 过u r l 中附加参数来完成,当然利用会话状态变量也可以达到在多个模块之间传递参数 的目的。这种数据流和控制流的组织方式在本质上和传统应用程序没有什么区别,但必 须注意的是,在传统应用程序中,用户与应用程序交互的唯一接口是通过应用程序提供 的软件界面,其控制流和数据流的组织与传递是在应用程序内部控制的,而在w a 中,这 种情况有了明显的变化。当用户通过w a 提供的软件界面与之交互时,交互数据通过u r l 传递发送给w e b 服务器以获得进一步的响应,i j r l 通常显示在浏览器的地址栏中。由于浏 览器已成为w a 的通用客户端,故此用户同样可以通过浏览器的地址栏来直接输入或编辑 u r l ,来获得其指定的模块或页面,从而达到和w a 界面操作相同的结果。从特定角度看, 此时w a 中u r l 成为调用模块或页面的最直接途径,w a 软件界面则反而成为友好的间接途 径。由此可见,在1 a 中,其控制流和数据流并非始终由程序内部单独控制,用户的行为 也可能会影响它们。 2 4 2 用户非预期行为 用户非预期行为指当用户不再按照程序设计者预期的方式与程序进行交互的行为。 8 圭塞壁堕奎兰堡主兰堡堡苎 薹王坚! 竺塑坚呈生旦堡! 塑旦苎耍塑堡塑塑蔓堕型堕! ! 翌 在传统软件中,由于用户与软件交互的唯一接口就是程序界面接口,通常程序界面接口 的相关逻辑是由程序设计者按照需求预先设定的,故此,此时用户的行为基本上是预期 的行为;而在w a 中,如果用户不使用程序提供界面进行软件交互,而是利用浏览器的地 址栏输入u r l 进行交互,此时用户的行为可能是程序设计者无法预期的,是非预期行为 在w a 中,用户非预期行为可以轻易的改变w a 的页面调用流程或页面调用参数,从而影响 整个w a 的行为。在w e b 应用程序中,用户利用浏览器可能产生的非预期行为有: 行为1 ;利用浏览器上的“前进”或“后退”按钮,重复执行某些模块。 行为2 :利用。收藏”功能可以直接并重复调用指定模块。 行为3 :利用。刷新”功能可以重新初始化当前调用模块。 行为4 :利用地址栏,直接调用任意模块。 行为5 :利用地址栏,传递任意指定参数。 其中,行为4 和5 可以实现行为l 到3 ,这些行为的本质是改变了程序应有控制流和数 据流。当程序设计者忽略了对这些非预期行为的处理,必然导致w e b 应用程序存在质量 缺陷,主要缺陷如下: 缺陷l :会话状态变量控制失效,导致用户越权访问等。 缺陷2 :页面内嵌接口检查失效,导致错误的参数传递、非法的数据写入等。 缺陷3 :非预期参数的传递,导致w e b 生成页面混乱或后续行为失效等。 缺陷4 :数据的重复写或删除操作,导致w e b 应用程序行为失效。 虽然导致以上问题的起因是用户非预期行为,但其本质是由于w e b 应用程序中存在 的特定缺陷,如状态控制缺陷,接1 :3 检查缺陷等。故此,利用用户的非预期行为可有效 的检测w e b 应用程序中潜在的此类问题。 2 4 3 相关实验 本文利用u t s e q 对六家实际运行站点中包含的w a 进行了非预期行为的测试实验,实 验结果如表2 - i 所示: 表2 - i 用户非预期行为实验结果 序号测试对象存在缺陷 1 w w w m i c r o s o f i c o m ( 知识库搜索) 缺陷2 ,3 2 w w w t a o b a o c o r n ( 商品列表) 缺陷2 ,3 3 w w w c c b c l l ( 信息搜索) 缺陷2 ,3 4 w w w s h t u e d u c n ( 文档下载) 缺陷i 9 上海师范大学硕士学位论文 基于e f s m 的w e b 应用程序的用户非预期行为测试模型的研究 i 5 w w w s i t e d u c n ( 教学管理系统) 缺陷l ,2 3 i 6 w w w y e a h n e t ( 电子邮箱) 缺陷2 ,4 在实验过程中发现这些站点中包含的w a ,由于忽略了用户的非预期行为的处理,从 而导致在状态控制、接口检查方面存在着问题,而正是这些问题导致 w e b 应用程序的 缺陷。而忽略t w a 中的用户非预期行为在当前实际运行的w a 中并不少见,具有一定的普 遍性。究其原因,往往是由于w 程序开发者基于传统应用程序的控制流或数据流,而忽 视了w a 所独有的特性。 2 5 小结 本章是后续章节的基础,主要描述了w a 的体系结构、w a 控制流和数据流与传统应用 程序的区别以及w a 中特有的用户非预期行为,相关实验表明,利用用户非预期行为可以 有效的发现w a 中潜在缺陷。 1 0 上海师范大学硕士学位论文 基于e f s m 的、忱b 应用程序的用户非预期行为测试模型的研究 第3 章w e b 应用程序的行为测试 3 1w a 测试面临的挑战 为了确保传统应用程序的质量,人们作出了巨大的努力,提出了很多测试技术,无 论是在单机系统中还是在分布式系统中。尽管其中的一些技术对于卧的测试有帮助,但 由于w a 的独特体系结构与需求导致传统软件测试技术无法直接加以使用,w a 测试面临如 下的挑战“”: ( 1 ) 高度的动态性。在传统c s 结构应用程序中,客户与服务器各自的角色以及它们 之间的交互是预定义和静态的。而在w a 中客户端程序和内容可能是动态生成的。如,服 务器可能返回一个动态生成的h t m l 文件,而这个文件中包含动态生成的j a v a s c r i p t s 脚 本,链接和内容,即当前的客户的输入可能影响后继的交互活动。 ( 2 ) 新的质量要求与复杂的应用环境。与对于传统程序而言,准确和效率通常是最 重要的质量因素,而对于w a 而言,其他的质量因素有可能更加重要,如兼容性和互操作 性问题对w a 所导致问题可能比传统软件更加严重,这是由于传统程序通常为特定的环境 而开发的,很少有冲突或大的变化,而由于w a 是一个跨平台的、分布式的系统,其可能 分布在多个不同的操作系统中,如u n i x ,l i n u x ,w i n d o w s ,m a c o s 和a i x 等,而这些操作 系统又有可能是多个不同的版本。而其上运行的w e b 服务器也可能是多种多样的,如i i s , a p a c h e 和w e b l o g i c 等。这种复杂的情况同样存在于客户端浏览器、客户和服务器的连接 方式,而且可能更加复杂。 ( 3 ) 独特的控制流。w a 和其他类型应用程序的另外一个区别在于应用程序的控制执 行上,对于传统应用程序,控制流完全由应用程序控制,而在肌中,用户却可以影响它。 用户可以随意的中断w a 的正常执行过程。如用户可以通过浏览器的“回退”或“刷新” 按钮来改变彻底改变程序执行环境,导致非预期的结果。此外,客户端的配置改变也可 能影响w a 的运行行为。如用户可能关闭c o o k i e s ,从而导致后续操作失效。 ( 4 ) 更新频繁导致更高的维护需求。w a 与传统应用程序相比而言具有更快的更新和 维护需求。w e b 技术同样比传统软件技术更新的更快,而w a 的客户需求也同样比传统软 件更容易变化。因此w a 的维护不仅更频繁,而且需要更有效,特别是对于那些用于需要 对市场快速反应的w a 圭塑塑蔓查兰堡圭兰堡堡苎苎王墅! 竺塑竺! 皇旦堡生塑旦宝! ! 堡塑堡垄塑塑竺堕旦堑 ( 5 ) 毗会话状态控制。w a 还具有在c s 结构应用程序或分布式系统中不具备的特征, 那就是会话控制、c o o k i e s 、h t t p 协议的无状态性和安全问题。因此,针对这些新的特 征必须有新的解决方案。 综上所述可见,由于w a 系统的高动态性、连接协议的无状态性等特点导致w a 测试比 传统程序的测试复杂得多,尽管如此,但众多研究者仍针对这些挑战提出了相关的w a 的 测试技术。 3 2 现有w a 测试技术 现有文献提出的w 测试技术大致可以分为两大类,一类是性能测试,另一类是结构 化测试。结合文献 2 0 】和【2 1 】,本文将现有a 测试技术按照以上分类进行了归类与汇总, 具体结果如表2 2 所示: 表2 - - 2w a 测试方法分类 种类主娄子类 简单描述 性 l ,测试所有链接是否按指示的那样确实链接 能 链接测试 到了该链接的页面 测 2 ,测试所链接的页面是否存在 试3 、确保w a 上没有孤立的页面。 i ,提交操作的完整性。 表单测试 2 、检验默认值的正确性。 功能测试测试c o o k i e s 是否起作用,是否按预定时间进 c j a o k i e s 测试 行保存,刷新对c o o k i e s 有什么影响等 设计语言测试测试w a 设计语言不同版本 主要测试数据一致性错误和输出错误。数据一 致性错误主要是由于用户提交的表单信息不 数据库测试 正确而造成的而输出错误主要是由于网络速 度或程序设计问题等引起的。 测量w a 在某一负载级别上的性能以保证w a 系统在需求范围内能止常工作。负载级别可以 负载测试是某个时刻同时访问w e b 系统的用户数量,也 可以是在线数据处理的数量。 压力测试是测试系统的限制和故障恢复能力, 强度测试 也就是测试w a 会不会崩溃,在什么情况下会 崩溃。黑客常常提供错误的数据负载。直到 压力测试w a 系统崩溃,接着当系统重新启动时获得存 取权压力测试的区域包括表单、登录和其他 信息传输页面等 1 2 上海师范大学硕士学位论文基于e f s m 的w e b 应用程序的用户非预期行为测试模型的研究 链接速度测试测试不同链接方式时w a 的响应速度 导航是否直观? w a 的主要部分是否可通过主 导航测试 页存取? w a 系统是否需要站点地图、搜索引擎 或其他的导航帮助7 1 、要确保图形有明确的用途,图片或动画不 要胡乱地堆在一起,图片尺寸要尽量地小,能 清楚地说明某件事情,一般都链接到某个具体 的页面。 图形测试 2 ,验证所有页面字体的风格是否一致 可用性测试 3 、背景颜色应该与字体颜色和前景颜色相搭 配。 4 、图片的大小和质量。 用来检验w e b 应用系统提供信息的正确性、准 内容测试 确性和相关性。 需要验证表格是否设置正确。用户是否需要向 表格测试 右滚动页面才能看见产品的价格? 把价格放 在左边,而把产品细节放在右边是否更有效? 整个w e b 应用系统的页面结构设计。是否会给 整体界面测试 用户一个整体感。 在各种操作系统下对w e b 系统进行兼容性测 客户端兼 平台测试 试。 容性测试浏览器测试 测试浏览器兼容性。 分辨率测试 测试在不同客户分辨翠下w a 的可用性。 安全性测试1 ,登录测试。 2 、是否有超时的限制。 3 、需要测试的相关信息是否写进了日志文件、 是否可以追踪。 4 、当使用了安全套接字时,还要测试加密是 否正确,检查信息的完整性。 5 、溯试没有经过授权,能否在服务器端放置 和编辑脚本等问题。 服务器接口测试 测试浏览器与服务器接口并查看服务器日 接口测试 志。 外部接口测试 测试w a 系统的外部接e l ,如信用卡接口等。 错误处理 测试系统遭遇非预期行为时的表现。 结 将w e b 应用的实体建模成有屉性和动作的对 构 象并描述它们之间的关系。根据w e b 页所处位 测 对象测试模型 置的不同,形成了三种不同类型的对象:客户 试 端页、服务器端页和组件,并利用它们来描述 w e b 应用的实体以及它们之间的关系。 1 3 上海师范大学硕士学位论文 基于e f s m 的w e b 应用程序的用户非预期行为铡试模型的研究 w e b 应用的动态行为包括通过超链接从一个 页面跳转到另一个页面的导航以及各实体之 基于页面导航结构 间状态依赖的行为。前一种行为本质上不很复 杂,但由于网页数量巨大使得导航关系看起 行为测试模型来错综复杂;后一种行为牵涉到有依赖关系的 各个具体对象需要通过深入内部分析才能得 基于对象状态图 到它们之间的状态依赖关系因而比较复杂。 为了对w 曲应用的动态行为建模,可以通过两 种图( 页面导航图和对象状态图) 来描述。 结构测试模型 即从变量出发,找出其定义一使用链,进而得 到关于这个变量的测试路径,进行基于覆盖率 ( 数据流) 的测试。 由于w e b 页面和w e b 用户的数量特别巨大, 基于统计信息 如果进行完全测试,测试工作将繁重不堪。而 实际上,因为各个页面的重要程度是不相同 的w e b 测试 的只需要进行有针对性的测试即可重点测 试关键页面,使测试效率达到最高。 现有性能测试通常通过测试工具来协助完成,如w e b l i n t 、w 3 cv a l i d a t o r 、n e t m e c h a n i c 、d o c t o rh t m l 、t c a tf o rj a v a 、s i l k t e s t 、v i s u a lt e s t 等嘲。结构化测试 则主要是通过建立w a 的测试模型,针对w a 的内部结构进行测试,从而可以获得较为全面 的测试,但由于w a 的高动态性、更新频繁等特点导致当前结构化测试技术仍然没有一个 公认的测试模型或方法,而特定的测试模型或方法也通常仅仅只能检测一类或几类错 误。 在现有结构化测试技术中提出的众多测试模型或技术,如基于对象的测试模型、基 于结构( 导航、数据流) 的测试模型以及基于统计信息的w e b 测试技术等,往往侧重于分 析w a 程序静态代码,并没有考虑在w a 中的会话控制、霄a 的动态行为,故此存在一定的片 面性。而行为测试模型利用状态图以及状态图的变迁来描述系统状态及状态的变迁,可 以有效地描述w a 的动态行为以及会话状态控制,充分体现y w a 用户提交数据导致状态 变迁这一重要特征。 综上所述并参照3 1 节所述的挑战可见,基于性能的测试技术主要针对( 2 ) 、( 4 ) 、 ( 5 ) 所提出的问题,结构化的测试技术主要针对( 1 ) 和( 5 ) 中的问题,而( 3 ) 中所描述的问 题目前尚未有针对性技术提出,而本文研究的用户非预期行为测试模型与策略,正是针 对该问题,研究解决该问题的一种途径。 1 4 上海师范大学硕士学位论文 基于e f s m 的w e b 应用程序的用户非预期行为测试模型的研究 3 3w a 行为测试模型的基本要素 w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 晋升辅警长考试题及答案
- 2024执法资格模拟试题及参考答案详解【突破训练】
- 2025年江苏常州工学院高层次人才招聘60人(长期)笔试备考题库及答案详解一套
- 农发行长春市九台区2025秋招笔试行测高频题及答案
- 2025年云南旅游职业学院招聘35人笔试高频难、易错点备考题库附答案详解
- 2025年公务员考试时事政治押题练习试卷含答案详解(满分必刷)
- 广发银行温州市平阳县2025秋招金融科技岗笔试题及答案
- 农发行南京市高淳区2025秋招笔试创新题型专练及答案
- 招商银行兰州市七里河区2025秋招金融科技岗笔试题及答案
- 监利数学中考试题及答案
- 质量部长述职报告
- 无人机技术在农业领域的可行性分析报告
- 规模灵活资源广域接入的新型配电系统分层分群架构与规划技术研究
- 音乐心理学理论-洞察分析
- 法院报名登记表
- 上海市闵行区区管国企招聘笔试冲刺题2025
- 2025年恒丰银行烟台分行招聘笔试参考题库含答案解析
- 中外建筑史课件
- 2024年度商业保理合同:保理公司与出口商之间的商业保理协议3篇
- 宣传网络安全文明上网
- 应急管理部14号令《生产安全事故罚款处罚规定》 修改前后对照表及解读
评论
0/150
提交评论