论文部分内容阅读
摘要:本文通过分析现有Web测试中的不足,提出了基于信息触发模型的Web应用测试方法。对于该方法,文中详细介绍了如何构造信息触发模型以及基于该模型的Web结构图示和Web应用测试。在最后,本文给出了该方法的具体测试应用实例。
关键词:模型;Web;信息触发;Web测试
1 引言
随着Internet和e-commcer的发展,各种网络产品与服务已是层出不穷。目前就人们所熟知的服务有:WWW、电子邮件、Ftp、Chat等等。而在这其中,Web的发展是最令世人所瞩目的,其主要原因在于Web所特有的信息展示的便捷和获取的方便等优势。基于此,开发人员则加快了Web的开发与发布速度。但是,与高速的开发和发布所不相称的是质量的降低。所以如何高效地测试Web应用是对Web测试人员提出的一项艰巨挑战。
本文通过对Web应用中页面转换的讨论,提出了基于信息触发的Web结构测试方法。
1.1Web应用测试较传统软件测试的特点
软件测试是软件工程中的重要步骤,对Web应用也应如此。单就测试方法而言,已有许多经典的、针对不同类型的测试方法;如结构测试中的白盒测试方法,功能测试中的黑盒测试方法等等。但是这些测试方法是不能直接应用到Web系统中来的。分析其原因有以下几个方面:
(1)Web应用的系统结构、Web开发的网络特性,以及在Web开发中大量使用的第三方组件,这使得传统结构测试方法所注重的问题在此已有新的发展;如需测试在开发中使用的第三方组件时,测试人员所要考虑的主要是组件选择得是否合理,而不是如何测试组件的内部结构。
(2)在功能测试方面,由于Web应用的使用群体的不确定性,致使开发中的需求说明也存在着很大的不确定性。例如:若面向整个使用群体(如社会),提出满足所有使用者需求的Web结构优化方案这几乎是不可能的。所以应用黑盒测试时,要首先考虑该Web系统的使用群体,即功能要充分考虑使用者,因为使用者都是在自己的浏览器上。
(3)由于Web自身的分布性、异质性、并发性、平台独立性[1]等特性,使得传统的client/server软件测试方法在Web的测试中已不再适用。
(4)由于Web应用程序中有很多的通信组件,所以对信息的检查和检测要比传统软件测试具有更大的安全要求。
通过以上叙述,可以看到面向Web的测试是软件测试中的重要部分,而原有的测试方法在Web测试中现已不再适用。所以就测试工作者而言,应开发出适应Web特性的测试方法。
1.2Web应用测试的现状与问题
目前针对Web应用测试方面的研究有以下几个特点:
(1)在测试方法上,由于Web本身的异质性、分布性、并发性等特点,以及开发Web应用程序语言的多样性和开发Web应用所使用的工具与部件的多样性,使测试人员越来越多地使用面向对象的分析方法和观点来进行Web测试,即以面向对象的观点开发Web测试工具,制定测试方案、方法[2]。
(2)随着Web应用的不断地深入,针对Web自身性能的测试[3][4]也越来越被人所重视,如响应时间测试、吞吐量测试、负载测试和压力测试等。通过这些测试,开发者可以得到关于Web站点的性能指标,继而提高站点的物理性能。
(3)可用性测试[5]。这是近几年面向用户提出的观点,即测试Web应用的设计意图。这对于提高网站的使用价值是有指导意义的。但这种测试在目前的研究文章中大多采用任务驱动的测试方法。即通过自愿者的参与,考察他们对所给任务的完成情况,来分析Web设计的可用性。所以这种测试方法在目前是较原始的,因为任务驱动测试中的志愿者的选取具有很大的不确定性和随机性;而另一方面,对于测试结果的分析,目前没有提出公认的数学模型。再者,针对导航结构的测试与检查[1],在近几年也逐渐被测试人员所重视,例如通过Markov链检查Web结构的合理性,或检查导航是否会引起用户对内容的歧义等。从而提高Web应用的合理性。
以上这些特点都是面向Web的测试人员所考虑的较多的问题,并取得了一定的成功和用户的认可。但是,在上面的总结中,可以看到对可用性的测试目前尚处于较原始的阶段。其原因本文已作出了分析。基于此,为了提高可用性测试的准确性,本文提出了基于信息触发的Web结构测试方法。
2 信息触发模型
针对以上问题,在本文中提出了面向Web应用的信息触发模型。并将以此作为选择测试用例和设计Web应用测试方案的依据。
2.1 模型和基于模型的结构图
当用户通过浏览器打开一个网站时,其在浏览器上所引发的界面(页面)变换,可分为两种:一是由用户向网站提交信息而引发的Web页面变换,如注册信息提交、查询信息提交等;二是网站自身通过浏览器向用户展示的信息,用户点击这些信息后也会引发页面变换,如导航。基于此,本文将信息触发模型中的触发信息分为了两种:用户所提交的信息和Web展示信息。该模型若用类UML的方式展示出来如图1所示。其中,用框(椭圆)表示用户的信息提交动作,其将引发相应的Web页
面转换。在此,该动作也分为两类:用户信息提交和Web展示信息提交。图中长方形表示的是在信息提交后所引发的,展现在浏览器上的具体的转换页面。由于UML没有对网页的图元表示,所以图1为类UML的展示。
通过模型可以清楚地看到,若对Web结构进行应用测试,则这两类信息是必须要考虑的。而且由于网站结构可以以图示的方式表示出来,则加入信息触发模型后,该结构图示可以扩展为有向图的形式。即将网页的触发信息扩展到网站的结构图中,如图2所示。而对网站的测试也可以采用有关有向图测试的现成理论和方法。并且对于有向图的展示形式,可利用图的广度优先搜索中的层次概念,对有向图进行分层。即在第0层为可触发主页的URL;第1层为由URL所触发的Web页面,即网站的主页;第2层为第1层Web页中所包含的触发信息;第3层为由第2层的触发信息所触发的Web页面,以此类推。可见在图中,偶数层为信息触发节点层;奇数层为页面节点层。
2.2Web应用测试中的模型使用
通过基于模型的有向图的构筑,使测试人员获得了关于Web设计的一个展示架构模型。即在该架构模型中,Web的静态结构和动态交互信息都展现了出来。继而对于Web应用的可用性测试、性能测试和结构测试,可根据所构造的模型,给出的相应的测试方案。
为了达到综合测试Web应用的目的。在此,提出几个需要通过模型来综合考虑注意的地方。
(1)通过模型的构造,结构性检查可直接应用在本模型中。因为本模型自身所展现的就是Web的应用结构。
(2)对性能测试中所需要选择的测试内容与重点,可在本模型中获得。如性能测试中的负载测试和压力测试,可根据模型中的两类触发信息的不同和它们所占的比例,选择相应的测试内容。例如网上竞拍网站,对用户提交信息的测试就应占主要地位。
(3)在测试用例的生成上,可通过模型选择不同的路径自动生成测试用例。而这是今后工作的重点。
(4)在可用性检查上,通过模型可全面地检查Web设计的静态结构和动态交互结构。
3 实例应用
在对“人文高校” (如图2所示)进行实例测试的过程中,笔者利用所构造的基于信息触发的结构图示模型,按照选择测试内容、构造测试用例、执行测试、分析测试结果的顺序,对该网站进行了相应的测试。
(1)选择测试内容。其选择了响应时间测试、负载测试、结构检查,作为该网站的主要测试项目。
(2)构造测试用例。在构造过程中,对模型中的不同部分分别针对响应时间测试、负载测试构造测试用例。通过分析,发现应将对主页(页面1.1)、登录页面(页面3.8)、搜索页面(页面3.9)、人文高校介绍页面(页面3.2)构造测试用例。以此来综合考虑它们对响应时间和负载等内容的影响。
(3)执行测试、分析测试结果。在测试中,针对响应时间测试,选择Mercury Interactive公司的Load Runner6.5作为性能测试工具;选择Novosoft公司的WAPT作为负载测试工具。对于这两项测试,分别将相同的测试用例应用其上,以获得彼此相关的测试结果。通过测试,获得以下结论:首先,在负载低于300个并发用户的情况下,响应时间与并发用户呈线性变化;同时在现有条件下,Web服务器所能够承受的最大负载达到了设计的允许范围;而当有300个用户并发使用该网站时,该网站的请求响应时间是低于4秒的。在结构检查方面,通过使用结构模型图示发现有一处可能会引起用户歧义的地方,即图中节点“高校学术在线”和“学术沙龙”,现已修改。
4 总结
在此,通过信息触发结构模型的使用,介绍了一种全新的Web应用测试方法。但是该方法现处于开始阶段,还有许多有待完善的地方,如测试策略的完善和测试用例的自动生成。对与此,笔者将在今后的工作中予以完善。
参考文献
[1] Chien-Hung Liu,Kung, D.C., Pei Hsia, Chih-Tung Hsu.Structural Testing of Web Applications.Software Reliability Engineering, 200. ISSRE 2000. Proceedings. 11th International Symposium on, 8-11 Oct. 2000.Pages: 84-96.
[2] Kung,D.C., Chien-Hung Liu, Pei Hsia, An Object-Oriented Web Test Model for Testing Web Applications.Quality Software, 2000. Proceedings. First Asia-Pacific Conference on , 30-31 Oct. 2000 .Pages:111-120.
[3] Subraya, B.M., Subrahmanya, S.V. 2 Object driven Performance Testing of Web Applications.Quality Software, 2000. Proceedings. First Asia-Pacific Conference on, 30-31 Oct. 2000.Pages: 17-26.
[4] Kirchner, M., A Benchmark for Testing the Evaluation Tools for Web Pages Accessibility. Web Site Evolution。 2003. Theme: Architecture. Proceedings. Fifth IEEE International Workshop on, 22 Sept. 2003. Pages: 66-73.
[5] Becker, S.A., Berkemeyer, A., Rapid Application Design and Testing of Web Usability.Multimedia, IEEE, Volume: 9, Issue: 4, Oct.-Dec. 2002 Pages: 38-46.
作者简介:王辰龙(1976-),男,山东济南人,助讲,硕士研究生,主要研究方向:软件工程,面向对象理论及应用。
关键词:模型;Web;信息触发;Web测试
1 引言
随着Internet和e-commcer的发展,各种网络产品与服务已是层出不穷。目前就人们所熟知的服务有:WWW、电子邮件、Ftp、Chat等等。而在这其中,Web的发展是最令世人所瞩目的,其主要原因在于Web所特有的信息展示的便捷和获取的方便等优势。基于此,开发人员则加快了Web的开发与发布速度。但是,与高速的开发和发布所不相称的是质量的降低。所以如何高效地测试Web应用是对Web测试人员提出的一项艰巨挑战。
本文通过对Web应用中页面转换的讨论,提出了基于信息触发的Web结构测试方法。
1.1Web应用测试较传统软件测试的特点
软件测试是软件工程中的重要步骤,对Web应用也应如此。单就测试方法而言,已有许多经典的、针对不同类型的测试方法;如结构测试中的白盒测试方法,功能测试中的黑盒测试方法等等。但是这些测试方法是不能直接应用到Web系统中来的。分析其原因有以下几个方面:
(1)Web应用的系统结构、Web开发的网络特性,以及在Web开发中大量使用的第三方组件,这使得传统结构测试方法所注重的问题在此已有新的发展;如需测试在开发中使用的第三方组件时,测试人员所要考虑的主要是组件选择得是否合理,而不是如何测试组件的内部结构。
(2)在功能测试方面,由于Web应用的使用群体的不确定性,致使开发中的需求说明也存在着很大的不确定性。例如:若面向整个使用群体(如社会),提出满足所有使用者需求的Web结构优化方案这几乎是不可能的。所以应用黑盒测试时,要首先考虑该Web系统的使用群体,即功能要充分考虑使用者,因为使用者都是在自己的浏览器上。
(3)由于Web自身的分布性、异质性、并发性、平台独立性[1]等特性,使得传统的client/server软件测试方法在Web的测试中已不再适用。
(4)由于Web应用程序中有很多的通信组件,所以对信息的检查和检测要比传统软件测试具有更大的安全要求。
通过以上叙述,可以看到面向Web的测试是软件测试中的重要部分,而原有的测试方法在Web测试中现已不再适用。所以就测试工作者而言,应开发出适应Web特性的测试方法。
1.2Web应用测试的现状与问题
目前针对Web应用测试方面的研究有以下几个特点:
(1)在测试方法上,由于Web本身的异质性、分布性、并发性等特点,以及开发Web应用程序语言的多样性和开发Web应用所使用的工具与部件的多样性,使测试人员越来越多地使用面向对象的分析方法和观点来进行Web测试,即以面向对象的观点开发Web测试工具,制定测试方案、方法[2]。
(2)随着Web应用的不断地深入,针对Web自身性能的测试[3][4]也越来越被人所重视,如响应时间测试、吞吐量测试、负载测试和压力测试等。通过这些测试,开发者可以得到关于Web站点的性能指标,继而提高站点的物理性能。
(3)可用性测试[5]。这是近几年面向用户提出的观点,即测试Web应用的设计意图。这对于提高网站的使用价值是有指导意义的。但这种测试在目前的研究文章中大多采用任务驱动的测试方法。即通过自愿者的参与,考察他们对所给任务的完成情况,来分析Web设计的可用性。所以这种测试方法在目前是较原始的,因为任务驱动测试中的志愿者的选取具有很大的不确定性和随机性;而另一方面,对于测试结果的分析,目前没有提出公认的数学模型。再者,针对导航结构的测试与检查[1],在近几年也逐渐被测试人员所重视,例如通过Markov链检查Web结构的合理性,或检查导航是否会引起用户对内容的歧义等。从而提高Web应用的合理性。
以上这些特点都是面向Web的测试人员所考虑的较多的问题,并取得了一定的成功和用户的认可。但是,在上面的总结中,可以看到对可用性的测试目前尚处于较原始的阶段。其原因本文已作出了分析。基于此,为了提高可用性测试的准确性,本文提出了基于信息触发的Web结构测试方法。
2 信息触发模型
针对以上问题,在本文中提出了面向Web应用的信息触发模型。并将以此作为选择测试用例和设计Web应用测试方案的依据。
2.1 模型和基于模型的结构图
当用户通过浏览器打开一个网站时,其在浏览器上所引发的界面(页面)变换,可分为两种:一是由用户向网站提交信息而引发的Web页面变换,如注册信息提交、查询信息提交等;二是网站自身通过浏览器向用户展示的信息,用户点击这些信息后也会引发页面变换,如导航。基于此,本文将信息触发模型中的触发信息分为了两种:用户所提交的信息和Web展示信息。该模型若用类UML的方式展示出来如图1所示。其中,用框(椭圆)表示用户的信息提交动作,其将引发相应的Web页
面转换。在此,该动作也分为两类:用户信息提交和Web展示信息提交。图中长方形表示的是在信息提交后所引发的,展现在浏览器上的具体的转换页面。由于UML没有对网页的图元表示,所以图1为类UML的展示。
通过模型可以清楚地看到,若对Web结构进行应用测试,则这两类信息是必须要考虑的。而且由于网站结构可以以图示的方式表示出来,则加入信息触发模型后,该结构图示可以扩展为有向图的形式。即将网页的触发信息扩展到网站的结构图中,如图2所示。而对网站的测试也可以采用有关有向图测试的现成理论和方法。并且对于有向图的展示形式,可利用图的广度优先搜索中的层次概念,对有向图进行分层。即在第0层为可触发主页的URL;第1层为由URL所触发的Web页面,即网站的主页;第2层为第1层Web页中所包含的触发信息;第3层为由第2层的触发信息所触发的Web页面,以此类推。可见在图中,偶数层为信息触发节点层;奇数层为页面节点层。
2.2Web应用测试中的模型使用
通过基于模型的有向图的构筑,使测试人员获得了关于Web设计的一个展示架构模型。即在该架构模型中,Web的静态结构和动态交互信息都展现了出来。继而对于Web应用的可用性测试、性能测试和结构测试,可根据所构造的模型,给出的相应的测试方案。
为了达到综合测试Web应用的目的。在此,提出几个需要通过模型来综合考虑注意的地方。
(1)通过模型的构造,结构性检查可直接应用在本模型中。因为本模型自身所展现的就是Web的应用结构。
(2)对性能测试中所需要选择的测试内容与重点,可在本模型中获得。如性能测试中的负载测试和压力测试,可根据模型中的两类触发信息的不同和它们所占的比例,选择相应的测试内容。例如网上竞拍网站,对用户提交信息的测试就应占主要地位。
(3)在测试用例的生成上,可通过模型选择不同的路径自动生成测试用例。而这是今后工作的重点。
(4)在可用性检查上,通过模型可全面地检查Web设计的静态结构和动态交互结构。
3 实例应用
在对“人文高校” (如图2所示)进行实例测试的过程中,笔者利用所构造的基于信息触发的结构图示模型,按照选择测试内容、构造测试用例、执行测试、分析测试结果的顺序,对该网站进行了相应的测试。
(1)选择测试内容。其选择了响应时间测试、负载测试、结构检查,作为该网站的主要测试项目。
(2)构造测试用例。在构造过程中,对模型中的不同部分分别针对响应时间测试、负载测试构造测试用例。通过分析,发现应将对主页(页面1.1)、登录页面(页面3.8)、搜索页面(页面3.9)、人文高校介绍页面(页面3.2)构造测试用例。以此来综合考虑它们对响应时间和负载等内容的影响。
(3)执行测试、分析测试结果。在测试中,针对响应时间测试,选择Mercury Interactive公司的Load Runner6.5作为性能测试工具;选择Novosoft公司的WAPT作为负载测试工具。对于这两项测试,分别将相同的测试用例应用其上,以获得彼此相关的测试结果。通过测试,获得以下结论:首先,在负载低于300个并发用户的情况下,响应时间与并发用户呈线性变化;同时在现有条件下,Web服务器所能够承受的最大负载达到了设计的允许范围;而当有300个用户并发使用该网站时,该网站的请求响应时间是低于4秒的。在结构检查方面,通过使用结构模型图示发现有一处可能会引起用户歧义的地方,即图中节点“高校学术在线”和“学术沙龙”,现已修改。
4 总结
在此,通过信息触发结构模型的使用,介绍了一种全新的Web应用测试方法。但是该方法现处于开始阶段,还有许多有待完善的地方,如测试策略的完善和测试用例的自动生成。对与此,笔者将在今后的工作中予以完善。
参考文献
[1] Chien-Hung Liu,Kung, D.C., Pei Hsia, Chih-Tung Hsu.Structural Testing of Web Applications.Software Reliability Engineering, 200. ISSRE 2000. Proceedings. 11th International Symposium on, 8-11 Oct. 2000.Pages: 84-96.
[2] Kung,D.C., Chien-Hung Liu, Pei Hsia, An Object-Oriented Web Test Model for Testing Web Applications.Quality Software, 2000. Proceedings. First Asia-Pacific Conference on , 30-31 Oct. 2000 .Pages:111-120.
[3] Subraya, B.M., Subrahmanya, S.V. 2 Object driven Performance Testing of Web Applications.Quality Software, 2000. Proceedings. First Asia-Pacific Conference on, 30-31 Oct. 2000.Pages: 17-26.
[4] Kirchner, M., A Benchmark for Testing the Evaluation Tools for Web Pages Accessibility. Web Site Evolution。 2003. Theme: Architecture. Proceedings. Fifth IEEE International Workshop on, 22 Sept. 2003. Pages: 66-73.
[5] Becker, S.A., Berkemeyer, A., Rapid Application Design and Testing of Web Usability.Multimedia, IEEE, Volume: 9, Issue: 4, Oct.-Dec. 2002 Pages: 38-46.
作者简介:王辰龙(1976-),男,山东济南人,助讲,硕士研究生,主要研究方向:软件工程,面向对象理论及应用。