生命就像一场云游 坎坷也是一种收获

Web测试

上一篇 / 下一篇  2008-03-19 16:35:20 / 个人分类:web测试

php?name=Web">Web测试与应用软件的测试有很多不同之处,这里将从功能、性能、可用性、客户端兼容性、安全性等方面讨论了基于Web的系统测试方法,目前可以作为主要的测试方法来做3721等各种网站的测试。
  在Web工程过程中,基于Web系统的测试、确认和验收是一项重要而富有挑战性的工作。基于Web的系统测试与传统的软件测试不同,它不但需要检查和验证是否按照设计的要求运行,而且还要测试系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。然而, Internet和Web媒体的不可预见性使测试基于Web的系统变得困难。因此,必须为测试和评估复杂的基于Web的系统研究新的方法和技术。

  一、功能测试

  1、链接测试

  链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段。链接测试可分为三个方面。
A.测试所有链接是否按指示的那样确实链接到了该链接的页面;判断链接文件是否正确最好手工测试,也可以开发自动工具,通过链接指向页面的title和链接文字是否匹配来判断,一般来说,网站如果使用网页标准规范的话,网页的title和其链接文字会有90%以上匹配。
B.测试所链接的页面是否存在;而且保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。使用site check可以很容易找出不存在页面和孤立页面
C.其他链接,如:图片,文件下载,在线影像,应用程序关联等等…,图片链接也可以用site check,但是文件匹配还得特别注意,文件下载链接最好进行手工测试,考虑各个时段的连接情况和文件匹配,在线影像链接应该注意连通率,播放工具的调用和判断。
链接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的所有页面开发完成之后进行链接测试。

  2、表单测试

  当用户给Web应用系统管理员提交信息时,就需要使用表单操作,例如用户注册、登陆、信息提交等。在这种情况下,我们必须测试提交操作的完整性,以校验提交给服务器的信息的正确性。例如:使得必须填写的部分为空或空格,键入非法的日期格式,一些数值的边界测试,根据表单数据的要求,可以再严格一些,查看所属省份与所在城市是否匹配,电话号码和证件号码的位数、区域等的限制。如果部分数据使用了默认值,还要检验默认值的正确性。如果表单只能接受指定的某些值,则也要进行测试。例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错。数据表单形式多样,格式复杂大部分工作必须手工测试,如果表单多,规律简单,则可以根据具体的表单定制测试工具
这里需要结合界面做一些定制窗口大小,改变系统字体的测试,看表单是否出界或变形等。

  3、Cookies测试

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

  如果Web应用系统使用了Cookies,就必须检查Cookies是否能正常工作。测试的方法有:
a. Cookies是否起作用
b. 是否按预定的时间进行保存
c. 刷新对Cookies有什么影响等。
类似储存测试Cookie 读取测试Cookie 清除测试Cookie的工作可以设定一个值到cookies, 其值为123,读取测试Cookie 来读取 其值, 以检验Cookie 是否储存成功.

  4、语言测试

  网站的语言包括设计语言和界面语言。
Web设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的HTML等。如果在分步式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要。除了HTML的版本问题外,不同的脚本语言,例如Javajavascript、 ActiveX、VBScript或Php等也要进行验证。具体脚本语言支持环境可以遵循表1
界面语言测试主要体现在对多语言的支持,一个定位于不同语言国家的企业网站势必需要提供多种语言版本的产品和销售信息来满足其世界各地使用不同语言的客户和合作伙伴,对提供了多语言版本的网站来说,应该检测是否使用Unicode字符集, 操作方法为非中文页面的字符集定义为“utf-8”格式,即<meta. http-equiv="Content-Type" content="text/html; charset=utf-8">,中文页面的字符集定义为”GB2312”格式。

  5、数据库测试

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

在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误。数据一致性错误主要是由于用户提交的表单信息不正确而造成的,而输出错误主要是由于网络速度或程序设计问题等引起的。
数据库在存储时一般都做校验数据的工作,所以加强表单测试环节可以大大减少数据一致性错误,输出错误的测试可以使用winrunner,先设定哪些数据库表和记录需要检测;在测试运行时,测试程序会自动核对数据库内的实际数值和预期的数值,最后WinRunner自动显示检测结果,并在有更新/删除/插入的记录上突出显示以引起注意。

  二、性能测试

  1、连接速度测试

  用户连接到Web应用系统的速度根据上网方式的变化而变化,他们或许是电话拨号,或是宽带上网。但如果访问一个页面花费很长时间都没有响应,那就开始找原因吧。Sitecheck中有对打开超时网页的记录,默认评判时间为30秒。

  有时连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面。另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了。此类网页通过session变量来处理限制时间,我们需对session_timeout的值测试即可。
有很多网站提供这类工具,我们可以拿来放在待测试网站中使用

  2、负载测试

  负载测试是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作。负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web应用系统能否处理大量用户对同一个页面的请求?
通过loadrunner可以完成这个测试,设计一个实例,几百个帐号通过几百台计算机用独立IP同时登录待测试系统,设定的模拟用户数直接影响测试服务器的性能,在各种浏览器版本中对登录、提交等过程进行不同的测试组合,loadrunner会自动返回记录结果。微软WAS工具也是很好用的一个负载测试工具,它比loadrunner小,功能简单实用,很容易上手操作,但其分析性数据不如loadrunner全面。
具体验证方法有:a.瞬间访问高峰,营造瞬间访问高峰值,测试web承受能力;b. 用户传送大量数据:每个连接用户提交大量数据,测试服务器反映能力;c. 长时间使用:服务器在用户长时间使用的情况下能否正常运行。
负载测试还可以安排在Web系统发布以后,在实际的网络环境中进行测试。因为一个企业内部员工,特别是项目组人员总是有限的,一个Web系统能同时处理的请求数量将远远超出这个限度,而测试工具受机器性能的影响也很难达到负载测试的要求。所以,只 有放在Internet上,接受负载测试,其结果才是正确可信的。

  3、压力测试

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

  压力测试的区域包括表单、登陆和其他信息传输页面等。
可以考虑使用Webload进行压力测试,webload创建的是基于javascript的测试脚本,用它来模拟客户的行为,通过执行脚本来衡量web应用程序在真实环境下的性能,在http://www.radview.com/上可以下载到试用版和说明文档。
4、接口测试
外部接口测试:应验证服务器与其它服务器程序的接口,是否正常,如一个网站它提供了短信服务,它需要你提供信用卡帐户,这样与银行服务有接口,就需要测试人员测试,相关服务是否安全
服务器接口测试:浏览器与服务器连接,浏览器提交数据,察看服务器数据,验证浏览器提交的数据是否在服务器上发生了,测试人员可以查询数据库确认事务是否正确提交。
错误处理:开发人员对错误是否处理,如果服务器down掉,数据是否保存。

  三、可用性测试

  1、导航测试

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

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

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

  由于不同网站的导航方式各异,所与进行用户级测试效果可能比较明显。

  2、图形测试

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

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

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

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

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

一页网页的在56K调制解调器完全显示的等待时间不得大于30S

——参考[网站设计规范]


  3、内容测试

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

  错误的价格可能引起财政问题甚至导致法律纠纷;语法或拼写错误是常见易错的。这种测试可以使用一些文字处理软件来进行,例如使用 Microsoft Word的"拼音与语法检查"功能;信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般Web 站点中的所谓"相关文章列表"。这个主要依赖于设计,当然用户级测试可以当做意见提交。
敏感词的测试也需要做,可以采用遍历所有htm文件内容过滤敏感词列表,可以使用UE的search in file 功能来做。

  4、整体界面测试

  整体界面是指整个Web应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览Web应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致?这里需要做分辨率测试,不同的分辨率,窗口中的滚动条能否正确滚动。窗口刷新是否正确等等。

对整体界面的测试过程,其实是一个对最终用户进行调查的过程。一般Web应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。也可以根据网站策划书设计测试方案

  对所有的可用性测试来说,都需要有外部人员(与Web应用系统开发没有联系或联系很少的人员)的参与,最好是最终用户的参与,网站策划师可以验收最终效果,

  四、客户端兼容性测试

  1、平台测试

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

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

  2、浏览器测试

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

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

  五、安全性测试

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

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

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

  (3)为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪。测试方法:定期检查日志文件,默认情况下,IIS的日志存放在%WinDir%\System32\LogFiles,黑客当然非常清楚,所以最好修改一下其存放路径。在 “Internet服务管理器”中,右击网站目录,选择“属性”,在网站目录属性对话框的“Web站点”页面中,在选中“启用日志记录”的情况下,点击旁边的[属性]按钮,在“常规属性”页面,点击[浏览]按钮或者直接在输入框中输入日志存放路径即可。

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

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

  (6)网站目录设置一定要安全,避免直接访问目录文件。验证方法,打上Windows和IIS的最新补丁。

还有一些设置不当错误提示判断的情况,如基于web的一些插件需要先下载activeX控件才能使用,但是安全设置级别为中或是加了download ActiveX限制,以至于弹出系统报错框。

  六、总结

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

基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战。基于Web的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否合适。重要的是,还要从最终用户的角度进行安全性和可用性测试。
网络技术的发展是飞速的,而我们必须时刻跟进,掌握新鲜出炉的技术知识,当然基础知识也是不可忽视的,做好一个web的测试和下边的技术是分不开的。

TAG:

引用 删除 seven_阿7   /   2008-04-24 11:17:54
5
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2011-03-21  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 7879
  • 日志数: 64
  • 建立时间: 2007-09-05
  • 更新时间: 2008-04-01

RSS订阅

Open Toolbar