张 莹,丁宏伟
(河北软件职业技术学院 软件工程系,河北 保定 071000)
国际互联网的快速发展,使WEB技术在人们的工作和生活各个方面都产生了及其深远的影响。许多传统的信息发布方式和数据库系统正在移植到互联网上,Web服务迅速发展。因此,基于Web系统应用的测试也变得十分重要,这对传统软件测试方法提出了新的挑战。这种对应用系统的测试不但能检查是否满足设计要求,还能测试系统每个层面是否正常,以确保系统的整体性能、安全性和可用性,满足客户的需求。
Web应用系统是目前Internet上最常见的应用系统之一,该系统是浏览器/服务器模式(B/S)的,所以有服务器(存放资源的主机,常用的服务器有Apache、IIS、tomcat等)端和客户端(Web浏览器,常用的客户端浏览器有IE、Netscape、Mozilla等)程序两部分,它通过HTTP协议进行通信。
针对Web系统的测试涉及以下内容:(1)总体架构测试;(2)Web架构组成部分是否满足需求,如成本、功能、安全性要求、容量要求、传输实时性等;(3)服务器配置分布是否满足要求,Web服务器、应用服务器、数据库服务器可以分布在不同物理机器上,也可以分布在相同的物理机器上,一般优先考虑独立数据库服务器。随着Web系统复杂性的增加,一个项目的失败将可能导致更多问题的出现,所以Web系统测试就显得尤为重要。
为有效开展测试工作,针对项目采用了局部测试与系统测试相结合的方式,局部测试方案又分为3个部分4个阶段。3个部分即服务器部分、客户端部分和数据库部分;4个阶段即设计阶段、开发阶段、运行阶段和升级阶段。这样,更容易发现应用系统的缺陷和错误,准确定位特定问题的存在部位。
(1)设计阶段。了解项目需求,进行可测试性分析,编写概要测试计划。
(2)开发阶段。主要由编程人员掌握,采用传统软件测试方法。包括源代码分析(使用检查工具)、链接测试(用工具来完成)、框架测试(自动调整窗口大小,是否提供滚动条,打开新页面是否正常)、表格测试(随窗体变化自动调整大小)、图形测试(颜色饱和度及对比度,链接标识,图形显示是否正确)等。
(3)运行阶段。主要对性能及安全性进行测试。性能测试主要测试Web系统在某一负载级别(并发用户数量、在线数据处理的数量方面)以及系统的限制和故障恢复能力上的性能,以保证Web系统在需求范围内能正常工作。安全性测试主要有:常识性安全策略,测试是否存在不必要的协议、控制写权限、取消服务器目录浏览属性、测试是否记录日志等,是否使用加密技术等。
(4)升级阶段。主要包括分析网络中可能的瓶颈、增设新业务对网络性能的影响、采用新的网络技术对网络进行升级性能改善的幅度预测等,为网络的规划设计提供可靠的定量依据,该阶段主要运用OPNET。
2.2.1 页面设计测试
(1)内容测试。检验Web应用系统提供信息的正确性、准确性等人机界面元素。例如,县级网站的旅游资源介绍、页面文字的拼写等是否存在错误,使用Microsft Word的“拼音与语法检查”功能来解决。此外,还要测试页面之间的跳转是否成功以及字体类型、屏幕布局、色彩、图形分辨率及其他会直接影响最终用户体验的特性等。
(2)用户环境测试。测试用户平台和浏览器。市场上有很多不同的操作系统平台(最常见的有Windows、Linux等),就可能会发生兼容性问题。此外,还有浏览器,来自不同厂商不同版本的浏览器对 JavaScript、Html、CSS 有不同的支持,测试是否发生显示错误等。
2.2.2 站点结构测试
测试Web站点的结构是检查结构上是否存在错误,有没有无效的链接。(1)测试所有链接是否按指示链接到了相应的页面;(2)测试所链接的页面是否存在;(3)保证Web应用系统上没有孤立的页面。
对数据库的测试主要集中在运行阶段。一般情况下,注重数据库操作的响应时间、数据存储的完整和数据库系统的容错。(1)测试从用户采集到的数据。当用户给Web应用系统管理员提交信息时,例如用户注册、登录、信息提交等,必须测试提交操作的完整性。(2)业务测试。测试系统的业务处理过程的正确性,例如“旅游景点一卡通”使用情况处理,该系统必须在整个运行期间正确处理业务。(3)可恢复性。我们设计了各种数据库无法恢复的场景,导致数据库崩溃,并制订规程快速恢复,对于出现无法恢复的数据库,建议修改备份策略。
系统测试的目的是确保各单元组合在一起后能够按既定意图协作运行,并确保增量的行为正确。它所测试的内容包括单元间的接口以及集成后的功能。使用黑盒测试方法测试集成的功能,黑盒测试是将被测系统看成一个黑盒,从外界取得输入,然后再输出。整个测试基于需求文档,看是否能满足需求文档中的所有要求。黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关的知识或经验,它适用于对系统的功能进行测试。
系统测试需求所确定的是对某一集成工作版本的测试的内容,即测试的具体对象。该测试需求主要来源于设计模型(Design Model)和集成构件计划(Integration Build Plan),着重于集成版本的外部接口的行为。因此,测试需求须具有可观测性、可测评性,主要包括:
界面是整个Web应用系统的页面结构。例如:当用户浏览Web应用系统时是否感到舒适,能否找到信息所在位置等。在这个测试过程中,我们主要针对是否适合最终用户的实际需求作了相关测试:确定该系统的最终用户群(操作的难易程度、发布信息的实际意义);页面中各元素布局的协调性(位置、颜色、大小比例等);页面风格的统一性;界面操作测试(屏幕分辩率设置的影响、浏览窗口最大化/最小化的影响等)。
安全性方面进行的测试工作主要有:(1)因为大部分web系统都采用了先注册后登陆的设计,所以首先测试用户名和密码的有效和无效情况(是否存在大小写敏感、次数限制、不登录直接浏览某个页面等问题);(2)测试Web应用系统是否有超时限制,即用户登录后在一定时间内没有点击任何页面,是否需要重新登录才能正常使用;(3)测试相关信息是否正确写进了日志文件、是否可追踪;(4)对安全套接字测试加密是否正确,检查信息的完整性;(5)性能测试,利用loadrunner检查登陆用户并发情况的影响(站点的承受能力、数据库的设计、机器硬件性能的变化、瓶颈现象等)。
辅助功能方面进行的测试工作主要包括:(1)使用说明,简单测试是否存在、是否有错误信息、与软件的关联程度等;(2)导航功能,用户在页面内的操作方式要正确,测试主要检查应用系统的页面结构、菜单、连接的正确性,确保用户知道Web应用系统里面的内容,以及内容所在位置、站点地图等。
基于Web系统的测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试技术的应用提出了新的挑战。本文在测试过程中总结出一套完整有序且行之有效的测试方法,但Web系统本身复杂、多变,不同案例情况各不相同,针对整个Web系统进行测试还是一项长期而艰巨的任务,需要我们不断地探索。
[1]郑荣茂.基于Web系统的测试[J].韶关学院学报,2005(3).
[2]耿彩凤,王越.网络测试中的Web测试[J].辽宁大学学报,2005(3).