Manual testers are not needed or it’s time for automation



No, of course handbrake will be needed. But every year there will be less and less need for them. The salary level will quickly hit the ceiling, and from monotonous tasks it will vomit. If you have a desire to remain in QA and grow into an automation engineer (developer?), Then the text below is for you.

Who am I?


Let's get to know you first. My name is Alexander, and I have been working in testing for 15 years. He started with development, went into testing, was a handbrake, now an automation tool. I tested desktop, UI, mobile applications, APIs, carried out load testing and a lot of interesting things related to QA. I’ll briefly tell you how to build my career in self-testing, what I would study and where to start. Yes, I’m missing something, but my advice is a reflection of my experience, and not the ultimate truth.

What were manual testers before


It used to be better (s). About 15 years ago, the profession was just becoming. Companies came to understand the importance of testing, and they began to hire testers. The main (not always!), In short, requirements for a tester are a light programmer or a specialist who did not get into programmers, plus knowledge of the testing basics. Perhaps the previous sentence will confuse you, but I will explain it later.

Testers themselves were divided into handbrake and automation. Products from HP were available for automation, Selenium, scripting languages ​​were introduced. Handbrakes were tested with hands, they wrote test documentation.

Time passed, and the handbrake merged into one branch with the automation. Moreover, in my opinion, automation has become dominant. And now I will tell you how you can become AQE (automation quality engineer).

What you need to know to start?


Testing theory. This is necessary. Types of testing, test documentation, know and be able to apply test design techniques. And also explore the testing pyramid. Maybe not everything in it will be clear, but over time it will reveal itself in all its glory.

In principle, Savin’s book “Testing Dot Kom” and twenty hours on YouTube are suitable for starting.



Books are read, YouTube is reviewed, there is experience in manual testing. Now let’s try to move towards the automation, it’s more interesting there.

Myths


“The work of QA, as one of the relatively easy entry points to IT,”
“Autotests will die out soon. As a rule, these are such under-programmers ”
“ We are testers, not developers, we don’t need to know / not supposed / not necessary ”

I found the first two statements on the Internet. I heard the third one live. If you want to achieve a high level in automation, then do not agree with these myths. It will be hard, long, but interesting. Your knowledge should be at the level of programmers. And in most cases, and more - you still need to know and apply the theory of testing.
Where do such myths come from? I think from the point above - What manual testers used to be. Testers are light programmers (NO).

I think I can prove it. Do you know testers / managers / developers? Ask them how many autotests (strong) did they find in a year? I think that few, units. Our company scanned 20 candidates in a year and hired one. Middle.

You can try to get an interview at Signora AQE. There already “We are testers, not developers, we don’t need to know this” will not work. And the developers will interview you after the testing theory. Because a modern, powerful automation system is a full-fledged developer.

Choosing a programming language


Not really important. Globally, programming languages ​​are similar to each other and during your career you will know a few. If you understand the basics, the transition to a new language will be quick.
Start by exploring basic concepts: data types, classes, arrays, loops, string manipulation, functions, OOP. After you go to a specific language.

In 2020, for the development of autotests, I would look at these languages ​​(I recall that this is based on my experience, not an instruction for action):

JavaScript is great for testing UI. Develops rapidly in testing. JS frameworks are actively replacing Selenium

Java, the most popular language for automation in Russia. So historically, a lot of vacancies.

Pythonlanguage with the fastest entry. The language is “simple”, easy to read and learn.

And one must understand that this is a long time, one must be patient. Depending on the intensity of training from 4 months to a year.

Design patterns


Design patterns describe typical ways to solve common problems when designing programs.

Here is what I recently heard:

“We need strong middles that will rake and understand our tests. We already understand them a little. ”

When you have a website with 3-2 pages, then everything is simple, fast, beautiful. But, if you have a project where ui / api / mobile / e2e tests are at the same time, and all this is written without patterns, then in 90% of cases this will turn into garbage (sorry).

Knowing Page Object is good, but there are many more useful templates in the world that can make development easier. The sooner you solve this issue, the less problems there will be in the future (this is how to find a bug at an early stage, then it will be cheaper to fix it).

Here is a link to read .

If you still can’t deal with this topic, then ask for the help of your developers. We thus improved the project in several iterations, having sorted it out with the developer.

I also recommend reading the book Head First. Design patterns. Freeman Eric, Robson Elizabeth.

Which OS to choose?


Not important. Now this is a matter of habit, use what is convenient for you. If I had such a choice now, then I would choose a UNIX-like system. Experience with her is appreciated in the labor market, and there are fewer problems.

Testing frameworks


Framework (eng, framework - structure, framework) - a set of decisions on the architecture, structure and methods of combining system components that can be applied for some many similar tasks.

Now we are getting close to testing. There are great frameworks for every language. For JS, it's Cypress, Nightwatch, Puppeteer, and others. Java has Selenide, Python has the pytest standard. Study them when the time comes. The documentation on them is sea.

The time will come and you will develop your framework yourself, of course, before that, having a good understanding of the theme of patterns.

Git and review


Git (pronounced "git") is a distributed version control system.
Your code needs to be stored somewhere. There is git for this. Git is the de facto standard.
Here the learning process can be built like this:
Install git
Register on github.com
Read the documentation
Open YouTube, find lessons and work on them.

To log in, you will need to learn a small number of git commands:
clone, add, push, pull, stash, commit, status, rebase, checkout. In a week you will learn and master it. The main practice.

Review code is a powerful tool for sharing knowledge, finding bugs and “stupid” errors, and checking your code. At first, they will check more often than you, but with time, you will begin to review others. Try to perceive the review as helping and developing yourself. Everyone has errors and typos.

Read

What else to learn?


CI / CD Continuous Integration / Continuous Deployment.

The main goals of CI / CD are to minimize errors, speed up assembly and improve the quality of the final product:



Read

Docker is a platform designed to develop, deploy and run applications in containers.

Read

HTTP is a protocol for exchanging data on a network. Perhaps you can write UI tests without knowing HTTP, but there is no API to test. And the localization of the problem will be faster with this knowledge.

Read

xpath is a language for querying elements of an XML document.

Link to cheat sheet

SQL is a standard computer language for managing relational databases and processing data. SQL is used to query, insert, update, and modify data.

Read

This list goes on, but I will stop here.

Where to get knowledge?


Youtube
Thematic forums
Books
Courses on programming
Courses on test automation

I specially divided courses on programming and courses on test automation. Better start with the first. In the second courses you will be taught automation and turn a blind eye to the “correctness” of development. It’s better to lay the foundation, and then move into automation.

Is it worth saving on tuition? Can I take a book / read an article / watch YouTube, and not choose paid courses? No. If possible, of course. There are mentors in the courses, this will greatly accelerate learning. There are a lot of tasks invented for you that should pump skills. The only thing is to wisely approach the choice of teachers. Read reviews.

PS I went through everything: books, YouTube, articles, courses. And the courses were the best for me, it was a leap in development. Perhaps you will have a different way.

References


forum of autotests (almost everything is there) automated-testing.info
js for testing t.me/js_for_testing
QA - t.me/qa_automation automation tool
Serious t.me/serious_tester tester
If you haven’t done so yet, add to bookmarks, this is a must have ru. stackoverflow.com

Why i wrote this


Recently, I was at a meeting where one of the speakers talked about his experience in using test automation. And his company came to the conclusion that it is easier to find developers and make AQE from them than it is difficult to look for autotests that do not bring the benefits that were expected of them over a long distance. And the reasons were that autotests did not have enough knowledge in development (patterns, knowledge of libraries). In some ways, I agree with them. I'm sure someone will think that I described the requirements for a super tester or for a developer in testing (Software Developer In Test). With the development of scrum, when such a thing as a developer / analyst / tester disappears, we become engineers and equal members of a team whose goal is to release a product / make a feature for a sprint.In these conditions, the requirements for autotests will grow and T-shaped specialists will be appreciated in the market (article on vc.ru ). Such people can not only clearly localize the problem, but also fix it (for example, at the front). And this is the future.

the end


As I wrote earlier, the learning process will not be easy. To enter the profession AQE will need to spend + - a year. Many articles have been written on how to build training, but I will note two points:

  1. Know how to relax and take breaks.
  2. Practice. Choose sites, projects. Write tests on them, test the API. Keep your code on github, call friends, colleagues for review.

Good luck

All Articles