基于BS应用的软件测试.ppt
第13讲基于B/S应用的软件测试,C/S和B/S的比较,随着计算机技术的不断发展与应用,计算模式从集中式转向了分布式,尤为典型的是C/S结构两层结构C/S模式,上世纪大量应用,可视化开发工具向三层结构发展网络技术不断发展,尤其是基于Web的信息发布和检索技术、Java计算技术以及网络分布式对象技术的发展导致了很多应用系统的体系结构从C/S结构向更加灵活的多级分布结构演变,使得软件系统的网络体系结构跨入一个新阶段,即B/S体系结构 基于Web的B/S方式其实也是一种客户机/服务器方式,只不过它的客户端是浏览器为了区别于传统的C/S模式,才特意将其称为B/S模式,C/S和B/S的比较(续),系统的性能 B/S占有优势的是其异地浏览和信息采集的灵活性任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用B/S系统的终端客户端只能完成浏览、查询、数据输入等简单功能,绝大部分工作由服务器承担,这使得服务器的负担很重采用C/S结构,客户端和服务器端都能够处理任务这对客户机的要求较高,它可以减轻服务器的压力客户端使用浏览器,网上发布信息必须是以HTML格式为主,其它格式文件多半是以附件的形式存放HTML格式文件(也就是Web页面)不便于编辑修改,给文件管理带来了许多不便,C/S和B/S的比较(续),系统的开发 C/S结构是建立在中间件产品基础之上的,要求应用开发者自己去处理事务管理、消息队列、数据的复制和同步、通信安全等系统级的问题这对应用开发者提出了较高的要求,而且迫使应用开发者投入很多精力来解决应用程序以外的问题这使得应用程序的维护、移植和互操作变得复杂如果客户端是在不同的操作系统上,C/S结构的软件需要开发不同版本的客户端软件。与B/S结构相比,C/S技术发展历史更为“悠久”从技术成熟度及软件设计、开发人员的掌握水平来看,C/S技术应是更成熟、更可靠的,C/S和B/S的比较(续),系统的升级维护 C/S系统的各部分模块中有一部分改变,就要关联到其它模块的变动使系统升级成本比较大B/S大大简化了客户端,只要客户端机器能上网就可以对于B/S而言,开发、维护等几乎所有工作也都集中在服务器端当企业对网络应用进行升级时,只需更新服务器端的软件就可以减轻了异地用户系统维护与升级的成本如果客户端的软件系统升级频繁,那么B/S架构的产品优势明显所有升级操作只需要针对服务器进行,这对那些点多面广的应用是很有价值的例如一些招聘网站就需要采用B/S模式,客户端分散,且应用简单,只需要进行简单的浏览和少量信息的录入在系统安全维护上,B/S则略显不足,B/S结构尤其得考虑数据的安全性和服务器的安全性,毕竟现在的网络安全系数并不高以OA软件为例,B/S结构要实现办公协作过程中复杂的工作流控制与安全性控制,还有很多技术上的难点当前虽然出现了B/S结构的OA系统产品,但尚未大范围推广,基于B/S架构的WEB应用测试,web应用的增多,新的模式解决方案中以web为核心的应用也越来越多很多公司各种应用的架构都以B/S及web应用为主基于Web的系统测试与传统的软件测试不同需要检查和验证是否按照设计的要求运行还要测试系统在不同用户的浏览器端的显示是否合适重要的是还要从最终用户的角度进行安全性和可用性测试Internet和Web媒体的不可预见性使测试Web应用变得困难,基于B/S架构的WEB应用测试(续),功能测试链接测试链接是Web应用系统的一个主要特征,它是在页面之间切换和指导用户去一些不知道地址的页面的主要手段链接测试可分为三个方面首先,测试所有链接是否按指示的那样确实链接到了该链接的页面其次,测试所链接的页面是否存在最后,保证Web应用系统上没有孤立的页面,所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问。链接测试可以自动进行,现在已经有许多工具可以采用链接测试必须在集成测试阶段完成,也就是说,在整个Web应用系统的所有页面开发完成之后进行链接测试,基于B/S架构的WEB应用测试(续),功能测试(续)表单测试当用户给Web应用系统管理员提交信息时,就需要使用表单操作例如用户注册、登陆、信息提交等必须测试提交操作的完整性,以校验提交给服务器的信息的正确性例如:用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等如果使用了默认值,还要检验默认值的正确性如果表单只能接受指定的某些值,则也要进行测试例如:只能接受某些字符,测试时可以跳过这些字符,看系统是否会报错,基于B/S架构的WEB应用测试(续),功能测试(续)数据校验如果系根据业务规则需要对用户输入进行校验,需要保证这些校验功能正常工作例如,省份的字段可以用一个有效列表进行校验。在这种情况下,需要验证列表完整而且程序正确调用了该列表(例如在列表中添加一个测试值,确定系统能够接受这个测试值)。在测试表单时,该项测试和表单测试可能会有一些重复,基于B/S架构的WEB应用测试(续),功能测试(续)Cookies测试 Cookies常用来存储用户信息和用户在某应用上的操作当用户使用Cookies访问了某一个应用时,Web服务器将发送关于用户的信息,把该信息以Cookies的形式存储在客户端计算机上,这可用来创建动态和自定义页面或者存储登陆等信息如果Web应用使用了Cookies,就必须检查Cookies是否能正常工作测试的内容可包括Cookies是否起作用,是否按预定的时间进行保存,刷新对Cookies有什么影响等,基于B/S架构的WEB应用测试(续),功能测试(续)应用程序特定的功能需求 测试人员需要对应用程序特定的功能需求进行验证尝试用户可能进行的所有操作:下订单、更改订单、取消订单、核对订单状态、在货物发送之前更改送货信息、在线支付等等这是用户之所以使用网站的原因,一定要确认网站能像广告宣传的那样神奇,基于B/S架构的WEB应用测试(续),功能测试(续)设计语言测试 Web设计语言版本的差异可以引起客户端或服务器端严重的问题,例如使用哪种版本的HTML等当在分布式环境中开发时,开发人员都不在一起,这个问题就显得尤为重要除HTML的版本问题外,不同的脚本语言,例如Java、JavaScript、ActiveX、VBScript或Perl等也要验证,基于B/S架构的WEB应用测试(续),功能测试(续)数据库测试 在Web应用技术中,数据库起着重要的作用数据库为Web应用系统的管理、运行、查询和实现用户对数据存储的请求等提供空间在Web应用中,最常用的数据库类型是关系型数据库,可以使用SQL对信息进行处理在使用了数据库的Web应用系统中,一般情况下,可能发生两种错误,分别是数据一致性错误和输出错误数据一致性错误主要是因用户提交的表单信息不正确而造成的而输出错误主要是由于网络速度或程序设计问题等引起的针对这两种情况,可分别进行测试,基于B/S架构的WEB应用测试(续),性能测试连接速度测试 用户连接到Web应用的速度根据上网方式的变化而变化他们或许是电话拨号,或是宽带上网当下载一个程序时,用户可以等较长的时间,但如果仅仅访问一个页面就不会这样如果Web系统响应时间太长(例如超过5秒钟),用户就会因没有耐心等待而离开。另外,有些页面有超时的限制,如果响应速度太慢,用户可能还没来得及浏览内容,就需要重新登陆了而且,连接速度太慢,还可能引起数据丢失,使用户得不到真实的页面,基于B/S架构的WEB应用测试(续),性能测试(续)负载测试 是为了测量Web系统在某一负载级别上的性能,以保证Web系统在需求范围内能正常工作负载级别可以是某个时刻同时访问Web系统的用户数量,也可以是在线数据处理的数量。例如:Web应用系统能允许多少个用户同时在线?如果超过了这个数量,会出现什么现象?Web应用系统能否处理大量用户对同一个页面的请求?,基于B/S架构的WEB应用测试(续),性能测试(续)压力测试 负载测试应该安排在Web系统发布以后,在实际的网络环境中进行测试一个企业内部员工,特别是项目组人员总是有限的,而一个Web系统能同时处理的请求数量将远远超出这个限度,只有放在Internet上,接受负载测试,其结果才是正确可信的进行压力测试是指实际破坏一个Web应用系统,测试系统的反映压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。压力测试区域包括表单、登陆和其他信息传输页面等,基于B/S架构的WEB应用测试(续),性能测试(续)负载/压力测试应该关注什么验证系统能否在同一时间响应大量的用户,在用户传送大量数据的时候能否响应,系统能否长时间运行可访问性对用户来说是极其重要的。如果用户得到“系统忙”的信息,他们可能放弃,并转向竞争对手系统检测不仅要使用户能够正常访问站点,在很多情况下,可能会有黑客试图通过发送大量数据包来攻击服务器出于安全的原因,测试人员应该知道当系统过载时,需要采取哪些措施,而不是简单地提升系统性能瞬间访问高峰、每个用户传送大量数据、长时间使用,基于B/S架构的WEB应用测试(续),可用性测试导航测试导航描述了用户在页面内操作的方式,在不同用户接口控制之间,例如按钮、对话框、列表和窗口等;或在不同连接页面之间一个Web应用系统是否易于导航,考虑下列问题:导航是否直观?Web系统的主要部分是否可通过主页存取?Web系统是否需要站点地图、搜索引擎或其他的导航帮助?在一个页面上放太多的信息会起到与预期相反的效果Web应用系统的用户趋向于目的驱动,很快地扫描一个Web应用,看是否有自己需要的信息,如果没有,就会很快地离开导航的另一个重要方面是Web应用系统的页面结构、导航、菜单、连接的风格是否一致确保用户凭直觉就知道Web应用里面是否还有内容,内容在什么地方Web应用系统的层次一旦决定,就要着手测试用户导航功能,让最终用户参与这种测试,效果将更加明显。,基于B/S架构的WEB应用测试(续),可用性测试(续)图形测试 在Web应用系统中,适当的图片和动画既能起到广告宣传的作用,又能起到美化页面的功能Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有:要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间。Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面验证所有页面字体的风格是否一致背景颜色应该与字体颜色和前景颜色相搭配图片的大小和质量也是很重要的因素,一般采用JPG或GIF压缩,基于B/S架构的WEB应用测试(续),可用性测试(续)内容测试 检验Web应用提供信息的正确性、准确性和相关性信息的正确性是指信息是可靠的还是误传的。例如,在商品价格列表中,错误的价格可能引起财政问题甚至导致法律纠纷信息的准确性是指是否有语法或拼写错误。这种测试通常使用一些文字处理软件来进行,例如使用Microsoft Word的“拼音与语法检查”功能信息的相关性是指是否在当前页面可以找到与当前浏览信息相关的信息列表或入口,也就是一般Web站点中的所谓相关文章列表,基于B/S架构的WEB应用测试(续),可用性测试(续)表格测试 需要验证表格是否设置正确用户是否需要向右滚动页面才能看见产品的价格把价格放在左边,而把产品细节放在右边是否更有效?每一栏的宽度是否足够宽,表格里的文字是否都有折行是否有因为某一格的内容太多,而将整行的内容拉长?,基于B/S架构的WEB应用测试(续),可用性测试(续)整体界面测试整体界面是指整个Web应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览Web应用系统时是否感到舒适是否凭直觉就知道要找的信息在什么地方整个Web应用系统的设计风格是否一致?对整体界面的测试过程,其实是一个对最终用户进行调查的过程一般Web应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息对所有的可用性测试来说,都需要有外部人员(与Web应用系统开发没有联系或联系很少的人员)的参与,最好是最终用户的参与,基于B/S架构的WEB应用测试(续),客户端兼容性测试 平台测试市场上有很多不同的操作系统类型,最常见的有Windows、Unix、Macintosh、Linux等Web应用系统的最终用户究竟使用哪一种操作系统,取决于用户系统的配置这样,就可能会发生兼容性问题,同一个应用可能在某些操作系统下能正常运行,但在另外的操作系统下可能会运行失败 在Web系统发布之前,需要在各种操作系统下对Web系统进行兼容性测试,基于B/S架构的WEB应用测试(续),客户端兼容性测试(续)浏览器测试 浏览器是Web客户端最核心的构件,来自不同厂商的浏览器对Java,、JavaScript、ActiveX、plug-ins或不同的HTML规格有不同的支持。例如:ActiveX是Microsoft的产品,是为Internet Explorer设计的JavaScript是Netscape的产品Java是Sun的产品等等框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示不同的浏览器对安全性和Java的设置也不一样。测试浏览器兼容性的一个方法是创建一个兼容性矩阵在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性,基于B/S架构的WEB应用测试(续),客户端兼容性测试(续)分辨率测试页面版式在 640 x400、600 x800 或 1024x768 的分辨率模式下是否显示正常?字体是否太小以至于无法浏览?或者是太大?文本和图片是否对齐?,基于B/S架构的WEB应用测试(续),客户端兼容性测试(续)Modem/连接速率 是否有这种情况,用户使用 28.8 modem下载一个页面需要 10 分钟,但测试人员在测试的时候使用的是 T1 专线?用户在下载文章或演示的时候,可能会等待比较长的时间,但却不会耐心等待首页的出现最后,需要确认图片不会太大,基于B/S架构的WEB应用测试(续),客户端兼容性测试(续)打印机 用户可能会将网页打印下来网页在设计的时候要考虑到打印问题,注意节约纸张和油墨有不少用户喜欢阅读而不是盯着屏幕,因此需要验证网页打印是否正常有时在屏幕上显示的图片和文本的对齐方式可能与打印出来的东西不一样测试人员至少需要验证订单确认页面打印是正常的,基于B/S架构的WEB应用测试(续),客户端兼容性测试(续)组合测试 600 x800 的分辨率在 MAC 机上可能不错,但是在 IBM 兼容机上却很难看。在IBM机器上使用Netscape能正常显示,但却无法使用Lynx来浏览如果是内部使用的 web 站点,测试可能会轻松一些如果公司指定了浏览器,那么只需在该浏览器上进行测试如果所有的人都使用 T1 专线,可能不需要测试下载施加(但需要注意的是,可能会有员工从家里拨号进入系统)有些内部应用程序,开发部门可能在系统需求中声明不支持某些系统而只支持一些那些已设置的系统但是,理想的情况是,系统能在所有机器上运行,这样就不会限制将来的发展和变动,基于B/S架构的WEB应用测试(续),安全性测试Web应用系统的安全性测试区域主要有:现在的Web应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等Web应用系统是否有超时的限制,也就是说,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进了日志文件、是否可追踪当使用安全套接字时,要测试加密是否正确,检查信息的完整性服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题,基于B/S架构的WEB应用测试(续),接口测试在很多情况下,web 站点不是孤立。Web 站点可能会与外部服务器通讯,请求数据、验证数据或提交订单服务器接口浏览器与服务器的接口测试人员提交事务,然后查看服务器记录,并验证在浏览器上看到的正好是服务器上发生的测试人员还可以查询数据库,确认事务数据已正确保存。外部接口有些web系统有外部接口。例如,网上商店可能要实时验证信用卡数据以减少欺诈行为的发生测试的时候,要使用web接口发送一些事务数据,分别对有效信用卡、无效信用卡和被盗信用卡进行验证错误处理确认系统能够处理的错误,想办法预期系统所有可能的错误尝试在处理过程中中断事务尝试中断用户到服务器的网络连接,基于B/S架构的WEB应用测试(续),总结基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战基于Web的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否合适重要的是,还要从最终用户的角度进行安全性和可用性测试,