51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1752|回复: 1

深度解析性能测试----王磊

[复制链接]
  • TA的每日心情
    无聊
    12 小时前
  • 签到天数: 919 天

    连续签到: 1 天

    [LV.10]测试总司令

    发表于 2017-9-26 16:00:03 | 显示全部楼层 |阅读模式
    1、51Testing:王磊老师您好,很荣幸今天能与您进行一次深入的交流,您从事测试工作多年,能否简单分享一下您在测试领域的工作经验?和您对软件测试这个领域的理解?
      王磊:我是大学毕业就开始从事测试方面的工作,算起来已经有12年了。先后经历了几家不同类型和性质的公司。有传统行业的、有第三方评测的、也有互联网行业的。开始是做功能测试,逐步的熟悉测试行业的概念和相关流程。在有一定的经验后,个人发现Linux越来越流行和重要,因此就主动自学相关命令和概念。随着个人经验的增长,逐步觉得提升越来越慢了。因此又主动承担公司的性能测试,这个过程也是自学的。当时资料比较少,理解和学习起来非常的困难。这也是我后来录制了软件性能测试课程的最主要原因。希望将自己学习时的疑惑和重要知识点都一次性的讲解出来,让初学者更快的入门。
      之后又由于公司的需要,进行自动化方面和安全方面的学习。而当时测试组又将整个测试环境服务器自己维护,为了更充分利用资源,我自学了VMware虚拟化。以上我后来也总结了一下,很多技能的接触并非我最开始就去做的,许多都是公司或者组内需要才开始着手。但一定不要怕困难,主动承担,受益的终将是自己。现在有部分测试同学感到提升慢,感觉没有什么可学习的,这其实是不对的。至少测试环境所使用的数据库,中间件,WEB服务器等均可以是学习的方向。不仅不是没什么可学的,反而你会发现越学不会的越多。这样才真正进入状态。
      我觉得测试入门相对容易一些,但如果能做好做深入还是非常难的。不仅要有业务敏感性,还要对技术有深刻的理解。广度是必须的。而这,都要求持续不断的学习。个人认为未来的社会,无论做不做IT,为了避免被淘汰,终生学习是唯一的路径,希望你我共勉。

      2、51Testing:您说的很有道理,想要深入地做测试,就必须提升测试技术。有会员从事功能测试多年,有些怀疑测试的价值到底在什么地方,您对此有何看法?
      王磊:这个问题很多大神已经回答过了。我个人认为也没有100%正确的答案。价值是与时俱进的。例如智能手机崛起前的万能充,几乎人手一个,但现在呢?几乎啥都干不了。现在也没人用了。现今中国软件行业也是如此,如果AI能写出无bug的程序,不仅测试人员,我看大部分研发人员的价值也会大打折扣。现今的阶段就是,绝大部分公司的软件系统不经过测试直接上线必定会产生严重的问题,这就是价值所在。所以与其担心这种所谓的价值,到不如继续提升自身的技能。

      3、51Testing:那对于只有手工黑盒测试经验,想要转型到自动化性能测试的同学,要如何设定学习路线呢?
      王磊:首先需要学习一门程序语言。例如Java或者Python。毕竟自动化还是需要测试人员编写一定量的代码。同时,对于单元测试框架Junit也建议了解其基本使用。了解Junit并不完全为了做单元测试,而是因为很多框架均是基于Junit的方式、思想甚至直接使用Junit的。之后就是有针对性的学习一款自动化测试工具。例如webdriver等。
      对于性能测试来说建议先从性能测试工具入手,通过工具的学习快速进入这个领域而不是长时间停留在概念上。在可以完成基本的性能测试项目后,进行专项的深入学习,例如存储、数据库、网络、中间件等等。

      4、51Testing:您作为性能测试的大牛是如何看待现在性能测试人员的现状?性能测试人员在企业中是否有很好的发展前景?
      王磊:目前,设置专职性能测试岗位的企业不多。即使部分企业有,在实际工作中负责的也未必全是性能测试工作。也有可能是包括功能测试、自动化等等。规模不大的企业甚至干脆就不做性能测试了。现在的企业更需要复合型人才。学习性能测试一方面可以让我们在未来的职场中更有优势,另一方面,性能测试涉及的领域广,无形当中提升对计算机体系的理解,提升个人技能。同时,我建议性能测试的人员也参与功能测试。这样才能更深入的理解产品需求,才能更准确的把握好性能指标和场景,准确的开发出性能测试脚本。

      5、51Testing:您上面提到学习性能测试可以让我们在未来的职场中更有优势,以某一具体项目为例,如何开展一次全面的性能测试,具体的流程都有哪些?测试人员对性能场景规划,设计,执行及结果分析应该如何恰当的落实到每个具体环节中?
      王磊:熟悉性能测试需求,编写性能测试计划,工具选型,开发性能测试脚本,搭建测试环境,准备测试数据,设计性能测试场景用例、执行性能测试,收集并分析测试结果,协助研发人员定位和分析问题,编写测试报告等等。
      精致的性能报告我的理解是不仅格式要美观,更重要的是数据要充分,做到有理有据。同时报告中要包括整个性能测试的过程和发现的问题等等。具体的报告模板不同公司要求不同。有些公司只需说明问题即可。而像第三方评测机构的报告则要求更严格、更详细。以体现出其严谨和专业,毕竟是给客户看的。大部分内部的报告形式相对随意,表达清楚意思即可。

      6、51Testing:那在进行性能测试的过程中,要如何借助相应的性能测试工具,快速定位系统的瓶颈,找出问题所在?
      王磊:这是个老生常谈的话题了。每个人都清楚,性能测试需要一方面暴露被测系统的性能问题,如果能进一步定位问题将更大的体现测试人员的价值。对系统进行测试和医生给病人看病一样。经验老道的医生和初出茅庐的医生对同一份检测结果可能给出不同的结论。系统明明已经性能很差了,问题就在那里,而我们却无法发现和定位,这说明我们对知识和技能的积累没有达到"老医生"的程度。
      要想定位问题,不仅仅需要性能测试的相关知识,更需要深刻了解需求、理解被测系统的架构、开发正确的脚本等等。同时,对于底层的知识例如操作系统原理、网络、存储、数据库等都需要有涉猎方可更游刃有余。而这就是难点所在,涉及的面确实是非常广的。
      对于想快速定位问题的同学我个人觉得没什么特别好的办法,如果不持续提升自身的技能,仅停留在测试工具使用层面,那势必将是非常难的。例如对于大家认为枯燥的操作系统,如果测试人员可以深刻理解操作系统底层的Paging机制,底层的IO调度,那在分析过程中势必将更有底气,对于工具采集到的数据结果也将给出更合理的分析和解释,如若不然,数据是冰冷的,它看着你,你望着它,明明数据已经显示问题了,而我们必将"视而不见"。
      很明显的是这个过程急不来,刚开始可以从工具入手学习,如若要定位问题分析,则需要大量的知识积累。

    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-3-29 22:15 , Processed in 0.064101 second(s), 23 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表