您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页Web应用测试技术进展

Web应用测试技术进展

来源:爱go旅游网
维普资讯 http://www.cqvip.com 计算机研究与发展 ISSN 1000.1239|CN 11—1777|TP Journal of Computer Research and Development 44(8):1273~1283,2007 Web应用测试技术进展 邓小鹏 邢春晓 蔡莲红 (清华大学计算机科学与技术系 北京 100084) (解放军电子工程学院软件工程中心 合肥 230037) (dxp04@mails.tsinghua.edu.cn) Progress in Testing for Web Applications Deng Xiaopeng '-,Xing Chunxiao ,and Cai Lianhong (Department of Computer Science and Technology,Tsinghua University,BeOing 100084) (Software Engineering Center,Institute of Electronic Engineering,Hefei 230037) Abstract Testing for Web applications has challenges on its special aspects.Compared with design and development,relatively little work on testing has been done SO far.In this paper,the factors influencing testing for Web applications are analyzed from such cases as its architecture,techniques,elements of its composition,running environment,running mechanism,design process and development process.Main aspects for Web applications testing in design,development,running and evolution steps are summarized. Dynamic testing and static testing are summarized also.Crucial researches from these aspects such as hyperlink testing,black—box testing and white—box testing for components,Web services testing,Web services composition testing and performance testing are surveyed.These problems include object—oriented model and unify Markov model for hyperlink testing,data flow testing and control flow testing for white— box testing,data composition testing for black—box testing,testing for Web services,Web services group, protocol,Web services composition,workload modeling and approaches of creating effective user session data sets for performance testing.Localizations of some methods are pointed out.From model—driven testing,agent—based testing,Web services testing and testing for service—oriented architecture,performance testing,the trends of future research for Web applications testing are also discussed. Key words Web application testing;hyperlink testing;components testing;Web services and Web services composition testing;performance testing; progress 摘要web应用的特殊性使得其测试具有挑战性,但目前针对其测试的研究同其设计开发的研究相 比相对薄弱.从web应用的体系结构、实现技术、组成成分、运行机制、运行环境、开发设计等方面分析 了影响测试的因素.归纳了现有web应用设计阶段、开发阶段、运行阶段、维护阶段所涉及的主要测试 方面及使用的动态、静态测试技术.并从测试的几个关键方面,如链接测试、组件黑盒测试、组件白盒测 试、WS及wSC测试及性能测试等方面综述当前研究热点难点,包括面向对象的建模、统计建模、控制 流测试、数据流测试、数据组合测试、WS测试、WS组测试、wSC测试、协议测试、性能测试的负载模型 与用户会话数据集的优化等问题.指出了有关研究的局限性.从模型驱动测试、基于Agent测试、WS及 SOA测试、性能测试等方面探讨了web应用测试未来的研究方向. 关键词Web应用测试;超级链接测试;组件测试;WS及WSC测试;性能测试;进展 中图法分类号TP311.5 收稿日期:2006 12 ll;修回日期:2007—05—08 基金项目:国家自然科学基金项目(60473078) 维普资讯 http://www.cqvip.com 汁算机研究与发展2007,44(8) 随着Internet的快速发展,减少Web应用(软 件或系统)的缺陷,保证和提高Web应用的质量已 成为软件测试研究的重要内容.Web应用同传统软 1 Web应用测试的主要方面及方法 1.1测试的主要方面 如图1所示,现有的web应用测试贯穿于设 件或系统相比具有特殊性,这使得其测试更为困 难l】 j,这些特殊性主要体现在以下方面: 1)从体系结构上看,它是一个多层架构,这种 体系结构在逻辑上可以划分为:表示层、业务逻辑 层、数据层,并且这些层次可能处于不同系统平台 计、开发、运行乃至维护的整个生存周期l 7j.在整个 生存周期的各个阶段,测试的方面有所不同.设计 阶段测试的主要任务是:估算服务器端容量的规划 之上. 2)从实现技术上看,它使用了各种编程技术, 如HTML,XML,VBScript,JavaScript,database, JSP,PHP,ASP,CGI等,导致系统实现复杂. 3)从组成成分上看,一个典型的Web应用程 序通常是由一些典型的实体,如:HTML文档,XML 文档,图片,JavaScript,VBScript,ASP,Form,ISAPI 程序,CGI程序,JSP,web services,davaBeans等构 成的,其组成成分繁多. 4)从运行机制看,具有分布式、并发、动态、实 时交互的特点.在Web应用中,其典型的运行机制 是:用户代理提出请求,服务器响应并提交结果到客 户端,由用户代理解释执行.这些提交的结果可能 还包括一些客户端脚本如JavaScript,VBScript等, 它们的解释执行还具有动态的特征. 5)从运行过程看,具有不确定性特征.由于 HTTP协议的无状态属性,每一个送到服务器端的 用户请求是独立的,相互之间没有联系,使得Web 应用的运行过程取决于用户意图及行为,由于其用 户数量巨大,用户意图及行为的不一致性直接导致 其运行过程的不一致. 6)从运行环境看,Web应用性能与环境及负载 有关,如客户端浏览器缓存的设置,网络带宽,服务 器端配置如内存容量大小、CPU个数、i/o读写速度 及负载(负载类型与数量)等有关. 7)从设计开发的过程看,具有需求不明确,设 计开发时问短、变化快的特点. Web应用的这些特殊性,使得其测试内容繁多 (见第1节图1所示)、技术复杂、极具挑战性 7 J. 本文总结归纳了现有的web应用测试主要方面 及主要使用技术;并从Web应用的超级链接测试、组 件黑盒测试、组件白盒测试、ws(Web services,web 服务)组件及WSC(web services composition,web 服务组合)测试、性能测试等关键方面综述了现有的 研究热点和难点,指出了有关方法的使用局限性;最 后探讨了未来可能的研究方向. 是否合理;系统的安全设计是否合理;数据库设计是 否合理;检查客户端设计的功能是否正确合理;检查 系统的网络拓扑结构、容量设计是否合理.开发阶 段测试的主要任务是:代码测试及组件测试,检查设 计的代码能否满足规格需求.运行阶段测试的主要 任务是:功能测试、性能测试、安全性测试、配置测 试、兼容性测试及易用性测试.维护阶段测试的主 要任务是:按照维护的内容实施开发及运行阶段中 的各个相关方面的测试.所有这些方面的测试实 施,对于保证Web应用的质量及可靠性至关重要. Fig.1 Main aspects for Web applications testing. 囹1 Web应用测试的主要方面 1.2测试的主要方法 如图2所示l ,分为静态测试和动态测试.静 态测试指不运行程序,通过人工或工具对程序和文 档进行分析检查以发现程序中存在的错误.它包括 代码审查、代码走查、桌面分析、静态分析、技术评审 等.动态测试指通过人工或工具运行程序以发现程 序中存在的错误.它包括基于规约的测试(黑盒测 试)、基于程序的测试(白盒测试)及程序与规约相结 合测试(灰盒测试).尽管Web应用测试的主要技术 同传统的软件测试技术大致一样,但由于其特殊性, 维普资讯 http://www.cqvip.com 邓小鹏等:Web应用测试技术进展 1275 使得这些技术在实际应用时呈现新的特点.例如,对 于代码审查,由于Web应用的多语言编程特征,使得 其实现更为困难.另外,对于web应用的一些其他 级链接测试模型主要使用两种建模方法:1)使用面 向对象的方法建模[ ;2)使用统计的方法建模[5-6]. 分别讨论如下: 1)面向对象的方法建模.Kung等人将面向对 象的软件开发思想引入到Web应用测试建模之中, 提出了一个面向对象的Web应用测试模型 1 J.他们 将Web应用中的每一个页面及页面内的元素 (elements)、组件(components)抽象描述为一个个对 的专.用测试方法,如性能基准测试SPECweb99, TPC—C,TPC—W方法,基于日志文件的统计分析方 法,面向对象的方法等,并未在图中表示出来. Web Application Testing Techniques ①Code Review ②Code Walkthrough ③Desk Checking④Static Analysis ⑤Techniques Evaluation White-BoxTesting -4- —①Control Flow Equivalence Partitioning Testing —②Boundary Value Analysis ②DataFlowTesing ⑨Cause—Effect Graphing ④Mutation Testing ( Onhogonal Experimental 『l ( Domain Testing Design ⑨Symbol Testing ⑤Decision Table ⑨Z Path Coverage ⑨State Transition Testing Testing WorkflowTesting ⑦ ⑧… Fig.2 Main techniques for Web applications testing 图2 Web应用测试的主要方法 2 Web应用测试研究的若干关键问题 web应用测试研究包括链接功能测试、组件功 能测试、WS及WSC功能测试、性能测试几个关键 问题. 2.1链接功能测试 链接功能是web应用的一个主要特征,实现其 测试是Web应用功能测试的一个重要内容.实现链 接功能的测试一方面需要建立一个合理有效的超级 链接测试模型;另一方面需要借助现有的链接功能 检查工具完成测试.目前已有可供使用的工 具l9J ,但这些工具还不能实现超级链接测试的自 动建模,因此建立合理有效的超级链接测试模型成 为测试人员重点研究的内容.从本质上看,链接功 能体现了应用程序从一个状态到另一个状态的转 换,它涉及到3个基本的要素即初始状态、状态转换 条件、转换后的状态,而链接则正好与其中状态转换 条件对应.这表明,使用状态转换图来建立超级链 接测试模型是可行的.问题是,对于一个Web应用 系统而言,通常其超级链接数量巨大,且状态转换条 件复杂,状态转换图能否清晰刻画一个web应用系 统并实现模型的可测试性.从目前的研究来看,超 象,建立所有这些对象之间的关系,其对象关系图形 成web应用测试模型,其中每一个页面对象与页面 对象之间的关系图形成web应用超级链接测试模 型.Ricca和Tonella则在此基础上使用UML语言 描述Web应用测试模型,其中的高级别导航模型可 以指导web应用中超级链接测试,低级别的控制流 模型可以用于白盒测试[2-3].这些面向对象的测试 模型清晰地给出了对象、对象之间、对象数据、对象 数据之间的关系,能够较好地指导超级链接测试. 但对于有着大规模链接数量的web应用系统,则呈 现了一定的局限性,原因在于使用这种方法建立的 模型过于庞大,存在模型爆炸危机.对于一个复杂 的web应用,其超级链接测试模型如何简化,仍是 一个需要解决的问题. 2)统计的方法建模.由于Web应用在服务的 过程中会记录大量的日志文件,这使得利用日志文 件分析研究web应用的链接情况成为可能.在此前 提下,Kallepalli和Tian提出了一个基于统计使用数 据信息建立统一的马尔可夫模型(unified Markov mode1)方法l5 J,用于web应用测试、性能评估及可 靠性分析.其统计数据信息可以来自专家意见、民 意测验、实际使用信息等,但实际使用信息是最重要 的.他们构造模型的方法是:确定模型中组件(指 web页)及模型结构;确定模型中的转移概率;模型 中组件及模型结构的确定依据设计需求文件、源代 码、标准等信息利用现有的一些工具可以实现(现有 一些工具可以直接利用HTML文件提取web应用 导航结构);转移概率的确定则通过统计的方法分析 提取web应用日志文件中的访问信息、故障信息来 确定;模型建立后,依据确定的测试覆盖率(在这里 测试覆盖率实际就是超级链接覆盖率)确定需要进 行测试的路径的转移概率门限值,然后确定测试用 例,这样就可以降低测试用例的数量.这种方法的 贡献之处在于使用Markov链来刻画应用程序的状 态转换,一个Markov链代表了一个Web应用中的 某个实时交互过程,所有Markov链的集合则构成 维普资讯 http://www.cqvip.com 1276 计算机研究与发展2007,44(8) 了各种实际使用模式的组合.通过这种方法,尽管 建立测试模型可能很庞大,但由于链路中的转移概 2.2.1组件功能白盒测试 白盒测试又称为基于程序的测试或结构测试, 其使用控制流、数据流的测试方法,以实现不同要求 的覆盖率,如:语句覆盖率、分支覆盖率、条件覆盖 率、分支/条件覆盖率、条件组合覆盖率、函数覆盖 率、函数簇覆盖率、对象覆盖率、对象簇覆盖率 等[ 一 . 率的确定来自于用户实际使用情况的统计,这就使 得测试人员可以依据转移概率的大小进行有针对性 的测试,在不可能对所有链接全部测试的情况下,则 按照“访问频率高的链接多测试,而访问频率低或不 访问的链接少测试或不测试”的原则进行.这在一 定程度上降低了测试人员的劳动强度,提高了测试 Liu等人将传统软件测试中的数据流测试思想 效率.这种方法的缺陷在于:①必须有足够的用户 使用信息;②准确性取决于Et志文件收集信息的准 确性,而日志文件并不能记录全部的错误信息,例如 Web页面中的错误;③模型结构中包含了一些循环 的回路;④状态扩张同样面临挑战,通常,一个web 应用可能存在成百上千的页面,如果每个页面表示 一个状态,则可能会导致一个巨大的模型,无法实现 计算及分析.Wang等人在文献[5]基础上,提出了 面向用户行为的UMM方法¨6 ,以进一步实现上述 模型的简化.其简化模型的思想在于:在建模的范 围上,将建模的web应用限制在一个企业内部完全 受控的web应用之内,这样就可以将大量的用户访 问行为分为来自内部的访问与来自外部的访问(利 用访问日志中的提交信息以区分内部与外部访问). 由于来自内部的访问大多具有动态交互的行为,因 此在模型化用户行为方面则只使用这种动态交互行 为来建模;另外,再通过对日志文件的访问信息的统 计,确定最大数量的独立路径,排除小概率的用户重 复导航链接.通过以上两点措施,可以使链接测试 模型大为简化.文献[6]方法贡献之处在于其对 UMM模型的简化,这对于降低测试强度,提高效率 颇为有效,但其缺陷仍然局限于文献[5]所存在问题 的①②方面. 建立超级链接测试模型对于Web应用的链接 测试至关重要,它可以指导设计乃至直接生成超级 链接测试用例.但由于其模型的简化不仅依赖设计 规格,而且与经验使用数据有关,而经验使用数据的 有无和选择均具有主观性,再加上可能缺乏准确性, 使得这一工作具有复杂性. 2.2组件功能测试 组件是web应用系统中的一个重要组成部分, 本文将HTML文档中的表单(forms),JavaScript脚 本,VBScript脚本,ASP,JSP,PHP等服务器端脚 本,ISAPI程序,CGI程序,WS及JavaBeans等均称 为组件.对它们目前采取两种测试技术:静态测试 和动态测试.本文只讨论动态测试. 应用到web应用测试中来,提出了面向对象的web 应用测试方法l4 J.其做法是:将HTML文档中的客 户页、服务器页等组件抽象为对象,形成一个对象关 系图ORD(object—relation—diagram),在此基础上,将 每一个页面中的组件作为对象,将其中的元素作为 结构变量,按照结构变量的用途不同,定义了5种类 型的结构链,从而导出5个级别的数据流图用于不 同层次的结构测试.这5个层次是:函数级(function leve1)、函数簇级(function cluster leve1),对象级 (object leve1)、对象簇级(object cluster leve1)以及应 用级(application leve1).利用这5个层次的数据流 图,依次构造相应层次的结构测试用例.这几个层 次依次覆盖了一个对象的函数内部、相关函数之问、 对象内部所有函数之间、对象之间和一个应用的所 有对象问的结构.文献[2]的低级别控制流、数据流 测试模型也实现了这儿个层次的结构覆盖测试. 由于在结构测试中仍存在一些有待解决的问 题,例如,面向路径的测试数据自动生成问题,符号 测试中的分支问题、二义性问题、大程序问题等,这 些问题的存在对于当前情况下提高web应用测试 效率和质量无疑是一个障碍. 2.2.2组件功能黑盒测试 黑盒测试又称为基于规约的测试.由于不能得 到Web应用系统中测试组件的代码,为了实现对组 件的功能测试,所以在设计测试用例时必须依据组 件的设计规约,设计测试用例中的输人信息,测试组 件能否按照规约输出相应信息或按照规约执行相应 的事务或状态转移.基于规约的测试在设计测试用 例中的使用数据时采用等价类划分、边界值分析、因 果图、判定表、正交实验设计等方法,在设计测试用 例的流程时采用状态测试或事务流测试. 使用黑盒测试的关键问题是设计具有测试充分 性的测试用例数据集.Weyuker曾经提出了11条 基于程序的测试数据集充分性公理_1 .其不可分解 性公理认为一个程序经过充分的测试,并不表示其 中的成分都得到了充分的测试;其非复合性公理认 维普资讯 http://www.cqvip.com 邓小鹏等:Web应用测试技术进展 1277 为一个测试数据集对于程序中的各程序单元而言是 充分的,并不表示它对整个程序是充分的.对于 Web应用系统中的组件而言,其可能是原子组件, WS可以认为是基于网络的、分布式、模块化的 组件,它执行特定的任务,遵守具体的技术规范,可以 与其他兼容的组件进行互操作.它使用web服务描 述语言(Web services description language,WSDL)、统 一也可能是复合组件(原子组件指不再包含其他组件 的组件,如表单;而复合组件则是多个组件组合后的 组件,如一个Web页面).这表明,对复合组件测试 充分的数据集,未必就是它所包含的原子组件测试 描述发现和集成(universal description,discovery and integration,UDDI)和简单对象访问协议(simple object access protocol,SOAP)标准协议[ ],实现其 充分的数据集,反之亦然. 通常情况下,组件黑盒测试是对组件接口参数 采用边界值分析、等价类划分等方法选取一些典型 数据,然后对这些数据组合从而产生测试数据集,不 过这些方法存在主观性n 。 .文献[15—16]等则针 对这种方法存在的缺陷,提出了一种基于组合设计 的测试数据启发式生成方法,所产生的测试数据可 以根据测试要求实现对组件参数的两两组合覆盖或 者多个参数的组合覆盖.文献[17]在上述研究的基 础上提出了一种基于对接口参数进行组合覆盖的黑 箱测试用例自动生成算法模型,据此可以生成一个 对所有接口参数进行两两组合覆盖的测试用例表, 以实现测试用例的优化.文献[17]同文献[15—16]的 改进之处在于,它实现了测试用例的优化.这些方 法都不同程度地优化了测试用例,在一定程度上降 低了测试强度,但它们产生的测试数据集的充分性 仍有待进一步的实验检验与评估. 尽管组合参数覆盖方法是针对传统软件测试提 出的,但对web应用组件测试同样适用.例如,对于 一个动态的服务器端脚本(假定脚本名为Search. php),如把它作为一个组件,其输入数据可来自客户 页中的表单组件提交的数据,若这个表单组件有多 个数据属性,不同的数据输入组合的提交可以得到 Search.php的不同响应输出.要测试这样的组件 (Search.php脚本),就面临着测试数据的组合覆盖 问题,如何自动产生具有测试充分性的测试数据集, 降低测试强度,就成为一个需要研究的问题.另外,一 个Web应用软件可以由多个组件组合而成,例如面 向服务的架构S0A(service—oriented architecture), 其由多个服务组件组合而成,对其中每一个组件的 测试均包含了多个输入参数的组合覆盖问题.由此 可见,参数组合覆盖测试同样存在于Web应用测试 之中. 2.3 WS组件及WSC应用功能黑盒测试 WS的出现越来越受到人们的关注,对它及其 组合而成的Web应用软件系统测试正成为当前 Web应用测试领域研究的一个热点I . 互操作的描述、发布以及调用.WS分为两种:不组 合其他WS的原子WS及组合其他多个WS的复合 WS(本文中约定:WS指原子WS).图3l30j描述了 WS应用体系结构(面向WS的体系结构): Fig.3 Architecture for WS applications 图3 WS应用体系结构 从图3中可以看出,一个WS应用由若干WS 组合而成,WS为WS应用的基本组成实体.服务提 供者(service provider)通过服务经纪商(service broker)注册、发布其开发的WS,并对服务请求进行 响应,其WSDL文档描述了WS的服务规格;服务 经纪商,也称服务注册中心,负责所有WS的注册管 理等工作;服务使用者(service user)通过注册中心 查找所需的WS,使用SOAP协议,从服务提供者处 调用所需的WS. 目前,WS及WSC测试研究尚处于起步阶段, 主要开展了以下几个方面的研究:①WS测试;② WS组(WS group)测试;③WSC测试;④协议验证 测试. 2.3.1 WS黑盒测试 WS测试属于黑盒测试,其规格描述基于 WSDL文档,一个标准的WSDL文档包含如下信 息:输入输出变量的个数及类型;给定输入的顺序, 输出被返回以及WS如何被调用.因此对其测试也 称为基于规约的或基于WSDL的测试.目前的测试 研究均围绕WSDL文档展开,文献[24—26]开展了 一些有代表性的初步研究工作.文献[24]对一个标 准的WSDL文档的4个方面进行了扩展,以提高单 个WS的易测试性.文献[25]使用变异技术实现单 个WS测试,其针对WSDL文档中的3种元素:类 维普资讯 http://www.cqvip.com 1278 计算机研究与发展2007,44(8) 型(types)、消息(message)及端口类型(port type), 定义了9种变异操作,利用变异后的WSDL文档, 等,目前的研究还很少看到. 2.3.4协议验证 实现对WS所定义的接口测试,同时可以发现部分 WS逻辑错误.文献[26]依据WSDL文档的定义, 在协议验证方面,目前的研究还较少,Looker 等人进行了初步的研究,他们采用错误植入技术验 证SOAP协议的可信性l3 . 2.4性能测试 随机生成WS测试数据,然后使用合约变异技术实 现测试数据的选择,生成一组达到一定变异充分度 的有效测试数据,可以提高ws的测试质量和效率. 以上这些研究覆盖了3个方面的内容:1)完善 Web应用的性能被认为是用户通过用户代理 提出用户请求到请求得到服务器响应之间的时 WSDL文档以便于测试;2)发现WSDL文档中的错 误;3)利用WSDL文档产生测试所需的数据.其中 完善WSDL文档以便于测试是所有测试的关键所 在.由于目前的WSDL文档还不能完全保证测试的 充分性,因此在这方面的研究还需进一步的展开. 对于复合WS,情形同样如此. 2.3.2 WS组测试 WS组,就是所有等价(实现相同或相近功能) WS的一个集合.WS组测试(WS group testing)指, 通过测试从WS组中挑选出满足需要的WS.Tsai 等人在这方面做出了有代表性的研究.他们提出 WSGT思想:测试分为训练阶段及测试阶段:训练 阶段使用测试用例对训练样本(待测试WS组中的 一个子集)的测试,通过多数表决机制,生成每一个 测试用例的测试预言,实现训练样本的排序(按照其 优选度)、确定测试用例可信级别、对测试用例排序 (按照其故障检测能力);测试阶段通过对剩余样本 的依次测试,不断更新测试预言、测试样本的排序、 测试用例可信级别、测试用例排序等结果l3卜 .他 们还进一步提出将WSGT方法扩展到WS组合测 试上l3 .这些方法的提出对WS组测试产生较大的 影响. 2.3.3 WSC测试 WSC测试,目前还处于起步阶段.WSC分为两 种组合:1)基于工作流的组合;2)基于语义的组合. 其有代表性的研究为文献[34—35].文献[34]使用 wSFL(web services flow language) 语言描述WS 的工作流,并使用SPIN模型检测器实现对WS工 作流的验证.而文献[35]讨论了使用BPEL4WS (business process execution language for Web services)[37 描述WS的工作流的验证方法,它使用 有限状态机FSP(finite state process)描述WS的工 作流,并将BPEI 4WS规格转换为FSP规格,从而 实现WS组合工作流的验证.目前,对于WS组合验 证还仅局限在功能规格方面的验证,对于其他属性 的测试,如WS组合中输入输出数据自动生成、验证 间[39]. 由于web应用是一个多层的架构,因此其性能 受到以下几个因素的影响:1)客户端配置(如浏览器 缓存大小配置);2)服务器端配置(如RAM,CPU个 数、磁盘读写速度);3)网络通信容量;4)工作负载的 类型及数量(如读取web服务器上的不同类型的文 件或实现服务器上数据库中的数据读写操作).针 对以上几个因素的影响,人们分别开展了以下两个 方面的研究.1)系统运行平台性能测试(实际对应 于前3个方面影响的研究);2)web应用运行性能 测试(对应于第4方面影响的研究). 在进行Web应用性能测试时,以下方面成为影 响性能测试的瓶颈l4m :①真实环境与测试环境差 异较大.web应用的性能与运行环境有关,不同的 环境配置可能导致不同的测试结果,而测试往往在 一个局域网内或一个企业的Intranet内模拟进行, 这与真实的环境差异较大.②负载的不确定性。由 于网络上并发的用户访问数随时发生着变化,同时 每一个用户的行为又各不相同,例如表单(form)提 交行为、页面切换行为等的不同,直接导致负载种类 及数量的不同.③模拟真实环境困难.模拟真实环 境包括设备、配置、分布等模拟,实现起来难度很大. ④模拟真实用户行为困难.模拟用户行为主要体现 在模拟用户的数量及行为,而这两方面均有主观性、 随机性及不充分性. 为了实现系统运行平台性能测试,人们借助于 支撑平台上执行某种标准的应用来测试评价支撑平 台的性能指标.目前几种主要的Web应用基准测试 可以用于这方面的测试研究.如SPECweb99M , TPC—wl ,TPC—CI ,SPECMail2000等标准应用 Benchmark基准测试.此外,许多厂商还定制了运行 本公司软件产品的基准测试指标,这些测试指标对 于考察各种计算机系统的性能指标,从而选择决策 可提供重要的依据,如Oracle,Informix,Sybase和 IBM DB2等的基准测试指标.文献[43]使用 SPECweb99基准测试对一个实验的支撑平台进行 维普资讯 http://www.cqvip.com 邓小鹏等:Web应用测试技术进展 了性能测试,实验支撑平台由一个服务器、6个客户 机及相关网络设备组成的局域网组成.其进行了6 个有关的实验,其中2个是针对服务器端的,4个是 针对客户端的.服务器端实验研究了在服务器端配 置不同的RAM及CPU数量下,响应时间、吞吐量、 连接速度与并发用户连接数之间的关系;客户端实 验研究了确认的负载连接数与许可的传输速度之间 的关系、客户端内存的大小与响应时间之间的关系、 客户端数量与响应时间之间的关系、工作负载的类 型(静态负载及动态负载)与吞吐量之间的关系、响 应时间与工作负载之间的关系.文献[44]则使用 SPECWeb99,TPC—C,TPC—W三个基准测试对一个 模拟的试验支撑平台进行了测试,使用不同的测试 基准组合,从不同角度测试支撑平台的性能方面,从 而实现对支撑平台的配置优化.文献[45—48]等均进 行了类似方面的研究. 使用这些基准测试指标可以对支撑平台的性能 做一个大致评估,可以发现系统中的不合理配置,找 到系统的性能瓶颈,这对于优化支撑平台的配置起 着十分重要的作用.但在选择测试基准时必须考虑 以下因素:①实际应用软件系统支撑平台与选择的 测试基准支撑平台大致相符;②单个的测试基准可 能只能发现部分的性能缺陷,多个测试基准的组合 才可以发现更多的性能缺陷.由于产生基准测试指 标的支撑平台不可能同待测的支撑平台完全一致. 因此尽管使用了基准测试,人们仍不能对待测的支 撑平台得到一个绝对准确的性能评价,而只能形成 一个大致的性能评价. 为了实现Web应用运行性能的测试,Web应用 负载的研究成为关键问题.有关的研究表明:Web 应用性能测试的好坏取决于Web应用的负载被准 确理解并真实模拟的程度_4 .目前,这方面研究重 点集中在如何真实地刻画Web应用软件系统的负 载特性,从而形成合理的测试负载模型. 早期的刻画负载特性方法是通过一些技术指标 如每秒点击数(Onhits/s)、每秒访问页面数(page views/s)或每秒访问数(visits/s)等来刻画,这样做并 不能准确地刻画真实的负载特性,原因是:①不同类 型用户在单位时间内点击数不一样,如熟练的用户 及陌生用户,体现在思考时间不一样;②用户访问不 同的页面或表单的提交等行为可能导致不同的通信 数据流量,这必然导致每秒访问页面数的变化;③网 络上并发用户数随时间的变化呈现出一定的规律, 不同的并发访问数可能导致不同的每秒点击数或每 1279 秒访问页面数的变化.这些原因表明:仅仅使用每 秒点击数及每秒访问页面数这两个指标并不能准确 地刻画实际的负载特性. 目前的负载特性刻画方法主要采用模拟用户行 为的方法[ .模拟用户行为的方法分为3种方 法:①基于捕捉用户行为的方法(capture—based user behavior approach).这种方法通过记录用户实际操 作行为,并对这些行为中的实际数据进行一系列的 修改,并以此作为负载的设计依据,设计实际使用的 测试负载,使得测试的负载更符合真实情况,如利用 工具LoadRunner,OpenSta,httperf,WebAppLoader, S—Client及Geist等进行的性能测试均为这种方法. ②基于文件系列的方法(file-list—based approach).使用 这种方法的测试工具提供了一系列的Web文件对象 以及它们的访问频率数,在测试负载产生时,按照访 问频率数的大小,依次选择测试文件系列作为测试工 作负载,如SpecWeb99,WebStone,Webbench,TPC-W 等.③基于数学分布模型的方法.使用这种方法的 测试工具,负载模型的产生依据某种数学分布模型, 如Surge.上述3种方法产生的负载模型存在以下 缺点:①主观性;②随机性;③不充分性,主要表现为 在数据量小或没有数据的情况下不能给出有效的负 载模拟. 为了更好地刻画负载特性,以形成更合理的负 载模型,文献[53—56]研究了基于统计分析Web应 用服务器的日志文件以得到负载模型的方法,这种 方法称为用户行为模型图的方法(customer behavior model graph approach,CBMGA).在这种方法中,以 用户会话(user session)模式作为负载特性刻画的主 要手段,一个会话模式主要由3个特征分量组成:会 话长度(以页面数度量)、会话持续时间(以分钟和 秒度量)、会话期间访问的页面类型等.其根本任务 就是会话的特征提取、分类及利用分类后的会话统 计、合成形成合理的负载模型等.这种方法的局限 性在于必须有充分日志数据.在已有充分的日志数 据情况下,文献[57]研究了如何对用户会话数据集 精简,以降低测试代价的问题.而在没有充分的日 志数据情况下,文献[58]研究了在经验数据不足的 前提下如何实现有效的负载模型的策略,但这些策 略(采用多种方法收集、产生经验数据)对于测试者 而言仍具有较大的主观性及难以操作.由于精确刻 画负载模型的复杂性,这方面的研究仍将是一个困 难的课题 . 维普资讯 http://www.cqvip.com

1280 计算机研究与发展2007,44(8) 试,面向服务体系结构的发布、查找和绑定能力的测 3 Web应用测试的发展趋势 web应用测试研究主要表现出以下发展趋势: 1)Web应用的模型驱动测试技术MDT(model— driven testing).近几年来,随着MDA(model—driven 试,WS的集成能力测试,WS的服务质量测试,WS 的性能与负载测试以及WS的安全性测试等,并指 出这些问题能否解决将成为WS应用成功与否的 关键. 3)基于Agent的测试技术.在最近的几年里, architecture)软件开发技术的应用,MDT技术随之 产生,并可能成为实现Web应用测试自动化、提高 面向Agent的软件工程技术正作为一个新的学科出 现l6 .基于Agent的测试技术也同样受到了人们的 测试效率的最有前途的技术.OMG(object management group)组织推荐使用这一技术 . MDT的一个重要思想就是使测试人员重点关注测 试设计,而不是测试实现,其核心在于模型设计.基 于MDT的系统一般由测试用例模型、测试行为模 型(包括测试配置模型、测试控制模型)、测试结果分 析及生成模型、测试执行引擎等组成l5 .MDT模 型的描述可以使用U2TP(UML 2.0 testing profile) 建模语言,OMG建议使用这一语言.U2TP是基于 UML2.0(unified modeling language)的测试建模语 言,可以用于Web应用各个级别(单元测试、集成测 试及系统测试)的测试建模.在理想情况下,利用 MDT测试技术,测试人员只需依据需求建立测试模 型,一旦模型测试建立完成,所有的工作测试将由测 试工具自动完成,由于其高效性,这一技术正成为 当前软件工程学术界研究的一个重要方向 5 .现在 已有部分可供使用的工具包,如Eclipse的TPTP (eclipse test and performance tools platform),IBM 开发的MDT包等. 2)WS及SOA软件测试技术.WS的出现越来 越受到人们的关注,SOA软件的开发已经成为软件 开发的一种新途径,对其测试正成为当前Web应用 测试领域研究的一个重要方向. 对于WS及SOA测试,目前的研究主要体现在 以下几个方面:①WS测试[24 26 ;②WS组(WS group)测试[。 0 ;③WSC测试[。 ;④协议验证测 试I3 .其核心是WSC测试.由于WSC是动态构 建,即WS及WSC的发布、发现与绑定是动态的,这 就使得wSC测试中所包含的WS测试、WS组(WS group)测试必须是动态进行的,WSC的测试也必须 是动态的,传统的需要大量人工干预的测试方法已 不再适用,这也增加了测试的困难.目前,WSC测试 还只停留在静态测试或模拟验证阶段,缺乏实时的 动态测试手段.因此并不能完全保证测试是可信 的[ .文献[60]给出了目前WS应用测试急需解决 的诸多问题,如WS的基本功能测试,WS协议的测 重视.文献[61—63]等开展了这方面的研究工作,提 出了基于Agent的测试框架.基于Agent的测试技 术把Web应用中的测试任务进行分解,利用不同的 测试代理实现测试的分工协作,它不仅可用于功能 测试l6 ,还能用于性能测试【63 J.由于测试代理的 高度自治及代理间的分工协作,使得测试的自动化 程度较高.因此,基于Agent的测试工具无疑可以 降低测试成本,提高测试效率.但由于目前在面向 Agent的软件工程领域中,面向工程实践的形式化 规约、验证和模型检验等方面的研究不多且缺乏实 用性l6 ,因此,可以预见,开展基于Agent的Web 应用测试研究仍将深入进行. 4)性能测试负载模型的有效刻画.Web应用的 性能测试对于web应用的成功与否至关重要,而性 能测试的核心问题是负载模型的刻画问题.由于 Web应用性能测试的好坏取决于Web应用的负载 被准确理解并真实模拟的程度,而Web应用类型是 多种多样的,这将导致其性能测试负载的多样性. 一方面,对于不同类型的Web应用,其负载可能不 同;另一方面,对于同一类型的Web应用,其负载也 有可能不同.这就要求测试人员必须针对不同的应 用,设计不同的负载模型,目前还不存在一个普遍适 用的负载模型.对于某一应用而言,负载模型精确 刻画主要依赖于本应用的用户会话数据集,而用户 会话数据集可能存在过大、过小或没有等情况 针对 这几种情况,必须采取相应的算法和策略对用户会 话数据集进行适当的精简或添加,从而产生合理的 用户会话数据集[57-58];同时还必须考虑其应用系统 未来的扩张等情况,只有这样才可能设计合理、有效 的负载模型,实现应用系统性能的有效测试. 4 结束语 Web应用的特殊性使得其功能、性能测试具有 挑战性.从目前的现状来看,研究主要集中在链接 测试、组件黑盒测试、组件白盒测试、WS及WSC应 维普资讯 http://www.cqvip.com 邓小鹏等:Web应用测试技术进展 用测试、性能测试等方面.其中有许多问题有待进 一步研究,如对WSC测试存在的诸多问题 ,性能 测试时负载模型精确刻画等,对这些问题的充分研 究及解决必将有助于Web应用测试技术的进一步 发展. 参 考 文 献 [1] D C Kung,C H Liu,P Hsia.An object—oriented Web test model for testing Web applications[C].IEEE 24th Annual Int’l Computer Software and Applications Conf(COMPSAC’ 00),Taipei,2000 [2] F Ricca,P Tonella.Analysis and testing of Web applications [C].In:Proc of the 2001 Int’l Conf on Software Engineering (ICS’01).Los Alamitos CA:IEEE Computer Society Press, 2001.25-34 [3] P Tonella,F Ricca.A 2-layer model for the white—box testing of Web applications[C].The 2004 Int’l Workshop on Web Site Evolution(WSE’04),Chicago,Illinois,2004 [4] Liu ChienHung,D C Kung,Pei Hsia,el a1.Structural testing of Web applications[C].The 1lth Int’l Symp on Software Reliability Engineering(ISSRE’O0),San Jose,2000 [5] C Kallepalli,J Tian.Measuring and modeling usage and reliability for statistical Web testing[J].IEEE Trans on oSftware Engineerign,2001,27(11):1023—1036 [6] WenLi Wang,MeiHuei Tang.User-oriented reliability modeling for a Web system[C].In:Proc of the 14th Int’l Symp on oSftware Reliability Engineering(ISSRE’2003).Los Alamitos CA:IEEE Computer Society Press,2003.293—304 [7] Liu Chunlu,el a1.The Course of Software Testing and Evaluating to Engineers[M].Beijing:Tsinghua University Press,2005(in Chinese) (柳纯录,等.软件测评师教程[M].北京:清华大学出版社, 2005) 【8] Shan Jinhui,Jiang Ying,Sun Ping.Progress in,software testign research[J].Journal of Peking University(Natural Sciences), 2005,41(13):134—143(in Chinese) (单锦辉,姜瑛,孙萍.软件测试研究进展[J].北京大学学报 (自然科学版),2005,41(1):134-143) [9] Doctor HTML[OL].http://www2.imagiware.eom/Rxhtml/, 2006 [10] W3C HTML Validation Service[OL].http://validator.w3. org,2006 [11] E Miller.Website Testing[OL].http://www.,osft.corn/ Produets/Web/Teehnology/Website.testing html,2006 [12] Mercury Software[OL].http:/www.mere—int.corn/,2006 【l3] Rational Software【OL].http://www.wilsonmar.corn/,2006 [14] Jin Lingzi.Progress in testing object.oriented,osftware[J]. Journal of Computer Research and Development,1998,35(1): 6—13(in Chinese) 1281 (金凌紫.向对象软件测试技术进展[J].计算机研究与发展, 1998,35(1):6—13) [15]D M Cohen,el a1.The combinatorial design approach to automatic test generation[J].IEEE Software,1996,13(5): 83-88 [16]D M Cohen,el a1.The AETG system:An approach to testing based on combiantorial design[J].IEEE Trans on Software Engineering,1997,23(7):437—444 [17]Nie Changhai,Xu Baowen.An algorithm for automatically generating black.box test cases based interface parameters[J]. Chinese Journal of Computers,2004,27(3):382—388(in Chinese) (聂长海,徐宝文.基于接El参数的黑箱测试用例自动生成算 法[J].计算机学报,2004,27(3):382—388) [18]J Clune,L Chen.Testing Web services:Methods for ensurign server and client reliability[OL].http:/www.syscon.corn/ websphere/’2006 [19]N Davidson.Testing Web services[OL].http:/www. webservices.org/,2002—10 [20] W T Tsai,el a1.Coyote:An XML—based framework for Web services testing[C].The 7th Int’l Symp on High Assurance Systems Engineering,Tokyo,2002 [21]w T Tsai,X Wei,Y Chen,el a1.Developign and assuring trustworthy Web services[C].In:Proc of Autonomous Decentralized Systems(ISADS’05).Los Alamitos,CA:IEEE oCmputer Society Press,2005.43—50 [22] A Bertolino,A Polini.The audition framework for testing Web services interoperability[C]. In:Proc of the 31st EUROMICRO Conf on Software Engineerign and Advanced Applications.Los Alamitos,CA:IEEE Computer Society Press,2005.134—142 [23]w T Tsai,X Wei,Y Chen,el a1.A robust testing framework for verifying Web services by completeness and consistency analysis[C].In:Proc of the 2005 IEEE Int’l Workshop on ServieeOriented System Engineering(SOSE’05).Los AIamitos,CA:IEEE oCmputer Society Press,2005.151—158 [24]W T Tsai,Paul R,Y Wang,el a1.Extending WSDL to facilitate Web services testing[C].In:Proc of IEEE HASE’ 02.Los Alamitos,CA:IEEE Computer Society Press,2002. 171-172 [25]R Siblini,N Mansour.Testing Web services[C].In:Proc of the 3rd ACS/IEEE Int’l Conf on Computer Systems and Applications.Los Alamitos,CA:IEEE Computer Society Press.2005.135—142 [26]Jiang Ying,Xin Guomao,Shan Jinhui,el a1.A method of automated test data generation for Web service[J].Chinese Journal of Computers,2005,28(4):568—577(in Chinese) (姜瑛,辛国茂,单锦辉,等.一种Web服务的测试数据自动 生成方法[J].计算机学报,2005,28(4):568—577) [27]Web Services Description Language(WSDL 1.1)[OL].W3C Note.http:/www.w3.org/TR/w ̄l/,2001.03 维普资讯 http://www.cqvip.com l282 [28]Universal Description,Discovery and Integration(UDDI) [OL],http://www oasis—open org/committees/uddi—spec/, 2002—10—08 计算机研究与发展2007,44(8) [44] Srihari Makineni,Ravi Iyer.Performance characterization of TCP/IP packet processing in commercial server workloads[C]. In:Proc of 2003 IEEE Int’l Workshop on Workload [29]Simple Object Access Protocol(SOAP 1.1)[OL].W3C Note, http://www w3,org/TR/. ̄ap/,2000—05 08 CharacterIzation(WWC一6) .Los Alamitos, CA: IEEE Cxwnputer Society Press,2003.33 41 [30]Web Services Architecture[OL],W3C Working Draft.http// www.w3.org/TR/ws arch/.2002一ll [45]R Eigenmann.Performance Evaluation and Benchmaking with Realistic Applications[M]Cambridge,MA:MI'I、Press,2001 [31]w T Tsai,Y Chen,Z Cao,et a1.Testing Web services using progressive group testing[C].The Advanced Workshop on [46] K Kant,Y Won.Performance impact of uncached file accesses in SPEC Web99『G 1.In:Workload Characterization for Content Computing,Zhenjiang,2004 f32]W T Tsai,Yinong(;hen,Ray Paul,et n,.Adaptive testing, Oracle generation,and test case ranking for Web services[C]. The 29th Annual Int’1 Ccwnputer Software and Applications Conf(COMPSAC’05),Edinburgh,2005 [33 j w T Tsai,et a1.Cooperative group testing in verification of dynamic composition Web services lC].Workshop on Quality Assurance and Testing of Web—Based Applications,Hong Kong, 2004 [34]S Nakajima.Verification of Web service flows with n1odel— checking techniques[C].In:Proc of the 1st Int’1 Syrup on Cyber Worlds(CW’02).Los Alamitos,CA:IEEE Computer Society Press,2002.378—385 [35]Howard Foster,Sebastian Uchitel,Jeff Magee, 口,.Model— based verification of Web service compositions l C].In:Proc of the 1 8th Int’1 Conf on Automated Software Engineering(ASE’ 03).Los Alamitos,CA:IEEE Computer Society Press,2003. 152一l6l [36]Web Services Flow Language(WSFL 1.0)[S].IBM Software Group,2001 [37]Business Process Execution Language for Web Services (BPEL4WS 1.0)fS].IBM Corporation,2002 [38]N Looker,et“,.Assessing the dependability of SOAP RPC based Web services by fault injection[( ].In:Proc of the 9th IEEE Int’I Workshop on Object—Oriented Rea1.Time Dependable Systems(WORDS’03).Los Alamitos,CA;IEEE Computer Society Press,2003.163—170 [39]G Ruffo,R Sehifanella,M Sereno,et a1.WALTy:A user behavior tailored tool for evaluating Web application performance [C].In:Proc of the 3rd IEEE Int’1 Syrup on Network Computing and Applications(NCA’04).Los Alamitos,CA: IEEE Computer Society Press.2004.77—86 [40]SPECweb99 Design Document[OL].http://www specbencb ()rg/docs/whitepapef.html,2006 [41]Tp(7一W Design Document[OL].http://www tpc.org/tpcw/' 2006 [42]TPCC Design I)ocument[OL].http://www tpc org/tpcd/' 2006 [43]Ashish Godbole,Seungyun Kim,R Guzman,et a1. Performance evaluation studies of client server models using SPEC Web99 Benchmarks[C].In:Proc of 2003 IEEE Int’l Conf on Information Reuse and Integration.Los Alamitos,CA: IEEE Computer ̄)ciety Prexs,2003.406~41 4 Computer System Design.Amsterdam,Netherlands:Kluwer Academic Publishers,2000 [47]T W Keller,K Sankaralingam,H P Hofstee,Towards an optimal file allocation strategy for SPECWeb99[G].In: Workload Characterization of Emerging Computer Applications. Amsterdam,Netherlands:Kluwer Academic Publishers,2001 [48]D A Menasce.Tpc—w:A benchmark f。r e—commerce[J].IEEE Internet Computing,2002,6(3):83 87 [49]J E Pitkow.Summary of www Characterizations[J]. Computer Networks and ISDN Systems,1998,30(1—7):55l 558 [50] K Wolter,K Kasprowicz.WebAppLoader:A simulation tol set for evaluating Web application performance[( ].TOOLS 2003,Urbana,IHinois,2003 [51]D Mosberger,T Jin.httperf:A tool for measuring Web server performance[c].In:Proc of l 998 1st Workshop on Internet Server Performance.New York:ACM Press.1 998.59 67 [52]D A Menasce.Load testing of Web sites[J].IEEE Internet Computing,2002,6(4):70~74 [53]ZaoBin(Jan,DengWen Wei,V Varadharajan.Evaluating the performance and scalability of Web application systems[C].In: Pre)c of the 3rd Int’l Conf on Information Technology and Applications(ICITA’05).Los Alamitos.CA:IEEE Computer Society Press.2005.11 l ll4 [54]K Goseva Popstojanova, “,.Empirical study of session—based workload and reliability for We1)servers.In:Proc of the l5th Int’l Symp on Software Reliability Engineering(ISSRE’04). Los Alamitos,CA:IEEE(Samputer Society Press,2004.403 4l4 [55]G Ballocca,P Politi,( Ruffo. n .Benchmarking a site with realistic workload.In:Proc of the 5 th IFEE Workshop on Workload Characterizat1on(WWC一5).Los Alamitos。 CA: IEEE Computer Society Press.2002.1 4 22 [56]( Ruffo,R Schifanella,M Sereno,et a1.WAL Fy:A too[for evaluating Web application performance[C].In:Proc of the l st lnt’I Conf on the Quantitative Evaluation of Systems(QEST’ 04).Los Alamitos,CA:IEEE Computer ̄)ciety Press,2004. 332—333 57](;A Di Lucca,A R Fasolino,P Tramontana.A technique for reducing user se&sion data sets in Web application testing[C]. In:Proc of the 8th IEEE Int’l Symp on Web Site Ew)lution (WSE’06).Los Alamitos,CA:IEEE Computer Society Press, 2006.7一l3 维普资讯 http://www.cqvip.com 邓小鹏等:Web应用测试技术进展 1283 [58] S Barber.Creating effective load models for performance testing with incomplete empirical data[c].In:Proc of the 6th IEEE Int’1 Workshop on Web Site Evolution(WSE’04).Los Alamitos,CA:IEEE Computer Society Press.2004.51—59 [59 J NUO Li,Qinqin Ma,Ji Wu,et a1.A framework of model— driven Web application testing[C].In:Proc of COMPSAC’ 06.Los Alamitos,CA:IEEE Computer Society Press,2006. 157-162 [60]De B.Web Services--Challenges and Solution[OL].http:// www wipro com.2003 [61]David Kung.An agent—based framework for testing Web applications[c].In:Proc of COMPSAC’04.Los Alamitos, CA:IEEE Computer oSciety Press,2004.174—177 [62] Yu Qi,David Kung,Eric Wong.An agent—based testing approach for web applications[C].In:Proc of COMPSAC’ 05.Los Alamitos,CA:IEEE Computer Society Press.2005. 45-50 [63]Huiming Yu,Jin Zhang,Jinsheng Xu.Multi—agent testing architecture for monitoring and analyzing the performance of Web applications[c J.In:Proc of the 5th IEEE/ACIS Int’1 Conf on Computer and Information Science(ICIS—COMSAR’ 06).Los Alamitos,CA:IEEE Computer Society Press,2006. 115-120 [64]Mao Xinjun,Chang Zhiming,Wang ji.et a1.Agent—oriented 蔡莲红,1945年生,教授,博士生导师,主要研究方向为模式 software engineering:Status and challenges[J].Joumal of 识别、生物特征识别、中文语音处理及合成及识别. Computer Research and Development,2006,43(10):1782— 1789(in Chinese) (毛新军,常志明,王戟,等.面向Agent的软件工程:现状与 挑战[J].计算机研究与发展,2006,43(10):1782—1789) Research Background Testing for Web applications has challenges on its special aspects.Compared with design and development,relatively little work on testing has been done SO far.Assuring Web application system quality and reducing its defaults have become important tasks for software developers and testing engineers.Knowing these crucial researches,which come from these aspects such as hyperlink testing,black—box testing and white—box testing for components,Web services testing and performance testing will be helpful to the development of Web application testing.This work is supported by the National Natural Science Foundation of China under grant No. 60473078. 

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务