性能测试面面观——HP性能测试专家宗刚访谈

发表于:2013-05-21来源:博客园作者:qileilove点击数: 标签:性能测试
问题:能否先简单谈谈您在测试领域的工作经验?和您对此领域的理解? 宗刚:我的工作经验主要分成三个阶段:

  问题:能否先简单谈谈您在测试领域的工作经验?和您对此领域的理解?

  宗刚:我的工作经验主要分成三个阶段:

  第一阶段:民企开发Leader

  毕业后做程序员,负责开发维护6个产品。解决过多次关键性能问题,其中有一次系统跑批2小时后死机,通过我的优化最后只需要15分钟完成,协助业务部门打了一个大胜战。06年开始在项目组自下而上推一些敏捷实践。因为有开发编程以及敏捷工程的基础,为我后期进行大型系统性能测试、优化、规划以及提出全生命周期敏捷性能管理体系打下了坚实的基础。

  第二阶段:创业公司负责人

  和几位朋友一起创业,负责公司两个产品的运作,测试、开发、需求、业务、销售、人力各种工作都干过。虽然结果不太理想,但这个阶段磨练我从整体去看一个产品,从开发、测试、产品系统看问题,而不会局限于研发。

  第三阶段:惠普非功能技术负责人

  到惠普后,作为团队非功能技术负责人,推行敏捷软件开发,推行安全测试,提出性能测试优化建模整体服务整体解决系统上线过程中的技术难题,提出全生命周期敏捷性能与容量管理体系解决系统整个生命周期的性能与容量难题,提出交维服务系统解决从研发到运维的技术、流程等问题。主要为国内金融、电信、政府核心系统进行非功能服务。曾在创金融领域全球最高TPS(HP开放平台)的项目担任性能技术专家。惠普是一个很大的平台,各种资源都有,性能测试工具、监控工具、刀片、小机、存储、网络、操作系统以及各种领域专家,最重要的是有很多大型应用系统的客户,非常有利于性能技术成长。

  对于测试领域的理解:

  A、从测试领域职业发展来看,将来的测试有两条比较好的出路,一条为业务专家,懂得某业务领域知识如金融、电信、建筑等等有行业壁垒的知识;另一条为测试技术专家,会编程是基础,能够做技术含量比较高的测试。原来主要点击几下鼠标的黑盒测试竞争会越来越激烈,由于知识壁垒有限,大量的高校毕业生轻易进入这个领域,很难出高薪。前几年是测试领域的原始积累期,很多技术能力不强的人能成为领导、经理,将来这种可能性越来越小。

  B、性能测试领域现在还缺少标准,市面上的培训以及书籍多数以工具为主,没有系统解决性能问题关注性能测试为主。

  问题:能否简述企业中性能测试现状?

  宗刚:从09年的淘宝双十一导致多家银行网银系统宕机,到12306购票难,再到前不久聚美优品促销活动刚开始就遭秒杀。根据Google的统计,如果网站打开慢每500毫秒,用户访问量将下降20%。根据Amazon统计,每慢100毫秒,交易额下降1%。这些事件和统计数据为大家敲响了警钟,企业也会越来越重视性能测试。

  企业性能测试常见问题:

  A、缺少整体性能与容量管理策略,常常临时抱佛脚,见过用20人年开发的系统上线之后系统性能完全无法瞒住要求,重新开发

  B、UAT阶段才做测试。为时太晚,很多问题这个阶段无法解决或解决成本非常高

  C、运维与研发缺乏互动。没有形成生产与研发的闭环,测试结果脱离实际,见过通过大量性能测试的系统上线之后就宕机

  D、缺少性能优化和规划。只有性能测试报告,定位不了问题,提出不了建议,对于生产系统的容量和性能缺少规划,不清楚系统的容量,无法支持有效的业务决策。

  问题:能否描述一下性能测试人员的现状?

  宗刚:11和12年分别在北京、上海、深圳面试了近100位性能测试人员,主要的特点如下:

  A、性能测试人员出身比较复杂,有开发经验的人员能力和潜力都强于其他。由于性能测试项目比较少,所以不同角色的人遇到这种项目,就成为性能测试人员。由于性能测试对人员要求的技术比较高,相对之下有开发经验的人员学习速度要快得多。就拿我自己举例,由于有4年的开发经验,通过两个项目的实践就可以灵活掌握性能测试,1年掌握的东西相当于没有开发经验的3年。

  B、多数性能测试人员都以工具为主,缺少系统解决性能问题的能力。见过一个项目的性能测试人员只懂通过loadrunner设置场景发起压力,根本不会性能监控和瓶颈定位,测试的数据压倒生产库都不知道。

  C、从面试的整体来看北京的技术能力稍强于其它地区,基本上为北京>上海>深圳。

  D、很多“资深”性能测试的人员由于停留于几年以前会loadrunner就是专家的时代,技能没有提升,陷入“上不去,下不来”的尴尬境地。

  E、多数人员习惯于从测试看问题,缺少整体视角解决性能问题。个人建议从产品经理的角度看问题,因为一个产品其实就是一个小型企业,从这个角度看成本、创新、流程、质量就比较有意义,抓住了本质。

  F、性能测试领域非常缺人才,缺少精通性能测试,同时熟悉各层性能优化的人才。见过好几个企业有若干个OS、中间件、DB性能优化专家,但是解决不了性能问题,缺少整体贯通的人员。

  问题:你如何理解性能测试在软件生命周期中的位置?

  宗刚:性能测试应该贯穿整个软件的生命周期,从需求到架构到迭代到上线再到运维都和性能测试息息相关。下图为借鉴了敏捷性能工程的思路整理出来的一个全生命周期性能管理图。

  主要分成4个大阶段:

  A、计划阶段:

  编写可测试的性能需求:详细说明可落地可测试的需求,而不是笼统的写着一天支持1.5亿的交易,支持1亿的用户。

  性能测试策略:需要提前考虑怎么进行性能测试,用什么工具?需要哪些培训等等 在产品代办列表里增加性能活动:由于性能测试一般实施周期比较长,建议单独成为一个列表项。

  B、架构评估:

  在系统架构阶段,在实现部分关键功能的情况下评估系统性能、容量、安全、可扩展性、稳定性等等是否满足系统设计的需要,我们常常缺少这个阶段的实践,等系统开发结束才进行,常常为时已晚。在系统规划时常常在缺少实际测试数据的时候拍脑袋规划硬件,出现“大马拉小车”的局面,架构评估的另一个作用是通过架构阶段的评估为规划提供数据支持。

原文转自:http://www.blogjava.net/qileilove/archive/2013/04/16/397896.html