序言:做电信的自动化测试已经有一段时间了,算算,从接手到整体完成了流程的落定,虽说已经初步完成了一个阶段,但是我知道真正的挑战才刚开始,
一直一直在探索着到底什么才是自动化测试?
一直一直在思考到底自动化测试如何才能做成规模?
一直一直想把自己的经验分享大家,想大家能够少走弯路,能够真正将自动化测试落到实处,可是奈何自己水平有限,也是在不断学习,生怕去误导大家。
但是,请大家相信,自动化测试要做的话,是能够做得成功的,不关工具,不关技术,只关思想。
个人以为,思绪有多远,就能走多远,但最关键还是一定需谨思慎言。
一、电信自动化测试简介
电信自动化测试,与单纯的软件测试项目不同,其测试涉及到产品的软件和硬件两个方面。系统测试在整个测试阶段占了很大的比重,因此自动化测试应用也主要应用在系统测试阶段。
电信产品的控制,主要包括网管控制与命令行控制,即大家熟悉的UI与CLI,而API则是视公司而定,有的公司为了方面测试,而专门给出了API,这方面测试,个人觉得在软件测试中要常见一些。
电信产品的产品架构为:硬件产品—软件嵌入式平台—具体功能软件实现(包括MIB与命令行)—网管软件(,包括C/S与B/S架构,有些电信设备商没有网管)。
而,系统测试主要是功能测试与性能方面的测试,即,主要控制CLI或者网管UI进行测试,电信自动化测试则主要是模拟CLI或者UI测试,而由于UI测试的界面变动性与维护性比较大,因此,主要还是采用脚本控制CLI的方式进行自动化测试。
另外,在进行性能测试时,需要涉及到分析仪器以及测试仪器,而很大部分这些仪器可以应用脚本进行控制的。例如,现在IXIA可以应用Tcl进行控制,而思博伦现在也可以应用各种脚本技术控制其仪器;安捷伦的一些分析仪器,也可以应用脚本通过LAN或者GPIB的形式控制,因此,大大方便了自动化测试的推广与应用。
二、电信自动化测试要求技能
做一个电信自动化测试项目,其主要会用到两种技能,一是脚本编写技能;二是业务技能。
1)脚本主要有ruby、tcl、python等,
Tcl:由于其易用性与易学性以及在对字符判断和处理上的强大优势而在一段很长的时期被奉为电信自动化测试项目中的主要应用脚本。其在80年代开始就在Motorola使用,后来被思科采纳,并在自动化测试领域得到了广泛的应用。但缺点在于:tcl在设计之初是不支持面向对象,虽然后来出现了iTCL来弥补不足,但是常见的基于tcl的测试脚本开发还不是基于面向对象的。对脚本的可维护性和可复用性带来了一些挑战。
Phython:此脚本语言发展速度很快,因为其作为一种脚本语言而言,其相对支持库的代码水平较高,对于软件开发的各个方面的第三方库(如图像处理,网络通信,Web技术等)都有非常好的支持。Python本质上就是面向对象的脚本语言。在国外的很多公司开始应用其作为自动化测试的主要脚本语言。
Ruby:其是一种完全面向对象的脚本语言,Ruby语言也受到了大型IT公司的测试团队的关注。在自动化测试领域得到了越来越广泛的应用。有一些大型公司正在由其他的脚本语言向Ruby转换,华为等一些大型电信设备商也开始应用Ruby作为脚本开发语言。
2)业务技能涉及则广,不同的产品线要求的技能不一。TCP/IP、SDH协议、ETH协议,以及近期火热的OTN、PTN等。其实个人认为,既然选择了做自动化测试,则不是去专研协议技术了,虽然要懂,但也是从整体的方面去分析。