硬件测试工程师师一定需要转型吗

软件测试转型之路 - 文章 - 伯乐在线
& 软件测试转型之路
日,在网易从事了多年开发之后,依依不舍地离开,面临的是一个完全从零开始的全新职位:SQA,也就是tester。
当时对为什么被选择做软件质量保证,而不是继续在研发上进取,持有保留态度:凭什么要我转,不是别人?这个时候,多年的伙伴、领队——雷叔就把我的优点暴露出来了:认真、心细、负责;好吧,基于以上几点,只有“我行”,只能给力了。
从心底里,对质量管理、SQA等概念,我并没有多想,因为根本想不了,脑子里面没有太全面的认知,即使雷叔讲过一些,我还是觉得不够全面,不知道业界是如何做的?所以心里多多少少有点担心!
几个人成立一个新团队,什么都是从零开始,关键还是要有一些流程,这几年开发中也积累了些经验,总结了些问题。在12月底,我提交了《软件质量保证第一季度计划》,这个计划后来也成为了整个质量保证体系的核心,大概 纲要如下:
1、搭建项目管理平台
2、搭建持续集成平台
3、规范开发流程
4、制定软件质量保证规范流程
5、建立缺陷管理
6、建立风险管理库、经验教训库(长远计划)
日,苦于没有规范的流程,做起事来还是不够顺畅,在奋战多日之后,制定了《产品研发质保流程手册》,简单来说,划分了:需求、开发、发布三个阶段,每个阶段定义验收的产物。为什么要制定这个?必须有章可依,否则步伐不稳健,走的再远,也会乱。
道路上,难免遭遇坎坷,要不断提升自己,也有三点切身体会:
1、如电影《热血教练》中卡特教练所说,先把基本功练扎实了,才能有胜算。既然从零开始,就不要被困惑不已的琐事所纠缠着,下决心突破,可以研读:质量管理、缺陷预防、软件测试、持续集成等书籍,并且通过互联网了解一些公司是如何开展测试和质量管理的方方面面。
2、个人价值迎合团队价值,果断取舍,为团队利益着想。
3、坚定信念,避免浮躁,把握远景,不要急于寻求成就感。
同时,在调研期间,我意识到持续集成很重要,并按照当前的需求,重点关注以下几点:持续测试、持续审查、持续反馈。
图:早期的开发、测试流程原型图
无悔选择测试之路——路上的抉择、进取
有了流程规范,接下来是实施和持续改进。这些规范运用在一个项目上,先做了三个月,不停地测试,编写功能测试用例,也走了2条弯路:
1、用例花了大量时间编写,就连打开浏览器、输入xx、点击登录,这些也记录了(这种是早期状况)。 我居然还请缨加入开发,因为看到一些任务完成不了。后来雷叔也指明,测试做测试应该去做的,如果我当时帮忙做开发,那么很多测试都完成不了,一样保证不了质量。
2、所以,测试人员除了要了解业务,使用简单、清晰的语言结构来进行测试之外,还应该准确定位自己,明白自己在整个版本迭代中,控制质量的位置!
事后想想,那段日子锻炼了什么?那三个月无法忘记,每天高强度测试,用的最多的就是:功能测试(边界值、场景法),白盒测试。其实就是锻炼了测试的基础技能和流程管理。
后来测试管理流程逐步建立起来,但是在测试过程中,应当如何提高代码质量?这个阶段我们参考了,做了一些适合团队的改进,见下图:
图:质量提升的模式
这种迭代版本中java代码质量提升的模式,已经采用了将近一年,非常有效。
同年Q2,我们对测试管理进行了改进,其中是受到 影响,采用类似“一页纸计划”的测试文档(在此要感谢)在进行管理。之前每次整理测试计划,发送给开发人员,实际上耗费了一些时间,并且成效不大,现在的任务:需求、开发、测试,全部交给redmine管理,所有事情一目了然,对任何人都是可见的,有没有完成,进度如何,非常清晰。
为了规范整个开发测试流程的管理,包括开发、测试的交互,我们又制定了轻量级的 SQA框架,见下图:
图:最初制定的SQA框架
不过此后这个框架也发生了比较大的变化,做得更好、更轻量级。无独有偶,我偶然的机会买了一本的:《全程软件测试》,发觉这个SQA框架也是渗透到目前的每个环节,更适合目前团队的scrum模式,在此也要感谢@朱少民老师,真是相见恨晚,不然可以少走很多弯路!!!
大家可能会问:Scrum模式、用户故事,测试人员怎么利用?为什么想到这个?如果遗漏了测试场景,团队会很不爽,怎么避免呢?结合的《软件测试之魂》提到分层测试的想法,想了想,还可以这么整:
图:分层测试图
对于目前的开发架构来说,一个用户故事,涉及这四个点,可以从这四个点入手来进行质量保证。如何做呢?单元测试就开发人员处理了;代码审查,测试人员可以参与和监督,其实就是要保证:将开发任务与提交到SVN的代码进行关联。这样一来,当测试人员检查开发任务的时候,就可以找到改变过的代码。我曾经试过从这些代码里面查看逻辑,找到分支场景,补充到测试用例里面。
在此期间,我还看过原创的《功能测试用例基础设计模型》,这个文档2天转发已超过150次,我也向所有同行推荐该测试设计模型实例化的测试用例,供大家消化该设计模型。想要的朋友可以去微盘下载。
我当时还借鉴了的《探索式测试》系列文章,包括:、 、。
当然这么多东西,我觉得自己还需要时间来消化。
继续测试之路——路上的风景
也许会有人问:有没有后悔做tester?
我过去也常问自己:做得开心吗?产品质量提升了吗?看到自己的前景了吗?找到high点了吗?
现在我可以回答:OK,我做到了,并且还可以持续做得更好。
可能有很多测试人员会问:测试人员的价值到底何在?在这里,我套用和整合@朱少民老师的一些术语,给出我的回答。
我认为,Scrum中测试人员价值应当体现在:
1、预防缺陷的手段,提高洞察力,增强业务知识。
缺陷在需求、开发前期就已经存在了,关键是用什么手段去挖掘出来预防。在sprint前获取到的需求,测试人员可以站在客户角度上来阐述自己的观点,与开发人员进行充分交流和讨论,使自己在用户体验、业务逻辑等等方面的经验充分体现出来。
2、在开发过程中,测试人员除了站在客户的角度进行测试,还应当提供更全面的质量反馈,包括代码质量的检查,这个可以通过redmine与SVN双向关联来做检查依据。目前整个过程测试人员尚未参与代码编写,应当参与并推进代码评审,将代码问题及时反馈出来;并且参与或者推进单元测试,检查单元测试状态(确保单元测试达到80%以上覆盖率,帮助开发人员开发出具有良好可测试性的代码),自始至终将质量问题及时反馈出来,保证在sprint的整个过程中质量受到足够的关注,提高质量改进的持续性和可视性。
3、随着版本任务的增加,每个版本回归测试的成本增加,可以适当考虑部分稳定功能进行自动化测试。当然,这是远景。
4、持续改进、反馈,充分发挥每个版本统计报告的作用,对缺陷进行分析,总结出一些规律,帮助开发人员建立良好的习惯,改进代码的质量。
测试人员,应当在自己的道路上看到风景,以前作为开发,写好一个功能,很high;测试人员也要有这种心境,提高了产品质量,预防了缺陷,很high。找到自己的high法,才可以把测试玩得更爽 ,我知道、、、,都玩得很爽,但是有一点:要爽得靠自己,多跟高手交流,有利于提升自己,但是不要刻意复制别人成功的经验,因为每个团队的模式和环境不大相同。
每个人离开自己熟悉的领域,投入到新的领域中(说实在软件测试也囊括了开发领域),必然存在一些迷茫,不知如何入手,身边如果有一个靠谱的高手,指点一下,眼前将会一片明亮。可惜,现实总是残酷的,往往很多时候,都要靠自己去摸索,只有经历了、深刻体会了,才知道如何改变,以及如何迎接新挑战,调整到恰到好处的心态。这样子,才能够稳健进入转型的轨道。不要害怕改变和投入,一定要坚定信念,在前进的道路上,多参考同行的成功经验:、、、、,迎合团队价值,不断修正自己的偏差,走出一条华丽的直路!
我很庆幸,经历了一个测试团队从无到有的创建,同时也帮助开发人员掌握了一些测试的基本技能,用于推进质量保证,让整个团队达到共识。现在的我,只是刚过了转型的痛苦期,测试工作也仅仅是刚刚开始,还有很多有意义的事情需要去做。
路漫漫其修远兮,吾将上下而求索!
可能感兴趣的话题
什么是sonar
关于伯乐在线博客
在这个信息爆炸的时代,人们已然被大量、快速并且简短的信息所包围。然而,我们相信:过多“快餐”式的阅读只会令人“虚胖”,缺乏实质的内涵。伯乐在线内容团队正试图以我们微薄的力量,把优秀的原创文章和译文分享给读者,为“快餐”添加一些“营养”元素。
新浪微博:
推荐微信号
(加好友请注明来意)
– 好的话题、有启发的回复、值得信赖的圈子
– 分享和发现有价值的内容与观点
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 翻译传播优秀的外文文章
– 国内外的精选文章
– UI,网页,交互和用户体验
– 专注iOS技术分享
– 专注Android技术分享
– JavaScript, HTML5, CSS
– 专注Java技术分享
– 专注Python技术分享
& 2017 伯乐在线ThreadingTest软件测试界顶层设计数字化软件测试时代技术概述_美眉女性网
ThreadingTest软件测试界顶层设计数字化软件测试时代技术概述
        来源:美眉女性网    点击: 次
长久以来,业界对软件测试一直存在或多或少的偏见,外行人更是认为软件测试可有可无,也大有人在。这个行业给人的印象是很好入门,经过简单的培训就可以上岗。相
长久以来,业界对软件测试一直存在或多或少的偏见,外行人更是认为软件测试可有可无,也大有人在。这个行业给人的印象是很好入门,经过简单的培训就可以上岗。相比开发岗位来讲,测试行业的发展空间看上去不那么乐观。绝大部分黑盒测试工程师通过一段时间的工作和学习后,很快就碰到天花板,在技术上很难突破,对职业发展更是茫然。软件测试行业流行的一个话题永远是如何从测试成功转型。
笔者看过一本专业测试书,作者的技术功底非常优秀,书中讲解了非常多的测试技术和测试工具,不过遗憾的是,作者也在该书的收官章节大谈测试转型的问题。因此,从某种程度上看,即使测试资深人士在潜意识中也认为:测试必须进行转型,否则永远冲不破瓶颈期到来的魔咒。这也从一个侧面反映了测试行业的诸多失望与无奈。
为何软件测试经过数十余年的发展仍然无法进入一个全新的境界,似乎整个行业多年以来也是原地转圈?随着经济的快速发展,软件人才需求越来越大,大量的软件测试队伍也在快速膨胀中。一些新的测试方法也在不停的创新和使用中,但是软件测试行业依然不愠不火,无法像开发一样得到重视、蓬勃发展。包括投资圈的投资老大们也表示,我们只看结果。只要软件能按时上线,后面让开发团队打补丁。上线后,不断暴露出来的各种问题让技术总监寝食难安:功能跳转有问题、闪退、崩溃等等。好容易度过上线生死劫,后期的维护问题又来了:开发团队的变动将导致软件维护工作千头万绪、无从下手。更新一些代码和逻辑,将很可能牵一发而动全军,而你面对无边的黑盒,无力感汹涌而至,你恨不得推倒重来。当然,你可以排除万难、另起炉灶重做一个,但之后的问题还是跟之前一样,需要面临着软件的过程检查、后续迭代挑战和沉重的心理压力。恰如盖世英雄没有一件称手的兵器。
痛定思痛,我们一定会领悟到,造成软件维护困难的深层次的原因在于:软件测试的整个过程和方法完全面对BLACK BOX。当你站在庞大的代码行面前,无论你怎样十指生风飞快的进行盲点排错,你还是无从知晓暗箱里的那部分到底是哪一部分影响了哪一部分?你把程序盲测了第500遍,你还是不能明查秋毫、一针见血的肯定软件缺陷已经在你的可控范围内了。听起来很残酷。
那么我们再简单捋一下那些不知死活的测试难点在哪里:首先,我们系统级的测试用的基本都是黑盒工具,就算你花了大价钱用了国外的白盒工具,那也只能止步于单元级测试;第二,测试过程中所产生的数据基本都是人工录入,数据的准确性无法保证,也这是为什么软件测试永远强调团队的职业素质和管理能力;第三,传统的功能测试过程极其不稳定,特别依赖于测试人员的业务能力和临场发挥能力,即使很优秀的测试人员也会因为状态问题而导致测试用例设计水准出现波动,更不要提有经验人员和经验欠缺人员的在测试质量上的巨大差别;第四,业界几乎将自动化测试作为解决测试质量的灵丹妙药,但实质上自动化测试无外乎是人的经验的机械执行而已,完全无法解决测试的根本症结。所有罗列种种,造成了整个测试行业不被理解,不受重视。若是程序报错,测试人员在第一时间承受白眼,被无声质问:“你们是怎么搞的,不是测试过了吗?你们难道是吃白饭的吗?“在这样的工作条件下,测试工程师们如同拖着一个个沉重的铁球,困难重重、举步为难、四面楚歌。
那么到底什么样的测试技术才能改变软件测试的尴尬境地?我们可以在车辆功能安全标准ISO26262安全管理生命周期的细则中总结出软件测试必须具备的基因:从项目管理上来看,测试工作需要达到两点:第一,实现开发与测试的交互管理;第二,实现可追溯的工程技术。从项目测试执行上来看,测试工作需要同时支持:静态测试和动态测试。
笔者是国家最早一批软件测试的专业硕士毕业,亦在软件测试业深耕多年,带领着近600多人的团队在各大集团公司做过各种复杂软件的测试任务,深知软件测试理论的博大精深、应用场景的精妙复杂。笔者曾经对国外白盒抱有希望,专研了解过国际最为领先的白盒测试产品,但令人失望的是:国外的白盒测试工具不仅太贵:一个LISENCE初级配置需要5万元左右,功能较齐备的至少需要20万,而且基本局限在单元级测试。另外他们一个致命的缺点是:成千上百的功能点使学习周期过长,企业培养一位白盒测试工程师的代价非常大,还不算白盒测试工程师的流动成本。在这个唯快不破的互联网纪元,陈旧的白盒测试工具显得过于拖沓、跟不上时代的步伐。
然而,最近软件测试圈出现了可喜的变化:测试小伙伴们对一款设计非常前沿的数字化软件测试工具ThreadingTest(以下简称TT)着了迷,它不仅登上了国际软件测试大会(ISTQB)的主讲堂,而且实际中,很多大集团公司的测试部门都在下载使用。它最炫酷的显著特点就是:测试无需源码,用黑盒的测试方法得出白盒测试报表。若是管理需要,软件完全可以为用户展示软件开发、测试与维护中的每一步变化的数字化追溯结果,项目实现数字化的验收与维护,对于TT简直是举重若轻的。那么,如此奇妙、炫炸天的功能是如何实现的?它还有什么其它的惊爆眼球的解决方案?那么,今天我就向大家简要介绍一下ThreadingTest穿线测试工具。
首先,ThreadingTest穿线测试率先实现了测试用例和代码的双向追溯。即运行一个测试用例以后,穿线测试可以通过程序自动的记录和显示这个测试用例执行的代码。如果测试用户关注某一些代码行,它可以追溯出那些测试用例在运行过程中跑过这段代码。我们都知道软件开发的两大核心人员就是开发和测试人员,这是完全不同的两类技术工种,开发和测试一直没有办法进行真正的信息化沟通。通过这个技术特性,每个测试工程师的每个测试用例都可以进行量化的分析和统计,这些量化数据既可以用来对测试工程师进行工作的考量,也可以提供开发人员和测试人员之间进行信息化的交流。
双向追溯技术记录了每个测试用例对应的程序内部的执行细节,细致到每个条件,分支,语句块的执行情况,可以理解为一个全景的调试器。开发人员可以通过双向追溯的结果去理解程序逻辑,进行软件维护以及进行可一致性的修改,因此,开发人员将很大程度上增加对测试人员工作的认同。开发和测试交流最头痛缺陷复现的问题可以迎刃而解,大大提升了测试和开发的交流效率。
第二,ThreadingTest可以高效定位隐蔽性极高的缺陷。黑盒测试,目前测试行业最主流的测试技术,即常说的“点点点”测试技术,这个测试技术之所以流行, 是因为其上手难度很低,在测试早期可以快速的发现大量缺陷,是一种能够以较低成本和较快速度发现缺陷的方法。但是经过大量实践总结,黑盒测试在发现70%明显缺陷以后,很快后劲不足,查错效率变得异常缓慢。在这个阶段,即使测试工程师编写大量测试用例也很难发现有效缺陷,因为黑盒测试无法对程序内部结构进行数据分析,测试后期其实产生的是大量的重复和无效用例。那么测试界公认的的技术之巅白盒测试技术又如何?我们发现,白盒测试正处在更为尴尬的境地:白盒测试完全无法被广泛传播与应用。除了测试工具价格高昂和学习成本代价巨大以外,传统白盒工具是以面对代码中的一个个函数单元为测试单位,为了满足覆盖率标准需要投入极大的人力。另外,从技术特性上来讲测试工程师必须要掌握编程语言,为软件测试从业者设置了重重障碍。现在的软件开发尤其是互联网企业对于测试的要求是快速上手,随用随测。因此白盒测试在这块使用基础上,既失去了先机,也没有用户根基。
Related News
                           
Recommended hot
Recommended Gallery
排行榜 TOP9
3秋装主流趋势 学明星时尚搭配测试工程师如何提升与转型【QQ群】_土豆_高清视频在线观看

我要回帖

更多关于 测试工程师要学什么 的文章

 

随机推荐