Quite often I meet colleagues who are wondering why should they learn software testing/development theory. A couple of times I was accused of being too focused on theory instead of practice. All of that made me think a lot on this question and I came to a couple of conclusions, which I’d like to share with you.
How can you know something is wrong if you don’t know how it should be?
All our (QA Engineers) work is about telling people what is not working as expected (this is related to software, processes, approaches and so on). There is no chance to be a good engineer without knowledge of how it should be. As a simple example, you won’t run a test case without strictly specified expected result, right? Of course, when we are talking about QA it’s not that easy and in many cases there is no only one ‘right’ way, but, nevertheless, understanding of how it should work can help us to avoid reinventing the wheel.
Remember the difference between QA and tester?
This is a fun point. I’m sure, you understand the difference between Software Tester and QA Engineer roles. We name ourselves QA Engineers in Linkedin (just checked through my contacts, no testers, only QAs). It is near to impossible to be a QA Engineer without understanding how things should work, what practices and approaches exist, what are pros/cons of each approach and so on. The main idea of this point is - if you want to be a QA Engineer, not just a Software Tester, - learn theory.
Theory is someone’s experience
Some people are saying that theory is too far from practice, this is the main reason why they don’t want to learn it. My answer to that would be - theory does not exist without practice. Practice always goes first, then people collect it into some model - theory. In other words, a theory is someone’s experience, collected and structured for you. So by learning theory you can avoid going through the evolution from the beginning, you can develop yourself and grow as QA faster.
Theory cannot be boring if you are excited about this area
Well, it actually can be quite boring. But! If you’ll not just read it in a passive way, but try to think how you’ll use it on your real project, it becomes exciting. Active reading is the main point here. Sometimes you don’t agree with the author, but even in this case, it is useful, because you understand your opponent better. So next time when you’ll read some boring theory book, try to consider if it’s relevant for your needs and realities and apply it on practice!
Theory is nothing without practice
And last, but for sure not least. If you are learning theory and not applying it in practice, probably, you wasted your time. The theory is there for us to use. Don’t afraid of it, don’t keep it pure and make it an axiom. Modify it, change it to your needs in the current situation and current project. This will help you to grow and get better all the time. And probably at some point, you’ll write your own book with your very own experience to make some people get bored :)
What do you think about theory? Share your opinion!