测试架构师必须具备的第三个能力:全面,多样化的产品经验

发表于:2009-10-26 14:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:架构师Jack    来源:51Testing软件测试博客

  看完了这些,你会理解一个架构师首先应具备的基本要求是广博的知识面和全面的经验,然后才是在几个领域具有很深的能力。那么测试架构师是否也应该像软件架构师一样具有:网络,硬件,软件等知识?

  “为什么你能在这么快的时间就掌握一个新产品的测试核心,并在多个产品形态各异的项目中同时工作,给大家正确的测试指导,识别出测试方案中的不足,提出自己特有的测试观点?”“因为这些产品形态各异的产品类型我都做过测试,过去几年不同形态产品的测试经历,数百个Bug的发现经验,已让我不但对测试的目的有了透彻的体会,同时对产品实现的技术也有了融会贯通的理解。所以,现在基本上公司所在行业的产品技术,即使从未直接深入了解过,但也能在1-2周内就能快速的了解其技术核心,指出测试的重点。”

  以上是一个测试工程师与我的一次对话。回答一位网友的问题,一个测试架构师怎么能够带领一个产品线的测试发展方向,担任起不同产品测试人员的技术培养工作。因为一个产品线有着多个产品,需要对业务了解学习很多,才能做好设计评审,需求评审工作,如何才能在最短的时间内就深入了解业务呢?我的答案是:这个测试架构师需要已在IT行业内做过多种形态的产品测试工作,才能具备快速学习了解相似产品的能力。

  以我接触过的IT行业内的产品技术为依据,总体可以把主流IT技术归结为:基于Vxworks的实时嵌入式系统;各类分布式系统:移动无线系统(基站与控制器),分布式文件系统;基于linux平台和Windows平台的系统;B/S系统;C/S系统;管理单台设备或管理多台异构设备的网管;从电信物理层协议V35,E1,SDH到链路层协议 PPP,Ethernet, FrameRelay, ATM到网络层IP,路由协议,MPLS,应用层TCP/UDP, Http,VPN;开发语言:VC, C, Java, Perl, Tcl, PHP;数据库:MySQL,Oracle;网络设备:路由器,以太交换机,网络层防火墙,应用层防火墙,IPS/UTM; IT设备:服务器,SAN/NAS存储设备;安全相关的技术概念:基于服务或端口的拒绝访问攻击,跨站攻击,远程缓冲区溢出攻击,bypass攻击等;硬件知识:背板总线,CPU,内存,PCB,FPGA等。常见通用实现技术:分布式系统的控制流与业务流分开处理,Qos,访问控制列表,配置文件,内存泄露,消息队列,野指针,多线程,多进程,同步/异步,认证管理等。或许还有一些,暂时就记录这么多吧。当一个测试架构师都有以上技术的运用经验后,我想在准备大多数产品或系统的测试时,是能够快速完成业务知识的学习。

  一个测试架构师在有了“全面,多样化的产品经验”后,应该就具备了数据业务流端到端的理解能力。如果是一个硬件嵌入式设备,他能够从PC一个Ping命令开始从脑海中画出如何从ICMP到协议栈到驱动到串口哪个引脚是传数据,传控制信号,然后到硬件嵌入式设备从硬件电信号,通过接口卡进入背板总线,背板总线再经过FPGA封装成链路层协议报文,然后链路层协议进行交换,路由到另一台网络设备上,最后从串口卡TX引脚传一个电信号到另一台PC。如果是一个纯软件系统,他能够从客户端数据经过SSL VPN传输到应用服务器,应用服务器到数据库完成查询后,数据如何与存储设备发生交互确认,最后通过文件系统NAS存储到存储系统中。

  一个测试架构师还应该有主要测试活动的经验,例如:如何识别需求的缺陷,如何识别架构设计的缺陷,如何开展代码级测试,如何识别一个功能测试用例的质量,如何识别一个性能测试方案的质量,一个压力测试方案的质量,安全性测试如何开展,什么是硬件可靠性测试,软件系统的可靠性应该关注哪些,可测试性的目标是什么,可服务性包含哪些内容,如何判定一个系统具有可扩展性或可集成性,是否一个系统具有可移植性,是否一个系统有安全性的设计考虑。对于大规模部署的系统,应该能够进行性能瓶颈的分析定位,识别出可靠性的依赖关系,性能之间的依赖关系,能提出系统的安全性架构解决方案。

  从我接触到的一些50多岁的专家身上,我理解到了什么是真正的专家:不是只有一个点或几个点的深入经验,而是经过多年实战后,把一个系统领域的知识点都深入掌握后,具备了集成这些知识点的全面能力。

  可见任何领域的专家,无论软件架构师还是一些老专家都是在自己所在领域具备了全面,多样化的经验后才具备了成为该领域专家的量变积累。就像建筑行业的优秀架构师,应该是阅历了多种风格的建筑,从自己效率不高的实践中积累了经验后,才具备了成为能全面掌控整个系统的架构师。所以,测试架构师也应该需要具备“全面,多样化的产品经验”。

  那对于大多数在中小公司的测试工程师如何才能完成“全面,多样化的产品经验”的积累。我的建议是:在自己公司中尽量参与所有产品的测试,丰富自己的实战经验。实在无法在公司获得提升机会时,可以考虑到更大平台的公司去历练自己,扩展自己的眼界。空余时间可以在51testing多看看大家的blog,或是访问www.testingexperience.com,订阅免费的测试杂志,了解世界上当前测试的主流趋势。其实测试技术不仅仅只是自动化测试或压力测试。

  请关注:测试架构师必备能力第四篇 “参与产品架构工作的能力”

版权声明:本文出自架构师Jack的51Testing软件测试博客:http://www.51testing.com/?293557

原创作品,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明,否则将追究法律责任。

相关阅读:

测试架构师必须具备的第二个能力:“区分测试重点和测试难点”

测试架构师必须具备的第一个能力:“准确的商业理解力”

22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号