自动化软件测试框架的分析及应用

来源 :科技信息·学术版 | 被引量 : 0次 | 上传用户:ming968
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:软件测试工作在软件开发的整个过程中有着很重要的位置。为了克服手工测试的一些困难,提高软件质量和测试效率,测试过程的自动化被广泛地引入进来。其自动化程度高、实用性强等特点,引起了人们的广泛重视,成为软件测试的发展方向。自动化测试框架产品的出现表明软件测试自动化技术正在趋于成熟。同时,以B/S架构为基础的Web应用成为软件开发行业的主流,Web应用前端样式的多样性和复杂度也给各公司带来不小的前端测试麻烦,因此,如何根据产品的特点进行自动化测试,已成为各测试团队重点需要关注的问题。本文分析了手工测试与自动化测试的优缺点,介绍了几个比较常见的自动化测试工具,通過对比发现Selenium是功能最全面,使用最广泛的前端自动化测试工具之一,它能够用程序控制浏览器,从而实现前端自动化测试。
  关键词:自动化测试;Selenium;前端测试
  一、研究背景
  随着IT市场竞争不断加剧,如何提升软件质量、缩短软件迭代开发周期,对软件测试方法和工具提出了更高要求。软件测试就是在规定的条件下对程序进行操作,最大化的发现程序的错误,并对其是否能满足设计要求进行评估的过程。软件测试对于保证软件产品的质量至关重要,而通过搭建良好的测试框架来实现自动化测试,可以降低各测试模块之间的耦合,提高测试的效率和覆盖率,同时也大大降低了测试的成本,更好的保证软件质量。软件测试分传统的手工测试和自动化测试,传统手工测试存在周期较长、效率较低、回归测试覆盖度不高等问题,而自动化测试为解决这些问题提供了可行性途径,因而受到了业界重视。目前业界已经出现众多自动化测试工具和框架,如何借助现有工具框架,构建一套适合于自身实际需求的自动化测试框架,是当前迫切需要解决的重要问题。
  二、自动化测试相关技术
  本章主要介绍了软件测试、自动化测试的相关理论知识和一些自动化测试工具,并且比较了手工测试、自动化测试及自动化测试工具的优缺点。
  2.1软件测试
  软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程[1]。
  软件测试从是否关心软件的内部结构和具体实现的角度可划分为:白盒测试、黑盒测试和灰盒测试;从是否执行程序的角度可划分为:静态测试和动态测试;从基于测试的不同阶段可划分为:单元测试、集成测试、系统测试和验收测试;从软件的侧重性可划分为性能测试、功能测试、兼容测试、压力测试、回归测试和负载测试;从是否借用工具可划分为:手工测试和自动化测试;从按测试实施组织可划分为:α测试、β测试和第三方测试[2]。
  2.2自动化测试
  自动化测试是把以人为驱动的测试行为转化为机器执行的过程。通常,在设计了测试用例并通过之后,由测试人员根据测试用例中描述的规程一步步执行测试,可以得到实际结果与期望结果的比较结果。在此过程中,为了节省人力、时间或硬件资源,提高了测试效率,便引入了自动化测试的概念。自动化测试的概念有广义与狭义之分:广义上来讲,所有借助工具来辅助进行软件测试的方式都可以称为自动化测试;狭义上来讲,主要指基于UI层的功能自动化测试[2]。
  2.3自动化测试与手工测试
  现在很多人都会认为手工测试没有技术含量并且没有前途,觉得只有自动化测试才能体现出测试人员的技术水平。其实无论是手工测试还是自动化测试都是软件质量保障的一个途径,至于使用哪一种测试方法不仅仅要看测试人员的能力,还要看项目规模,客户需求以及公司能力等因素。
  自动化测试的优点包括1. 对程序的回归测试更加方便。2. 可以运行更多更繁琐的测试。3. 可以执行一些手工测试困难或不可能进行的测试。4. 更好地利用资源。5. 测试具有一致性和可重复性。6. 测试的复用性。7. 增加软件信任度。
  自动化测试的缺点包括1. 不能取代手工测试。2. 手工测试比自动测试发现的缺陷更多。3. 对测试质量的依赖性极大。4. 测试自动化不能提高有效性。5. 测试自动化可能会制约软件开发。6. 工具本身并无想像力。
  手工测试也存在着一些缺陷,手工测试者最常做的工作就是重复的手工回归测试,不但耗费时间,而且容易出错。自动化测试可以减少但不能消除这种工作的工作量。尽管测试就是要花费更长的时间找到错误,但比不意味着因此而要付出更高的代价。所以选择正确的测试方法是尤为重要的,自动化测试完成不了的,手工测试可以弥补。手工测试无法做到的,自动化测试却可以,两者有效的结合是测试质量保证的关键。
  2.4自动化测试框架
  框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面,而后者是从目的方面给出的定义[3]。从框架的定义可以了解,框架可以是被重用的基础平台;框架也可以是组织架构类的东西。其实后者更为贴切,因为框和架本来就是组织和归类所用的。
  所以自动化测试框架的定义为:由一个或多个自动化测试基础模块、自动化测试管理模块、自动化测试统计模块等组成的工具集合[3]。
  目前市面上的自动化测试的工具有很多,下面是几个比较常见的自动化测试工具。
  1. QTP
  QTP(Quick Test Professional)是一种自动化测试工具。使用QTP的目的是想用它来执行重复的自动化测试,主要是用于回归测试和测试同一软件的新版本。因此你在测试前要考虑好如何对应用程序进行测试,例如要测试哪些功能、操作步骤、输入数据和期望的输出数据等。
  2. UFT
  UFT(Unified Functional Testing)由QTP(Quick Test Professional)与ST(Service Test)合并而来,由HP公司开发。它是一个企业级自动化测试工具,提供了强大易用的录制回放功能,同时兼容对象识别模式与图像识别模式两种识别方式,支持B/S与C/S两种架构的软件测试,是目前主流的自动化测试工具[4]。   3. Robot Framework
  Robot Framework是一款基于Python语言编写的自动化测试框架,具备良好的可扩展性,支持关键词驱动,可以同时测试多种类型的客户端或接口,可以进行分布式测试[4]。
  4. LoadRunner
  LoadRunner是一種预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。
  5. Selenium
  Selenium是一系列基于Web的自动化测试工具,支持多平台、多浏览器、多语言去实现自动化测试。它提供了一系列测试函数,用于支持Web自动化测试。这些函数非常灵活,它们能够通过多种方式定位界面元素,并可以将预期结果与系统实际表现进行比较[5]。
  经过对比和分析,可以发现Selenium是功能最全面,使用最广泛的前端自动化测试工具之一,它能够用程序控制浏览器,从而实现前端自动化测试。Selenium2.0版本包含着Selenium IDE和Selenium RC以及WebDriver。Selenium IDE是通过监听用户对html页面的操作来录制脚本的,是真正能够监听用户对html页面的操作的录制工具。Selenium RC模式,是客户端利用各种编程语言,通过网络向Selenium Server发送指令,Selenium Server接收到测试指令后,启动浏览器并向其发出JavaScript调用实现对Html页面的全面追踪,并通过网络把执行结果返回给调用者。WebDriver针对各个浏览器而开发,取代了嵌入到Web应用中的JavaScript。与浏览器的紧密集成支持创建更高级的测试,避免了JavaScript安全模型导致的限制。
  三、总结与展望
  软件测试是软件工程整个生命周期中非常重要的过程之一,随着互联网和计算机技术的发展,软件测试工作的难度逐渐增大。本文首先引入了软件测试和自动化测试的概念,分析了手工测试与自动化测试的优缺点,介绍了几个比较常见的自动化测试工具。
  在自动化脚本中仍存在着许多需要改进的地方,比如脚本的优化、数据驱动的实现、测试用例的自动生成,这都是接下来仍需要继续完善的地方,并将在后续的研究过程中逐步解决,使自动化脚本能够更加完善。相信今后随着Web自动化测试技术的不断发展,会有大量自动化测试框架的涌现,自动化测试必将走向成熟化、标准化。
  参考文献
  [1]虫师.Selenium2自动化测试实战:基于Python语言[M].北京:电子工业出版社,2016.2-20.
  [2]佟伟光.软件测试[M].北京:人民邮电出版社,2015.2-50.
  [3]赵卓.Selenium自动化测试指南[M].北京:人民邮电出版社,2013.2-24.
  [4]江慰.基于Selenium的软件测试自动化管理系统的设计与实现[D].上海:上海师范大学,2016.
  [5]但凝云.基于Selenium的自动化测试框架的设计与实现[D].昆明:云南师范大学,2016.
其他文献
摘要:几何画板是现代信息技术与课程整合的一项杰出创作。应用几何画板可以提高几何教学的直观性和准确性,弥补了传统教学方式在直观感、立体感和动态感等方面的不足,让学生更深刻体会到几何“动”的一面。从而达到改进部分章节的教学方法和教学手段的目的,更好地提高课堂效率的作用。  关键词:几何画板初中几何实践经验  新课改下的初中几何的教学正在发生革命性的变化。过去的几何教学一直过分强调演绎推理,却忽视了几何
期刊
摘要:科学技术的不断进步,信息化潮流席卷全球,各行各业逐步采用自动化办公技术,电子化的办公资料具有方便、快捷的特性,且利用电子化手段能够储存多种格式的办公资料。基于此,使用者对文件的各项需求也有所改变,传统的资料归档及管理存在不足之处,这在很大程度上影响了资料的完整性。  关键词:国企;电子档案;归档  引言  电子档案是当前进行档案管理的主要形式,是利用计算机设备进行储存的方式,与纸质档案相对应
期刊
摘要:本文采用2016-2020年环境统计数据,对西充县工业企业污染物排放情况进行分析,找出当前工业污染防治存在的主要问题,并提出相应的防治对策。  关键词:水污染物 大气污染物 防治 对策  1引言  党的十八大以来,生态文明建设取得显著成效,当前已进入“十四五”时期,生态环境保护既面临难得的历史机遇,也面临更加突出的挑战[1]。要打好污染防治攻坚战,就需要对当前生态环境状况“底数清,情况明”。
期刊
摘要:本文介绍了冷轧工艺连续生产线中带钢跟踪的主要方法,以及焊缝跟踪的基本原理和作用,结合连续式生产线的生产设备特性,阐述了冷轧带钢在连续式生产线中焊缝检测的多种方法及原理。分析了焊缝跟踪检测信号故障的常见原因,并总结了当前主流校正解决焊缝跟踪检测信号故障的解决方法和相关经验。  关键词:焊缝跟踪;检测方法;信号故障;跟踪校正  Abstract: This article introduces
期刊
摘要:RNA 是除DNA外的存储遗传信息的主要载体。随着分子生物学技术的发展,提取高纯度和完整性的RNA是微生物分子生物学研究的必要前提。RNA提取的本质就是破碎细胞壁,释放细胞内部的RNA,利用不同试剂去除多糖、脂类、蛋白以及DNA 等杂质,最终获得高纯度、高质量的RNA。本实验选择总RNA提取试剂盒和改良Trizol法对大肠杆菌(Escherichia coli)和枯草芽孢杆菌(Bacillu
期刊
摘要:随着老龄人口比重加大与社会经济水平的提升,老年人旅游消费市场日益扩大,邮轮旅行更是成为很多老年人选择出行休闲游的一种方式,面对庞大的老年旅客群体,针对其行为特征而设计的邮轮内舾装居住舱室显得愈发重要。本文基于老年旅客行为特征,从卧室空间、起居空间、卫浴空间、色彩分析四个方面分析了老年旅客邮轮内舾装居住舱室的设计要点,旨在进一步改善老年人在邮轮舱室中的居住环境,推动老年旅客邮轮游市场的蓬勃发展
期刊
摘要:施工单位在工程造价管理过程中常常面对许多问题,审核过程中更是面临许多矛盾与问题,若不能正确解决不利于施工单位的未来发展,本文针对施工单位在工程造价预算中的常见问题进行有效分析,并找到合适的解决策略。  关键词:工作造价;审核问题;造价管理  引言  在具体施工过程中,因造价预算产生的预结算问题非常常见,审核工作也非常重要,要积极促进工程建筑成本预算管理的有效进行,提升工程数据的有效性,促进施
期刊
摘要:5G技术以云网络架构为支撑点开展有效的服务,企业信息化建设以网络结构为中心,结合5G技术创造新型信息系统,将两者技术方面的优势相互融合,实现信息系统的开放性和标准性。5G系统在网络方面的优势能影响企业的后续发展,因此,了解5G关键技术,应从多方面分析5G网络技术的特点,以此为企业信息化系统的建设提供理论基础,并以此分析5G技术对企业信息化建设带来的影响和挑战。  关键词:5G技术;企业信息化
期刊
摘要:现阶段我国已然迈入信息技术时代,以互联网及云计算等信息技术为基础的现代通讯网络日益完善,这也使得我们的工作、学习及日常生活变得更为便捷,指明了各行各业在未来一段时间内的发展方向,但在迎来重大发展机遇的同时也面临更多挑战。现代通信网络技术已然成为了大数据时代的核心技术之一,其应用范围逐渐扩展,其安全性也得到明显提升,为此本文从现代通讯网络技术概述入手并阐述其重要意义,进而对现代通讯网络技术的创
期刊
摘要:在新时代下,思想宣传工作是企业与员工交流的纽带,是推广企业品牌的桥梁,同时也是树立企业形象的重要载体。近年来,随着市场经济现代化、信息化的不断发展,企业思想宣传工作的重要性愈加凸显。而伴着微博、微信等图文新媒体全面普及,加之抖音、快手等短视频媒体用户的快速增长,互联网已成为思想文化信息的“中央枢纽”和社会舆论的放大器,对社会公众的影响日愈深远,对企业原有的新闻宣传方式和传播模式产生了巨大的冲
期刊