多语言展示
当前在线:362今日阅读:19今日分享:20

测试Web应用程序考虑哪些事项?

什么是我们真正看到的东西?是一个错误还是一个症状?如果不诊断环境,我们不能够确定是什么导致了一个症状出现。如果客户端和服务器端的一个环境特定的变量被移除或被改变的话,我们或许将不能够重现问题。例如,我正在测试一个Web的缺陷跟踪应用程序,并且遍历创建一个bug报告的流程。当我选择'新建'按钮时,我接收到一个错误信息:MicrosoftOLEDBProviderforODBCDriverserror'80040e14'。在花了一些时间调查我的浏览器环境后,我发现JavaScript在浏览器的参数设置对话框中被禁止了。启用JavaScript就消除了这个错误。(这个问题是否是个bug不在我们今天讨论的范围里)这里是要说如果我在bug报告中增加关于JavaScript的信息,我可以节约我们团队花费在分析这个问题的时间。此外,'禁用JavaScript'从此应该要添加到我的测试包中;它将被应用到应用程序的各个地方,以使所有潜在的相关问题不会出现。这个错误是环境依赖的吗?为了重现一个环境相关的错误,我们不得不完全地复制活动的准确顺序和应用程序操作所在环境的条件(操作系统,浏览器版本,插件的组件,数据库服务器,web服务器,第三方组件,服务器/客户端资源,网络带宽和通信量等等)。例如,当你试图使用一个28.8kbps的拨号连接登录到你的Web应用程序中,你会碰到一个由于在认证过程中因超时而导致的登录失败-但是同样的登录步骤如果你用一个1.54mbps的T-1连接将会成功的通过认证。在这个案例中,你有一个环境依赖的错误,这个依赖条件是在带宽中。环境无依赖的错误,用另一种话说,相对来说是容易重现的-它没有必要复制操作环境。环境无关的错误,需要复制所有都能够揭示错误的步骤。例如,的名称在所有产品在线页面上错误地拼写为WebTessting.Con,你就总能看到这个错误-它是和硬件,软件和你操作环境中资源变量无关的。更为常见的是,我们将环境无关的错误称为功能特定的错误。是一个代码错误或是一个配置问题错误(或是假定错误的症状)可能会在代码修复中或系统重新配置(客户,服务器或网络)解决(假设错误是真实的)。不要太快的下结果它是一个bug。MicrosoftOLEDBProviderforODBCDriverserror'80004005'对比真正的软件错误,这是一个说明识别可能的配置问题挑战。它显示了由于Web应用程序'登录失败'而引起的一个错误信息。只是简单的查看这个错误信息,是不可能判断这个错误是由于软件bug引起的还是服务器端配置问题,或是兼容性问题,浏览器配置问题或以上所有的。在进一步分析这个失败以后,我发现几个可能的产生这个错误信息的条件:IIS(Webserver)virtualdirectoryhasnotbeensetupproperly当虚拟目录没有被正确的配置时,将找不到请求的文件,脚本或数据。这是一个典型的服务器配置的问题。然而,如果安装程序未能根据说明书一样配置web服务器,那么这是一个软件的错误。如果一个系统管理员未能根据说明书正确地配置web服务器,这个就变成了用户错误。Applicationdirectoryhasnotbeenconfiguredproperlytoexecutescripts一个典型的应用服务器目录包含了需要执行的脚本,它们会被代表客户端的Web服务器调用。为了安全的原因,一个Web服务器可以被配置以允许或不允许脚本在一些目录里执行。如果你的应用服务器目录被设计来包含将要被执行的脚本-但是Web服务器被配置为在那个目录里禁用脚本执行-应用程序将不能工作。这是软件错误还是一个配置问题呢?DefaultWebpagehasnotbeensetupproperly这个问题和上面的问题相似SQLServerisnotrunning为了执行查询,存储过程和访问数据,应用服务器需要连接后台在SQL服务器上的数据库。如果SQL服务器进程没有运行,显然应用程序将不能工作。DLL/COMobjectsaremissingorwereunsuccessfullyregistered可能安装程序在安装过程中未能复制应用服务器要使用的所有DLL。如果遗漏了其中一个应用程序所需的DLL,应用程序将不可以工作。也可能安装程序正确的复制了所有需要的模块,但是失败的注册一个或多个DLL。例如OLE-Based的对象,例如COM或DCOM,它们的classID(CLSID)在它们可以被使用之前必须注册到注册表库中。如果一个应用程序试图访问一个没有被成功注册的COM对象,应用程序将不能工作。这个问题通常由安装过程中的错误引起来。另一方面,如果组件必须被手工注册地话,就变成一个配置问题。Browser-sideJavaScriptsettinghasbeendisabled这是一个浏览器端的配置问题,由于应用程序要求浏览器启用JavaScript。这是一个软件错误,配置问题或是一个技术支持的问题呢?哪个层真正的引起了那个问题?  在Web系统中的错误通常是很难一直重现因为许多由C/S架构的分布式特性而引入的许多变量。(例如,服务器,客户端和网络组件)。在一个web环境中至少由3个常见的怀疑部分:客户端,服务器和网络。客户端和服务器都会携带诶之和兼容性问题,那些和PC环境相似,所有的组件都在一个盒子里。在C/S系统里,问题成倍的增长,然而,由于可能有很多的客户端和服务器链接在一个网络中。典型的C/S配置和兼容性问题涉及到硬件和操作系统的混合(例如,基于UNIX的vs基于windows的盒子)以及在服务器端的软件组合(Web服务器包,数据库服务器包,防火墙,COM对象,CORBA对象等等)。问题也可能涉及客户端的软件组合(TCP/IP堆栈,拨号软件,帮助组件,浏览器带宽和浏览器版本)。另外,浏览器设置,例如一些常见的设置,连接设置,安全设置(包括ActiveX空间,插件,Java,脚本,下载,用户认证等等),内容设置,程序设置,和其他高级设置(包括浏览器选项,多媒体选项,JVM选项,打印选项和HTTP选项)引入很多可以被测试并分析的变量。网络提供了另一套变量。网络用几个方式影响着Web应用程序,包括由于带宽和响应时间引起的分时相关的问题(竞态条件,性能,超时等等),由于硬件设备例如网关和路由器导致的潜在的配置和兼容性问题,以及和安全实现相关的端问题。静态和动态操作环境是不同的一般来说,有两类操作环境-每个都有自己独一无二的测试牵连:静态环境(例如配置和兼容性错误)不兼容性问题可能存在其中,不管可变的条件,例如处理速度和可用的内存动态环境(例如资源及时间相关的错误)其他方面可兼容的组件可能出现错误在其中,由于内存相关的错误和反应时间条件(我们将在这一节中更详尽的探讨动态环境)动态的操作环境:事情不会保持一样。当特定环境的属性值不是每次都在测试过程中保持常量时,它会引起操作环境变为动态。属性可以从资源特定(可用的RAM,磁盘空间等)转变为时间特定的(网络反应时间,用户要提交的交易顺序等)。当一个测试用例取决于步骤集和操作环境的准确复制,然而(由于它的动态本质)操作环境不可能被复制,错误变得不可重现或很难重现。
推荐信息