Software testing education
Where to study to become a software tester
The popularity of the profession is growing, but universities do not yet have such a program.
Various courses are now trying to fill the niche of systematic education in the field of software testing.
You can study my free course
«API Testing Lessons»
But it is far from complete, so you will need other sources of information.
The plus is that there are very many of them, some advertise themselves quite actively on the internet.
Advertising costs money, so such courses are not cheap.
You can take the introductory part of Yandex Practicum for free; there you can understand from simple examples what a manual tester does.
That will be a good start.
I also recommend studying the free courses on the website
stepik.org
An incomplete list of the courses and websites I know of looks like this:
There are far more such resources on the internet. Making a mediocre testing course
is quite easy: for half the time you can just talk about theory, which
is already abundant on the internet.
For example, you can spend several lessons discussing types of testing, different approaches
and so on - all of this can be found on youtube or
in
free sources
.
It is hard to make good courses, with simulators, analysis of solutions and
analysis of students' actions. Try to find good ones. If you find any - write to us in
Telegram
Specialization
Depending on the area of testing you specialize in
you may need deeper knowledge of the subject.
For example, a web application tester often needs knowledge of the following disciplines:
Which are not particularly needed in other areas.
Self-study of Web technologies
If you want to work in Web - I recommend understanding how it works at least at a basic level.
To do this, order test hosting from the company
Beget
- it is free.
Take any free HTML and CSS course and publish your website publicly, however simple it may be.
Seeing the result of your work on the internet will raise your motivation to keep learning. While you solve the problems of creating it -
you will train patience and the skills of finding information on the internet.
Java or Python
If the job involves writing complex scripts, for example for load testing, it is useful to learn Python or Java
It is useful to check in advance how current what the courses promise to teach you is.
For example: as of January 2021, the current version of Python is 3.9.1
Python 3 differs from Python 2 and is not backward compatible with it.
If a course offers to teach you a version of Python below 3.0, this should raise suspicion, since knowledge quickly becomes outdated and you should learn what is current at the moment.
If you plan to grow into
automation
or
load testing
, sooner or later you will have to make a choice in favour of some programming language.
Often this choice has already been made for you by the employer.
Example: if the company uses Python, then it is logical to learn load testing with
Locust
and if it uses Java, then you need to learn
JMeter
Many testers will find knowledge of working with
databases
.
If the product that you will test is intended for end
users, for example, customers of an online store, then knowledge
in the field of UX/UI will be useful to you
General or specialized course
If you have the desire and the opportunity to take paid courses, then you will have to choose
between a general testing course and a narrowly specialized one.
If you have the time, you can take all the courses, but usually you need to choose:
a general course is fairly neutral, there you will be told the theory, taught
how to write bug reports and create test plans. All this is necessary to know how to do, but
it is hard to impress anyone with it.
A specialized course focuses on one area. There it should be
known in advance which tools you will be taught to use. Perhaps
these are exactly what your future employer needs, and perhaps not.
Constantly monitor the requirements on job search websites.
If you decide to take a specialized course, then as of the end of 2020
I see that testing courses are best segmented at the Otus company.
They were among the first to realize that instead of just a general «Testing» module
they should split it into more specific ones:
and so on, see them on their
website
.
I advise not to sign up for additional courses until it becomes completely clear
in which direction you need to develop.
Choosing a job
Choosing, not searching
Suppose you already know something and are now choosing a job. I deliberately write
«choosing» and not «searching» because I want to talk
not about where to look, but about where you should work.
The first position for most people will be related to manual testing (Manual Testing)
that is normal. You need to get drawn into the atmosphere of IT, study the workflows (Workflow)
and the product (Product)
And already here you can get stuck in your development - fall into the trap of non-transferable skills.
Non-transferable skills
Your company may have some software,
but not be an IT company in the usual sense. Perhaps the software is developed somewhere
else and you will just need to constantly click the right buttons and write
reports. Or the software is in-house, but it is very complex and there is a whole manual testing department
in no way connected with development and automation.
In such conditions growth is possible. But it will be connected with going deeper into a specific
product and the methods accepted in a particular company.
This is all the so-called
non-transferable skills
(Non-transferable skills)
which are needed by only one
company. Investing only in them you depend entirely and completely on the success,
policies and management of this particular company.
Choosing a job where the main growth is precisely in non-transferable skills is rather risky.
Transferable skills
If, in addition to studying the product, you use some popular tools, for example:
- For API Testing it is SOAP UI , Postman
- For automation it is Robot Framework
or at least write the simplest scripts, then you are improving your transferable skills
(Transferable Skills)
They are called transferable because they can be «transferred» from one
employer to another.
Try to find a job in which transferable skills occupy a significant place.
When you study the product - you invest your time in the company. When
you gain useful skills that you did not have before - it is the company
investing in you.
IT is a huge layer of knowledge and skills in which you can learn all your life.
If you want to remain attractive on the job market - look for a job
where your skills grow. For a manual tester the most obvious
directions for growth are test automation (Test Automation)
and management (Management).
It is hard to understand in advance whether there will be growth in the company or not. But in six months to a year
you can already assess the prospects, and if there is no growth, including financial growth,
even after two years, you need to think about a new attempt.
English
If you have basic English - take a look at
«Software Testing and Automation Specialization»
or other courses on the website
Coursera
If you do not know English even at that level - I advise you to start learning; many job openings require knowledge of English.
Try online, fortunately there are plenty of websites:
Skyeng
,
Englex
,
Tetrika
find a tutor on
Profi.ru
or offline courses in your city.
However, do not be mistaken, the English language
will not single you out of the crowd
of applicants:
Most of your competitors for the job
already know it.
Rather, a lack of English will throw your resume to the end of the queue.
Knowledge of English will give you the opportunity to learn from English-speaking specialists, for example on YouTube, and will put your resume in the general group.
Article author: Andrei Olegovich