软件测试修炼之道

第一章 综合素质

笔者以为,作为一名合格的测试工程师,综合素质是最重要的,综合素质也就是我们常说的软技能,它代表着一个人的潜力有多大,未来发展有多宽广。核心素质有以下五点:沟通、分析、组织、学习、心态,下面将会分别阐述。
沟通
  作为一名软件测试工程师,优先加强的应该是哪方面的沟通能力文字沟通能力。试想,如果连缺陷描述都无法准确清晰的用文字表达出来,还有开发愿意和你合作吗别是随着异地开发的项目越来越多,文字沟通的场景也会越来越多。
  当然,口头沟通也很重要,通过面对面或者电话语音交流是很直接的方式,这也是为什么许多鼓吹敏捷开发的团队喜欢坐在一起的原因,认为这样会降低沟通成本。但事实上,真的在任何时刻都能降低成本吗效冗长的会议大家都参与过,这里不做深入讨论。
  不知道其他人有没有这种体验,笔者偶尔在查阅测试用例库或阅读工作邮件的时候会忍不住哈哈大笑,语句不通错别字也就罢了,写的像聊天记录一样尽是口头语就让人很无奈了。
  所以,这里首先强调的是提高文字表达能力,其次才是口头沟通能力。
  另外要特别注意的是,沟通能力包含两方面,一方面是说(写),一方面是听(读),表达与聆听同等重要。笔者发现很多测试工程师表达能力不错,但聆听能力很差,有时候甚至忽略聆听。对方话没讲完就急匆匆的打断,即使听了两句也马上反驳对方,这是恶习,比抽烟喝酒打老婆还要恶虐。

分析
  早期我们认为测试的唯一工作就是发现问题,在很多文献资料上均有类似描述。但笔者以为,测试发展到今天,单纯的发现问题已不再是测试工作的全部,测试工作应包含发现问题、分析问题、解决问题三个方面。发现问题以测试人员为主开发人员为辅,分析问题开发测试共同完成,解决问题以开发人员为主测试人员为辅。
  在测试工作中每时每刻都需要用到分析能力,同时,分析能力是评估一名测试工程师是否优秀最重要的考核点。就像我们常说的缺陷预防一样,怎么预防已发生问题的产生原因能准确定位并把类似问题进行归类,对未发生问题能充分预知风险并准备应对方案,这就是我们追求的零缺陷,这些工作有不需要高度分析能力的吗br>   再例如测试计划,我们做计划是拍脑袋乱猜吗掐指算命吗定很多人回答不是,但实际上往往很多人就是这么做的。测试计划的制定过程是首先收集大量相关信息,然后抽丝剥茧在杂乱无章的信息中寻找到关键点并梳理清脉络,最终据此定出计划。我们说部分未来是可以推测出来的,就是这个道理。在做计划时会用到许许多多辅助分析的理论方法,这里就不一一阐述了。
  艾森豪威尔有句名言:“A plan is nothing,planning is everything.” Planning就是分析的过程。

组织
 刘备自己不会带兵打仗,为什么他下面的五虎将会死心塌地的服从他为五虎将会将兵,刘备会将将。“运筹帷幄之中,决胜千里之外”,这是帅才;“三军中取敌上将之首级如探囊取物”,这是将才。帅才也好将才也好,都离不开组织能力。这里说的是广义上的组织能力,不仅仅指团队管理、跨部门协调这些内容。
  不少人认为开发与测试的工作是对立的,经常会有冲突,没错,的确会有。出现冲突怎么办时候需要通过高度的组织能力对双方的合作关系进行充分的调整。人与人之间本来就会不断的有磨擦,有人的地方就有恩怨,有恩怨就有江湖,人就是江湖。那为什么有的人能左右逢源,让人感觉与他合作如沐春风呢就是组织能力的表现。
  再比方说,在真正的敏捷团队中,无论工作有多苦多累,无论团队成员构成有多复杂,整个团队都会有一个共同的表象,那就是“开心”,真正的敏捷团队一定是个开心的团队。所以笔者常说,敏捷团队的领导者一定要有非常强烈的人格魅力,能牢牢的把整个团队凝聚在一起,这种人格魅力往往就体现在组织能力上。
  有人也许会问,举办大型活动算不算组织能力的体现,当然算。但现在很多人白白浪费了这样的机会,在筹备过程中仅仅起到工作分解或传声筒的作用,可惜。

学习
 “一目十行过目不忘”,这种天才是有的,笔者非常羡慕有时甚至是嫉恨他们。普通人需要花费一两年才能掌握的知识,这些天资纵横的人只用一两天就可以了,并且很多技能仿佛天生就会,根本不用后天的学习。幸好这种人非常少,否则根据 会达尔文主义的观点,我们普通人没有任何生存空间。
  软件测试从业人员有个明显特点——复合型。“知己知彼百战百胜”,当我们要对某项产品进行测试,那么必然要先了解此产品的各种背景,这导致测试人员需要学习各种各样的知识,并且要不断的学习,快速的学习。入行几年后或许我们会感到掌握的技能杂而不精,此时需要深入的学习,全面的学习。
  学习能力往往被看作是一个人有无潜力的重要标志,针对软件测试工程师而言,“快速学习”尤为重要。笔者一直想寻找一种方法,能让测试人员不了解行业背景不懂测试技术也能正常开展测试工作,但可惜的是一直没找到。那么变通下,通过“快速学习”是否也能达到类似的效果呢该是可以的。
  学习最核心的是什么之者不如好之者,好之者不如乐之者。
心态
  多年前笔者读过一篇文章——《写给浮躁的IT同仁》,读后深有同感。一个浮躁的 会造就了众多浮躁的人,软件测试本该是个做学问的领域,可惜啊可惜。
  人往往是自私的,荀子曰:“人之初,性本恶。”笔者深以为然。绝大多数人都认为自己是最可怜最委屈最被不公正对待的,扪心自问真是这样吗教有个观点“明心见性”,这是笔者孜孜不倦所追求的精神境界,与大家共勉。
  大家应该都明白,没有绝对的公平 会,从来就没有,纵观古今中外历朝历代什么时候绝对公平过们不要一味的怨天尤人,如果改变不了环境就努力的去适应它,这是升斗小民应该具备的心态。
  先做人后做事,不论是综合素质还是专业技能,在所有能力中,心态是最重要的。但要特别说明下,心态和态度不是一码事。此外,有人认为工作态度高于工作能力,笔者并不赞同这种观点,更有甚者把工作态度与是否听话混为一谈这就更扯淡了。
  国人讲究“君以国士待我,我必国士 之”,一颗平常心加上一颗感恩心,足够了。

第三章 能力修炼

修炼要素
每日至少抽出30分钟关注测试行业新闻,包括各种业内动向,技术前沿等。推荐国内 站:51testing、ITPUB、Javaeye、infoq、博客园、Oracle中国用户组……。
1.每日写一篇博文,200字左右,记录当日工作完成情况及次日需完成工作,流水帐也可。
2.每晚入睡前回顾当天表现,检讨一言一行。
3.每日清晨计划当日需完成工作并确定优先级。
4.每日早晚对着镜子微笑一次。
5.每日阅读,书的种类不限,不一定是技术类。
6.每日选取一位从来没交流过的同事进行交流。
7.每日至少编写30行代码。
8.每日收看新闻联播,重播也可。
9.每日洗澡。
10.至少每隔两日看一集推理类电视剧,推荐《金田一少年事件簿》。
11.至少每隔三日参加一次益智分析类游戏,推荐“围棋”、“三国杀”。
12.每三日研究一个技术类工具并发表研究文章,推荐从Excel开始研究。
13.每周至少与朋友外出活动一次,推荐极放松的活动,例如喝酒。
14.一周内不要连续两天加班。
15.每周至少一次与上级开展交流。
16.每月至少单身外出一次,推荐西湖边静坐。
17.每月至少储蓄20%当月收入,至多储蓄60%。
18.测试工程师的一天
19.起床
20.洗漱,计划当天工作
21.出门,面对镜子给自己个微笑
22.早餐,什么都不要想
23.公司,开机接收邮件、消息
24.浏览业内新闻
25.大多数人已到公司,开始当天工作
26.中饭,小饭桌上别谈工作更别一副忧国忧民的样子大谈国计民生
27.技术研究并沉淀
28.继续本日工作,编码,主动与没交流过的同事进行交流,组织晚上活动
29.晚饭,总结本日工作
30.撰写当日工作博文
31.加班
32.三国杀
33.回家,洗澡
34.中央新闻频道,喝酒
35.电视剧,喝酒
36.读书,喝酒
37.上床,自我反省
38.呼呼呼呼
 注意:以上主要表达一种思路,勿纠结勿全部模仿。
进阶目录
通常情况下,能力提升是一个渐进过程,但提升到某一高度遇到瓶颈时则需要突破。这有点类似大乘佛法里所说的,从渐修到顿悟,再从顿悟到圆修。本身中国佛教界对此就有不少争论,南方慧能系(称南顿)与北方神秀系(称北渐)分别讲究顿悟与渐悟,而在顿悟中又有道生顿悟、禅宗顿悟,所以说每个人的进修道路是不尽相同的,也不一定有高下之分,主要看对自我认知是否清晰,在不同阶段需要何种提升方式,这才是重点。
  在个人能力提升的道路上,上级主管的支持及培养是非常重要的。好主管会因地制宜因人而异,每次安排超出其能力一点的工作,让其不断的有挑战。同时在实施过程中,主管会默默支持,与其一同制定解决方案并跟进实施过程,最终让其独享成功的成果与喜悦。
  此外,每人擅长的领域不同,有的人所具备的能力很契合当前工作,因此会成为主攻手,有的不太符合只能做辅助。但请注意,在多方协作工作中,必然有人在前攻城拔寨做明星,有人在后默默耕耘做后勤,这些不能单纯的以高下来衡量,况且说不定哪天换成其它工作,这主次之分就倒过来了。

以下是能力渐进提升的阶梯目录,从前到后有顺序之分。
1.基础:前文所说的基础技能必需掌握,推荐Java+Oracle+Uml组合。掌握程度一般不用太深,测试工具开发职位的除外。特别注明,Junit是一定要掌握的。市面上书籍很多,笔者推荐《Java编程思想》、 《Oracle 9i 参考手册》、《UML精粹》。

2.专业:前文所说的测试方法、测试工具必需掌握。其中对于测试工具,如果开源则尽可能阅读源码。推荐书籍《计算机软件测试技术》、《软件测试艺术》、《软件测试》。

3.实战:前文所说的测试模式必需掌握。至少全程参与二十次项目,至少参与两次50人以上规模的项目,至少编写测试用例10000个,至少发现缺陷5000个,至少编写测试脚本20000行,至少担任过三次测试负责人,所有产品发布后遗漏缺陷总数小于50个并呈收敛趋势。推荐书籍《设计模式》、《人月神话》、《软件测试经验与教训》。

4.沉淀:深入了解质量控制原理,对功能性(含安全)、效率、易用性、可移植性、可维护性、可靠性等质量特性均有实际测试经验。推荐书籍《质量无泪》、《质量免费》、《ISO9126》等所有软件质量相关国标。

5.领域:选取一至两门测试技术作为长期研究的方向,中途可适当调整,这里说的长期指的是五年、十年及以上,在这个层次重点是要做到专精。推荐方向“云测试”、 “基于模型测试”。

后记

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年5月4日
下一篇 2020年5月4日

相关推荐