基于网页分类的Web应用软件测试研究
2013-03-17刘小园
刘小园
(罗定职业技术学院,罗定 527200)
基于网页分类的Web应用软件测试研究
刘小园
(罗定职业技术学院,罗定 527200)
随着Web应用软件的广泛应用,为了保证Web应用软件的质量和可靠性,人们越来越重视Web应用软件测试.但目前大多数基于模型的测试技术都很难满足人们对Web应用软件的测试要求,本文在模型测试技术的基础上,提出基于网页分类的Web应用软件测试方法,并通过一个网上购物系统的实例,验证了该方法在功能覆盖率和错误检测率两方面都有较好的表现.
Web应用软件;软件测试;网页分类;测试用例
随着 Web技术的广泛应用,科学技术类 Web系统、电子商务和电子政务等Web技术的应用已经广泛影响着人们的生活.可是由于Web应用软件的规模越来越大、复杂度越来越难、开发周期越来越长等特点,使得大量的Web应用软件在部署到实际运行环境中都被发现存在不同程度的错误,因此人们开始重视起 Web应用软件的质量问题.为了保证Web应用软件的质量和可靠性,对其进行测试就是Web应用软件开发过程中一个必不可少的环节.但是由于Web应用软件与传统软件相比较有着异构、并发、跨组织和跨平台等显著特征,使得传统的软件测试方法基本无法满足对Web应用软件的充分测试,这也就给软件测试领域提出了新的挑战[1].
1 相关研究
1.1 Web系统应用简介
Web应用软件是一系列Web网页和部件组成的系统,而与用户打交道的实际上是客户端浏览器.用户使用系统时通过客户机浏览器发送请求后,剩下的逻辑处理和运算交给前端Web服务器、应用服务器和数据库系统来完成,最后的处理结果再通过客户机浏览器返回给用户,在这个过程它们相互间还会有数据交流和传递,图1是Web系统体系结构简图.用户在客户机上使用浏览器向Web服务器发送访问申请,Web服务器收到用户发送的申请后向应用服务器发送需求申请,Web服务器收到应用服务器返回的需求申请运行结果后,以输出网页的形式转发到客户机上通过浏览器展示给用户.在实际应用系统中,用户提出的访问申请具有广泛的多样性和复杂性,所以说Web系统的应用是复杂的和多变的.如果只是根据某一种模型来生成测试用例,势必造成软件测试的局限性,无法实现满足客户需求的测试要求.
图1 Web体系结构图
1.2 相关研究工作
目前,国内外关于Web应用软件测试方面的研究工作已经做的比较多了,每个研究者的侧重点也各有不同.例如基于状态图的导航模型提出用状态来表示Web应用软件中网页和网页中的各种元素,规定用状态的迁移来表示网页的超级链接或各页面间的跳转,该方法虽然理解起来很直观,但是最终形成的状态图却错综复杂,表达起来很麻烦[2].又有基于用户会话的测试方法提出利用Web应用软件的域数据进行软件测试,但该方法没有考虑到Web应用软件具有多用户交互的特性,显然测试也不够全面.也有人提出结构测试方法,该方法注重把与结构相关的所有实体如超级链接、表单和窗体等网页间的跳转关系都表示出来,强调链接和动态交互等带导航特性的内容,由于明显忽略了Web应用软件的网页中包含着脚本、组件、接口对象以及服务端网页间的重定向关系,这样的测试显然也是不够全面的[3].
综上所述,以往提出的Web应用软件测试方法大部分是采用“白盒测试”技术,这些测试方法都需要人工手动生成测试用例,这种测试用例的生成不光难度大,而且用例生成不充分,都存在一定的局限性.本文在吸收以往Web应用软件的测试方法优点的基础上,提出了一种对Web应用软件网页进行分类,然后针对不同类别的网页采用不同的软件测试方法.从而一方面提高了测试效率,另一方面也使得测试更加全面,并通过一个常见的网上购物系统为实例进行了验证.
2 基于网页分类的Web应用软件测试
Web应用软件是由大量的Web网页和网页间的连接组件组成的.Web网页是能在客户机浏览器上显示的信息体,有的是用HTML编写的静态的,有的是用 ASP(Active Server Pages)或JSP(Java Server Pages)等动态技术生成的;连接组件则通过超级链接、表单和窗体等与Web页面相关联,用户通过Web网页实现对系统的访问及使用.因此我们可以把网页分成三种不同的类别:
第一种叫做静态网页:是用HTML创建的网页.每个静态网页都有固定的URL,且都存储在Web服务器上,都是一个独立的HTML文档.
第二种叫做动态网页:是以HTML为基础,结合ASP或JSP来创建的网页.动态网页并不独立存在于服务器上,只是在用户发送请求后,才在服务器上运行动态生成一个HTML网页返回给用户.网页的内容会因为系统状态和用户的实时操作的不同而发生变化.
第三种叫做数据库网页:它本身也是动态网页的一种,但由于与数据库关联,网页的内容是读取数据库中的数据元素来插入到网页中的,会因为数据库内容发生变化而变化.
基于网页分类的测试技术有:
(1)黑盒测试(HHCS)
黑盒测试也称为功能测试,是一种穷举测试,需要把所有可能作为测试用例,适合用来测试那些功能确定的内容.由于静态网页的内容和功能确定、URL固定等特点使其非常适合进行黑盒测试.浏览静态网页的每个页面,检查页面中的文字内容是否都能正确显示.检查网页中的每个超级链接,查看是否能够跳转到正确的页面.检查网页中的每张图片是不是都能及时正确显示.检查网页中的所有表单对象是不是拒绝错误数据和接受正确数据.特别需要强调的是,由于Web应用软件的用户平台的不确定性,所以需要针对Web应用软件的网页界面和软件功能使用多种平台和浏览器进行搭配测试,以检测出软件的性能错误.
(2)灰盒测试(FHCS)
灰盒测试是以黑盒测试为主,白盒测试为辅,动态网页动态生成的特点使其非常适合进行灰盒测试.其工作原理是通过简单的查看动态网页的内部代码(不是像白盒测试那样完整地查看),了解动态网页的运行状况,有助于把测试用例设计的更加合理.动态网页相比于程序更容易被查看,利用这点在黑盒测试基础上对动态网页进行检查以实现网页的灰盒测试.
(3)白盒测试(BHCS)
白盒测试深入到网页代码一级进行测试,优点是发现问题最早,效果最好;缺点是需要开发人员在Web应用软件编码阶段,根据自己对代码的理解进行软件测试,测试的工作量大,只适合检测少量网页.在Web应用软件中,数据库起着重要的作用,为整个软件系统数据查询和存储提供空间.同时,由于数据库网页可能发生的错误主要有两种:一种是由于用户提交的表单信息不正确而造成的数据不一致性错误;另一种是由于程序设计本身引起的.第一种错误主要靠黑盒测试时的表单测试来检查;第二种错误则需要对数据库驱动网页进行基于网页分类的白盒测试.
Web应用软件的测试用例往往是靠手工生成,造成测试成本很高,测试效率很低.为了提高测试的效率和测试覆盖率,基于网页分类的白盒测试的测试用例可以借助如下算法来自动生成.
①选择数据库网页 H(h1,h2,…,hn)的 URL地址 Mi(1≤i≤n)作为测试用例;
②从网页hi中选择一个操作Ji;
③将Ji跳转到的新网页地址登记为Ni;
④若Ni没有包含在H中,则将Ni作为新的测试用例添加到H中,若Ni已经包含在H中,直接进入下一步;
⑤将Ji登记为“已登记”,重复第二步到H的所有网页的所有操作都已登记;
⑥对对最终的H进行测试.
3 实验验证
我们通过实验验证了基于网页分类的Web应用软件测试方法对Web应用软件的测试的有效性.电子商务作为时下最为流行的一种Web应用系统,我们选定一个开源网上购物系统进行实验测试,网站的功能主要面向顾客.顾客可以注册会员、站内搜索、浏览商品陈列页面、管理购物车、在线订购等共70个主要功能.由于系统原来的错误不多,为了达到测试效果,请了几个有丰富网上购物系统开发经验的程序员根据自己的经验分别插入了三种不同类型的错误共45个.首先是与变量和控制流有关的脚本错误15个;其次是与表单对象有关的表单错误15个;最后是与数据库操作有关的数据库查询错误15个.
我们设计了一个实验框架,如图2所示,包括4个步骤:
(1)将Web应用软件的网页进行分类.
(2)对不同类别的网页分别生成测试用例.
(3)单个激活错误,进行测试,并记录测试结果.
(4)根据测试记录,主要从功能覆盖率和错误检测率两方面对测试方法进行有效性评估.
为了评估基于网页分类的Web应用软件测试方法的错误检测有效性,每次只激活一个错误,但执行所有测试用例.
图2 实验框架图
表1显示了基于网页分类的Web应用软件测试方法在功能覆盖率和故障检测方面都有很不错的表现,比以往其他的测试方法不管在功能覆盖率上还是在错误检测率上都要高.
表1 功能覆盖率和错误检测率(%)
4 结论
本文提出了Web应用软件测试的一个改进型的新方法,通过对系统网页进行分类,并针对不同类型网页采用不同的测试方法.基于网页分类的测试方法可以有效的改善Web应用软件测试技术中测试用例代价高和生成不充分的问题.并通过实验验证了该方法在功能覆盖率和错误检测率等方面都有更好的表现.除了上述介绍的测试方法,未来将重点研究Web应用软件测试框架,Web应用软件测试的对象模型与应用,Web应用软件测试中测试用例及复用等方面[4].
[1]路晓丽,董云卫.Web应用软件的结构测试研究[J].计算机科学,2010,37(12):110-113.
[2]Kong J,Zou C,Zhou H.Improving Software Security via Runti-me Instruction-level Taint Checkingp[C].Proc.of the 1st Workshop on Architectural and System Support for Improving Software Dependability.Califorria:ACM Press,2006:18-24.
[3]Alfond W,Orso A,Manolios P.Using Positive Tainting and Syntax-aware Evaluation to Counter SQL Injection Attacks[C].Proc.of the 14th ACM SIGSOFT International Symposiumon Foundations of Software Engineering.New York:ACMPress,2006:175-185.
[4]尚冬娟,郝克刚,葛玮,等.软件测试中的测试用例及复用研究[J].计算机技术与发展,2006,16(1):69-72.
Web Application Software Testing Research Based on Web-page Classification
LIU Xiao-yuan
(Luoding Polytechnic,Luoding 527200,China)
With the wide application of Web application software,to ensure the Web application software quality and reliability,people pay more and more attention to Web application software testing.But most of the current models based on testing technology are difficult to satisfy the peoples reguirement on the Web application software testing.Based on the model test technology,the Web application software testing method is proposed through The Web-page classification and an online shopping system example is given.The validation of the method in functional coverage and error detection rate shows better performance.
application of Web software;software testing;Web-page classification;test use case
TP393.1
A
1671-119X(2013)02-0037-03
2012-11-26
刘小园(1978-),男,硕士,讲师,研究方向:网络与数据库系统、计算机软件与理论、软件工程.