与六年测试工程师促膝长谈,他分享的这些让我对软件测试工作有了全新的认知~

Posted 测试大大怪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了与六年测试工程师促膝长谈,他分享的这些让我对软件测试工作有了全新的认知~相关的知识,希望对你有一定的参考价值。

不知不觉已经从事软件测试六年了,2016年毕业到进入外包公司外包给微软做软件测试, 到现在加入著名的外企。六年的时间过得真快。长期的测试工作也让我对软件测试有了比较深入的认识。但是我至今还是一个底层的测试人员,我的看法都比较狭隘,如有错误还请批评改正。

软件测试人员应该居安思危

每当经济不好,公司业绩不好的时候,公司都可能进行裁员。首先裁的就是测试人员。因为测试人员的技术水平相对来说比较低,容易被替代,招起来也比较容易。公司往往先拿测试人员开刀。

身为测试人员,虽然我们平常的工作大部分都比较安逸。但是千万不能温水煮青蛙。应该自强不息,要像开发人员一样,不断学习,提高自己的编程水平。这样就算被裁也能很快找到新的工作。

测试应该比开发更熟悉业务需求

测试人员的水平主要体现在测试用例的设计上。要设计出全面,覆盖广的测试用例,需要测试人员对自己所测试的项目的业务需求非常熟悉,甚至要比开发人员还要熟悉。

如果是测试银行系统,通信行业,或者ERP软件。这些业务知识非常有用的,学习起来比较有激情。

要做到精通业务需求谈何容易?

  •   1. 要熟读功能需求文档,任何有疑问的地方都要去和PM确认。
  •   2. 把自己当成最终用户,经常使用自己所测试的软件。模拟用户的行为。
  •   3. 熟记软件的每个功能。

假如倒霉碰到一些又没用,又繁琐的软件,真的是不想去学习它的业务(出了这个公司就再也用不到的业务)

学会如何跟开发相处?

测试人员必须跟开发人员密切合作, 所以跟开发人员搞好关系是相当重要的。

1. 和开发人员成为朋友。

熟悉了干啥都方便。

2. 不要打扰开发人员

看到开发在聚精会神写代码的时候,千万不要去打扰人家。写代码需要集中精力,如果被打扰,就会中断思考。

3. 集中问问题。

把需要问的问题都总结起来,集中起来问开发,这样能节省大量的时间。

4. 写好Bug,不被开发人员烦。

如果开发人员看到一个Bug 描述不清楚,还无法重现,他肯定会骂测试人员。所以测试人员一定要写好Bug,描述精确,简洁,没有歧义,详细简洁的重现步骤,加截图。

测试人员应该懂一些基本的编程

你的产品是用Python开发的,那测试人员应该有Python的入门知识。你测试web程序,你起码要了解html,CSS, javascript, Jquery吧,否则你测了一两年web程序,都不知道这东西是怎么做的,悲剧了吧。

只有懂代码你才能和开发人员交流,不被开发鄙视。

测试人员搭建开发环境

产品的代码是最好的学习资料了,我们不能总跟在开发屁股后面做测试,不能老是等开发build一个版本后,我们就测试这个版本,开发check in了什么代码,测试人员一点都不知道。偶尔我们应该了解下产品代码是怎么设计的,了解下开发人员是如何修复bug的。说不定编程水平高了,还能帮开发做code review.

使用源代码工具把产品代码check out到本机。经常看看代码,经常看看开发修复bug时候提交的代码.

写文档是测试人员的核心能力

我记得我以前的test lead说,之所以她能当lead, 是因为她很会写文档发邮件。写文档需要总结归纳的能力,还要逻辑清晰。她非常擅长分析几十页的Spec,写出几十页的测试计划。她还非常擅长汇总测试报告。每天将完整,清晰,漂亮的测试报告发给各个组, 让公司所有的人都能清晰的看到测试组的工作。

在她的带领下,我们总结出很多文档,比如,”New hire checklist”, “on boarding traning”, 测试工具使用的文档,等等。

写多了博客后我发现我写文档能力提高了很多。

测试后期应该做两天交叉测试

交叉测试,就是指两个测试工程师,互相交换下测试的项目。这样做有很多好处。

  •   1. 有利于找出bug, 测试工程师测久了自己的项目,容易形成眼盲。会对一些Bug熟视无睹。
  •   2. 有利于知识和业务共享,避免人员离职,请假,造成无人测试的情况。
  •   3. 测试思想不一样,可以互相找出很多问题

测试人员的瓶颈

手动测试工作做个两三年,基本上就能掌握测试需要的大部分知识,如果没有爬到test lead的位置, 很多人就感觉到发展瓶颈了,每天重复测试,学不到东西,很快就会对测试工作失去激情。

学不到东西,技术水平低下,是测试这个行业最大的毛病。

如何突破瓶颈?这个是重中之重。

尽量实现自动化

一点要抽时间尽量把自己的测试工作实现自动化,可以节省测试的时间,提高自己的技术水平,也可以避免老是重复测试。

自动化测试VS手动测试

现在很多公司招测试的要求越来越高,很多好公司招senior QA,都要求5年工作经验以上,掌握一门编程语言,有丰富的自动化测试经验。当然自动化测试的待遇也会比手动测试好很多。

自动化是必然趋势, 只会做手动测试的人,以后肯定会失去竞争力。

关于面试

关于测试理论,测试方法什么的鲜少问到。我个人觉得测试人员不需要拘泥于这些经典测试的东西。比如测试方法,能发现问题,测出风险的就是好方法咯。

好测试可以和pm开10分钟会就写出漂亮的测试用例。好测试可以报出一个开发都不需要疑惑的bug。

所以功能测试让你写个测试用例,报个bug就够了。如果想要适当提高薪水,那你就需要会Python,会Jmeter,会Selenium等。

在面试的过程中,大部分会问对于职业的规划。其实我本人对于职业规划也很迷茫。从目前业内测试这个情况看来,很少有公司关心测试人员的职业发展,它只需要你安安稳稳地做测试。所以很大部分是需要你自己来把握的。

所以我个人的规划是坚持不懈地把自身属性练高,附加属性随项目变化,当然也是越高越好。打铁还需自身硬。

共勉之……

说了这么多,当然我还有几点建议,而且是有优先级的建议:

  •   1、健康第一,任何时候别牺牲自己的健康;
  •   2、家庭第一,任何时候不要为了工作放弃家庭;
  •   3、趁着年轻多学习;
  •   4、工作为了自己,不是为公司;
  •   5、工作就是工作,也只是工作。

职业发展的酸甜苦辣,人生百态,冷暖自知!我也重新梳理了测试行业,修正了个人发展目标。其间的经验、心得体会、方式方法希望与大家分享探讨,互相帮助,互相勉励,一起共度测试生涯!

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

华为6年经验测试工程师,做软件测试的一些感悟

不知不觉已经从事软件测试六年了,从毕业到进入外包公司外包给微软做软件测试, 到现在加入著名的外企。六年的时间过得真快。长期的测试工作也让我对软件测试有了比较深入的认识。我就跟大家分享一下我做测试的心得,如有错误还请批评改正。

 

软件测试人员应该居安思危

 

每当经济不好,公司业绩不好的时候,公司都可能进行裁员。首先裁的就是测试人员。因为测试人员的技术水平相对来说比较低,容易被替代,招起来也比较容易。公司往往先拿测试人员开刀。

 

身为测试人员,虽然我们平常的工作大部分都比较安逸。但是千万不能温水煮青蛙。应该自强不息, 要像开发人员一样, 不断学习,提高自己的编程水平。这样就算被裁也能很快找到新的工作。

 

测试人员应该比开发人员更熟悉业务需求

 

测试人员的水平主要体现在测试用例的设计上。要设计出全面,覆盖广的测试用例,需要测试人员对自己所测试的项目的业务需求非常熟悉,甚至要比开发人员还要熟悉。

 

如果是测试银行系统,通信行业,或者ERP软件。这些业务知识非常有用的,学习起来比较有激情。

 

要做到精通业务需求谈何容易。

 

  • 要熟读功能需求文档, 任何有疑问的地方都要去和PM确认。
  • 把自己当成最终用户, 经常使用自己所测试的软件。模拟用户的行为。
  • 熟记软件的每个功能。

 

假如倒霉碰到一些又没用,又繁琐的软件, 真的是不想去学习它的业务(出了这个公司就再也用不到的业务)

 

学会如何跟开发人员相处

 

测试人员必须跟开发人员密切合作, 所以跟开发人员搞好关系是相当重要的。

 

1. 和开发人员成为朋友。

熟悉了干啥都方便

 

2. 不要打扰开发人员。

看到开发在聚精会神写代码的时候,千万不要去打扰人家。写代码需要集中精力,如果被打扰,就会中断思考。

 

3. 集中问问题。

把需要问的问题都总结起来, 集中起来问开发,这样能节省大量的时间。

 

4. 写好Bug,不被开发人员烦。

如果开发人员看到一个Bug 描述不清楚,还无法重现,他肯定会骂测试人员。所以测试人员一定要写好Bug,描述精确,简洁,没有歧义,详细简洁的重现步骤,加截图。

 

测试人员应该懂一些基本的编程

你的产品是用java开发的,那测试人员应该有java的入门知识。你测试web程序,你起码要了解HTML,CSS, Javascript, Jquery吧,否则你测了一两年web程序,都不知道这东西是怎么做的,悲剧了吧。

 

只有懂代码你才能和开发人员交流,不被开发鄙视。

 

测试人员搭建开发环境

产品的代码是最好的学习资料了,我们不能总跟在开发屁股后面做测试,不能老是等开发build一个版本后,我们就测试这个版本,开发check in了什么代码,测试人员一点都不知道。偶尔我们应该了解下产品代码是怎么设计的,了解下开发人员是如何修复bug的。说不定编程水平高了,还能帮开发做code review.

 

使用源代码工具把产品代码check out到本机。经常看看代码,经常看看开发修复bug时候提交的代码。

 

写文档是测试人员的核心能力

我记得我以前的test lead说,之所以她能当lead, 是因为她很会写文档发邮件。写文档需要总结归纳的能力,还要逻辑清晰。她非常擅长分析几十页的Spec,写出几十页的测试计划。她还非常擅长汇总测试报告。每天将完整,清晰,漂亮的测试报告发给各个组, 让公司所有的人都能清晰的看到测试组的工作。

 

在她的带领下,我们总结出很多文档,比如,”New hire checklist”, “on boarding traning”, 测试工具使用的文档,等等。

 

测试后期应该做两天交叉测试

交叉测试,就是指两个测试工程师,互相交换下测试的项目。这样做有很多好处。

 

1. 有利于找出bug, 测试工程师测久了自己的项目,容易形成眼盲。会对一些Bug熟视无睹。

2. 有利于知识和业务共享,避免人员离职,请假,造成无人测试的情况。

3. 测试思想不一样,可以互相找出很多问题

 

测试人员的瓶颈

手动测试工作做个两三年,基本上就能掌握测试需要的大部分知识,如果没有爬到test lead的位置, 很多人就感觉到发展瓶颈了,每天重复测试,学不到东西,很快就会对测试工作失去激情。

学不到东西,技术水平低下,是测试这个行业最大的毛病。

如何突破瓶颈?我也不知道。

 

尽量实现自动化

 

一点要抽时间尽量把自己的测试工作实现自动化,可以节省测试的时间,提高自己的技术水平,也可以避免老是重复测试。

 

自动化测试VS手动测试

现在很多公司招测试的要求越来越高,很多好公司招senior QA,都要求5年工作经验以上,掌握一门编程语言,有丰富的自动化测试经验。当然自动化测试的待遇也会比手动测试好很多。

 

自动化是趋势, 只会做手动测试的人,以后肯定会失去竞争力。

 

自动化测试的技术和开发用到的技术相差太远

以前很多同事想由测试转开发,现在几年过去了,还是没转成,他们原先想利用自动化测试的技术积累,转去做开发。哪知道自动化测试用到的技术跟开发用到的技术相比,实在是相差太远。

 

测试转开发?难

努力学习编码,然后用于测试,才是正道

 

做测试最郁闷的是无法听懂开发人员讨论技术

有时候跟开发人员一起开会, 会议上开发人员都热烈讨论。而我做为测试人员基本上听不懂这群开发在说什么,根本插不上话。很多会议我甚至都没说过一句话。

 

优秀的测试人员非常稀少

想把测试做好非常不容易, 优秀的测试人员需要很广的知识面,良好的沟通能力(不但要和开发人员和项目经理打交道,还要跟其他组的人交流)。丰富的测试经验,对测试工作有极大的热情, 耐心。还需要测试人员有丰富的业务知识,还要会写代码。

代码写得好的人,肯定就不会做测试,而是做开发去了。

 

大部分的测试经理都是会敲代码的

 

我发现我的几任上司都是会敲代码的。他们既能开发又能测试,啥都会,能给手下的测试人员提供技术支持。

假如一个测试经理啥技术都不懂,对内hold不住手下的人,对外其他组的人不鸟你。

以上是关于与六年测试工程师促膝长谈,他分享的这些让我对软件测试工作有了全新的认知~的主要内容,如果未能解决你的问题,请参考以下文章

6年测试工作,迷茫了····

分享一下我做软件测试这些年的心路历程

原创软件测试工程师-工作感悟-日常所需技能 分享

学姐长谈涨薪之路:测试这一岗位究竟每天都干什么?

长谈:关于 View Measure 测量机制,让我一次把话说完

六年Android开发的技术回顾与未来展望