51Testing软件测试论坛

标题: Web的系统测试方法 [打印本页]

作者: philex    时间: 2006-6-4 17:22
标题: Web的系统测试方法
随着Internet和Intranet/Extranet的快速增长,Web已经对商业、工业、银行、财政、教育、政府和娱乐及我们的工作和生活产生了深远的影响。许多传统的信息和数据库系统正在被移植到互联网上,电子商务迅速增长,早已超过了国界。范围广泛的、复杂的分布式应用正在Web环境中出现。Web的流行和无所不在,是因为它能提供支持所有类型内容连接的信息发布,容易为最终用户存取。

  Yogesh Deshpande和Steve Hansen在1998年就提出了Web工程的概念。Web工程作为一门新兴的学科,提倡使用一个过程和系统的方法来开发高质量的基于Web的系统。它"使用合理的、科学的工程和管理原则,用严密的和系统的方法来开发、发布和维护基于Web的系统"。目前,对于web工程的研究主要是在国外开展的,国内还刚刚起步。

  在基于Web的系统开发中,如果缺乏严格的过程,我们在开发、发布、实施和维护Web的过程中,可能就会碰到一些严重的问题,失败的可能性很大。而且,随着基于Web的系统变得越来越复杂,一个项目的失败将可能导致很多问题。当这种情况发生时,我们对Web和Internet的信心可能会无法挽救地动摇,从而引起Web危机。并且,Web危机可能会比软件开发人员所面对的软件危机更加严重、更加广泛。

  在Web工程过程中,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而,Internet和Web媒体的不可预见性使测试基于Web的系统变得困难。因此,我们必须为测试和评估复杂的基于Web的系统研究新的方法和技术。

  一般软件的发布周期以月或以年计算,而Web应用的发布周期以天计算甚至以小时计算。Web测试人员必须处理更短的发布周期,测试人员和测试管理人员面临着从测试传统的C/S结构和框架环境到测试快速改变的Web应用系统的转变。

  一、功能测试

  1、链接测试

  链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。首先,测试所有链接是否按指示的那样确实链接到了该链接的页面;其次,测试所链接的页面是否存在;最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。

  链接测试可以自动进行,现在已经有许多工具可以采用。链接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的所有页面开发完成之后进行链接测试。

  2、表单测试

  当用户给Web应用系统管理员提交信息时,就需要使用表单操作,例如用户注册、登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等。如果使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。

  3、Cookies测试

  Cookies通常用来存储用户信息和用户在某应用系统的操作,当一个用户使用Cookies访问了某一个应用系统时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息。

  如果Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作。测试的内容可包括Cookies是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等。

  4、设计语言测试

  Web设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的HTML等。当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了HTML的版本问题外,不同的脚本语言,例如Java、JavaScript、 ActiveX、VBScript或Perl等也要进行验证。

  5、数据库测试

  在Web应用技术中,数据库起着重要的作用,数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间。在Web应用中,最常用的数据库类型是关系型数据库,可以使用SQL对信息进行处理。

  在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的,针对这两种情况,可分别进行测试。

  二、性能测试

  1、连接速度测试

  用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样。如果Web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。

  另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。

  2、负载测试

  负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web应用系统能否处理大量用户对同一个页面的请求?

  3、压力测试

  负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet上,接受负载测试,其结果才是正确可信的。

  进行压力测试是指实际破坏一个Web应用系统,测试系统的反映。压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。

  压力测试的区域包括表单、登陆和其他信息传输页面等。

  三、可用性测试

  1、导航测试

  导航描述了用户在一个页面内操作的方式,在不同的用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不同的连接页面之间。通过考虑下列问题,可以决定一个Web应用系统是否易于导航:导航是否直观?Web系统的主要部分是否可通过主页存取?Web系统是否需要站点地图、搜索引擎或其他的导航帮助?

  在一个页面上放太多的信息往往起到与预期相反的效果。Web应用系统的用户趋向于目的驱动,很快地扫描一个Web应用系统,看是否有满足自己需要的信息,如果没有,就会很快地离开。很少有用户愿意花时间去熟悉Web应用系统的结构,因此,Web应用系统导航帮助要尽可能地准确。

  导航的另一个重要方面是Web应用系统的页面结构、导航、菜单、连接的风格是否一致。确保用户凭直觉就知道Web应用系统里面是否还有内容,内容在什么地方。

  Web应用系统的层次一旦决定,就要着手测试用户导航功能,让最终用户参与这种测试,效果将更加明显。

  2、图形测试

  在Web应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能。一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有:

  (1)要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面。

  (2)验证所有页面字体的风格是否一致。

  (3)背景颜色应该与字体颜色和前景颜色相搭配。

  (4)图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩。

  3、内容测试

  内容测试用来检验Web应用系统提供信息的正确性、准确性和相关性。

  信息的正确性是指信息是可靠的还是误传的。例如,在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷;信息的准确性是指是否有语法或拼写错误。这种测试通常使用一些文字处理软件来进行,例如使用Microsoft Word的"拼音与语法检查"功能;信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般Web站点中的所谓"相关文章列表"。

  4、整体界面测试

  整体界面是指整个Web应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览Web应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致?
对整体界面的测试过程,其实是一个对最终用户进行调查的过程。一般Web应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。

  对所有的可用性测试来说,都需要有外部人员(与Web应用系统开发没有联系或联系很少的人员)的参与,最好是最终用户的参与。

  四、客户端兼容性测试

  1、平台测试

  市场上有很多不同的操作系统类型,最常见的有Windows、Unix、Macintosh、Linux等。Web应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置。这样,就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败。

  因此,在Web系统发布之前,需要在各种操作系统下对Web系统进行兼容性测试。

  2、浏览器测试

  浏览器是Web客户端最核心的构件,来自不同厂商的浏览器对Java,、JavaScript、 ActiveX、 plug-ins或不同的HTML规格有不同的支持。例如,ActiveX是Microsoft的产品,是为Internet Explorer而设计的,JavaScript是Netscape的产品,Java是Sun的产品等等。另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。不同的浏览器对安全性和Java的设置也不一样。

  测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。

  五、安全性测试

  Web应用系统的安全性测试区域主要有:

  (1)现在的Web应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。

  (2)Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。

  (3)为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。

  (4)当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性。

  (5)服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。

  六、总结

  本文从功能、性能、可用性、客户端兼容性、安全性等方面讨论了基于Web的系统测试方法。

  基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战。基于Web的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。sdlkfj3
作者: tsui771208    时间: 2006-6-5 09:50
标题: 11
8CUO
作者: 凤丫头    时间: 2006-6-5 15:19
刚接触WEB测试,看完后受益匪浅!
作者: kali    时间: 2006-6-6 11:15
非常感谢,受益非潜!相当好的文章!
作者: 李才军    时间: 2006-6-6 15:50
非常感谢.楼主
作者: batsh    时间: 2006-6-21 09:43
经典啊,请问还能讲解下,每种测试所要用到的软件吗,分别需什么软件
作者: wuzhuayu    时间: 2006-6-29 10:02
不错不错.
作者: spcnhyh    时间: 2006-6-30 09:07
没做web测试,看了一遍有些了解
作者: 月上梅稍    时间: 2006-7-6 14:15
很好的文章哦
谢谢!!
作者: testage_7_7    时间: 2006-7-7 15:04
很不错的贴.楼主压力测试应可以用LOADRUNNER虚拟用户测吧
作者: philex    时间: 2006-7-7 15:14
你可以去工具区去探讨学习!!
本人也在学习中!
作者: hunter_hero    时间: 2006-7-15 16:57
标题:
谢谢了
作者: bljbljbljblj    时间: 2006-7-21 08:41
看了本文,觉得WEB测试不是没有头绪的的测试,是有方法的
3KS
作者: 11034    时间: 2006-7-21 16:19
谢了学长
作者: unique_jason    时间: 2006-7-25 13:37
非常好的东西,谢谢哦
作者: stardust    时间: 2006-7-25 14:10
很全面阿,收藏
作者: happybean    时间: 2006-8-1 15:06
做了一些web的测试,但是看了这篇文章,好多问题没考虑到呢
作者: 夏天    时间: 2006-8-2 17:14
比较系统
作者: aishary    时间: 2006-8-7 10:28
感谢楼主中~
作者: Terryjsz    时间: 2006-8-9 15:33
sdlkfj2 謝謝了,學習中
作者: test43    时间: 2006-8-12 21:29
感觉安全性测试,很有难度。
作者: jeloss    时间: 2006-8-15 16:56
赞一个,来抱佛脚
作者: aricone    时间: 2006-8-18 14:51
谢了
作者: lemon_hawk    时间: 2006-9-12 12:11
负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,所以,只有放在Internet上,接受负载测试,其结果才是正确可信的。


可以用工具啊!
作者: Joan2005    时间: 2006-9-14 13:30
3Q
作者: testcat    时间: 2006-9-15 16:53
受益匪浅
作者: 末落者    时间: 2006-9-22 16:53
楼主  辛苦了!
作者: heale    时间: 2006-10-8 16:20
请问一下链接测试有什么工具可以测啊??sdlkfj7
作者: jingzi    时间: 2006-10-9 11:26
我正需要这个文档了,谢谢LZ
作者: foxmishy    时间: 2006-12-29 10:03
收藏好东西
作者: chbhaha    时间: 2007-2-2 14:16
想当初,我就是按这个文档一步步做下来的
作者: windyfreeze    时间: 2007-6-4 16:50
收藏了!!
作者: winning1    时间: 2007-6-19 10:05
多谢!受益匪浅!
作者: cnnewstart    时间: 2007-7-8 21:01
受益匪浅 谢谢
作者: vickiren    时间: 2007-7-9 15:12
标题: 回复 #1 philex 的帖子
xiexie l
作者: zhangj8826    时间: 2007-7-11 16:43
好文章!支持
作者: vaxvax0000    时间: 2007-7-19 21:10
咋看 觉得没有什么 可是仔细一看还真的觉得不错
写的很好
看了有嗲感受
作者: rosefrozen    时间: 2007-7-25 16:48
还不错
作者: zhouzxcv    时间: 2007-9-19 00:05
谢谢楼主大作,正在拜读sdlkfj1
作者: flyingfish.520    时间: 2007-11-20 16:09
好的很,学习中,谢谢
作者: 别叫我神    时间: 2008-3-6 15:17
好贴``
顶一下``
作者: 别叫我神    时间: 2008-4-9 11:14
经典呀,辛苦了``
作者: 雨加雪    时间: 2008-4-9 21:19

作者: lanfish319    时间: 2008-4-22 09:29
谢谢顶了
作者: yangbohustwb    时间: 2008-6-19 16:43
非常好,谢谢分享
作者: nanbing3166    时间: 2008-7-15 10:49
好顶
作者: 1qazse4    时间: 2008-7-31 16:09
怎麽全都是一样的? 没味
作者: qingrou    时间: 2008-12-4 13:41
今天要测网站的功能测试。
本来以为挺简单的,可是真要着手做的时候又觉得不知道要怎么下手。
看了这篇文章感觉思路清晰了。
谢谢楼主!!

[ 本帖最后由 qingrou 于 2008-12-4 13:58 编辑 ]
作者: marx-zhang    时间: 2008-12-10 09:17
顶一下!!!
作者: xm2008    时间: 2008-12-30 21:45
提前看看,呵呵。谢谢!
作者: alextowxm    时间: 2009-1-8 15:43
我感觉 这个文章在 51testing 中是铺天盖地的
还有别的web 测试的方法和技巧吗
作者: capricorn    时间: 2009-2-20 22:43
学习了,非常感谢
作者: sticksky    时间: 2009-5-25 12:11
谢谢楼主。
作者: 君星    时间: 2009-6-2 22:39
标题: 了解
我想web测试是系统测试中的一种。
作者: zhenliutianyu    时间: 2009-6-19 15:27
标题: 谢谢!
多谢
作者: StarRains    时间: 2009-7-8 15:13
谢谢
作者: 小玲子110600131    时间: 2009-8-7 09:59
太好了,正在学WEB测试
作者: kaka735    时间: 2009-8-12 14:55
呵呵  很好  很强大    谢谢LZ
作者: siriusbb    时间: 2009-8-28 12:32
是篇好文

作者: yetties2005    时间: 2009-9-1 01:53
写的很全面!
作者: orange93    时间: 2009-9-10 20:03
非常感谢,
作者: yingxionghaojie    时间: 2009-9-28 12:07
學習中
作者: jaa104    时间: 2009-11-17 22:54
感谢分享!学习中
作者: 绯苍信    时间: 2009-11-19 10:40
好东西 学习到了
::ybaojc:::
作者: xiaoguowei1314    时间: 2009-11-24 10:34
谢谢总结
作者: clh    时间: 2009-12-25 11:44
总结得比较全面,很好
作者: montella    时间: 2010-2-8 16:52
学习中……楼主太强大了
作者: alexiawhx    时间: 2010-8-23 20:04
谢谢
作者: wuitest    时间: 2010-9-20 14:17
3Q
作者: 提米    时间: 2010-10-23 14:51
感谢楼主  辛苦了
作者: 阵雨    时间: 2010-11-11 11:00
受教了··
作者: 炫彩琉璃    时间: 2010-11-23 14:26
好文章,很有指导作用~谢谢楼主
作者: 悠悠泡面    时间: 2010-11-30 21:50
楼主人很好文章也很好!
作者: green032    时间: 2011-1-14 16:49

作者: yvonne2011    时间: 2011-3-24 14:19
太好了,学习中,谢谢
作者: poporen    时间: 2011-4-20 08:48
感觉高深莫测哟
作者: hongyu315    时间: 2011-5-31 11:34
没想到 一个WEB也有这么多的测试项目
作者: shihw098    时间: 2011-7-8 16:57
谢谢群主!
作者: zwb_work    时间: 2011-9-14 13:41
不错  挺详细的   
作者: lidazhuang    时间: 2012-2-7 15:31
楼主功德无量!
作者: eyesee_janno    时间: 2012-2-22 13:29
明天要面试一个web类的测试,看一下。
作者: 钦定风云    时间: 2012-3-30 08:57
写的挺不错的!!!
作者: xiao_long_ing    时间: 2012-4-4 10:46
感谢楼主的分享,
作者: 1114078345    时间: 2013-4-6 11:31
安全性测试一般通过手动测试,很难发现其瓶颈。不知道楼主有没有关于安全性测试的方法呢。目前浏览器兼容性测试工作量还是很大的,浏览器更新换代的速度太快了~
作者: 无派无门    时间: 2015-7-30 10:14
不错,希望能更具体一点
作者: 天小红    时间: 2015-8-28 16:17
感谢楼主,很有用!




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2