高志娥,武桂芬
(吕梁学院 计算机科学与技术系,山西 离石 033001)
·计算机科学研究·
无线搜索网页自动化测试的研究
高志娥,武桂芬
(吕梁学院 计算机科学与技术系,山西 离石 033001)
随着软件测试技术的发展,软件质量的好坏直接影响到智能手机的整体性能.与传统的测试技术相比,将自动化测试技术应用到WAP手机版的无线搜索网页中,提高了测试的准确性和测试效率,降低了人为出错的风险,为软件开发人员提供了一组测试用例的模板,简化了程序编写流程,对提高手机软件的可靠性具有重要的意义.
无线搜索;自动化测试;软件测试;网页
近年来,网络的飞速发展,尤其是移动通信技术3G、4G普及,使智能手机的增长速度越来越快[1].官方数据显示,目前国内智能手机持有量已经达5.3亿,占比50.9%.而无线搜索引擎作为互联网的第一个入口,访问无线搜索网页的用户群体也呈指数式增长.无线搜索以快速、实时、便捷等优势,得到了用户的追捧,同时用户对无限搜索网页提出了更高的要求,为了给用户呈现一个完美的网页,对无线搜索网页进行的测试技术成为研究人员关注的热点[2,3].
传统的手工测试,对一些基础性的功能进行了很多重复性的回归测试,测试周期长,工作量大,成本高,并且由于人为因素等原因导致测试的规范性差,无法满足和保证测试的准确性[4,7].为了解决这些问题,引入自动化测试技术,提高了回归测试的执行效率,节省了许多时间,使人工可以集中精力去测试逻辑比较复杂的测试点.
1.1 无线搜索网页
搜索主要依靠搜索引擎来实现所需信息的抓取与收集.搜索引擎根据用户输入的关键字进行信息的抓取,通过算法和排序对抓取到的信息进行意图筛选,把最终过滤后的优质结果呈现给用户.简单而言,搜索引擎就是一个可以快速、精准获取海量信息的网站[4].
搜索引擎网站一般分为PC电脑版和WAP手机版.随着移动互联网的迅猛发展,WAP版本的搜索网页也成了搜索引擎的主要流量入口[5].与PC搜索网页相比,无线搜索网页在屏幕尺寸、分辨率、传输速度较滞后,但它的便捷性、随时搜索性、单一用户性等优势,给人们日常工作带来的高效率已经远远覆盖超过了PC搜索网页.
1.2 软件测试
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程[4,6].通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较[6].软件测试是软件系统工程中一个很重要的组成部分,是软件开发的重要环节和保证软件质量的关键步骤,其目的是以最少的时间和人力来找出软件中存在的错误和缺陷,软件自动化测试是当前软件行业的研究热点之一,目前各大IT和互联网公司十分重视测试技术的研究[8].
2.1 需求分析
在本次测试过程中主要是有两个需求,一个是无线搜索网页的特色首页需求,另一个是英文垂直搜索网页的首页以及结果页的需求.
(1)无线搜索特色首页的需求分析
无线搜索网页的特色首页主要是对原有首页进行背景的替换和特色的设计.在一些重大的节日(比如春节、元宵节等)二十四个节气、特殊的纪念日(比如地球一小时、世界地球日等)和历史人物的纪念日当天,不能影响网页原有功能,同时跳转到特色logo的搜索结果页.
(2)英文垂直搜索页的需求分析
在目前的搜索网页中大部分是中文的搜索结果.随着信息的全球化,越来越多的用户提出英文搜索的需求,因此增加一个专门的英文垂直搜索页显得尤为重要.本文从普通的网页搜索结果页导流到英文垂直搜索页,表现为搜索一些含英文搜索意图的词汇,或者是一些英文名词、句子等,会提示用户点击英文搜索.在英文垂直搜索页下保持和网页搜索结果页一样的用户使用习惯和页面布局,另外,还设有一些辅助查询的相关搜索和翻译工具.
2.2 方案设计
测试方案的设计依据V模型.V模型分为以下几个步骤:需求分析、系统设计、概要设计、详细设计、软件编码、单元测试、集成测试、系统测试、验收测试,如图1所示:
图1 V模型
结合V模型,本次无线搜索将测试过程分为以下四个阶段:
单元测试:在单元测试中,主要测试特色首页的logo跳转是否正确、特色首页的背景是否展现正常,垂搜首页的搜索功能和结果页的展示是否符合预期.
集成测试:在集成测试中,主要测试前后端各个模块能否与预期一样提供服务.比如后端的翻译模块、后端的搜索模块、后端的广告模块能否正常工作.
系统测试:在系统测试中,主要验证各个模块提供的服务是否符合产品的需求.比如翻译的效果是否符合产品的预期.
验收测试:在验收测试中,主要是站在用户的角度来验证程序是否符合预期.比如英文垂直搜索页的英文搜索结果是否是用户所想要获取的英文信息.
2.3 测试用例设计
本次测试设计过程中使用了等价类划分、边界值分析、数据覆盖法.等价类划分主要是区分有效等价类和无效等价类,有效等价类是对于无线英文垂直搜索,是有意义的数据的集合;无效等价类则是无意义的数据集合,用来检验网页是否有对应的容错处理或是出错提示.边界值分析主要是对搜索框中输入的内容长度进行校验.数据覆盖法对所有的测试点都至少有一条测试用例,以保证测试覆盖到所有的需求,生成较完整的测试用例表.
有了好的测试方案,软件测试过程已经有了50%的成功.如何将测试方案真正的落实到测试过程中,是实现测试的关键.
3.1 环境搭建
(1) python环境搭建
Python是一种功能强大而完善的通用性脚本语言,下载安装Python,安装完成后需要添加Python安装路径到系统PATH环境变量中.
(2)selenium环境搭建
在完成Python环境的搭建后,运行Python命令Python setup.py install,安装setuptools工具和包管理工具pip.
3.2 自动化测试脚本
(1)主要公共调用函数
自动化环境搭建好以后就可以尝试写出第一个测试脚本了.脚本如下,用来检测环境是否搭建成功.
#!-*- coding:utf-8 -*-
from selenium import webdriver
driver=webdriver.Firefox()
#浏览器最大化
driver.maximize_window()
driver.get('http://www.baidu.com′)
#百度搜索输入框输入
selenium2driver.find_element_by_id(′kw′).send_keys(′selenium2′)
#点击百度一下按钮
driver.find_element_by_id(′su′).click()
#结束测试driver.close()
在自动化脚本的编写中,会遇到许多重复的操作以及重复的函数调用.为了使程序代码看起来更美观,在脚本开始定义了一些公共调用的函数,在后面的测试脚本编写中可以直接调用.函数如下:
#返回所查找元素进行单击操作
def item_click(self,item):
def init(self):
#返回所查找对象的文本信息
def item_text(self,item):
#返回所查找对象是否存在
def item_is_displayed(self,item):
#记录程序运行的日志
def log(a):
(2) 查找元素的方法
在selenium中主要提供了八种定位元素的方法,即通过id、name、class、xpath、tag、link、partial link、css等进行定位,在本次自动化测试的脚本编写中,主要是通过id、class name、xpath、link text等方法进行元素的定位[8].
在selenium中,定位元素是基础操作,只有将元素定位后,才能针对元素进行进一步的操作,比如单击、获取对象的文本信息、返回对象是否存在等.当查找元素较难时,就要考虑是否使用相对查找方法,即借助已经能找到的一个对象去查找另一个未知对象的方法.
(3)设置程序等待时间
由于selenium中查找元素是需要等待网页加载完毕后才能进行查找的,但是有的时候网页加载的比较慢,或者网速不好的时候,或者由于操作失误让程序找不到需要查找的元素.这时候有必要设置一个让程序等待的时间,之后再尝试去查找元素.
自动化测试脚本开发完成后,需要部署到一台固定的机子上.在每次需要执行的时候发出运行指令自动运行即可,等待运行完毕后会自动生成一个测试报告的HTML文件.可以打开文件查看对应的执行情况.
3.3 测试执行
3.3.1 正确性测试
在无线搜索特色首页的测试中,由于特色首页是需要到特定的日期才生效的,所以需要在linux中修改系统的时间到生效的日期,这样特色首页才会展现.在测试过程中,首先需要验证logo的跳转落地页是否是本次主题查询词的搜索结果页;其次验证首页上的其他功能是否实现;然后根据测试方案,对首页进行测试.一旦发现缺陷,需要及时修改后,重新验证该页面上所有的功能.
无线英文搜索页的测试,首先要进行普通查询词的验证,看是否能正常得到需要的英文搜索结果页.其次再验证一些特殊符号、外语等进行查询后的结果页内容展示.
3.3.2 兼容性测试
由于市场上不同品牌、不同大小屏幕尺寸分辨率、不同的智能操作系统等,都会对无线搜索网页的展现效果有所影响,有的甚至影响到了基础功能的使用,所以在正确性验证完毕后,需要寻找几款有代表性的手机执行兼容性测试.
本次测试,主要选取IOS和Android操作系统的手机各两款,其中一个手机的屏幕比较大,分辨率比较高,另一个手机的屏幕比较小,分辨率比较低.所有手机同时进行无线搜索网页的测试,可以对比发现所存在的问题.
3.3.3 稳定性测试
在稳定性测试过程中,需要根据目前线上的QPS预估一个值,用来当作此次稳定性测试的QPS值,一般是线上的两到三倍.使用压力工具对被测试的程序发起压力,同时再稳定性监控平台上检测虚拟机的CPU、内存、虚拟内存、连接数、QPS、响应时间等指标.一般压力持续30 min即可,压力停止后,对得出的数据图表进行分析,看是否符合上线的标准.如图2、3、4、5所示.
图2 Resin服务器的CPU曲线图图3 Resin服务器的内存曲线图
图4 Resin服务器的QPS曲线图图5 Resin服务器COSTTIME曲线图
3.4 测试报告
自动化测试脚本完成了对无线搜索首页80%功能的覆盖.自动化测试的报告如图6、图7所示.
图6 Resin服务器的QPS曲线图图7 结果页自动化测试报告
本文提出了一种针对智能手机无线搜索网页进行测试的方案,结合搭建python和selenium平台,通过运行测试脚本,对无线搜索特色首页和英文垂直搜索页进行了自动化测试.测试表明:该测试方案具有很好的侦测能力,提高了测试的效率,降低了人为测试引起的误差,同时测试覆盖率也得以提高.
[1]郑婷婷.Android应用的多设备自动化测试实现[J].软件导刊,2016(2).
[2]陆永忠.GUI自动化测试用例生成策略的研究[J].系统工程与电子技术,2009(1).
[3]刘春梅.智能电视操作系统组件层自动化测试的实现[J].网络新媒体技术,2016(5).
[4]赵雅丽.GUI自动化测试在会计信息系统测试中的探究[J].自动化与仪器仪表,2016(4).
[5]朱焕亮.基于自动化测试框架的用例研究与实现[J].制造业自动化,2016(6).
[6]张新华,何永前.软件测试方法概述[J].科技视界,2012(4).
[7]宋洁.软件测试技术及自动测试工具的实现[D].北京:北京邮电大学,2014.
[8]正光.软件测试自动化工具的研究与开发[D].大连:大连海事大学,2014.
Research of Automated Testing Towards Wireless Search Page
GAO Zhi-e,WU Gui-fen
(Department of Computer Science and Technology,Lüliang University,Lishi Shanxi 033001,China)
With the development of software testing technology,the quality of the software has a direct impact on the overall performance of smart phones.In this paper,the application of automated testing technology to the WAP mobile version of the wireless search page,improves the test accuracy and test efficiency,reduces the risk of human error,provides a set of test case templates for software developers to simplify the programming process,has an important significance to improve the reliability of mobile phone software.
wireless search;automated testing software testing;software testing;page
2017-01-26
吕梁学院教学改革项目(JYYB201603).
高志娥(1984-),女,山西临县人,助教,研究方向为算法设计与分析. 武桂芬(1983-),女,山西文水人,副教授,研究方向为计算机应用.
TP311.53
A
2095-185X(2017)02-0032-05