随着网络技术的迅速发展,尤其是WEB及其应用程序的普及,各类基于WEB的应用程序以其方便、快速,易操作等特点不断成为软件开发的重点。与此同时,随着需求量与应用领域的不断扩大,对WEB应用软件的正确性、有效性和对WEB服务器等方面都提出了越来越高的性能要求,对WEB应用程序进行有效的系统的测试也逐渐成为人们研究的重要课题。
目前可以见到各种WEB服务器平台,然而根据Mereury的研究报告,98%的WEB服务器都没能达到人们所期望的性能,平均只能发挥人们所期望性能的1/6左右。WEB性能测试能够确定影响WEB服务器性能的关键因素,从而可以有针对性地进行分析和改进,避免WEB服务器研究和优化过程中的盲目行为;同时,它也是选取不同的WEB服务器的重要参考。
随着WEB应用程序使用越来越广泛,针对其性能测试的要求也越来越多,然而由于WEB程序综合了大量的新技术,诸如HTML、JAVA、Javascript、VBScript等,同时它还依赖很多其它的因素,比如Link、Database、Network等,使得WEB应用程序测试变得非常复杂。例如:WEB压力测试是评价一个WEB应用程序的主要手段,它的测试就是一个代表性的方面。
WEB应用程序的测试有别于传统软件的测试,它有其自身的特点。下面我们进行比较深入的讨论。
二、WEB测试技术
(一)WEB应用程序体系结构
WEB应用程序采用B/S结构,它是伴随着Internet技术的不断进步,由C/S结构改进和发展起来的新型体系结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑则在服务器端实现,形成所谓3tier结构。B/S结构利用不断成熟和普及的浏览器技术实现原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。这种结构更成为当今应用软件开发的首选体系结构,目前最流行的mi?鄄crosoft.net也是在这样一种背景下被提出来的架构。
传统的软件一般采用C/S结构,此结构把数据库内容放在远程的服务器上,而在客户机上安装相应软件。C/S软件一般采用两层结构,C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。但是该结构的程序是针对性开发,变更不够灵活,维护和管理的难度较大。
(二)WEB测试的内容与目的
在很多时候我们都把测试的目的定位为寻找软件的BUG,而且是尽可能的找出BUG来,而测试人员所做的事情就是找软件的毛病,只要找出毛病就可以了,这样很容易带了一系列的问题。比如测试人员给某网站做测试,并递交了一份简单的测试报告:“当100用户共同按某提交按钮时,发生大量的提交失败”。对于测试人员来说,他已经完成了他自己的任务,找出了BUG,但是,这样的测试报告对于开发人员和项目管理者却毫无用处。报告中并未提及造成提交失败的原因,是硬件资源不足、网络问题、支撑软件参数设置错误还是应用开发问题等等。
测试的目的是证伪,但不能片面的理解为简单的找不BUG就可以了。软件测试应该经历以下四个步骤:
1.测试人员描述发现的问题(找到bug);
2.测试人员详细阐明是在何种情况下测试发现的问题,包括测试的环境、输入的数据、发现问题的类型、问题的严重程度等情况;
3.测试人员协同开发人员一起去分析BUG的原因,找出软件的缺陷所在;
4.测试人员根据解决的情况进行分类汇总,以便日后进行软件设计的时候提供参考,避免以后出现类似软件缺陷。