联系我:新浪微博@架构师Jack 或 dongjietest#163.com联系.(#换为@)

测试架构师必备能力第三篇—全面,多样化的产品经验

上一篇 / 下一篇  2009-10-21 00:28:15 / 个人分类:测试架构师的必备能力

如果你已看过《测试架构师必备能力第三篇——前言:软件架构师的特点》,你会理解一个架构师首先应具备的基本要求是广博的知识面和全面的经验,然后才是在几个领域具有很深的能力。那么测试架构师是否也应该像软件架构师一样具有:网络,硬件,软件等知识?51Testing软件测试网8S_k1Le'h^Y

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

o8l4if RP5Y0

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

5Xn(nH ^/W3rS,i0

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

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

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

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

$Mg%e b#RB}1w0

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

8kcke0P1z-Y0

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

kxG"K.| j'lK{M;A'{0

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

o` ~.y4Y7Lj*uW051Testing软件测试网 Oh`2{\J;R!z"O


TAG:

dream517的个人空间 引用 删除 dream517   /   2010-04-10 10:31:56
LZ提到的主流技术俺也接触一些,从底层硬件FPGA/EPLD,到vxworks,linux,到软件支撑BSP,在上面的承载IP路由端口等,到上面的信令,窄带宽带,以及网络处理器NP(IXP,APP,多核),语音处理DSP,当然还有接入方面E1/T1,SDH/SONET,ATM(AAL2/AAL5等),IPOA/IPOE,PPP/MLPPP测试人员对这些都是只是了解,想都深入难度真的太大了~~~~领导并不会关注我们学到多少东西,他关心只是你给他创造多少业绩,真是矛盾
架构师Jack的个人空间 引用 删除 架构师Jack   /   2009-10-24 23:04:42
另外说明一点,我IT知识积累的经历基本都不是主观规划的,而是服从公司调配,顺应市场经济规律,而不知不觉积累起来的。不具有可复制性。
架构师Jack的个人空间 引用 删除 架构师Jack   /   2009-10-24 23:01:25
同liangjz的结论一样!必须深度优先,我的过程是从一个领域,一个技术,一个功能入手,深入掌握后再做第二个技术,掌握深度的速度就越来越快。几年过后,就有了宽度了。广度必须是建立在深度之上才有意义,也必须要有足够的时间,和足够的项目历练。对于年轻的同学而言,除非机遇很好,学习能力超强,一般情况下至少也要5-6年以上的积累才够。不过我目前最大的苦恼是,经历多了,知识多了,记忆力下降较快呵,细节是忘的越来越多。
阿里巴巴一个测试架构师 引用 删除 liangjz   /   2009-10-24 21:57:57
呵呵,实际上很少有人能同时深入掌握jack提到的IT主流技术. 广和深也是一个矛盾体. 不知道jack在这些度把握方面有何建议? 我个人的建议是深度优先
 

评分:0

我来说两句

Open Toolbar