Can You Be A Programmer Without Learning Testing?

Written By John Sonmez

In today's video, I'll talk about being a programmer without learning testing. I received a question from a newbie programming telling that older programmers were saying things like “But how can you possibly say you're a programmer if you don't know nothing about testing?”

So, can you really become a programmer if you don't know testing? For some of you that might not know, Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation.

So, should ALL software developers learn Q&A and testing? is it really necessary for your formation?

Before you go on a learning binge, take a brief look at my course “10 Steps to Learn Anything Quickly

Transcript From Video:

John Sonmez: Hey, what's up, John Sonmez from simpleprogrammer.com. I have a question about QA, quality assurance testing. I don’t answer too many questions about that. Sometimes I do answers about QA. You can check out this video on Is Manual Testing Important or whatever I called it and people get pissed off. I don’t think this one will piss too many people off, but it’s a good question, right?

Basically I’m not going to read the whole email but this question is from Adam and he basically wants to know, as a software developer, he’s just getting into software development, just learning software development and some of his friends, probably mean well, experienced software developers are telling him, “Oh wait a minute dude, you can’t just get into software development. You’ve got to learn about testing, you got to learn about QA. You need to learn all that stuff as well.” He’s going through and taking some courses on PluralSight which by the way if you haven’t checked out my PluralSight courses you can check them out right here. If you’re on a mobile, of course the link will be below because annotations don’t work.

Anyway, he’s checking out PluralSight courses on test driven development and he’s feeling overwhelmed and he’s not sure whether or not to take this advice. I think your instincts are right on here in that you don’t want to get overwhelmed here. Maybe this isn’t so, so important.

Now, before everyone gets all butt hurt about this, let me just lay this out here. Quality assurance is important. Testing is important in general and it is important for software developers to know something about it, but they don’t need to have an in depth study or a deep detailed study. When you’re trying to learn software development, you need to know a little bit about everything. You’ve got to have a specialty and you want to go deep on some things, but as a well-rounded software developer you’re going to want to know a little bit about QA and testing, you’re going to want to know a little bit about dev ops and how build systems work and source control. You’re going to want to know a little bit about databases and IT, operations stuff. You’re going to want to know a little bit, but you can’t learn all that. You can’t be a master of everything. You can’t do it all. That’s one thing that you’ve got to figure out pretty quickly.

Here’s what I would suggest. Get a book on testing. There’s a book that I recommend. I can’t think of the name of it right now, but I’ll put a place holder here. I’ll put the link, you’ll see it here by the time we go through editing and this video comes out, but I’ll give you the book here. It’s one of the classic books and it kind of has a good overview of all of the testing and QA. Just get that in your head and you understand the process.

There is one thing that I would point out that I think is kind of important to understand which is that test-driven development is not the same thing as quality assurance or testing. Test driven development if you go through the whole old school software development waterfall methodology and requirements, it’s basically an appraisal activity. If you’re learning about software development lifecycle, appraisal activity is where unit testing comes and test driven development is because you’re actually, when you’re doing unit testing or when you’re doing test driven development you’re not actually really testing anything. What you’re doing is you’re clearly defining requirements and you’re creating a very unambiguous set of requirements because either the test passes or it fails and you’re finding that out right then. You’re not writing unit test or doing test driven development and discovering bugs, discovering problems, you’re preventing problems from going into the system whereas QA, traditional QA happens towards the end of the process.

Anyway, the good news is you don’t need to know everything about QA testing. The bad news is you do need to know something about it. Do a cursory study. Make sure that you understand the basic concepts, that you understand how QA is going to test your things, some of the terminology like black box and light box testing and boundary conditions, the very basics so that you understand that and understand how defects get filed in that process so that you can work on a team effectively. You don’t want to come into the work environment and not know anything about QA or testing and not know how to work effectively. I think that’s important but don’t get too overwhelmed. This is one of the things too hat you’re going to find is experienced developers are going to—they forget what it’s like to be a beginner. They’re going to go back and they’re going to tell you, “Oh you’ve got to learn this. You got to learn that.” They’re going to make you feel overwhelmed. They mean well. It’s just that they’re debating the higher level things because they’re beyond that point. Don’t let that get you down. Just keep going and keep learning and you’ll get there.

Anyway, hopefully that answers your question. If you like this video, if you haven’t subscribed already, subscribe to the channel. I'll talk to you next time. Take care.