I got the following question in my mentoring section:
“Where do I start in learning testing?”
Obviously, this is very generic question, yet I think I have some stuff to offer on it. So, I decided to reply to it publicly. Here’s a short list of things you can do to start with learning testing.
Learning testing is not for everyone.
The way that the question is asked, uncovers the hidden assumption that there’s one definitive answer, something like: go to course X, or get certified, or read that book, watch these videos. Problem is, the answer is not that simple. All of these and none of these will make you a tester. What the hell do I mean?
In my short experience as teacher in testing, I met a lot of people who decided to switch their current profession to testing. Sometimes, I meet incredible, inspiring fresh minds that seem to go through material and learn with the speed of light. These are the people with natural aptitude for testing, the ones that really have passion to do it.
There’s another group of motivated students, but they are motivated for the wrong reason. Some of the wrong reasons, that they use as their motivation is:
- Better perspective than their current job
- Better pay rate
- The IT domain seems hot, right now
- It’s a trend
- Testing seems easy, why not
- Tester’s do nothing, but play with software and get large salary for that
Some of these are exaggerated and mostly wrong assumptions about testing, from people who are not involved in it, or don’t care to get involved. Unfortunately, I can not stress enough on the fact that if you are not passionate about what you are doing, you are going to simply be disappointed.
The truth is – testing is hard, testing is an expertise and it takes time, practice, a lot of learning and passion. So, if you are after short-term goals and solutions, if you lack passion and are only after the higher salary, you can stop reading here, there’s nothing more for you in this article.
If you are still here, here’s some interesting notes.
The proper mindset
Testing is in its core a specific mindset, this is what makes us different from developers, PMs, Dev Ops and all other roles involved in a software project.
Here are some questions that you might find useful answering yourself in order to determine if you have the proper mindset?
- Are you able to sit at an electronic device for a full day and not feel like crap? Some people just find this boring. It’s totally OK, but it’s part of our job.
- Are you passionate about technology? Do you like poking software and learn new technologies?
- Are you able to find something wrong in literally everything around you? This might seem like hell for your partner and your friends, but, believe me, it’s a blessing for your testing career. 🙂
- But the above is not enough, for every “wrong” thing that you find in your surroundings, can you come up with at least 3 ways to make it better? This is what we call quality driven mind-set.
- Are you willing to learn constantly in order to improve you testing and your understanding of the product?
If any of the answers of the above questions is not “Yes”, may be you lack the proper mind-set to become a tester. If you do have it, you can proceed with.
Common IT knowledge.
This is still not related to testing, directly. In order to be successful in testing you need a good amount of common IT knowledge. This might include:
- Networking – how networks work and what protocols are used
- Technologies, file formats, tools.
- Linux and various operating systems – most of the time, dealing with servers, you will have to log to them via terminal, so basic Linux skills are a must.
- Databases basic knowledge and basic CRUD operations.
- Coding – this is useful if you decide to dive into automation, but also for the purpose to learn what is an application composed of, what states it goes through, etc. Nobody says you have to be a good coder, but being able to read and understand code, even write it, is always an advantage.
If you are interested in more information about it, few years ago I made a series called QAshido – path of the software tester, which was intended to provide what skills or “virtues” a future tester is meant to have. Although it’s a bit outdated and hopefully I progressed since then, you might find it useful to take a look at it.
Non technical skills.
I don’t think these are to be learned, but there’s plenty of room to improve them. You can take a look at Software testing is… part 2 – rooted in social science to see what impact social skills might have on our testing. I want to emphasize on one thing – if you are not native English speaker and you have issues with communicating freely in English, fix this immediately. A person, unable to communicate in English is practically unemployable in the software domain, like it or not.
Learning testing resources.
As you can see, learning testing has a lot of non-testing in it. This is totally normal, it’s the same with everything. (Try to think how much maths are there involved in physics, for example).
There’s two main areas, you need to focus in your learning.
Learning testing theory:
In testing, we have our specific terminology, methods, heuristics, philosophy, etc. In order to communicate with other testers, provide reports and feedback, you need to learn what the terminology means. There’s plenty of resources that can help you do this for free.
You can take a look at http://www.testingeducation.org/BBST/foundations/ where Cem Kaner opened for free all of the videos, slides and materials from the BBST Foundations course. I know it might seem a little bit overwhelming in the beginning, but it totally pays back.
Mike Talks, wrote a book about testing in LeanPub and it’s totally free, it’s called How To Test – the only thing you need to read it, is electronic device and free LeanPub account.
And of course read and follow any possible source of information about testing, from people who test. Ministry of testing blog feed might be a good source of articles representing different views on testing.
Learning testing practice:
The second component to begin learning testing is practicing it. Testing is purely practical, we need theory in order to explain and teach others of what we do, but there’s no “theoretical only” testing. Practicing testing might be tricky for a newbie, it’s hard to perform testing, when you don’t know what to do.
The best way to learn testing is by working as a tester. Yet, it’s hard to start without any experience.
So, think of investing in testing course – there’s plenty of them online and on site. For a complete novice, may be on site is a better alternative, as there’s better chance to receive more personal approach in education. Make a research, ask your local community, see what they’ve been to, what courses did they attended to, did they like it.
Try to invest in going to testing events – conferences, user group meetings, practical workshops and tutorials – most of them are meant for people with no previous experience.
And again, follow community channels, twitter, Ministry of testing Dojo, because there’s plenty of free or low-cost events that can help you develop your skills.
As a conclusion…
I hope you realize, that testing is not an easy job. If it was, I wouldn’t be writing this blog, it’d be useless. It takes time and effort to learn doing testing well. It also takes a lot of investment – time, money, persistence in order only to begin testing. So, as Keith Klain often says – “manage your expectations” – make sure you are aware of what you get involved into and if you are ready to invest everything you have to, in order to complete it.
I wish you good luck! 🙂
I hope this article was useful not only for that particular reader, but for most of you trying to learn testing. If you have any questions related to testing, that you want to ask me, you can do it via my Mentoring section.
Any feedback and retweets are welcome, I would love to hear what you would add to the topic, in the comments. Thanks! 🙂