不断发展中的电信自动化测试

上一篇 / 下一篇  2011-06-09 17:36:00 / 个人分类:自动化测试—电信

 

序言做电信的自动化测试已经有一段时间了,算算,从接手到整体完成了流程的落定,虽说已经初步完成了一个阶段,但是我知道真正的挑战才刚开始,

一直一直在探索着到底什么才是自动化测试?

一直一直在思考到底自动化测试如何才能做成规模?

一直一直想把自己的经验分享大家,想大家能够少走弯路,能够真正将自动化测试落到实处,可是奈何自己水平有限,也是在不断学习,生怕去误导大家。

但是,请大家相信,自动化测试要做的话,是能够做得成功的,不关工具,不关技术,只关思想。

个人以为,思绪有多远,就能走多远,但最关键还是一定需谨思慎言。

 

一、        电信自动化测试简介

 

电信自动化测试,与单纯的软件测试项目不同,其测试涉及到产品的软件和硬件两个方面。系统测试在整个测试阶段占了很大的比重,因此自动化测试应用也主要应用在系统测试阶段。

电信产品的控制,主要包括网管控制与命令行控制,即大家熟悉的UICLI,而API则是视公司而定,有的公司为了方面测试,而专门给出了API,这方面测试,个人觉得在软件测试中要常见一些。

电信产品的产品架构为:硬件产品—软件嵌入式平台—具体功能软件实现(包括MIB与命令行)—网管软件(,包括C/SB/S架构,有些电信设备商没有网管)。

而,系统测试主要是功能测试与性能方面的测试,即,主要控制CLI或者网管UI进行测试,电信自动化测试则主要是模拟CLI或者UI测试,而由于UI测试的界面变动性与维护性比较大,因此,主要还是采用脚本控制CLI的方式进行自动化测试。

另外,在进行性能测试时,需要涉及到分析仪器以及测试仪器,而很大部分这些仪器可以应用脚本进行控制的。例如,现在IXIA可以应用Tcl进行控制,而思博伦现在也可以应用各种脚本技术控制其仪器;安捷伦的一些分析仪器,也可以应用脚本通过LAN或者GPIB的形式控制,因此,大大方便了自动化测试的推广与应用。

 

二、        电信自动化测试要求技能

 

做一个电信自动化测试项目,其主要会用到两种技能,一是脚本编写技能;二是业务技能。

1脚本主要有rubytclpython等,

Tcl由于其易用性与易学性以及在对字符判断和处理上的强大优势而在一段很长的时期被奉为电信自动化测试项目中的主要应用脚本。其在80年代开始就在Motorola使用,后来被思科采纳,并在自动化测试领域得到了广泛的应用。但缺点在于:tcl在设计之初是不支持面向对象,虽然后来出现了iTCL来弥补不足,但是常见的基于tcl的测试脚本开发还不是基于面向对象的。对脚本的可维护性和可复用性带来了一些挑战。

Phython此脚本语言发展速度很快,因为其作为一种脚本语言而言,其相对支持库的代码水平较高,对于软件开发的各个方面的第三方库(如图像处理,网络通信,Web技术等)都有非常好的支持。Python本质上就是面向对象的脚本语言。在国外的很多公司开始应用其作为自动化测试的主要脚本语言。

Ruby其是一种完全面向对象的脚本语言,Ruby语言也受到了大型IT公司的测试团队的关注。在自动化测试领域得到了越来越广泛的应用。有一些大型公司正在由其他的脚本语言向Ruby转换,华为等一些大型电信设备商也开始应用Ruby作为脚本开发语言。

 

2业务技能涉及则广,不同的产品线要求的技能不一。TCP/IPSDH协议、ETH协议,以及近期火热的OTNPTN等。其实个人认为,既然选择了做自动化测试,则不是去专研协议技术了,虽然要懂,但也是从整体的方面去分析。

 

以上两者只是基础,真正要将自动化测试做成一种规模,那还需要别的很多方面的技能,做好电信自动化测试项目,至少还要从以下几个方面考虑:

1)   测试脚本的可重用性和可维护性

2)   测试脚本的可易用性与管理

3)   测试脚本的开发流程

……

所以说,根据这上面几点,则要求自动化测试人员拥有软件工程方面思想,而不是一些脚本编写技巧就能打发的;还需要对版本管理和配置管理熟悉;需要对测试流程与软件开发流程熟悉,最重要的要学会如何去将两者结合起来,协调好关系等。

所以说,一个好的自动化测试人员是很需要不断学习的。

 

三、        电信自动化测试发展

 

据我了解,自动化测试发展经历了一些阶段

1手工辅助阶段:刚刚兴起自动化测试,系统测试人员借助脚本技术进行手工辅助的工具,并没有形成一定的规模。

2应用阶段:一些大型的电信公司开始将自动化测试应用到测试阶段中,即统一应用脚本进行产品的系统测试。

3发展阶段:自动化测试开始得到重视和发展,各种框架和技术开始滋生,CVC与脚本技术的结合与应用。

4流程阶段;自动化测试开始有了自己的流程、并且与公司的开发与测试流程相结合,更好的促进产生的快速发布。

 

四、        电信自动化测试框架设计

 

关于电信自动化测试框架,其主要是从以下方面考虑

1) 项目脚本的可重用性,由于产品线的丰富,不同的产品一些功能是可以重用的,而如何保证开发的脚本能够在不同的产品上进行重用。

2) 项目脚本的可维护性,由于一些命令行参数的更改、功能的更改等原因,造成了脚本项目的变化性,因此需要增强项目脚本的可维护性。

3) 项目脚本的可开发性,需要建立一系列的库,方面脚本项目的开发。

4) 项目脚本的可易用性,自动化测试项目要得到推广,则需要更多的测试人员的参与,而如果在可易用性上不够的话,则会降低测试人员对自动化测试的积极性。

5) 项目结果的易分析性,脚本运行完毕后

 

因此,基于以上考虑,可以搭建一个简单的电信自动化测试框架如下:

l 脚本方法库:则是脚本编写的一系列的方法,即将一些常用的方法封装起来,方便调用。

l 功能点测试执行层:与自动化测试用例的具体执行功能步骤相关。

l 测试设备设置层:此层对应测试中的测试设备的具体设置,其主要关注测试设备的业务配置。

l 测试执行设置层:此层对应测试执行时需要的设置,其主要关注执行方式的设置。

l 界面管理层:此层对应平台的界面控制层,其主要应用于对应用界面对全局参数进行设置、对测试项目进行操作以及查看测试结果等,可以用VCswing或者脚本技术实现。

 

五、        电信自动化测试流程分析

 

说到流程,这才是做自动化测试最难以及最关键的部分。

为什么要制定一个流程,如果不将其自动化测试从流程上把握的话,那么其永远无法成为一种规模。

个人想法:其自动化流程是指明一个大的方向,将阶段和相关角色指明出来,而其中涉及到一些具体的细节,则可以以策略的形式表现出来。

个人想法:电信自动化测试可分为两个分支:

1) 手工辅助过程;其主要是为了辅助测试人员更加快捷的进行测试执行,是伴随着手工测试用例的。

2) 例行测试过程;其主要是有固定的环境和固定的平台,应用于回归测试,是为了保障产品质量,加速产品发布周期的,其有相应的自动化测试用例伴随,但其自动化测试用例也是来源于手工测试用例的。

个人想法:电信自动化例行测试流程可分为:

自动化需求分析设计—自动化测试用例设计—自动化测试脚本开发—自动化测试执行阶段。

涉及角色则可分为:

系统测试角色,主要负责自动化需求收集与用例撰写等。

测试开发角色,主要负责自动化测试脚本开发等。

测试架构角色,主要负责自动化测试项目管理与平台架构管理。

测试执行角色,主要负责例行测试执行与结果反馈。

 

在此,只简单的说明一下,具体的执行流程就不说了,不知道大家在电信自动化测试流程执行方面,有没有好的经验,可以拿出来分享一下。

 

六、        电信自动化测试总体分析

1、 大型的电信设备公司,从很早就开始投入自动化测试,例如思科、JuniperH3C、华为、中兴、华赛、Topsec等公司,他们的自动化测试已经形成了一定的规模,他们大都数的底层控制是用C语言,然后提供接口由脚本进行控制,而且采用了多线程的模式,在稳定上做的很好,而且在不同开发模式上的自动测试的探索和应用也比较超前,例如,从开始RUP方式到后续的持续集成方面自动化测试的应用等,总之,在这些大型电信设备厂商,自动化测试的比重越来越大,应用也越来越广。

2、 中小型的厂商,由于其开发能力的问题和产品线需求较少的原因,主要还是应用脚本的开发,因为其开发周期快,投入周期可以较短,收效可以较为快速一点,能满足很大一部分需求。因此,其所应用的主要是基于脚本技术的框架设计,伴随着库思想、分层思想等,然后在流程上进行规范和统一。

    总而言之,个人想法,不同的公司,对待自动化测试,需要采取的策略不同,

1大型的公司以长期投入为主,其根据相应开发模式和产品战略,将自动化测试打造成实验室平台级别。

2中小型公司以步步跟进为主,要将自动化测试做成规模的话,则需要一点一滴的思考的积累。做自动化测试,太快,容易迷失脚本,太慢,又不能形成规模,因此需要以需求为导向来求发展。

 

电信自动化测试的不断发展,让我们对自动化测试的期待更进了一层,希望电信自动化测试走的更远

                                                     —散步的SUN

更多测试技能在线学习,更多测试文章,请访问http://www.zhibokeji.com/


TAG:

桔梗1212 引用 删除 桔梗1212   /   2013-11-18 15:37:54
学习了
桔梗1212 引用 删除 桔梗1212   /   2013-11-18 15:34:57
3
萧落JUNE的个人空间 引用 删除 萧落JUNE   /   2013-11-18 14:22:01
5
小马菜菜的个人空间 引用 删除 dreamever   /   2012-12-03 22:48:19
又见老孙神笔,无条件5分,写的很好
小马菜菜的个人空间 引用 删除 dreamever   /   2012-12-03 22:48:12
5
seven_1987的个人空间 引用 删除 seven_1987   /   2012-12-03 14:21:06
5
散步的SUN的个人空间 引用 删除 散步的SUN   /   2012-11-13 13:55:44
嗯,电信领域确实有蛮多在用perl的,不过我基本没接触
原帖由ilovemyyang于2012-11-11 14:44:12发表
电信测试用的比较多的开发语言还有perl,这个用的也非常多
引用 删除 ilovemyyang   /   2012-11-11 14:44:12
电信测试用的比较多的开发语言还有perl,这个用的也非常多
引用 删除 ilovemyyang   /   2012-11-11 14:42:47
5
zuojingqin的个人空间 引用 删除 zuojingqin   /   2011-08-22 14:33:44
写的还真不错能,让偶对电信行业的测试有了很大的了解
散步的SUN的个人空间 引用 删除 散步的SUN   /   2011-08-17 18:04:29
呵呵,不是高手,学习者而已,但感觉要进入电信行业,重点的是协议,与自动化倒没太大关系,除非以自动化入此行,一起摸索吧
原帖由sophie_wang于2011-08-17 16:37:21发表
终于有高手指路了。一直以进入电信行业为目标,但也只是处于摸索阶段。看了这篇文章后,才感觉有了点方向.
sophie_wang 引用 删除 sophie_wang   /   2011-08-17 16:37:21
终于有高手指路了。一直以进入电信行业为目标,但也只是处于摸索阶段。看了这篇文章后,才感觉有了点方向感。
最近在学习python,希望以后能在电信行业发展。
谢谢SUN的分享,期待更多精彩文章。
yytz的个人空间 引用 删除 yytz   /   2011-08-14 18:14:43
5
散步的SUN的个人空间 引用 删除 散步的SUN   /   2011-06-13 09:24:40
刚开始玩的话,装个TCL可以暂时满足需求
不一定说一定得用TCL,VBS或者RUBY等都可以,刚开始,当然先从基本的脚本入手,但是一开始就得定位好了
1)有建立自己库的想法
2)能够根据产品线的需求将自动化用例进行分有条理的分层
3)等到需求一定之后,思考如何去拓展框架与平台
4)建立流程
个人觉得这么开始吧,具体还得看产品,有问题再讨论吧
原帖由vioub于2011-06-12 20:56:20发表
说了这么多,如果我一个小公司正要玩电信自动化测试,怎么入手?装个TCL就完了了?
引用 删除 vioub   /   2011-06-12 20:56:20
说了这么多,如果我一个小公司正要玩电信自动化测试,怎么入手?装个TCL就完了了?
散步的SUN的个人空间 引用 删除 散步的SUN   /   2011-06-10 18:30:10
原帖由lyscser于2011-06-09 21:24:56发表
行行都行啊,孙老湿

您老又埋汰我了...
行行都行不就是行行都不精吗...我得改
xin_晴的个人空间 引用 删除 xin_晴   /   2011-06-10 11:28:13
您好,我是51Testing软件测试网的编辑,您的本篇博文被推荐至51Testing软件测试网首页头条发表:http://www.51testing.com/html/08/n-238708.html
感谢您关注并支持51Testing博客,期待您更多的优秀原创博文。
@槽神刘叫兽 引用 删除 lyscser   /   2011-06-09 21:24:59
5
@槽神刘叫兽 引用 删除 lyscser   /   2011-06-09 21:24:56
行行都行啊,孙老湿
 

评分:0

我来说两句

Open Toolbar