翻译一篇文章:It's Difficult to Grow a Test Developer(成为测试开发工程师的艰辛)

 

以下文章是送给来poptest学习测试开发工程师的学员们,很多人想测试工程师很容易,培训也抱着轻松的状态来学习,但是我们这里学习的强度很大,每天早上9点开始到晚上8点,但是大部分时间可能超过晚上11点,因为Poptest团队在其他培训机构工作过,我们做过评估Poptest测试开发培训的第一阶段培训12天的课程相当于其他培训机构40天的课程量,在这里祝福那些辛勤的学员们,希望你们拿到好的offer,将来发展的更好。

原文:

A lot of testers begin life as software test engineers.  That is, they execute tests but don't do any (or much) programming.  The dream of many testers is to become a test developer or a developer.  Reciprocally, the dream of many test managers is to grow their testers into test developers.  Is this a realistic dream?  It can be, but probably isn't in most cases.

It's very hard to become a self-taught developer.  When we look out at the computer landscape we see plenty of self-taught programmers so it looks easy.  However, for each one that succeeds, many more fail.  Why is that?  Two reasons I suspect.  First is that some people are just not cut out to be programmers.  Second, and perhaps more important, is that it is really hard.  Becoming a good programmer* requires a lot of knowledge.  That means a lot of reading (online or books) and a lot of practice.  It turns out that it is a lot easier to desire to be a programmer than to put in the work to become one.

I covered the first point in my post entitled You Can't Teach Height.  Studies show that a good number of people, even those interested in programming, cannot grok it.  My suspicion is that this has to do with the abstract nature of programming.  This isn't to say that they can't program at all but they can't program well and as the difficulty goes up, more and more drop off.

The second reason is the one that gets a lot of people.  I've seen many try to make the leap and only a few succeed.  Those that did had to put in a lot of work on their own time.  Those that didn't often weren't willing to put in time outside of work.  Anyone desiring to go from tester to test dev with just the time they spend on the job is probably going to be disappointed.  It takes a whole lot of effort to become a competent programmer.  I laid out my recommendations in one of my earliest posts.  I call for learning not just the syntax but also the essentials of computer science.  You can program without these but if you don't pick them up you'll never be great.  Learning them, however, takes a lot of time and effort.

Most of the time employers won't give you that time.  They want you to be productive and anyone learning to program is not productive.  The simplest things take a long time.  There is almost always a more competent programmer on the team somewhere and if work needs to be done, it will be given to him.  It's not that most managers discourage learning to program.  They'd like it to happen.  They just won't often budget enough of your time to actually do it.

Now that I've said how hard it is, are there things that testers can do to increase their odds?  What about test managers?  I'll cover the issue from both perspectives in future posts.

* It is important to note what I'm talking about here.  It's not too hard for someone to teach themselves enough C# to write an ASP.Net page or enough perl to parse some log files.  That, however, is a far cry from being able to write a test harness, analyze performance, or automate the testing of a COM object.

翻译:

很多测试工程师从功能测试开始。即执行测试,但不写任何(或者极少)代码。很多测试工程师梦想成为一名测试开发工程师或者开发工程师。同样,很多测试管理者则梦想把他们手下的测试工程师培养成测试开发工程师。能实现么?现在来看可能性微乎其微。

很难自学成为一名开发工程师。当我们考察计算机业内情况时,我们能够找到很多自学的程序员,看上去好像很容易。但是,一些人成功了,更多的人却失败了。为什么 呢?我觉得有两个原因。第一,一些人不适合做程序员。第二,也许更重要的,自学太难了。想成为一名好的软件开发工程师需要很多知识。这意味着大量阅读(网上或书 上),大量练习。结果就是,做梦容易,实施起来很难。

原因1,我在一篇文章中已经说了。研究表明,很多人,对程序感兴趣,最终无法实现梦想。我认为这和程序的抽象本质有关。并不是说这些人根本无法编程,而是说他们不能写出好的程序。而且,难度越大,放弃的人越多。

原因2也困扰了不少人。很多人试图超越,但只有少数人成功了。成功的人是花了很多私人的时间。没成功的人则不愿在工作之外花大力气。期望从测试工程师成长为测试开发工程师的人,如果仅仅是在工作时间努力则恐怕是要失望了。要成为一名称职的测试开发人员或者开发工程师都要付出很多很多努力。在我早些的一篇文章中我给过一些建议。我建议不仅仅要学编程语言的语法,还要学习计算机科学的基础知识。当然,不学这些你也能编程,但做不到更好。而要学习这些,则要花费很多时间和汗水。

大部分时候,企业不会给你时间去折腾。他们想要员工们生产力高效,而正在学习编程的员工不会很高效。他们简单的事情都要做很长时间。当有事情要做的时候, 团队里总是会有更有效率的开发人员可用,因而事情就给他们去做了。并不是这些管理者不鼓励学习编程。他们也希望员工水平更高。但他们未必能预留足够的时间去 让你实际去学习。

我已经阐明这其中的困难,那么测试员可以做些什么来提高他们的成功机会呢?测试经理那方面呢?我将在以后讨论这些问题。

* 请注意我这里说的。人们可以自学C#来写个ASP.NET界面,或者自学perl来分析日志,这并不难。然而,这种程度离写出测试框架,分析性能,或者自动化测试COM对象,还差得很远很远。

翻译一篇文章:It's Difficult to Grow a Test Developer(成为测试开发工程师的艰辛)的更多相关文章

  1. Expo大作战(三十一)--expo sdk api之Payments(expo中的支付),翻译这篇文章傻逼了,完全不符合国内用户,我只负责翻译大家可以略过!

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  2. 翻译一篇SpiderMonkey GC的文章

    前言 这篇文章包含了对SpiderMonkey中Rooted<T>, Handle<T>的解释. 翻译自 https://developer.mozilla.org/en-US ...

  3. 翻译一篇关于jedis的文章

    翻译 自 http://www.baeldung.com/jedis-java-redis-client-libraryIntro to Jedis – the Java Redis Client L ...

  4. 翻译一篇英文文章,主要是给自己看的——在ASP.NET Core Web Api中如何刷新token

    原文地址 :https://www.blinkingcaret.com/2018/05/30/refresh-tokens-in-asp-net-core-web-api/ 先申明,本人英语太菜,每次 ...

  5. github使用-知乎的某小姐的一篇文章

    作者:珊姗是个小太阳链接:http://www.zhihu.com/question/20070065/answer/79557687来源:知乎著作权归作者所有,转载请联系作者获得授权. 作为一个文科 ...

  6. 关系型数据库工作原理-数据库整体框架(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>.原文链接:http://coding-geek.com/how-data ...

  7. 关系型数据库工作原理-数据结构(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...

  8. 关系型数据库工作原理-时间复杂度(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...

  9. 关系型数据库工作原理-事务管理(二)(翻译自Coding-Geek文章)

    本文翻译自Coding-Geek文章:< How does a relational database work>. 原文链接:http://coding-geek.com/how-dat ...

随机推荐

  1. [Kafka] - Kafka内核理解:消息的收集/消费机制

    一.Kafka数据收集机制 Kafka集群中由producer负责数据的产生,并发送到对应的Topic:Producer通过push的方式将数据发送到对应Topic的分区 Producer发送到Top ...

  2. iOS开发~制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a

    一.概要 平时项目开发中,可能使用第三方提供的静态库.a,如果.a提供方技术不成熟,使用的时候就会出现问题,例如: 在真机上编译报错:No architectures to compile for ( ...

  3. 安装grub

    安装windows后,grub不见了 先安装Neo进入Linux 两条命令搞定. 在root用户下输入: update-grub grub-install /dev/sda

  4. 创建Win32图形界面应用程序

    没有什么比创建一个Win32图形界面应用程序能让Win32汇编初学者更兴奋的了! 然而,对于像我这样没有代码便会陷入困境的人来说,看到下面的代码总能让人为之一振,百余行的代码使得Win32GUI编程并 ...

  5. xml中的SQL注入

    大家通常知道xml中大部分会导致外部实体注入,但是,xml也会出现SQL注入: 在xml中正常的sql语句写法有两种: 第一: <select id="selectById" ...

  6. 游戏UI框架设计(三) : 窗体的层级管理

    游戏UI框架设计(三) ---窗体的层级管理 UI框架中UI窗体的"层级管理",最核心的问题是如何进行窗体的显示管理.窗体(预设)的显示我们前面定义了三种类型: 普通.隐藏其他.反 ...

  7. FineUIMvc随笔(4)自定义回发参数与自定义回发

    声明:FineUIMvc(基础版)是免费软件,本系列文章适用于基础版. 不能忘却的回发 在上一篇文章中,我们对FineUIMvc中的回发进行了详细描述,目的是为了告诉大家: 1. FineUIMvc中 ...

  8. 在Signalr的Hub中写方法实现与安卓的数据交互

    简介: 实现数据实时刷新:SignalR 后台服务:.NET/WebAPI 为了减轻web的压力,将接口中接收数据的方法写到SignalR的Hub中 在此放一小段代码给自己加深下印象,博主有点健忘.. ...

  9. ReactiveSwift框架

    最近项目不多,所以就研究了一下RxSwift和RAS,RAC以前项目中用过了,在这里我就先简单的介绍一下什么是RAS.总述:在RAC 5.0这个版本,有了很大的改动,API已经重新命名.在和Swift ...

  10. 详解Swing中JTree组件的功能

    JTree组件是另外一个复杂组件,它不像 JTable 那样难用,但是也不像 JList 那么容易.使用 JTree 时麻烦的部分是它要求的数据模型. JTree组件的功能来自树的概念,树有分支和叶子 ...