当前位置: 魅力文档网 > 作文大全 >

WEB网管软件自动化测试系统

| 来源:网友投稿

摘 要 随着计算机软件行业的高速发展,对软件版本推出的时间要求越来越高。随之而来的问题是,如此繁重的测试任务单纯地依靠手工测试显的越来越不可行,自动化测试的需求变的越来越迫切。本文首先介绍了自动化测试的背景,国内外研究现状,然后描述了Web自动测试相关的工具及语言,接着讲述了该自动化测试系统的关键技术,最后讲解了软件的架构及主要模块。该自动化系统可以解决实际过程中的问题,并能够替代手工测试工作量,具有比较好的应用前景。

关键词 自动化测试;数据驱动;测试工具;软件测试

中图分类号TP39 文献标识码A 文章编号 1674-6708(2014)119-0211-03

0引言

计算机软件产业飞速发展,软件测试的地位被不断的被重视与强化。但随着对版本推出时间要求越来越高,软件开发的速度也被大大提高,这就给软件测试带来了很大的挑战。如何在进度要求时间短的前提下,使测试不会变成整个项目进度的短板,靠大量增加人工资源的方法当然不可行,并且成本巨大。常规的解决方法是减少测试用例,牺牲测试覆盖率来缩短测试进度,但这样就使得软件在质量上产生了很大的风险。

Web网管软件自动化测试就是在这一大背景下产生的,它是在不降低测试覆盖率的前提下,保障网管软件项目进度的最佳途径。在网管软件手工的回归测试中,由于时间的关系,需要筛选掉某些测试用例,而通过自动化,却可以有效的解决这一问题,如通过多台自动化机器的运行,有效缩短测试周期,并提高测试内容的覆盖率。此外,自动化的优势是可以应用于各种重复性的测试工作,这样就可以把执行这部分重复测试的资源节省下来,投入到异常,性能,方案测试等其他测试领域,从而提高了测试质量。

1国内外研究现状

自动化的重要性不言而喻,但从国内外测试大环境来看,实施测试自动化的公司并不多,而能真正的持续将自动化应用于测试项目的成功案例更少之又少。典型的情况主要有以下几种:

1)不具备自动化测试开发能力;

2)维护工作量太大,无法实际应用自动化。轰轰烈烈的开展测试自动化,推行了自动化的测试流程,购买并引入了自动化测试软件,但一段时间后因维护工作量大,自动化工具成了摆投;

3)无配套的自动化流程规范。公司实施了自动化测试,难而测试与测试之间,测试与项目经理之间冲突不断,这样就造成项目团队各成员抱怨极大,自动化测试慢慢被废止了。

以上是业内对软件自动化存在的几个主要问题,而WEB网管软件自动化测试更是自动化领域的难点,它是基于WEB GUI的自动化,主要是模拟Web软件用户的操作,自动化的对WEB的各种GUI组件进行操作,对于页面UI的依赖性很大。由于Web网管软件产品对于界面的变化是很普遍的,因此如果仅仅考虑自动化的代码实现,而忽略它的可维护性,自动化维护带来的工作量将无法承受,这就是Web网管软件自动化测试在业界很难开展的最主要原因。

2Web网管软件自动化测试技术

2.1自动化测试系统分类

目前的自动化测试系统按照实施方式一般被分为三种不同的类型:基于录制回放的自动化测试系统、基于数据驱动的自动化测试系统、基于关键字驱动的自动化测试系统。

2.2自动化测试工具及脚本语言

自动化测试工具是实施软件自动化测试的基础,自动化测试工具的类型很丰富,包括测试管理,性能测试,单元测试,功能测试工具等。因此,如何选择适合测试项目实际情况的测试工具,对于成功实现自动化测试至关重要。

目前常用的自动化功能测试工具有如下几种:

1)Rational Robot。Rational Robot是业界非常卓越的功能测试工具,是被大量应用的自动化测试工具,可以很快速的使手工测试团队实施自动化测试,是Rational的产品之一,提供了软件测试的功能;2)QTP。HP QuickTest Professional主要被广泛应用于功能测试,QTP比较易用,很容易上手,可以方便地执行重复的测试,因此做为商用软件,使用率最广;3)Watir。Watir实际上是一个Ruby函数库,它可以支持使用多种版本的浏览器进行Web应用软件的自动化测试;4)Selinum。Selenium是另一个在Web应用软件自动化测试中被大量使用的工具,它的工作过程类似真正的用户在测试一样,是直接执行于浏览器之中。它的一个优点是支持多种浏览器。

本系统选择开源的Selenium自动化测试工具,主要的考虑为:商用软件入门门槛相对来说比较低,表现在它们较为强大的WEB GUI自动识别及WEB GUI检查点的核对,点对点的技术支持及较为齐全的学习资料,有比较广泛的使用基础。但其价格不菲,并且出现问题还需要厂家的支持,解决效率上比较低。虽然开源工具需要自己一步步的勾画自动化的实施蓝图,不过其功能在现阶段已经非常强大。如Selenium可基于FireFox的录制及对象识别,IEDevToolBar的基于DOM,XPath的Web UI对象查找能力,可以很好的展示基于IE的被测WEB界面的框架及对象,这些已经可以减少WEB自动化开发的一大部分工作量。

脚本语言只有被调用时会进行编译或脚本解释,一般都比较简单、易学、易操作,能够让程序员快速完成程序的编写。解释器使脚本语言能够被实时生成并被运行,从而使的在处理各种软件系统时十分灵巧。常见的脚本语言有JavaScript,Ruby,TCL,Perl,Python。Web网管软件自动化测试对于脚本语言没有特殊的要求,主要视选用的自动化工具支持的脚本语言来选定。

2.3 Web网管自动化测试关键技术

2.3.1自动化中止后的容错机制

因为Web网管自动化系统涉及服务器,设备及客户的操作,在运行过程中经常会出现非预知的情况,常见的是出现意外的弹出窗口,如操作系统弹出补丁更新通知,杀毒软件弹出病毒警告消息等,这些都很可能使的自动化程序失焦,无法控制操作界面,从而导致出现自动化程序无法继续执行的现象。碰到这些异常事件,就需要人工干预解决,如果没有及时发现,而当测试人员再去处理时就会大大增加了自动化执行的时间,而随着对自动化测试时间的要求越来越高,自动化这种被中止后的容错机制就成为一项非常关键的技术需要进行设计。

2.3.2脚本与数据的分离

脚本与数据分离,即数据驱动核心思路与做法主要是要解决自动化维护工作量。通过参数化,循环的从数据表中读取界面元素及测试数据,做到数据与脚本分离,是实现数据驱动自动化的关键,可以有效降低自动化的维护工作量[35]。

2.3.3智能化的测试数据获取

在WEB网管系统功能中,传统的功能一般都拥有添,删,改,查的通用功能。而每个功能均需要有测试数据,数据就会比较庞大,同时查询的数据需要事先判断该数据是否已经被添加,是否已经被删除,以避免测试结果的误判,这样就会造成各个功能间数据存在依赖。因此需要考虑智能化的测试数据获取,减少功能间的数据依赖,减少不必要的测试数据。

2.3.4预定义预期结果

Web网管自动化脚本需要智能的判断测试数据相应的预期结果,大大增加脚本设计的复杂度。另外软件测试数据预期结果发生变更,就需要对脚本的逻辑判断做修正,也增加了维护量。因此要考虑对预期结果进行预定义来解决这些问题。

2.3.5模块间的前/后处理

在Web网管自动化测试执行过程中,会存在以下两个问题:

1)自动化执行出故障后需要对现场进行快速恢复。因Web网管测试不仅涉及服务器,还涉及到网络设备及客户端,环境比较复杂。碰到故障需要测试回溯时,如果当出错点离运行开始时间较长的时候,时间消耗就相对比较多。因此需要有机制能够快速的回归到自动化的环境状态(测试数据,软件运行状态);2)因测试周期问题,出于测试的需要,要临时对个别模块单独测试,即需要支持单个模块自动化运行,但由于软件模块间存在着数据的依赖,无形中增加了运行时间,做了部分无用功。因此需要减少模块间的数据依赖性,满足单独运行一个模块的要求。模块间的前/后处理正是因为以上两个问题需要引入。

2.4软件架构

依据自动化关键技术分析,及对自动化设计总体需求,自动化测试系统的模型如下图所示:

1)GUI属性库:GUI属性库文件,脚本中使用该该库进行GUI读取。做到基于数据驱动的自动化;

2)测试数据池:专门有一个测试数据文件,脚本中使用该该库进行数据读取,这样脚本可以进行参数化,通过读取测试数据池中的测试数据,使测试数据与脚本分离。对于测试数据,要做到智能化的测试数据获取,目的是减少测试数据的维护工作量。对于数据的修改,删除不另外使用测试数据,而是动态从界面上查询并获取,再根据获取到的测试数据进行修改与删除,从而对修改删除功能进行验证。

自动化测试系统的模型图

3)方法库:将代码的通用部分,放在该模块,提高代码的重用性,有效降低开发工作量。

4)预期结果:该模块存放测试数据库相对应的预期结果表,使的测试数据期望结果独立于脚本,降低开发工作量。

5)测试日志:用于输出自动化测试执行日志,日志必须格式化,使的对于自动化结果可以快速定位原因,并且能够快速的回归。包括自动化对应的测试用例点;测试数据;自动化脚本。

6)检查器:设置检查点判断功能点的自动化结果。

7)控制中心:根据测试用例的操作流进行自动化的操作控制。

8)测试报告模块:输出总体的测试点结果

根据模型,自动化测试系统将分为如下几个模块:

1)GUI_Data 模块:用于存放所有的GUI属性,及测试数据,与脚本分离,做到基于數据的驱动。

2)TestCase模块:存放测试用例对应的测试脚本,被控制模块调用,从GUI_Data模块获取界面操作元素及测试数据,并将测试结果传给log模块。

3)系统初始化模块:自动化执行前的初始化工作,主要是读入全局参数,要执行的测试用例等。系统初始化模块要读入的数据也要从GUI_Data读入,该模块完成后进入控制模块。

4)监控模块:系统初如化模块将会启动监控模块,主要目的是通过log模块来判断自动化系统是否正常运行,如果没有正常运行,将启动冗错措施。监控模块主要步骤是:建立权值与预处理措施对应表;监听自动化程序是否实际在运行;根据权值取出容错处理方法,并进行容错处理;如果监听到自动化程序实际没有运行,则立即取出权值与预处理措施对应表定义的处理方法来解决。

5)控制模块:从GUI_Data依次读入用例,并调用TestCase模块执行,完成所有用例执行后,调用log模块输出总体测试报告

6)log模块:负责单播昵称计算、分发树计算以及昵称冲突检查等。

7)Function模块:Function模块主要的用途是提高代码的复用,减少开发工作量。对应于自动化框架模型控制中心的方法库实体,用于存放各个方法库。

以上各个模块之间的关系图如下图所示:

3结论

web网管手工测试的自动化测试系统,首先,除了要能实现最基本的模拟人工进行自动化操作外,也需要能符合当今业界公认的成功做法,比如要能实现基于数据驱动的自动化,在系统设计上尽可能降低脚本开发工作量,减少脚本维护工作量。其次,为了能真正替代人工自动化的目标,还需要解决业内提到的自动化测试过程中碰到的各种问题,因此在自动化系统中运用了一些关键技术,主要有自动化中止后的容错处理,智能化的测试数据获取,预定预期结果,模块间的前、后处理。这样不但使该系统的技术水平达成较高的水平,也能够真正有效的应用于测试工作中。

自动化测试系统模块关系图

参考文献

[1]文毅,高扬.软件测试技术发展概况.测绘科学与工程,2008,14(3):8-11.

[2]缪俞蓉,程向红.软件测试与软件设计方法分析.计算机工程与科学,2008(4):83-84.

[3]黄筱.一种新型自动化测试管理平台的实现.现借电子技术,2010,33(9):1-3.

[4]Bo Song, Shengbo Chen.Testing Web Applications with Web Frameset and Browser Interactions. Information Technology Journal,2011,10(7):22-24.


推荐访问:网管 自动化 测试 系统 软件

热门排行

共青团员自我评价大全范文【5篇】

共青团员自我评价大全范文五篇  共青团员自我评价大全1  自从递交入团申请书,成为一名团员以来,一直

龙江先锋网答题题库及参考答案 龙江先锋网答题题库及参考答案

下面是小编为大家精心整理的龙江先锋网答题题库及参考答案龙江先锋网答题题库及参考答案文章,供大家阅读参考。龙江先锋

2023年度作文别样的我600字作文6篇(范例推荐)

作文别样的我600字作文6篇记录好作文是提升个人能力最高效的方式,通过写作文我们可以将在生活中得到的感受进行记录,以下是小编精心为您推荐的作文别样的我600...

描写家乡的物作文精选6篇(精选文档)

描写家乡的物作文精选6篇描写家乡的物作文篇1我的家乡在山东,那里盛产苹果。我爱家乡的苹果。苹果树春天长叶,秋天结果。它的叶子是卵形的。花型较小,朵朵小花...

生命姿态作文800字,生命姿态作文发言稿(四篇)

范文为教学中作为模范的文章,也常常用来指写作的模板。常常用于文秘写作的参考,也可以作为演讲材料编写前的参考。写范文的时候需要注意什么呢?有哪些格式需要...

2023年度盐城市中考语文作文,江苏省盐城市中考作文(3篇)(完整)

每个人都曾试图在平淡的学习、工作和生活中写一篇文章。写作是培养人的观察、联想、想象、思维和记忆的重要手段。大家想知道怎么样才能写一篇比较优质的范文吗?...

高三学生自我陈述报告500字(2020) 高三生自我陈述报告500字

下面是小编为大家精心整理的高三学生自我陈述报告500字(2020)高三生自我陈述报告500字文章,供大家阅读参

2023年度三年级作文小猴子过生日续写过生日(完整)

在学习、工作或生活中,相信大家都尝试过写作文吧。作文是人们把记忆中所存储的有关知识、经验和思想用书面形式表达出来的记叙方式。写起作文来就毫无头绪?以下...

对比分析阿奇霉素序贯疗法、常规治疗社区获得性肺炎的实际价值

打开文本图片集【摘要】目的:评价阿奇霉素序贯疗法和常规治疗在社区获得性肺炎治疗中的实际价值。方法:将