Web应用自动化测试实验研究

 2021-11-30 09:11

论文总字数:27036字

摘 要

随着互联网时代的到来,Web应用在各行业发挥着日益重要的作用。为了保证Web应用的质量,Web应用测试也越发重要,其中Web应用自动化测试也在不断研究发展中。

现有的基于HTML代码分析的Web应用自动化测试工具主要通过在动态页面处理、表单数据生成方式、噪声处理、采样方式等方面改进自动化测试方法来解决测试充分性、Web应用状态空间爆炸的问题。本文对自动化测试工具ComjaxTest的配置进行组合,设计对应的实验,对几个规模不同的Web应用进行自动化测试。分析不同配置对实验结果的影响,得出各种配置的优缺点,并给出合理的测试建议。

本文采用控制变量法设计实验,并得出相应的实验结果。实验结果表明:不同的配置对同一个Web应用进行测试,得到的测试效果有很大的差异,主要体现在Web状态空间的状态数和状态之间的事件上。针对规模不同的Web应用,取得最好测试效果的配置并不相同。综合考虑各种因素,本文得出了最佳配置是:处理导航信息、页面相似性分组、采样法、基于约束两两组合。

关键词:软件测试,Web应用测试,自动化测试工具

Abstract

With the advent of the Internet age, the Web application is playing an increasingly important role in various fields. And to ensure the quality of software, Web application testing is becoming increasingly important. Automation of Web application test is also in the continuous research and development.

Existing Web applications automatic test tools based on HTML code analysis are going to solve problems such as wide test range and the explosion of the increasing test cases. In order to achieve better testing effect, these tools can handle dynamic pages, generation of Web form data, page noise and similar elements. In this paper, we design experiments using the automatic test tool called ComjaxTest to test different Web applications with different configurations and analyze the experimental results to find the influence of different configurations.. We also conclude the advantages and disadvantages of each configuration and give reasonable advices on the test.

We design experiments based on the method of controlling variables,and get the results. The experimental results show that using the combination of different configurations to test the same Web application may get very different results. The differences are especially shown at the number of states and the events between every two states. For different Web applications, however, the best combination is not often the same. With comprehensive consideration of various factors, we obtain the optimum combination of processing navigation information, using page similarity algorithm, using sampling method to process similar elements and using the algorithm of combination of every two parameters which are based on some constraints to generate Web form data.

Keywords: software testing, Web applications testing, automatic testing

目 录

摘 要 I

Abstract II

目 录 III

第一章 引言 1

1.1 选题依据 1

1.2 国内外研究现状 1

1.3 研究内容 2

1.4 论文组织结构 2

第二章 基于HTML代码分析的Web应用测试方法 3

2.1 基本概念 3

2.2 AJAX技术 4

2.3 基于AJAX技术的Web应用测试挑战 6

第三章 Web应用自动化测试工具 8

3.1 Web应用状态空间 8

3.2 Web状态相似性 8

3.3 表单数据生成方法 9

第四章 实验介绍及结果分析 10

4.1 实验设计 10

4.2 实验配置及对象 10

4.3 实验结果及分析 11

第五章 结论 15

5.1 论文总结 15

5.2 未来研究方向 15

致 谢 16

参考文献 17

第一章 引言

1.1 选题依据

Web应用是当前一种应用最广泛的基于B/S模式的程序,一般由浏览器、Web服务器、数据库服务器、网络及其协议等组成。用户通过浏览器发送HTTP请求到服务器端,服务器端处理后发送HTTP响应并由浏览器接收和解析。近年来,由于互联网高速发展,Web应用在通信、电子商务、信息管理、金融等应用领域得到普遍地应用。目前,如何保证Web应用的质量已引起人们的高度重视,其中Web应用测试已成为该领域的一个重要研究方向。

一般而言,Web应用的测试主要是针对Web应用中大量的页面进行测试。但是这些页面并不是独立分开的,而是页面间存在着多种复杂的关系,这些页面及其关系构成了Web应用的状态空间。一种有效的Web应用测试方法就是对Web应用状态空间进行搜索。目前比较流行的Web 2.0应用技术Ajax(Asynchronous JAVASCRIPT and XML)技术,是一种在无需重新加载整个网页便可更新部分网页的技术。Ajax技术将JAVASCRIPT和文档对象模型(Document Object Model)的操作巧妙地结合在一起,客户端和服务器之间实现异步通信。

目前Web应用中广泛使用的动态页面技术是根据用户请求和当前页面状态来动态地生成新页面,因此Web应用的状态空间可达无穷大;又因为有些页面必须通过某些特定地页面才能到达,因此选择合理的动态页面处理、分组、采样方式是Web应用自动化测试程序需要考虑的方面。

在Web应用中,表单是一种常用的数据输入方式,Kuhn和Reiily研究发现大约70%的错误是由两个以下参数的相互作用引起的,因此在自动化测试过程中,如何采用合适的策略选择合适的表单数据将大大影响测试效率。目前研究发现基于约束的两两组合测试可以大大提高表单数据生成合适度,从而更好地覆盖状态空间。

由于Web应用巨大的状态空间和表单数据的多种组合,对Web应用进行人工测试已基本不可行了,Web应用自动化测试已成大势所趋。

1.2 国内外研究现状

随着Web应用的发展,人们越发地关注Web应用测试,并进行了深入的研究[1,2]。根据测试用例生成方式的不同,可将Web应用测试方法分为模型法、基于日志的方法、Capture-Replay方法、基于HTML代码分析的方法以及基于AJAX技术的Web应用测试方法等。

模型法通过分析源代码或需求说明来构造Web应用模型,并根据模型产生测试用例。Ricca F.和Kung D.C.等人分别提出利用面向对象的思想对Web应用建模,通过模型来构造测试用例集,对Web应用进行测试[3,4]。Andrews A. A.等人提出分层聚集FSM建模的方法,通过分层聚集和添加限制条件,缓解了状态空间爆炸的问题[5]。Halfond W. G. J.等人提出通过分析Web应用源代码产生Web测试用例的方法[6]。模型方法可以实现较高的测试覆盖率,但一般需要手工建立模型,由于Web应用的动态性等特点,难以做到精确建模。同时,Web应用常处于动态变化中,需要较高的代价维护模型。

基于日志的方法是通过服务器中记录的一切有关Web应用的信息来生成测试用例。由于在Web应用中,服务器记录着有关应用使用情况的一切信息,数据获取也较为方便,但正如Ben Kam所说,基于日志的测试方法只能用于回归性测试[7]。Elbsum S.等人首次提出通过日志生成测试用例[8]。基于日志的测试方法的优点是用例生成较切合实际,精度高;缺点是日志的选取和数据挖掘影响测试用例的生成,无法保证测试的覆盖率。

Catch-Replay方法是通过记录和回放用户对Web应用的使用过程来生成测试用例,该方法目前在工业上得到了广泛了使用,如HP公司的QTP和LoadRunner[9,10]。该方法优点是可以帮助测试人员生成脚本并自动化执行用例,缺点是记录一个用例花费的时间很多,且只能覆盖少量路径,无法对Web应用进行较为完全的测试。

基于HTML代码分析的Web应用测试方法可用现有的爬虫工具或进过改造的工具等自动地搜索Web应用状态空间,自动化程度高。基于HTML代码分析的方法与爬虫工具明显的不同点是爬虫工具侧重于内容发现,而基于HTML代码分析的方法则侧重于对Web应用状态空间的彻底搜索,包括内容和结构。基于HTML代码分析的思想,Benedikt M.等人设计和实现了VeriWeb工具,该工具以深度优先的方式遍历Web应用的状态空间,对于在搜索中遇到的表单,VeriWeb以配置文件的形式,为每个表单生成一个合法测试用例[11]。与VeriWeb不同,Wang W.等人基于组合测试的思想实现了Tansuo,Tansuo通过对URL进行处理,得到Abstract URL,并根据Abstract URL来控制状态空间[12]。基于HTML代码分析的Web应用测试方法具有较高的自动化程度,但测试效果受到动态页面处理方式、表单数据的生成方法等影响。

传统的Web应用测试方法是基于页面序列的形式,根据超链接请求服务器,分析由服务器返回的HTML代码。Ajax技术的出现和广泛使用给Web应用带来的了新的困难和挑战。Ajax技术的优点是客户端和服务器以异步方式交互,实现局部刷新,缓解了刷新整个页面带来的延迟并减轻了流量负担。Ajax技术的缺点是只根据URL区分不同页面将不再适用,由于不同的页面具有相同的URL,因此传统爬行工具以及基于传统的爬行工具的工具都很难访问到隐藏的页面。 Mesba A.等人[13,14]采用浏览器内部的DOM树来表示Web应用的状态,并通过建立有限状态机的方法来充分地发掘隐藏的页面,开发了相应的爬行工具Crawljax。Duda等人也提出通过分析Javascript代码来索引Ajax状态的方法[15]。

1.3 研究内容

综上所述,随着互联网科技的蓬勃发展,人们对稳定可靠的Web应用的需求与日俱增,因而Web应用自动化测试的研究也逐步深入,目前已经开发出了一些Web应用自动化测试工具。这些工具通过不同的策略实现了对动态页面的处理,对表单数据的生成和对噪声信息的处理,而不同的策略因实现原理和算法不同,在测试效果和测试时间上都有区别,因而本文主要研究的内容有:

(1)为一种Web应用自动化测试工具ComjaxTest搭建好测试平台,并设计实验,组合不同配置对不同Web应用进行测试。

(2)通过对实验结果的分析得到不同配置的优缺点,分析实验结果差异的原因,给出合理配置建议。

1.4 论文组织结构

本论文的各章内容安排如下:

第一章是引言,主要介绍了论文的选题依据、Web应用自动化测试的研究现状、本文的主要研究内容和论文的组织结构。

第二章主要是对Web应用测试的简单介绍。

第三章是对Web应用自动化测试各种策略的原理以及现有自动化测试工具的简单介绍。

第四章是实验设计和分析,将介绍本文进行的实验的设计思想、依据,实验配置,以及实验结果对比分析和从中得出的结论。

剩余内容已隐藏,请支付后下载全文,论文总字数:27036字

您需要先支付 80元 才能查看全部内容!立即支付

该课题毕业论文、开题报告、外文翻译、程序设计、图纸设计等资料可联系客服协助查找;