Web应用软件测试内容及方法的研究
2011-08-15刘继华
刘继华
(吕梁学院 计算机系,山西 离石 033000)
Web应用软件测试内容及方法的研究
刘继华
(吕梁学院 计算机系,山西 离石 033000)
软件测试是提高软件质量的有效手段。随着Web应用软件规模的不断扩大,软件测试技术的研究逐渐成为热点。对软件测试基本概念以及传统软件测试的内容及方法作了简要介绍,通过比较传统软件与Web应用软件,就Web应用软件测试内容及方法作具体探析,对基于Web应用软件测试技术的研究具有一定的价值。
软件测试;Web应用软件;测试方法
随着Internet的快速发展,Web应用软件已广泛应用于商业、工业、银行、财政、教育、政府和娱乐等领域,但所存在的软件质量问题可能造成巨大的损失,所以对于Web应用软件质量如何保障,如何对其进行测试显得尢为重要,由于现有的测试内容和方法并不能完全适应当前WEB应用软件开发实践的需要,所以对WEB应用软件测试提出新的测试方法和内容显得尤为必要。
1 软件测试定义及具体内容
软件测试就是利用测试工具、按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估,执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。
软件测试的具体内容是验证(verification)和确认(validation),其中验证就是保证软件正确地实现某些特定功能的一系列活动,保证软件以正确的方式完成特定事件。验证的主要工作是:
①确定软件生存周期中处于一个给定阶段的产品是否达到前阶段确立的需求的过程。
②程序正确性的形式证明,即采用形式理论证明程序符合设计规约规定的过程。
③评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断并提出报告。
确认是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件做了你所期望的事情。
①静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性。
②动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。
软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期间各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,软件测试的主要对象当然还是源程序。
2 传统软件测试内容及方法
2.1 单元测试
单元测试是最微小规模的测试,用来测试某个功能或代码块,一般由程序员而非测试员来做,因为它需要知道内部程序设计和编码的细节知识。这个工作不容易做好,除非应用系统有一个设计良好的体系结构,还可能需要开发测试驱动器模块或测试套具。
2.2 集成测试
集成测试是指一个应用系统的各个部件的联合测试,是单元测试的逻辑扩展。主要是识别组合单元时出现的问题。一般采用的集成策略有自顶向下集成、自底向上集成、伞形集成、突击式。
2.3 系统测试
系统测试是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件,是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。系统测试的范围涉及到功能、压力、负载、兼容性、安全性、升级、可用性、可计算性、配置、启动和恢复以及冲击等方面。
2.4 验收测试
验收测试是根据测试计划和结果对系统进行测试和接收,它让系统用户决定是否接收系统,是一项确定产品是否能够满足合同或用户所规定需求的测试,多采用称为α、β测试。β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,β测试不能由程序员或测试员完成。α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,α测试不能由该系统的程序员或测试员完成。
2.5 回归测试
回归测试是指在发生修改之后重新测试先前的测试以保证修改的正确性,验证以前发现和修复的错误是否在新软件版本上再次出现。目的在于验证以前出现过但已经修复好的缺陷不再重新出现。一般指对某已知修正的缺陷再次围绕它原来出现时的步骤重新测试。在验证修好的缺陷时不仅要服从原有缺陷出现时的步骤重新测试,而且还要测试有可能受影响的所有功能。因此应当鼓励对所有回归测试用例进行自动化测试。
3 Web应用软件测试的特殊性
Web应用软件一般采用客户机/服务器/数据服务器的计算模式,在这种模式下,客户机层用于人机交互与应用的表示,web服务器层用于事物处理,数据服务器层用于应用数据的存取和管理。其通常是分布式的、并发的多用户的和异构的。
由于系统结构的不同,基于WEB的软件测试与传统的软件测试也有较大区别,对软件测试提出了新挑战。主要表现在以下几个方面:
①网络和WEB应用软件的复杂性及不可预见性是WEB应用软件测试面临的最大困难,所以需要大量测试人员;另外,WEB应用不断变化,自身又依赖大量的技术,这些都增加了Web应用软件测试的困难。
②由于分布式、开放式、并发、多用户和异构性,Web测试需要兼容性测试、压力测试及多元化的功能测试对象,测试时还要满足不同的计算机对编程环境的要求,实时性的要求较高使得传统的测试技术无法胜任。
4 Web应用软件测试内容及方法
由于Web应用软件的特殊性,在传统测试方法的基础上,Web应用软件自身具有其特有的测试内容和方法。
4.1 功能测试
Web应用软件的功能测试主要包含链接测试、表单测试、Cookies测试、设计语言测试以及数据库测试。
①链接测试主要测试是否有链接、链接位置是否正确等。
②表单测试需要验证服务器能否正确保存数据,而且后台运行的程序能否正确解释和使用这些信息,另外数据正确性验证、异常处理等都需测试。
③Cookies测试主要是确认该cookie是否能够正常工作而且已对这些信息已经加密,需要验证次数累计是否正确。
④设计语言测试主要测试语言的不同是否会影响客户端或服务器端的正常运行。
⑤数据库测试主要测试数据一致性问题和输出问题。由于用户提交的表单信息不正确有可能会造成数据不一致;网络速度或程序设计问题等也可能会引起数据输出错误。[1]
4.2 性能测试
WEB应用软件的性能测试主要包含:负载测试、压力测试、连接速度测试等。
①连接速度测试主要测试WEB软件是否会由于网络或多用户等原因造成的页面超时或速度过慢,是否会引起数据丢失等问题。
②负载测试主要测量Web系统在某种负载级别上的运行情况,测试系统在需求范围内能否正常工作。负载级别一般设定同一时刻用户数量,也可以是在线数据处理的数量。
③压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统在什么情况下会崩溃。因为黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权,所以压力测试对于WEB应用软件非常重要,主要的区域包括表单测试、登陆情况和其他信息传输页面等。[2]
4.3 可用性测试
可用性测试一般包括导航测试、图形测试、内容测试以及整体界面测试。
①导航测试主要测试导航的直观性、易导性,是否需要站点地图、搜索引擎或其他的导航帮助?页面结构、导航、菜单、连接的风格是否一致。
②图形测试主要测试图片、动画位置是否井然有序,是否有明确用途;测试页面字体的风格是否一致;测试背景、字体、前景颜色是否和谐;图片的格式、大小质量如何。
③内容测试用来检验Web应用系统提供信息的正确性、准确性和相关性。
④整体界面测试主要测试整个Web应用系统的页面结构设计,是给用户的一个整体感。主要考虑网页的最终用户、网页的设计风格、风格是否统一、是否协调等问题。[3]
4.4 兼容性测试
对于WEB应用软件,兼容性测试应包含:平台与浏览器测试、分辨率测试、Modem/连接速率测试、打印机测试、组合测试等。兼容性测试可采用创建一个兼容性矩阵,测试软件在不同平台、不同的浏览器、不同的分辨率等多种条件下的运行情况。
4.5 安全性测试
安全性测试在WEB应用软件测试中是必不可少的一个环节,不管应用程序是否需要用户输入口令以访问站点,测试人员必须对目前已知的Internet安全隐患进行检测。主要的测试包含:用户名和密码、程序运行超时限制、日志文件检测、文件加密情况、授权问题、防火墙、缓冲区溢出等测试。
4.6 接口测试
WEB应用软件的接口测试是测试浏览器与服务器的接口、外部接口测试等。例如,网上商店可能要实时验证信用卡数据以减少欺诈行为的发生;另外,测试人员还应及时对接口错误进行处理。[4]
5 结束语
总之,Web应用软件测试与传统测试有相同之处,也有较大差异,如何有效地针对Web应用软件的特点进行测试,而又合理地利用传统测试技术,是Web应用软件测试研究的重点,由于Web应用软件自身的复杂性、运行环境的不同、网络问题、多用户等因素,有关它的测试技术、内容及方法的研究还有待于进一步的探讨。
[1]刘智勇.Web应用软件测试技术研究及自动化测试工具的实现[D].湖南大学,2005.
[2]黄宁,余莹,张大勇.Web服务软件测试技术的研究与实现[J].计算机工程与应用,2004,40(35):47-49.
[3]吴信生.如何提高软件测试水平[N].中国计算机报,2005,(10):25.
[4]Gledford J.Myers.The Art Of Software Testing(second edition)[M].Newyork:John Wiley and Sons,2004.
Research on Web Application Software Testing Content and Method
LIU Ji-hua
(Department of Computer Science Lvliang College,Lishi Shanxi 033000)
Software testing is an effective means of improving the quality of software.With the expand of the scale of Web application software,the software testing technology research has become a hotspot.The concepts of software testing and the traditional software testing content and method has been introduced briefly in this paper.By comparing the traditional software and Web application software,Web application software testing content and method has been analysed specifically.This will contributes to the software testing technology research based on Web application.
software testing;Web application software;testing method
TP31
A
1673-2014(2011)05-0046-03
2011—04—08
刘继华(1975—),女,山西稷山人,讲师,主要从事软件工程研究。
(责任编辑 李学斌)