世界快报:测试自动化是什么意思?测试工具和测试自动化是什么关系?


(资料图片仅供参考)

提起测试工具和测试自动化大家在熟悉不过了,被越来越多的人所熟知,那你知道测试工具和测试自动化吗?快和小编一起去了解一下吧!

人类的进化史和发展史,就是一个不断创造和使用工具的历史。工具是人类想象力的物理呈现,也是社会进步的巨大助力。对于测试而言,工具同样不可或缺,甚至于如果想判断某个厂商的测试水平是处于“蛮荒时代”还是已经进化到了“现代社会”,观察其使用的测试工具就能知道个大概。事实上,很多测试项目,尤其是性能和稳定性测试项目,必须借助测试工具才能完成;验证业务的大规模部署能力,没有工具的支撑更是不可想象。举个简单例子,对一个可以同时接入4000个PPPoE的设备进行测试,如果没有测试工具,就只能搭建一个4000个客户端的环境,这在实践中几乎不可实施,更何况类似测试项目会很多,而且每个版本都需要重复测试。一、测试工具伴随着网络技术的爆发式发展,种类繁多的测试工具也被开发出来,根据其主要功能,大致可以分为下面几类*(*注:现在的测试工具都比较复杂,不一定能完全严格分类,比如Chariot和Avalanche都能提供强大的流量产生功能,又是很好的业务模拟工具)。流量发生工具:主要用于生成大规模网络流量,测试设备的转发平面功能。这类工具有的是直接安装在主机上的软件,如Chariot;也有的是专用硬件,比如Spirent和IXIA等专业厂商提供的测试仪器;协议仿真工具:主要对信令协议进行仿真,测试设备的控制平面功能。比如路由协议仿真,MPLS相关协议仿真,认证接入协议仿真等测试工具;业务模拟工具:主要是对应用层协议和客户业务进行模拟,测试设备的应用和业务承载能力。一般的L4-L7的测试仪器和工具都提供了强大的业务模拟能力,比如Avalanche,BPS等测试仪器和Chariot软件;攻击类工具:包括黑客工具、Fuzzing和Vulnerability类测试工具,测试设备的安全性和攻击防范能力。典型的有Mu Dynamics、Codenomicon、BIFFIT、SAINT、NESSUS、nMAP以及SYN flood等DDOS工具;平台类工具:一般提供的是一个二次开发平台,有完善的集成开发环境,支持多种适合用于测试的高级计算机语言(如Perl、TCL、Python等),可进行复杂的二次开发,集成了为适应测试而封装和抽象的Lib库,甚至提供一些已经经过实践检验的自动化测试套件,并且可以通过外部接口调用其它测试仪器和工具。类似微软的Visual Studio开发环境,只不过它是为开发服务,前者是为测试服务。平台类工具投入巨大,主要为了满足厂商建设自己独特的测试能力体系的需要,一般由厂商自行开发与维护。H3C构建了这类平台,称为通用测试平台(VTP,Versatile Test Platform)。一般来说,对于成熟的协议或应用测试,都有优秀的商业测试仪器和测试工具,可以满足80%以上的测试需求。但对于最新的协议和应用,或者特定客户的非标准定制需求,就要求厂商具备一定的测试工具自主开发能力。以H3C为例,在802.1x协议刚开始在国内应用时,在大量用户同时接入设备的条件下,设备会较大概率出现软件崩溃。于是,测试团队自行开发出一个模拟大量802.1x用户接入的工具,最终很快就发现并解决了问题,而具备类似功能的商业802.1x测试工具,大约时隔两年后才在市场上出现。H3C对于测试仪器和测试工具在优化测试效率、提高测试水平、提升产品质量方面的重要性深有体会。在这方面的投入很大。一方面,大量采购了业界先进的商业测试仪器和工具,如Spirent、IXIA、BPS和Veriwave等公司的测试仪器和测试软件。另一方面,通过专门的测试平台团队也独立开发了众多的测试工具和软件,为商业测试软件覆盖不到的测试需求提供支持,确保H3C能以最快的速度推出最新特性。该团队开发的测试工具目前已经形成系列并成为测试工程师的重要助力,如多客户端模拟系列工具,路由协议系列测试工具,一致性系列测试工具,综合业务模拟系列工具等。该团队开发的通用测试平台则构建了一个公司级的自动化测试框架,提供了完善的GUI,CLI自动化测试解决方案,为H3C的全系列产品测试提供服务。二、测试自动化测试工具和测试自动化,两者是一对孪生兄弟。测试工具的目的就是为了代替部分繁琐的手工测试操作,或完成手工测试不可能完成的测试活动,实现一定程度的测试自动化。测试自动化的发展进化和测试工具的进步密不可分,随着测试工具的进步和完善,很大一部分测试工作已经可以做到无人值守,实现完全意义上的自动化。回顾自动化测试技术的发展历史,大致可以分为三代。