论文部分内容阅读
摘要 随着现代社会的信息化发展,越来越多的基于Web的网络应用程序应运而生,对软件测试的需求也随之增加。该研究采用用户验收测试方法UAT指导和管理整个测试流程,使用QC、QTP、Load Runner这3个测试工具对Web系统的功能和性能进行测试,其中性能测试包括系统稳定性测试和数据库压力测试。测试结果表明,用户验收测试方法UAT能够高效地测试基于Web的网络应用程序。
关键词 Web测试;UAT;Quality Center;Quick Test Professional
中图分类号 S126 文献标识码 A 文章编号 0517-6611(2015)27-382-03
Test Research of Network Application Program Based on Web
ZHOU Lu-yang, JU Shu-cun*, XU Xiang
(Rural Comprehensive Economic Information Center of Anhui Province, Hefei, Anhui 230039)
Abstract With the development of the intelligent society, more and more Web applications are developed to satisfy human’s requirement. This research uses the UAT technology to guide and manage the whole testing flow and do the functional testing, stability testing and pressure testing research. Three testing tools are used during the whole process and they are QC,QTP,Load Runner. The final result turns out that this UAT method can manage the whole testing process for Web applications in high efficient way.
Key words Web testing; UAT; Quality Center; Quick Test Professional
隨着社会信息化、智能化的发展,为适应各种需求,各种软件系统特别是Web应用程序应运而生,随之而来的是对软件测试的增加,对软件测试的需求也随之增加。然而由于开发周期、程序员素质的影响,需求分析不足、程序存在一些Bug的情形时有发生,例如由于开发团队固有的开发思维,程序员更加关注用什么样的数据结构、调用什么样的函数等程序层面的问题,并且对于自己的开发成果往往带有较强的主观色彩,因此软件测试对于确保程序的正确性、完整性、安全性和质量有着重要意义。基于Web的系统测试相较于传统的软件测试,它不但需要检查和验证是否按照设计的要求运行,由于网络和终端Web媒体的不可预见性,一般还要测试系统在不同用户的浏览器上的兼容性,重要的是,用户Web终端环境复杂,一般还要从最终用户的角度进行安全性和可用性测试。因此,有必要为测试和评估复杂的基于Web的系统研究出新的测试方法和技术。
该研究以安徽省“新型农民培训民生工程”信息管理系统为对象,采用UAT(User Acceptance Testing用户验收测试)方法[1]体系来指导和管理整个测试流程,使用HP的Quality Center、Quick Test Professional、Load Runner等测试工具,主要针对系统的功能和性能展开测试。其中功能测试包括可用性测试(导航、图形、内容、整体界面等的测试)、链接测试、表单测试、数据统计正确性测试等[2],性能测试包含稳定性测试和数据库的压力测试[3]。
1 基于Web的应用程序功能测试
功能测试主要是为了保证系统的可用性而进行的一系列测试,包括链接测试、表单测试、数据统计正确性测试以及界面的友好性测试等,确保系统功能在不同的用户终端能够正常运行[3]。
1.1 用户需求分析 通过阅读用户手册了解用户需求,该系统的最大特点是可以实现省、市、县(区)3级管理,不同的用户有不同的权限,不同的培训机构可以对相应类型的台账进行操作。概括来说该系统的用户分为3类:
(1)系统管理员(1个)。负责省市县区的管理和培训机构的管理(可以增加、修改、查询和删除省市县区和培训机构);具有五种台帐和4种月报表的全部操作权限(增加、修改、查询和删除的操作)。
(2)省市县区管理员(137个)。具有本省、市、县区的4种月报表的统计查询权限。
(3)培训机构(1 580个)。具有本机构的台帐申报、修改、查询权限。
根据以上内容编写Traceability Matrix(简称TM),TM是测试场景的概括,它反映整个测试的逻辑,确保各种场景至少有一个测试用例。
1.2 功能测试的测试用例设计 设计测试用例时一定要遵从确认过的TM,在测试数据的准备等细节方面一般用边界值测试方法(如测试报表时,会测到0的情况)[4],准备的数据尽量涵盖系统设计的所有内容。然后在QC的test plan中设计测试用例,如图1所示。
1.3 测试用例的执行 通过QC的Test Lab来管理测试用例的执行,执行的时候有3种结果:“pass”(测试结果与预计结果一致),“not complete”(因为某种原因现在还无法判断测试结果,比如,需要等下一工作日再做一个交易),“failed”(测试结果与预计结果不一致)。 1.4 测试缺陷的管理 当测试用例执行没有通过时称之为“缺陷”,一般通过QC的defect模块来管理测试过程中的缺陷,defect模块的“status”字段有7个值(new、open、retest、reopen、fixed、closed、rejected),可以很全面地跟踪缺陷的整个流程。测试缺陷的管理流程如图2所示。
2 基于Web的网络应用程序性能测试
性能测试指运用自动化测试工具来模拟多种正常、峰值以及异常负载条件对系统的各项性能指标进行测试。该系统的性能测试包括系统的稳定性测试和数据库的压力测试[5]。
2.1 连接速度测试 用户对Web页面的响应时间的要求一般比较苛刻,如果Web系统响应时间太长(例如超过5 s),用户就会因没有耐心等待而离开,另外可能产生由于响应时间过长而导致的操作超时错误。此次测试对系统主页面以及新增用户操作页面分别在移动、联通、电信、内网4种网络进行连接测试,记录2个页面的连接时间。
2.2 稳定性测试 稳定性测试指一次性录入批量数据时,测试系统的稳定性,以保证Web系统在需求范围内能正常工作。稳定性级别包括某个时刻同时访问Web系统的用户数量,以及并发在线数据处理的数量,例如:Web应用系统能允许多少个用户同时在线,如果超过了这个数量系统的异常状态;Web应用系统能否处理大量用户对同一个操作的请求。该研究稳定性测试采用自动化测试的方法,对于不同的台账(农村劳动力转移培训、农业专业技术培训、农民创业培训、农民科技示范培训和技术指导员台账)用QTP软件分别录制和编写脚本,并且分别准备50条数据,然后在不同的时间段运行QTP脚本,自动向系统录入数据,测试系统的稳定性。
2.3 压力测试 压力测试主要针对数据库,使用Load Runner工具,选择对农村劳动力转移培训台账的添加功能来进行数据库的压力测试。测试时虚拟用户数为100,采用默认模式,执行时同时加载所有的用户,100个用户同时新增100条数据,此次测试Load Runner脚本如下:
#include "web_api.h"
Action()
{
web_url("login.asp","URL=http://pxgc.ahau.edu.cn/login/login.asp","Resource=0",
"RecContentType=text/html","Referer=","Snapshot=t1.inf","Mode=HTML",
EXTRARES,"Url=../ssx/images/floading.gif",ENDITEM,LAST);
web_submit_data("f_city.asp","Action=http://pxgc.ahau.edu.cn/ssx/f_city.asp",
"Method=POST","RecContentType=text/html","Referer=http://pxgc.ahau.edu.cn/login/login.asp",...
"Name=fid","Value=0",ENDITEM,"Name=fnum","Value=1",ENDITEM,...LAST);
lr_think_time( 9 );
web_submit_data("login.asp_2",...,"Name=UserName","Value=XXX",ENDITEM,
"Name=PassWord","Value=XXX",ENDITEM,...
"Url=../web/images/main_26.gif","Referer=http://pxgc.ahau.edu.cn/web/center.asp",ENDITEM...LAST);
web_link("农村劳动力转移培训台帐","Text=农村劳动力转移培训台帐",
"Snapshot=t4.inf",EXTRARES,"Url=images/tab_05.gif",ENDITEM,...,LAST);
web_link("新增","Text=新增","Snapshot=t5.inf",EXTRARES,"Url=images/tab_05.gif",ENDITEM,...LAST);
lr_think_time( 2 );
web_submit_form("PxzyNew.asp","Snapshot=t6.inf",ITEMDATA,
"Name=xm","Value={Name}",ENDITEM....EXTRARES,
"Url=images/tab_05.gif",ENDITEM,...,LAST)
return 0;
}
測试条件为同时加载100个虚拟用户,直到结束。当达到100个用户时,系统的平均反应时间为50 s。用户数与反应时间的关系见图3。整个测试周期为105 s,60 s时单位时间的业务请求数最大为145次/s,具体测试结果见图4。
图3 用户数与反应时间的关系
图4 Load Runner测试结果
2.4 安全性测试 基于Web的应用程序安全环境复杂,因此安全性测试十分重要,主要通过以下几项进行测试:
(1)测试有效和无效的用户名和密码,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。
(2)Web应用系统是否有超时的限制,用户登陆后在一定时间内(15 min)没有点击任何页面,是否需要重新登陆才能正常使用。
(3)测试加密是否正确,检查信息的完整性,测试SSL安全协议。
(4)测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
3 结论
安徽省“新型农民培训民生工程”信息管理系统整个测试流程采用UAT的方法来进行管理,使用了QC、QTP、Load Runner这3个测试工具,成功地详细测试了界面友好性、系统的基本功能(如密码修改功能)、表单的链接、报表的统计功能、系统的稳定性和数据库的承载情况等。结果证明,这套UAT的方法完全适用于基于Web的网络应用程序测试。
参考文献
[1] 曲统晨.银行应用系统用户验收测试在项目群管理模式下的研究[D].北京:首都经济贸易大学,2012:15-18.
[2] 李金凤.基于QTP的软件功能测试与案例研究[J].信息技术,2009(10):85-88,93.
[3] 温艳冬.软件性能测试需求的获取方法综述[J].软件工程师,2010(2):124-127.
[4] 朱忠保.边界值测试在软件测试中的应用[J].计算机系统应用,2001(8):42-44.
[5] 肖俊.软件压力测试及测试工具的研究与实现[D].北京:北京交通大学,2009:35-37.
关键词 Web测试;UAT;Quality Center;Quick Test Professional
中图分类号 S126 文献标识码 A 文章编号 0517-6611(2015)27-382-03
Test Research of Network Application Program Based on Web
ZHOU Lu-yang, JU Shu-cun*, XU Xiang
(Rural Comprehensive Economic Information Center of Anhui Province, Hefei, Anhui 230039)
Abstract With the development of the intelligent society, more and more Web applications are developed to satisfy human’s requirement. This research uses the UAT technology to guide and manage the whole testing flow and do the functional testing, stability testing and pressure testing research. Three testing tools are used during the whole process and they are QC,QTP,Load Runner. The final result turns out that this UAT method can manage the whole testing process for Web applications in high efficient way.
Key words Web testing; UAT; Quality Center; Quick Test Professional
隨着社会信息化、智能化的发展,为适应各种需求,各种软件系统特别是Web应用程序应运而生,随之而来的是对软件测试的增加,对软件测试的需求也随之增加。然而由于开发周期、程序员素质的影响,需求分析不足、程序存在一些Bug的情形时有发生,例如由于开发团队固有的开发思维,程序员更加关注用什么样的数据结构、调用什么样的函数等程序层面的问题,并且对于自己的开发成果往往带有较强的主观色彩,因此软件测试对于确保程序的正确性、完整性、安全性和质量有着重要意义。基于Web的系统测试相较于传统的软件测试,它不但需要检查和验证是否按照设计的要求运行,由于网络和终端Web媒体的不可预见性,一般还要测试系统在不同用户的浏览器上的兼容性,重要的是,用户Web终端环境复杂,一般还要从最终用户的角度进行安全性和可用性测试。因此,有必要为测试和评估复杂的基于Web的系统研究出新的测试方法和技术。
该研究以安徽省“新型农民培训民生工程”信息管理系统为对象,采用UAT(User Acceptance Testing用户验收测试)方法[1]体系来指导和管理整个测试流程,使用HP的Quality Center、Quick Test Professional、Load Runner等测试工具,主要针对系统的功能和性能展开测试。其中功能测试包括可用性测试(导航、图形、内容、整体界面等的测试)、链接测试、表单测试、数据统计正确性测试等[2],性能测试包含稳定性测试和数据库的压力测试[3]。
1 基于Web的应用程序功能测试
功能测试主要是为了保证系统的可用性而进行的一系列测试,包括链接测试、表单测试、数据统计正确性测试以及界面的友好性测试等,确保系统功能在不同的用户终端能够正常运行[3]。
1.1 用户需求分析 通过阅读用户手册了解用户需求,该系统的最大特点是可以实现省、市、县(区)3级管理,不同的用户有不同的权限,不同的培训机构可以对相应类型的台账进行操作。概括来说该系统的用户分为3类:
(1)系统管理员(1个)。负责省市县区的管理和培训机构的管理(可以增加、修改、查询和删除省市县区和培训机构);具有五种台帐和4种月报表的全部操作权限(增加、修改、查询和删除的操作)。
(2)省市县区管理员(137个)。具有本省、市、县区的4种月报表的统计查询权限。
(3)培训机构(1 580个)。具有本机构的台帐申报、修改、查询权限。
根据以上内容编写Traceability Matrix(简称TM),TM是测试场景的概括,它反映整个测试的逻辑,确保各种场景至少有一个测试用例。
1.2 功能测试的测试用例设计 设计测试用例时一定要遵从确认过的TM,在测试数据的准备等细节方面一般用边界值测试方法(如测试报表时,会测到0的情况)[4],准备的数据尽量涵盖系统设计的所有内容。然后在QC的test plan中设计测试用例,如图1所示。
1.3 测试用例的执行 通过QC的Test Lab来管理测试用例的执行,执行的时候有3种结果:“pass”(测试结果与预计结果一致),“not complete”(因为某种原因现在还无法判断测试结果,比如,需要等下一工作日再做一个交易),“failed”(测试结果与预计结果不一致)。 1.4 测试缺陷的管理 当测试用例执行没有通过时称之为“缺陷”,一般通过QC的defect模块来管理测试过程中的缺陷,defect模块的“status”字段有7个值(new、open、retest、reopen、fixed、closed、rejected),可以很全面地跟踪缺陷的整个流程。测试缺陷的管理流程如图2所示。
2 基于Web的网络应用程序性能测试
性能测试指运用自动化测试工具来模拟多种正常、峰值以及异常负载条件对系统的各项性能指标进行测试。该系统的性能测试包括系统的稳定性测试和数据库的压力测试[5]。
2.1 连接速度测试 用户对Web页面的响应时间的要求一般比较苛刻,如果Web系统响应时间太长(例如超过5 s),用户就会因没有耐心等待而离开,另外可能产生由于响应时间过长而导致的操作超时错误。此次测试对系统主页面以及新增用户操作页面分别在移动、联通、电信、内网4种网络进行连接测试,记录2个页面的连接时间。
2.2 稳定性测试 稳定性测试指一次性录入批量数据时,测试系统的稳定性,以保证Web系统在需求范围内能正常工作。稳定性级别包括某个时刻同时访问Web系统的用户数量,以及并发在线数据处理的数量,例如:Web应用系统能允许多少个用户同时在线,如果超过了这个数量系统的异常状态;Web应用系统能否处理大量用户对同一个操作的请求。该研究稳定性测试采用自动化测试的方法,对于不同的台账(农村劳动力转移培训、农业专业技术培训、农民创业培训、农民科技示范培训和技术指导员台账)用QTP软件分别录制和编写脚本,并且分别准备50条数据,然后在不同的时间段运行QTP脚本,自动向系统录入数据,测试系统的稳定性。
2.3 压力测试 压力测试主要针对数据库,使用Load Runner工具,选择对农村劳动力转移培训台账的添加功能来进行数据库的压力测试。测试时虚拟用户数为100,采用默认模式,执行时同时加载所有的用户,100个用户同时新增100条数据,此次测试Load Runner脚本如下:
#include "web_api.h"
Action()
{
web_url("login.asp","URL=http://pxgc.ahau.edu.cn/login/login.asp","Resource=0",
"RecContentType=text/html","Referer=","Snapshot=t1.inf","Mode=HTML",
EXTRARES,"Url=../ssx/images/floading.gif",ENDITEM,LAST);
web_submit_data("f_city.asp","Action=http://pxgc.ahau.edu.cn/ssx/f_city.asp",
"Method=POST","RecContentType=text/html","Referer=http://pxgc.ahau.edu.cn/login/login.asp",...
"Name=fid","Value=0",ENDITEM,"Name=fnum","Value=1",ENDITEM,...LAST);
lr_think_time( 9 );
web_submit_data("login.asp_2",...,"Name=UserName","Value=XXX",ENDITEM,
"Name=PassWord","Value=XXX",ENDITEM,...
"Url=../web/images/main_26.gif","Referer=http://pxgc.ahau.edu.cn/web/center.asp",ENDITEM...LAST);
web_link("农村劳动力转移培训台帐","Text=农村劳动力转移培训台帐",
"Snapshot=t4.inf",EXTRARES,"Url=images/tab_05.gif",ENDITEM,...,LAST);
web_link("新增","Text=新增","Snapshot=t5.inf",EXTRARES,"Url=images/tab_05.gif",ENDITEM,...LAST);
lr_think_time( 2 );
web_submit_form("PxzyNew.asp","Snapshot=t6.inf",ITEMDATA,
"Name=xm","Value={Name}",ENDITEM....EXTRARES,
"Url=images/tab_05.gif",ENDITEM,...,LAST)
return 0;
}
測试条件为同时加载100个虚拟用户,直到结束。当达到100个用户时,系统的平均反应时间为50 s。用户数与反应时间的关系见图3。整个测试周期为105 s,60 s时单位时间的业务请求数最大为145次/s,具体测试结果见图4。
图3 用户数与反应时间的关系
图4 Load Runner测试结果
2.4 安全性测试 基于Web的应用程序安全环境复杂,因此安全性测试十分重要,主要通过以下几项进行测试:
(1)测试有效和无效的用户名和密码,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等。
(2)Web应用系统是否有超时的限制,用户登陆后在一定时间内(15 min)没有点击任何页面,是否需要重新登陆才能正常使用。
(3)测试加密是否正确,检查信息的完整性,测试SSL安全协议。
(4)测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
3 结论
安徽省“新型农民培训民生工程”信息管理系统整个测试流程采用UAT的方法来进行管理,使用了QC、QTP、Load Runner这3个测试工具,成功地详细测试了界面友好性、系统的基本功能(如密码修改功能)、表单的链接、报表的统计功能、系统的稳定性和数据库的承载情况等。结果证明,这套UAT的方法完全适用于基于Web的网络应用程序测试。
参考文献
[1] 曲统晨.银行应用系统用户验收测试在项目群管理模式下的研究[D].北京:首都经济贸易大学,2012:15-18.
[2] 李金凤.基于QTP的软件功能测试与案例研究[J].信息技术,2009(10):85-88,93.
[3] 温艳冬.软件性能测试需求的获取方法综述[J].软件工程师,2010(2):124-127.
[4] 朱忠保.边界值测试在软件测试中的应用[J].计算机系统应用,2001(8):42-44.
[5] 肖俊.软件压力测试及测试工具的研究与实现[D].北京:北京交通大学,2009:35-37.