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

时间:2024-01-04 23:48:44

翻译一篇文章: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对象,还差得很远很远。