如何修炼为测试架构师

上传人:bin****86 文档编号:38513860 上传时间:2018-05-03 格式:DOC 页数:20 大小:64KB
返回 下载 相关 举报
如何修炼为测试架构师_第1页
第1页 / 共20页
如何修炼为测试架构师_第2页
第2页 / 共20页
如何修炼为测试架构师_第3页
第3页 / 共20页
如何修炼为测试架构师_第4页
第4页 / 共20页
如何修炼为测试架构师_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《如何修炼为测试架构师》由会员分享,可在线阅读,更多相关《如何修炼为测试架构师(20页珍藏版)》请在金锄头文库上搜索。

1、如何修炼为测试架构师如何修炼为测试架构师测试架构师之一测试架构师之一 准确的商业理解力准确的商业理解力最近看到一篇关于测试架构师介绍的文章,文章中的测试架构师原型来自微软,其描述的工作内容让不少国内的测试同业很是羡慕,但又觉得好像离我们中国人很远。不知我们中国的测试工程师能做吗?我的答案是 Yes。因为,我现在就在中国带领着一个测试架构师团队。了解自己所在公司测试架构师团队的运作和工作内容(后续将陆续与大家分享),虽然我们之前也从未接触过微软的测试架构师。但随着公司业务的扩大,业务的需要驱动了我们公司内部有一小部分人担当起了测试架构师的职责,其 title 来源也是有其偶然性。原本公司中测试工

2、程师往上发展就是系统测试工程师,系统测试工程师再往上应该叫什么呢?最后参考软件开发的 title,就开创性的在公司内部叫测试架构师。并开始从事了很多从公司层面而仅非单个测试经理层面所需要的新的测试工作职责,例如:领导负责一个产品线或一个大产品的测试技术规划,early testing,系统测试工程师的培养,与开发架构师一起设计和改进架构的设计质量,测试执行活动质量的审查保障,亲自指导重点测试方案的设计,为了不断降低公司研发成本而进行新测试技术研究实践和推广,基于风险的测试,基于模型的测试,安全性测试,兼容性自动化测试,分布式自动化测试,性能压力测试,需求测试等专项测试技术领域的研究,并支撑新领

3、域重点市场项目活动等等。与微软的共性是我们的测试架构师都不再亲自写自动化测试脚本,不亲自写测试工具的代码。但我们会从项目初始即项目需求和架构设计阶段就开始考虑未来的自动化测试框架,针对具体的产品特点,思考选择最合适的自动化测试语言;在架构设计中充分考虑如何支撑未来更高的自动化测试率,让架构设计调整具备高的可测试性率;由于参与早期的设计方案讨论选型,能提前识别和规划好未来产品测试组所需要提前准备的测试实现技术。并亲自带着测试工程师提前进行测试技术储备。当然我们也常常亲自去实施一些测试活动:如设计测试工具的架构(主要考虑未来扩展性和更好满足测试需求),然后交给专门的测试工具开发团队来实现;或亲自设

4、计压力测试方案;亲自研究安全性测试策略和方案。推广方式,主要是亲自实践各种新测试技术后,再带着测试人员在实战中掌握相关的方法。我们大部分的测试架构师都是写过自动化测试脚本或程序的,只是现在的工作由于需要我们去思考太多的东西,所以没有一丁点精力来编码。特别是负责一个产品线的测试架构师,由于负责多个产品,还要抽取产品间的共性测试技术,要建立起产品线的测试架构图,统一产品间的测试技术,统一测试方案的设计质量标准,需要具备更强的抽取共性的能力。同时,还需要能在短期内快速了解和识别影响产品成败的关键测试技术,因为并不是所有产品都是性能压力测试就是最重要的。例如:某产品线有 9 个产品,有的产品最需要保障

5、的是可靠性(性能,可用性不是关键);有的产品最需要保障的却是可用性,而不是可靠性;有的产品最需要保障的是安全性,而不是性能;有的产品最需要保障的是可移植能力和可集成能力,而不是性能。那么相应的每个产品测试用例设计就会有所侧重,例如:对于重视可移植能力和可集成能力的产品,测试架构师就应该帮助测试人员系统地做好这 2 个领域的测试用例。因此,测试架构师必须具备的第一个能力就是:“准确的商业理解力。 ”商业成功的核心竞争力是什么?测试技术和测试资源是否能真正地保障或支撑商业成功的核心竞争力?这些都是测试架构师需要准确识别的,如果测试架构师识别错误了,那么有可能在需要重点保障的领域,测试技术和测试资源

6、投入不足,导致最后产品的商业竞争力得不到支撑,得不到质量保障。例如:某产品对外宣传是业界可靠性最高的产品,可是测试人员在测试活动中惯性地把主要精力都花在了性能测试中,对各种异常的测试验证并不是业界最丰富的。结果在与业内其他产品比较的第三方测试报告中,该产品的可靠性得分却并不是第一,虽然性能是第一,但该产品在特定的重视可靠性的市场中基本失去了商业竞争力。某美国公司的一款产品在传统行业中主要功能基本雷同,如何才能与类似产品拉开距离,突出竞争力。后发现产品的用户在使用产品时普通操作时间都较长,因此为了缩短用户的操作时间,该公司决定在产品的可用性领域重点投入设计,核心竞争力是解决用户的可用性问题。其测

7、试团队把大部分的测试设计精力也放在了可用性的测试活动中,构建了业界非常丰富的可用性测试用例,这些测试用例的场景超过了产品设计考虑的原有场景,并最终通过测试驱动设计,与产品设计师一起不断改进产品的可用性。最后不但提供了业界可用性最强的产品,而且其可用性功能的稳定性质量也非常高。测试活动从效率和质量角度支撑了产品的商业成功。所以,如果你的公司正准备招募测试架构师,请第一考评他的能力应该是他的商业理解力。具有该能力的测试工程师知道如何选择:做正确的事!确保事半功倍。而不具备该能力的测试工程师可以成为系统测试工程师,由他来保障正确的把事做好! 测试架构师之二测试架构师之二 区分测试重点和测试难点区分测

8、试重点和测试难点重点和难点两个词汇有时能代表同样的方向,有时却是相差较远的方向。为什么我要把是否有能力区分测试重点和测试难点作为测试架构师必备的第二个基本能力。因为,我曾在某产品线对测试活动的质量进行抽查时,与每个产品的系统测试工程师进行了沟通,发现只有一名有 6 年经验的系统测试工程师在我的的启发下,分清了自己所负责产品的测试重点和测试难点。而其他的系统测试工程师一直都把测试难点误当成了测试重点,作为他技术攻关工作的主力方向。甚至从来没有真正思考过什么测试技术才是自己所负责产品决定成败的测试重点,只是简单地把自己在工作中碰到的所不具有的测试技术都当成测试重点,其实很多都只是测试难点。的确,在

9、某些产品测试难点和测试重点刚好重合。虽然某些产品测试重点在技术上并不难,但是却需要我们把测试重点部分的工作质量做到最佳,时间和资源投入最多,而不要把有限的资源投入到测试难点的工作中去。我很认同华为任正非对华为工程师的要求“要做工程商人” ,我们其他公司的工程师同样应该以商业目标为自己的技术工作目标,不应唯技术论,越新的技术,越难的技术就越愿意投入。测试工程师同样要心中一直有一个目标指引着自己的所有技术工作方向。这个目标就是我测试架构师日记中第一篇谈到的“准确的商业理解力”告诉你的工作目标。由于项目中每个人的分工不同,因此不可能每个测试人员一开始就能知道自己工作的商业目标是什么,所以也不用去责怪

10、大家。可是领导产品的测试架构师不能准确的识别或培养其他测试工程师具备识别测试重点和测试难点的能力,那么注定这个测试团队的工作不但质量保障会打折扣,而且会浪费不少组织的资源和成本。因为资源和时间是有限的,而完美工作的追求是无限的。因此,我们如何在有限的资源和时间下,保障基本的质量目标,并尽可能提升质量目标。就需要在分清测试重点后,优先针对测试重点目标进行系统地测试技术研究,测试技术攻关,测试资源主要投入。对于非测试重点的测试难点部分就要降低优先级,放在最后考虑。测试架构师的工作应该牢牢抓住真正的测试重点来开展,甚至在整个产品测试组都方向错误时,要能从商业角度帮助测试组改变观点。那么当从测试经理到

11、普通工程师都误理解了测试重点时,测试架构师应该如何来启发他们呢?我这里就分享一个案例吧:在一次到产品测试组进行测试活动质量抽检时。我们问测试经理,你们产品测试目前最大的需求是什么?他说是如何进行压力测试和性能测试,希望我们测试架构师团队能在此领域多给予支持。我心里知道:他所负责的产品特性核心不是性能和压力测试,但我没有反驳他。而是继续问他下一个问题:“你觉得会让你产品未来应用时商业失败的最大担心是什么?”他想了想说:“不能对客户的生产系统产生破坏,让客户的业务中断。 ” “依据我们的经验,与客户生产系统交互的模块虽然是个小模块,但是在其他产品上经常出现内存泄露的故障从而破坏了生产系统。那你针对

12、该小模块做过哪些系统地测试?有无专门进行内存泄露的测试,因为内存泄露对客户生产系统的破坏最大。 ”我问到。这时此测试经理才恍然大悟,这个对生产系统质量影响最大的小模块居然没有系统地进行过深入全面的测试。我这时告诉他 “你之所以开始说性能和压力测试是你的重点需求,是因为你们组里没有在性能和压力测试方面的积累,有工作开展的难处,这是困扰你的困惑。但是你的产品形态的质量不是性能或所谓压力测试来保障的,而是需要不对生产系统产生破坏。因此,你唯一能破坏生产系统的那个小模块应该是你整个产品中质量最高的模块,也应该是测试最全面最深入的模块,你的技术力量应该主要投到这个地方” 。后来,针对该小模块我们进行专项

13、内存泄露的测试,结果发现了好几个内存泄露的大 bug,这些 bug 每一个都是会导致客户生产系统中断的杀手。测试架构师不是团队中专门解决测试难点的专家,而是识别测试重点,并支撑测试重点工作的专家。 “区分测试重点和难点的能力”不是测试架构师独有,系统测试工程师和测试工程师一样可以具有。与第一篇“准确的商业理解力”一样,第二篇要做的是:做正确的事。测试架构师之三:广博的知识面和全面的经验测试架构师之三:广博的知识面和全面的经验在开始描述我理想中的测试架构师必备素质第三篇前,我想先转载一篇来自互联网万欣的文章好的架构师都是善良的独裁者万欣与大家分享,作为测试架构师必备素质第三篇的前言:对于任何一个

14、软件开发人员来说,架构师都是一个令人向往的角色。就连世界首富比尔盖茨在 2000 年卸任公司 CEO 的同时,也担任了微软公司的荣誉角色“首席软件架构师” ,可见“架构师”这一称谓的吸引力。架构师是公司的“金领” ,有着非常高的收入,很少需要考虑生存的问题,从而有更多的精力思考关键技术问题,形成“强者愈强”的良性循环。部分优秀的开发人员在工作了一定时间后,就要开始考虑自己的未来到底向哪个方向发展。如果开发人员的沟通能力强过技术能力,在补充一定的项目管理知识后,可以向技术管理的方向转型。如果其对技术一直很感兴趣,而沟通能力也不弱,则可以试着进一步加强技术修养,以期向架构师的方向发展,最终“修成正

15、果” 。那么,到底什么是架构师呢?所谓的架构师,应该是一个技术企业的最高技术决策者。他主要负责公司软件产品或软件项目的技术路线与技术框架的制订。好的架构师都是善良的独裁者,具有很强的技术、良好的写作能力、良好的口头表达能力,能够在各个层次进行沟通。从开发人员到架构师的成长应该是阶梯式的,一般来讲开发人员在刚刚开始工作时只能开发简单的独立软件模块,慢慢的随着经验的增长,他开始接触一些相互之间有信息传递的模块,而后来,他会发现自己接到的开发任务已经不是一个独立的单体,这些任务由一些专门的软件部分组成,可能包含数据库,工作流引擎,消息服务等等各种功能模块,可能分布在不同的服务器上,所有的部分协同起来

16、,完成软件功能。而这时候,体系结构的好坏将直接决定了系统的性能和可扩展性,而就在这时候,这名优秀的开发人员也开始思考架构师应该思考的问题了,或者说,他向成长为架构师的道路迈出了一大步。什么是架构师最具价值的技能呢?就是要了解不同的知识,做一个“杂家”或者说“博学家”。当然,如果你的数据库技术非常棒,或者你在工作流引擎方面具有不可超越的专家知识,那也是很不错的。好的架构师有好多都是从专家成长过来的。但是,这不是架构师应该做的事情,架构师应该做的是了解所有的东西,既了解技术的宏观面,又了解技术的细节。真正的架构师不仅仅要了解软件,也要了解硬件,在关键的部位使用合适的硬件来取代软件,可以成倍甚至成百倍的提高整个系统的效率。下面我将会以互联网行业对的架构师的要求为例,向大家讲解作为架构师应该具备的知识。互联网行业是当前最激动人心的行业之一,很多的创新都来自于这个行业,而每一个大型的网站如 Google,Yahoo,Myspace 等都需要解决一个非常复杂的问题,就是网站的分布式向外扩展(Scale Out)的问题。解决这个问题,需要最优秀的架构师对业务进行剖析,利用软硬件将网站进行

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号