王云
(南京理工大学泰州科技学院 计算机科学与技术专业,江苏 泰州 225300)
随着信息化的发展,软件的应用范围已从最初的科学计算逐步渗透入社会生活各个方面,而人们对软件需求日益增长的同时,对软件的质量要求也越来越高。同时软件开发中,在需求、设计、编码阶段都有可能产生错误,软件缺陷不可避免[1]。软件测试技术由此应运而生。软件测试就是为了发现程序中的错误而分析或执行程序的过程,是提高软件产品质量和可靠性的关键。现国内外的软件公司都十分重视软件测试,开发大型复杂的系统,软件测试必不可少,特别是当前WEB应用的兴起,测试Web网站的功能及性能显得尤为重要。
本次测试的网站为在线书城系统,现简要介绍该网站前台设计部分主要功能。从系统总体来看,在线书城网站主要分成两大模块:前台会员购书模块和后台管理员管理模块。前台针对用户使用设计,用于检索和查看图书信息以及完成用户购书操作,后台从书城管理员角度设计,用于添加图书、管理员及用户管理等。在线书城系统前台功能结构图如图1所示。
图1 网站前台功能结构图Fig.1 Website front office functions chart
所谓测试用例即测试执行的最小实体,为特定的目标而设计的一组测试输入、执行条件和预期的结果,测试用例就是一个文档,描述输入、动作、时间或者一个期望的结果,其目的就是确定应用程序能否正常的工作并达到程序所设计的执行结果[2]。
黑盒测试又称为数据驱动测试。在测试时,把被测程序视为一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下进行。黑盒测试相对与白盒测试较为简单,一般只需从程序的输入与输出入手即可。
软件自动化测试是相对手工测试而存在的,主要是通过所开发的软件测试工具、脚本等来实现,具有良好的可操作性、可重复性和高效率等特点。由手工逐个地运行测试用例的操作过程被测试工具自动执行的过程所代替[3]。
功能测试就是对软件系统各功能进行验证,根据功能测试用例,检查软件系统是否达到用户要求的功能。功能测试的目的是保证软件的功能符合软件需求,是各种测试的基础和起点[4]。功能测试用例设计一般采用黑盒测试用例设计技术如等价类划分法、边界值分析法、因果图法等设计测试用例。
本系统功能测试的主要内容有:
1)系统数据库连接与访问是否正确;
2)系统页面之间切换是否正确;
3)系统在各操作系统下运行是否正确;
4)网站各功能模块是否达到预期功能。
等价类划分是一种典型的黑盒测试方法。等价类划分法是把所有可能的输入数据,即程序的输入域划分为若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。等价类可分为两种情况:有效等价类和无效等价类[5]。
下面以“用户登录”功能为例,设计测试用例。功能描述:用户输入正确的会员编号和口令后,可以正常登录网站,进行图书查询及购买操作。系统设计要求用户编号由4位数字字符组成,口令由5个字符组成。用户登录等价类如表1所示,用户登录等价分类法测试用例如表2所示。
表1 用户登录等价类Tab.1 User logs on the equivalence
表2 用户登录等价分类法测试用例Tab.2 User logs on equivalence classification test case
应用等价类划分法进行测试用例设计时,应结合在线书城网站实际的数据处理要求及各种业务处理情况,充分选取覆盖所有有效等价类和所有无效等价类的测试数据用于网站的实际测试。
对被测软件进行系统级别的测试,针对软件的功能需求进行功能测试,验证此软件是否实现了需求分析中所定义的功能,是否正确实现了功能[6]。现以图书查询模块为例,设计测试用例用于测试网站所有图书列表页面的正确性,同时所有的页面都按照需求有正确的显示。测试用例设计如表3所示。
表3 图书列表测试用例Tab.3 Book list of test cases
需要说明的是测试时应设定测试完成的标准。测试完成的标准是执行完所有系统测试的功能、性能测试用例,无2级以上遗留问题。如果进行系统测试时,存在严重的质量问题,导致无法继续,并且在可接受的时间范围内无法修复,系统测试终止。
性能测试是指利用自动化测试软件模拟多种正常、峰值、异常条件来对系统施压,从而验证系统的各项性能指标是否能够达到用户所要求的标准,进而找出系统瓶颈,优化系统性能。性能测试包括负载测试和压力测试两个方面[7]。
本次测试内容是测试20个购书者同时访问系统客户端时,系统的性能情况。采用Mercury的LoadRunner 7.51测试工具进行压力测试,验证是否满足系统的需求。
测试时首先录制客户端的基本操作,然后设置参数以保证20个脚本的输入是不完全一致的。通过设置执行情景来实施性能测试,打开监控窗口监控系统运行状况,最后得到系统吞吐率的执行结果如图2所示。
图2 网站访问吞吐率Fig.2 Website access throughput
从上图可以看出,同样由于在每次提交数据时设定了集合点,吞吐率大都集中在每次填写完表单、提交数据的时候。而前4个页面由于需要下载图片,因此吞吐率也相对较大。
Web网站测试的要点包括多条,本次测试主要探析了Web系统的核心测试部分,即网站的功能与性能测试,由于篇幅所限,不可能一一列举所有测试要点及测试方案,文中介绍的测试用例设计对网站的测试技术方案有一定的指导意义。
[1]章文婷,徐中伟,喻刚.面向安全苛求软件的测试用例自动生成[J].计算机应用研究,2009,26(1):172-174.ZHANG Wen-ting,XU Zhong-wei,YU Gang.Autom ated test data generation for safety criticalsoftware[J].Application Research of Computers,2009,26(1):172-174.
[2]杨萍,李杰.利用LoadRunner实现Web负载测试的自动化[J].计算机技术与发展,2007,17(1):242-244.YANG Ping,LI Jie.Using load runner to test Web’s load automatically[J].Computer Technology and Development,2007,17(1):242-244.
[3]侯艳芳,楚书来.探析软件测试之集成测试[J].计算机光盘软件与应用,2012,6(3):78-79.HOU Yan-fang,CHU Shu-lai.Analysis of integration testing of software testing[J].Computer CD Software and Applications,2012,6(3):78-79.
[4]李冰.基于LoadRunner软件的CRM系统性能测试 [J].计算机与数字工程,2012,4(4):73-76.LI Bing.Performance testing of CRM system based on load runner[J].Computer&Digital Engineering,2012,4(4):73-76.
[5]田鹏,周宗锡.基于开发测试流程的软件测试用例设计[J].微处理机,2008,12(4):93-95.TIAN Peng,ZHOU Zong-xi.TestCase design based on develop ing and testing process[J].Microproce Ssors,2008,12 (4):93-95.
[6]孟祥丰.软件性能测试解析与优化 [J].电子设计工程,2011,19(19):26-28.MENG Xiang-feng.Analysis and optimization of software performance test[J].Electronic Design Engineering,2011,19(19):26-28.
[7]张志敏,周四望.针对软件系统功能的自动化测试工具设计[J].计算机系统应用,2010,19(6):123-125.ZHANG Zhi-min,ZHOU Si-wang.Design of an automatic testing tool for software system functions[J].Computer Systems&Applications,2010,19(6):123-125.
[8]王森,李志忠,徐晓晴.大型接地装置的性能测试与综合评价[J].陕西电力,2012(1):28-32.WANG Sen,LI Zhi-zhong,XU Xiao-qing.Performance testing and comprehensive evaluation on large grounding connection[J].Shaanxi Electric Power,2012(1):28-32.