How can I get a career in programming?

Is it necessary to have a good knowledge of programming to get into a Testing career?

  • Answer:

    Some of the best testers I've known did not graduate in Computer Science, or have a lot of programming background and they seem to be doing just fine.  In my opinion, it's easier for testers (as opposed to developers) to get away without knowing a lot of programming initially, but it's definitely helpful, and in many cases required to eventually learn as your career progresses.  Of course if you want to get into a career like testing, knowing more about programming will only open more doors for you in the future. Whether or not you need to know a lot of programming before pursuing a career in testing also depends on what kind of software testing you're getting into and where.  In my history, I have seen two major categories of testers: QA (Quality Assurance) Testers and SDET's (Software Design Engineer in Test).  QA is typically higher level testers who verify functionality and completeness while SDET is typically lower level testers who understand the inner workings of the product.  These definitions are by no means universal as I've seen job descriptions for each that sound exactly opposite of what I just described, but you get the picture.  If you don't have a strong background in programming, I'd say that it would be easier to start in a QA-like job.  This is probably not the norm, but I actually know a really good developer who was previously a metal welder that knew nothing about computers, and he started his career in QA. The thing about programming is that it's something that can always be learned.  As a new tester, what's probably the most important in the beginning is knowing how to think logically and attack problems systematically.  You also have to keep an open mind to "play" and learn more about the software you are using in order to discover how it works and why it works that way.  I think if you have those fundamentals, the rest will fall in line naturally.

Elliott Hamai at Quora Visit the source

Was this solution helpful to you?

Other answers

There are certainly companies that will hire non-programmers and non-engineers to testing positions, so the short answer to your question is simply "no." I would, however, question the effectiveness of such organizations, and whether a career in one is possible or, more importantly, desirable. They seem to get stuck in a mind-numbing cycle of changing test strategies, hiring practices, tools, and processes, all in an attempt to fix the various ways the organization is broken (Long hours, bad relations with developers, inconsistent testing, poor tests, etc.). Retention is usually poor, which simply compounds the problem. "Organizations that do not remember the past are condemned to repeat it," or something like that. First, effective testing requires automation. Automation is not everything, but it's an important tool that frees up time for exploratory testing. Automation is a software engineering effort, and will certainly require you to understand programming concepts. Like said in his answer, you can always learn to program, especially if you can already think logically in the literal mathematical sense. Most automation is done using scripting languages, so that also reduces some of the complexity faced up front. On the other hand, the more you know and understand, the better your automation will be. This seems obvious, but in my experience there are people, especially managers in larger organizations, that cannot grasp this and will forever put people with little or no programming experience in charge of automation efforts. Second, if you're testing HW or SW, knowledge of how the subject under test may be implemented is very valuable. Regardless of whether you're white- or black-box testing, understanding the technical nature of what you're working with will help you write better tests, find more defects, and communicate better with developers. There is a school of thought that claims there's value in ignorance, but I find that idea somewhat dubious. Testing should be a systematic and methodical venture with repeatable processes and predictable results. In summation, even though it's possible to be a tester with no programming knowledge, I'd strongly encourage every tester to have a basic understanding. You don't need to be an expert, as that takes time, but there are so many resources available today, many of them online and free, that there's no reason not to jump in.

Trent Peterson

My answer for this is, It depends on your context. Is there a need for you to read code? Are you testing the code? Testing is generally defined as a process that allows you to gather new information about the product that is under test. I do want to clarify the basic difference between automation and testing itself. Automation in its simplest sense gives you the ability to playback an already known set of steps against an existing product. Automation can't find new bugs. Automation can only confirm that an old bug hasn't happened again. To me this is not testing, this is checking. Automation is only as good as the Automator's understanding of the product at the point in time the automation script was written. So based on this logic, automation is no better than clicking ... it can definitely click faster, but can't use judgement as most humans have. Going back to the question, it will definitely help to know a programming language to help you in being more effective in your testing, but at the end of it all, the relevance of that knowledge still depends on what you want to do with that programming language. There are indeed two kinds of testing. The ones that require human judgement and the use of the human brain and the others who don't bother thinking.

Perze Ababa

Two different kinds of testing. Clickers:  These are people who click around the app and follow a written test plan and script.  No programming required.  Although it often helps. QA Engineers: These people are writing automated tests using a framework. There are varieties of this as well (white box, black box, etc).  Programming required. Personally, I am not a huge fan of clickers.  It's just doesn't scale.  It is often thought of as less glamorous an engineering position, but it is worth every bit as much as a feature engineer. I could go into more detail, but I hope this answers your question.

Glen Lipka

Let me try to answer this question in a different way. Let me apply the heuristic "Mary had a little lamb" and write based on that. http://www.construx.com/File.ashx?cid=1541 "Is it necessary to have a good knowledge of programming to get into a Testing career?" Is it necessary? It depends on who is hiring? If they mandate that its necessary, yes, it would be necessary. If it depends on individual - there are cases where the candidate did not know anything about programming but was hired as a tester. I am speaking from my own experience. Good knowledge: How much is good. Good according to whom? Good according to a person who hires you, according to you, any institution, any community, any certification? Knowledge: Is it ok if I know the concepts? Will I qualify? What if I don't know the concepts well but I can complete the assigned work? I know in theory but never implemented that knowledge. Is it ok? I have real-time experience in programming but never went to any school or university to learn it. I learnt on the job - real life experience. Do I qualify? Programming: http://en.wikipedia.org/wiki/Computer_programming  Computer programming (often shortened to programming or coding) is the process of designing, writing, testing, debugging, and maintaining thesource code of computer programs. Notice the word testing in the definition from Wikipedia. Do we really mean all of these when we use the term "programming"? get into So, its all about just getting a job? Clearing an interview? Or is it permanent employment after the interview? Testing Very important what we mean by testing... There is slight or major (depending on how you look at it) confusion over the terms testing, checking, quality assurance. A very good post by Michael Bolton: http://www.developsense.com/blog/2009/08/testing-vs-checking/ http://www.developsense.com/blog/2010/05/testers-get-out-of-the-quality-assurance-business/ Career Does career equal a job or goes beyond that? Will you think about testing after your day job too? Many more questions than answers... In short: It depends!

Ajay Balamurugadas

While I do not personally believe that it is necessary or even valuable for all testers to know how to code, the harsh reality is that the vast majority of testing positions list programming at least as a nice-to-have if not a requirement. So while it is true that it is not necessary to know how to programming in order to do testing, it turns out that in 4 out of 5 cases (at least in the US), knowledge of programming will give you an advantage in getting hired. See the study I published on my blog about this: http://testobsessed.com/2011/12/2nd-annual-qatest-job-posting-study/ This statistic makes me sad, but it is what it is, and hiring managers are allowed to want what they want.

Elisabeth Hendrickson

I wrote about it in early 2008: Should testes learn programming? http://www.testingperspective.com/?p=46 In short, it is not necessary, but eventually a tester must learn programming IMO. It opens doors to a lot of opportunities for understanding and investigation. It is one of industry most known and best kept secret. Industry wants testers with programming knowledge, but because of majority of existing testers not knowing it, for political reasons, the role of programming is downplayed. I could be biased about it because of my own career choices. I could also be biased because of the companies where I worked in last 10 years. I could be biased because all my existing clients who re-iterate this point. I could also be biased because of one of the companies I founded that is a team of Java/Python programmers who test. I could be further biased because of my second company which builds testers in programming and technical areas.

Rahul Verma

There are several ways you can test  a software or any product. Required knowledge is depends on what testing you do. 1. Is the product is easy to use? This kind of testing tests how  a customer will use the product. 2. Will the product work faster if thousands of customers accessing it? This is performance/load/stress testing 3. Is the product is working as expected? Normal functional testing. Either by clicking/checking/automation etc. All the above needs different kind of understanding to test the software. If testers doesn't know any programming or underlying code, it is not possible to do load testing but they can do acceptance testing. In higher levels, doing static code  analysis, checking the code coverage etc needs  programming skills.

Raja Sankar

I really don't think so that a tester should have a good knowledge of Programming. A tester should have mindset as he is going to use the product (which is in making) as a Consumer. He should have a clear perspective of customer usage.Because Consumer always buys the product which serves his purpose.

Kapil Garg

I don't think that these days, we need much coding knowledge or experience to be a tester because new generation testing tools provide enough goodies even for a novice tester. Testing these days has become completely codeless interface. You can refer this article for my view on the same topic-    http://businessanalystlearnings.com/blog/2013/7/7/can-a-tester-without-coding-skills-perform-testing

Prashant Chambakara

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.