专访贺炘:软件测试应讲究策略和方法
贺炘,领测国际科技有限公司首席软件测试专家、ISTQB国际软件测试认证委员会认证讲师、CSTQB中国区专家组资深专家、CSDN软件测评技术专业委员会会长、北京软件行业协会测试工作委员会副秘书长、中国软件服务外包标准评审委员会评审专家、《程序员》杂志特约软件测试专家顾问、CSDN网站软件测试专家、希赛网软件测试专家以及CSDN SD2.0大会大师面对面活动主讲嘉宾等。同时,他也是业内知名软件测试培训讲师,有多年的软件测试管理、项目管理和软件配置管理经验。精通软件项目的开发、测试、配置管理流程。精通敏捷开发,CMM的理论和方法,熟悉敏捷测试过程。
-
兴趣是最好的老师
CSDN:请和大家介绍下你及所从事的工作。
贺炘:自06年开始创业至今,我从事的工作主要是软件测试相关的培训、咨询和服务。我们目前拥有国内一流的软件测试社区领测软件测试网,面向非软件测试工程师提供以就业为导向的软件测试工程师就业培训,针对测试工作的从业者我们引入了国际知名的软件测试工程师认证培训ISTQB业务,希望能切实的提高国内软件测试的工作技能。
CSDN:当初你是如何踏入软件测试行业的?
贺炘:我踏入软件测试行业还是很偶然的,当时的求职并不像现在有很多招聘网站,连Email都不是很普遍,我属于比较早接触互联网的学生,当时也没有搜索引擎,在计算机相关的报纸上发现了北大方正的网址,链接上去发现有招聘信息,于是我写了一封信,邮寄过去就收到入取通知书。入职后我才知道做的工作是软件测试,当时也没有概念。
CSDN:你从事软件测试行业这么多年,已然是一个老兵,你是如何一路坚持走到今天的?
贺炘:老实说坚持并不容易,有很多机缘巧合的事情。当时我有很多机会转去做开发,不过总在那个时间点上遇到升职加薪的意外,顺着也就过来了。当你在低级别的岗位上的时候可能看到的都是不如意,但当你的职位和责任变大的时候,你会不自主的思考为什么要这样做,有没有更好的办法,这个时候你会发觉软件测试工作是个非常讲究策略和方法的工作,有太多需要学习和努力的领域,这个时候你已经不需要坚持了,顺着你的好奇心钻进去就好了,当然不是每个人都会有这样的机会,那就更需要强迫自己和外围接触,和水平高的同仁切磋,这样才会找到自己的努力方向,兴趣才是最好的老师。
-
软件测试工程师必须要深入理解用户
CSDN:很多人都是自学进入软件测试领域的,常常会有“该如何进行测试”的困惑,你有什么经验可分享?你觉得什么样的人适合做软件测试以及如何在后续的工作中增强竞争力?
贺炘:首先我觉得测试工程师分为两类,一类只是拿测试当个工作,养家糊口而已,另一类拿他当事业,希望在这个领域做出成绩。
如果想入门的话,我录制了一套入门的软件测试学习视频,有兴趣大家可以下载看看。
如果想在测试的某个方向有所建树,我觉得首先要保持自己的好奇心和学习能力。当然在这个阶段,你一定已经入门了。我的建议是你的学习方向必须和你目前的工作有关联,通过学习或者交流找到你遇到的问题大致的解决问题的思路,一路钻下去。如果你有了完整的解决方案,你的竞争力自然就增强了。信心来自于你一点一滴的成功,成功累计到一定程度剩下的事情就都好解决了。
CSDN:现在有很多测试工具帮助软件测试人员进行软件测试,你能简单介绍一下么?
贺炘:首先我不认为测试工具是银弹,工具只能解决工具的问题,使用工具的毕竟是人。工具在解决效率问题上是非常擅长的。这个就类似我们看的武侠小说中宝剑和剑谱的关系,没有武功心法,你拿到宝剑也没用。
说回测试工具,目前通常我们会谈自动化测试框架,具体的工具只是框架中的一个点。为了避免谈具体哪款工具,给大家一个框架的概念吧:
按框架的定义来分,自动化测试框架可以分为:基础功能测试框架、管理执行框架;
按测试类型来分,可以分为:功能自动化测试框架、性能自动化测试框架;
按测试阶段来分,可以分为:单元自动化测试框架、接口自动化测试框架、系统自动化测试框架;
按组成结构来分,可以分为:单一自动化测试框架、综合自动化测试框架;
按部署方式来分,可以分为:单机自动化测试框架、分布式自动化测试框架。
CSDN:对于如何管理软件测试团队以及建设好工程师文化,你有什么经验可分享?同时,软件工程师应具备什么样的素质?
贺炘:由于Google和苹果的崛起,我们一直在谈工程师文化。作为公司的管理者,或者团队的领导者当然也希望能有机会改变世界,不管我们怀揣什么梦想,如果想梦想成真势必要从最基础的事情上做起。
管理一个团队首要的问题一定是团队的使命,我们做什么事、解决什么问题、对客户的价值是什么以及我们在这个关系链中起到什么作用等。
其次要解决的就是团队构成,作为领导者,你如何将复杂问题进行有效的拆分,各个点上你需要的人才是什么。你可以根据你手里的资源来决定如何解决问题,也可以根据问题来筹划需要什么样的资源。
团队组成了,剩下的就是怎么能共同完成目标了,团队成员之间的关系,分工方式,奖励等都是具体的考量,总之需要能把大家拧到一起,以使命为目标,一起融洽的干活。
这里我谈谈我理解的工程师文化,工程师文化是说产品如何做都由工程师说了算吗?显然这样理解有些狭隘!权利和责任是相辅相成的,怎样才能创造出伟大的产品?一定是能够深刻理解用户的人,如果一个团队中没有出现深刻理解用户的工程师,片面强调工程师文化可能是个灾难。
测试工程师的素质我觉得分两个层次,普通的测试工程师需要细心、耐心、良好的沟通能力以及责任心等。如果你希望成为一个优秀的测试工程师,相比较其他行业并没有什么特别之处,保持自信,保持好奇心,在你的专业上持续的解决复杂问题。
CSDN:软件测试人员大多被称作测试工程师,但也有不少的人认为其只是QA,你觉得测试和QA是怎样的关系?
贺炘:这是个很重要的事情,其实测试工程师并不是QA,而应该称为QC。之前我在《程序员》杂志上投过稿。
和这个问题有关的内容摘抄如下:
QA的英文为:Quality Assurance 我们翻译为“质量保证”
QC的英文为:Quality Control 我们翻译为“质量控制”
我们将这两个角色之间进行一下职责划分,以方便我们后续的讨论。
QA:监控公司质量保证体系的运行状况,审计项目的实际执行情况和公司规范之间的差异,并出具改进建议和统计分析报告,对公司的质量保证体系的质量负责。
QC:对每一个阶段或者关键点的产出物(工件)进行检测,评估产出物是否符合预计的质量要求,对产出物的质量负责。
通过上面的职责划分,我们发现,如果我们将软件的生产比喻成一条产品加工生产线的话,那QA只负责生产线本身的质量保证,而不管生产线中单个产品的实际质量情况。QA通过保证生产线的质量来间接保证软件产品的质量。
而QC不管生产线本身的质量,而只关注生产线中生产的产品在每一个阶段的质量是否符合预期的要求,如果我们生产的是杯子,那QC只关注:生产的材料是否是预期的,每个杯子瓶口的直径是否符合要求,杯子把手是否符合设计要求等等具体的、可量化的点。
针对软件企业的软件开发过程而言:
QA可以进一步明确为SQA,即:软件质量保证,只负责软件开发流程的质量,企业内相对应的角色为:软件质量保证人员,有的企业就直接称之为SQA。
QC可以进一步明确为SQC,即:软件质量控制,只负责软件开发过程中各个阶段产出的工件的质量,产出的工件可能是相关的文档或者代码等,企业内相对应的角色为:软件测试人员。
-
敏捷测试与传统测试最根本区别是心态问题
CSDN:在软件项目开发中,测试是开发流程的一部分,也就是对其开发功能的验证,使得有些人认为测试工作可以被开发人员兼做,你认为软件测试与开发有什么区别?
贺炘:这个谈到了测试的目标是什么?如果认为测试的目标只是找出Bug,那谁找不都一样吗,在这里我们谈到的软件测试应该是个建立信心的过程,只有过程可靠了,信心才能建立起来!
测试工程师是否可以由开发,或者某种技术取代?这个很难讲,他牵扯到了被测系统、技术水平、开发成熟度、工具应用等诸多层面的综合判断,取代的例子目前有如Facebook,但是我看到的更多是无法取代的例子。
文字很难在这个层面说清楚,有兴趣的话可以查看一下领测软件测试沙龙的视频,专门有一期就是讲的这个问题。
在这里我举个例子,大家都看过足球比赛,为什么11人的队伍要区分前锋、中锋、后卫、守门员?为什么还有不同的阵型?前锋不能守门吗?守门员不能直接进球吗?那种情况都有极端的例子,但不是常态。常态是什么?分工协作才是效率最高的方法!
测试工程师会被淘汰吗?会的,一定有那一天!开发工程师会被淘汰吗?会的,也一定有那一天!但是请记住,淘汰的是人,而不是这件事情,如果你做的不专业随时都会被淘汰!测试工作是永远不会被淘汰的。但是不专业的工程师随时都会!
CSDN:在软件开发产业中有一种非常普遍的习惯,那就是让那些经验最少的新手、没有效率的开发者或不适合干其他工作的人去做测试工作;甚至有些人认为广大的测试员所做的工作毫无意义,有没有他们公司一样运转,项目一样进行。你认为软件测试人员的地位是怎样的?
贺炘:首先这样的事情确实存在,其次使用这种方法的公司至少目前质量绝对不是他的核心竞争力。并不是说这样的方法不对,而是要辩证的看问题,一个公司存活下来一定有一定的道理,我总结了几个理由:人无我有、人有我精、人精我贱。有兴趣的话可以看看我在领测软件测试沙龙中的视频录像,详细阐述了这个观点。
我的判断:公司的竞争会在不同的层次展开,质量并不是每个企业在所有生存阶段的必然选项,什么时候谈什么话。不过一个伟大的企业是不可能不重视质量的,但是在通往伟大的道路上会有不同的阶段性选择。
CSDN:相对于敏捷开发红遍大江南北的状况而言,对敏捷测试的讨论则低调得多。在各种不同的敏捷实践中,测试在敏捷开发中有着怎样的地位?你新浪微博的网名是:贺炘-让测试敏捷起来,起这个名字有什么特别的意义吗?而敏捷测试与传统软件测试有何区别?
贺炘:先解释一下我的微博名字,原意是希望大家能以测试中的问题为切入点,敏捷的做测试,这可不是说让大家用敏捷方法做测试哦,敏捷测试只是敏捷的做测试的一个选项而已!
敏捷测试和传统测试的最根本的区别我觉得是心态的问题,敏捷测试更强调主动、自发、快速的响应和持续迭代、逼近答案。传统测试(我更愿意称为经典测试方法)更强调方法、体系、策略、通盘进行考虑再操作!方法无所谓好坏,不同方法会适用不同情况,敏捷测试中的用例设计方法更多还是采用经典测试方法,经典测试方法同样应该借鉴敏捷中的一些实践,快速交付可以评判的内容。
CSDN:当软件开发组织采用敏捷开发时,测试团队通常需要花很长时间来完成转变。在很多公司中,独立的质量保证团队已经根深蒂固。当它们开始适应新的敏捷组织时,会遇到难以接受的文化差异。如何应对文化因素在敏捷测试中的影响,你有什么经验可分享?
贺炘:其实我们先要区分这个到底是文化还是自我保护主义!
通常个体对改变都会有抗拒,因为毕竟不熟悉,会有利益上的直接考量。如果你知道了为什么大家害怕、为什么不配合,那就应该有有针对性的办法了!
首先要在组织层面达成共识,我们要什么?怎么要?好处是什么?带来的改变和坏处是什么?要持续不断的沟通!
把遇到的问题都汇总出来,组织要有专门的人一对一的解决这些问题,让改变对个人造成的影响最低,这样阻力才会最低!
让成功者得到奖赏,不要对前期的失败进行处罚,引导大家转向成功!
如果是企业文化的阻碍,那会非常复杂,先分析企业的基因,从上到下是否有这样的土壤再做决定吧!
CSDN:在新兴商业技术不断涌现的今天,中国软件测试行业目前状况和国内外发展趋势如何? 与国外相比现在还有哪些欠缺的地方?
贺炘:其实在软件测试技术领域国内和国外的差距并不是非常大,最主要的问题是都没有特别有效的方案彻底的解决测试遇到的问题。如没有办法清晰的说明软件产品的质量状态!还是处于探索和演进的过程中!国外有很多IT研发领域的大牛推进测试行业的发展,但是国内IT研发领域的领军人物还是更多的关注开发新技术,有的时候还对软件测试有些微词,对测试更多的是不屑,而不是沉下心来去了解。
国外近年来出现了很多很好的实践和方法体系,如ISO29119、TMMi、ISTQB等。国外将方法和技术研究的很细,国内目前还是学习和引入的阶段,好的实践和方法并没有个很好的沟通平台,这也是领测一直做领测软件测试沙龙的原因。
另一个就是国内有个很不好的环境,一些人总是觉得测试技术含量低,待遇不用给太多。当然这样的情况持续在改观,我本身也认识很多年薪几十万的测试工程师,有些知名企业的技术高管也是测试工程师这条线上去的。但不可否认这样的想法确实还是在一定范围内存在的,需要更多的人为软件测试行业正名!
CSDN:你是业内资深的软件测试培训讲师,有丰富的大客户培训经验,接受培训的客户累积上百家,以你多年的经验看软件测试培训市场的发展现状以及前景如何?
贺炘:从06年起我就一直认为软件测试行业大有可为,因为中国一定是软件大国,中国软件企业的竞争一定会从功能实现上的竞争过渡到质量的竞争上,谈到质量,软件测试一定是重要的一环。
目前国内高校还显有软件测试专业,随着软件外包产业的兴起,软件测试工程师的需求也与日俱增。领测国际的发展也印证了这个判断。
随着国内测试工程师数量的增加,如何规范的做测试、如何更有效率的做测试以及如何能够让软件测试敏捷起来将是企业重点考虑的事情,我希望领测国际在这个领域能够做一些事情。
CSDN:随着软件测试在软件研发过程中的重要程度越来越高,每个进入软件测试领域的人随着工作经验的增长,都会有不同的心得体会,在软件测试职业生涯的规划上也会有自己的一些困惑和茫然,你对处在这个职业生涯规划关键时刻的软件测试人员有何建议?
贺炘:这个应该称为成长的烦恼吧,实际上每个人在不同阶段都会有不同的困惑,只要你有要求就一定有困扰,最重要的是明确自己想要什么,自己想走那条路,目标明确的时候,困惑和茫然就会少一些!
CSDN:网上有新闻报道称,全国普通高校毕业生规模达历史新高699万,就业系数一再增加,而软件测试专业的学生则成为企业争相抢要的香饽饽,软件测试专业在国内经历了怎样的一个发展过程?对即将进入这个行业的大学生你有什么建议?
贺炘:软件测试专业在高校并不普及,这几年我们也调研了一些国内有软件测试专业的高校。老实说,很多课程还是拼凑的,老师有很多也没有过软件测试的工作经验,这样教出的学生的就业能力就可想而知了,就业不好学校的解释有可能是专业没有需求,通过我上面的分析应该得知这个是大错特错了。
目前软件测试专业在国内高校应该还处于一个从无到有的过程,这个阶段遇到问题都是很正常的!作为高校一定要明白企业如何做测试、用什么技术以及使用什么方法,这样高校的毕业学生才会适销对路。
作为毕业生,你已经知道今年有这么多的毕业生,你需要问问自己,如果你是企业,为什么会聘用你?当你的理由越充分,你的就业前景就会越好,你应该如何增加自己的就业砝码是个需要考虑的问题!
CSDN:你对CSDN有什么建议?对未来有什么期待?
贺炘:CSDN作为中国第一的IT社区,希望能更多的关注软件测试行业,更多的关注这方面的人和事。
希望CSDN能够协助专业的测试工程师传递专业的软件测试理念,让开发工程师了解软件测试工作,能吸引更多有能力的人进入软件测试行业,共同推动测试行业的发展!(文/钱曙光 责编/张勇)
若想获悉贺炘更多动态,请关注:
CSDN博客: 请点击进入 新浪微博:贺炘-让测试敏捷起来
社区之星访谈系列文章:
专访邱俊涛:高级JavaScript程序员代码应结构清晰、模块化良好
更多精彩内容,请点击社区之星查看。
本文为CSDN原创文章,未经允许不得转载,如需转载请联系market#csdn.net(#换成@)