Profession: Tester

Tester: Is this a bug or a feature?
Developer: So far this is a feature.
bash.im


A testing engineer is my first specialty in the IT field back in the 2010s, as, perhaps, for many. It was a classic “enter IT”: at that time there was only an economic education and 4 years of experience in analytical work in telecom. From the skills: burning eyes, a great desire, an average knowledge of UNIX administration and an OSI model learned by heart (without much understanding of what to do next). 87 questions at the interview (from “what is chmod 777” and “how does ssh work” to “tell us about the principles of TCP and explain with examples”) - and the position of testing engineer is in my hands. A little later in 2 years there was everything: pride, despair, disappointment, excellent work, fast growth, cool project, etc. If I knew a little more about the profession of a tester then, there would not be many unpleasant minutes and hours. Well,let then those who only choose their path or change its direction will not have them - this article is for you. 


Who is it?


A tester (I will call it that a bit, I will explain a bit later the reason for the reservation), he is also a QA engineer (Quality Assurance) - a specialist who checks the quality of the software and the level of its compliance with predetermined needs and expected results. In his work, he uses various tools, testing strategies, is included in SCRUM commands, etc. 

Sometimes there are two main "types" of testers.

  1. Tester is a beginner tester who conducts mainly manual testing according to previously described test plans. Bad name guys often take offense at.


    This is a tester, but guys and girls are still testers! (minute of IT chauvinism)
  2. — junior lead, , , -, ( ).

This is a very enlarged and not quite serious classification. In fact, testers are different: automated testing specialists, DBMS testers, testing analysts, testers, DevOPs testers, and so on. It all depends on what skills each individual specialist combines. 

In general, the work of a testing engineer can be reduced to the following order: received software → determined the necessary set of tests → compared the actual position of jambs, crutches, bicycles and bugs with the expected result of the program (hardware-software complex) → started bugs → you work with them until they close. All this, of course, in a cycle.

I’ll say right away: the first few months of work in testing resemble the groundhog day, you do the same thing, run the same tests several times, put passed or failed, start bugs and it seems that this work is definitely not for you, but rather for a schoolboy or monkey. And this feeling of self is monstrously depressing and just as monstrously false. Everything changes when experience comes. 

Here are the stages you are likely to go through at work as a tester from scratch.

The first 2-3 months - training. If the company is good and advanced, they will give you a mentor who will help you master all the testing methodologies adopted by the company, show you the equipment, talk about the software, the tasks of this software, and certainly about the customers. Sometimes, following the results of such a training with a mentor, you even have to pass a small exam (mini-interview). This is completely normal because it is QA that is an important division on the path to the client and its good work is the guarantee that your product in someone else’s business will begin to work, and not mess up. If the company doesn’t really care about the development of employees, you will have to achieve everything yourself, but I won’t say that it’s very bad: with self-study, immersion in the software goes much deeper and you understand much more than what the experienced mentor tells about the product, which he knows very well. 

They like newcomers to testing - sometimes they find the most interesting and unexpected bugs, which have long been forgotten by long-working employees.

Story. A new girl came to one company, who did not show herself in any way, quietly studying software and the principles of its work with different equipment. When she just started testing, critical flew in from the big and evil federal client (the most evil bug, worse only the blocking one) - the software refused to close. Shoveled the entire code, yelled at each other, checked all the connections, etc. After three hours of throwing, the girl squeaked:
- And then the cross is inactive.
Indeed, the one and only very obvious function simply did not work. But professionals drifted into the jungle, and an enthusiastic amateur immediately noticed abnormal behavior.


Further - from several months to 2 years - manual testing. You will perform most types of tests in manual mode, begin to draw up your test plans and interact with developers. At this stage, the same groundhog day comes, when it seems that the horses are running in a circle and further - routine and boredom. This is not true. During this period, the testing engineer builds up an integrated understanding of testing, learns to work with programmers, see not only the bug itself, but also analyze its possible causes. The main thing that comes during this time is the realization that manual testing should remain in the last century and ... the time has come to switch to testing automation when you start to master a programming language (or use previously mastered) and write your own scripts - those that you consider necessary for working with software.The really cool part is coming. (However, many testers, especially girls, prefer to stop at manual testing and become real aces in it - by the way, they are very useful employees and, as experience shows, the best mentors for beginners).

From 2 years onwards - a qualified specialist, ready to work in the office and on the client side, to test large projects, not just fragments and modules, who knows his specialization deeply and not everyone else is very deep, able to work not only with specialized software, but also Test interactions within various hardware, software, and integration configurations. Such guys coolly and intelligibly speak at conferences and meetings, share professional secrets, train and ... think about their future career path. More about this below.

The work of a software tester is good in that you can choose a company related to what you are interested in in some perspective: you can test telephony, software, business software, games, mobile applications, security systems, etc. When testing a particular product, you dive deep into it, learn from the inside and in the future you can become a developer or project / product manager with a thorough knowledge of the subject.

And yes, testing is one of the best ways to start a career in the IT field, accessible to most guys with their heads on their shoulders. Therefore, if you want, but it is not yet clear what and where, go to testers, testers , it will quickly become clear.

Pros and cons of working as a tester


This section was not in previous posts in the professions series, but it will be here. Because there are a lot of rumors, disputes surrounding the work of testing engineers, someone hates her, and someone devotes her whole career to her. So let's go over what is good and what is bad.

▍ Pluses


  1. Until a certain point, the work of the tester is simpler than other technical specialties and is available to many who are interested in the IT field. Whether to cross the line to the interval where the work becomes as difficult as possible is everyone’s decision. If you do not go any further, they will not expel you from testing, you will still be in demand.
  2. The need for testers will not disappear as long as there is information technology, communications, the Internet, robots, autopilots, etc.
  3. — , . , ( , , ..).
  4. : , , , .
  5. , , , , , .
  6. .
  7. « » , , . . — , .


  1. :-) , : , , , . ?! — , . , , . , , . 

  2. , .

  3. , . .
  4. — , .
  5. — . , « » . , ( ).
  6. - — - , .

The choice depends on how close the pluses are to you and whether you are willing to pay for them with what is listed in the minuses. In principle, with proper organization of work and self-organization of an employee, many of the minuses are reduced to nothing.

Where is it needed?


Unlike developers, the tester is not needed in all companies where at least some automation tool or application is produced (but in vain! But this is the decision of the companies themselves). However, definitely testers of all levels are needed in a number of companies.

  • Any development companies, as well as suppliers of software and hardware systems (from processors to cash registers and terminals).
  • Developers of games and entertaining mobile applications.
  • Fintech companies: banks, brokers, financial institutions, etc. 
  • System integrators who supply complex multilayer technical solutions to the corporate segment.
  • Often, software testers are required in the state of factories, automobile companies, online media, retailers, online courses, etc.

By the way, the profession of a tester is one of the centenarians of IT with great potential. Because even if robots program robots while there are people, someone will have to test all these devices and applications in terms of adaptation to human use. So it’s the testers that will become the last barrier on the way of robots to leather bastards bags :-) 


average salary


We will look at a salary on "Habr Career". Take the data for the second half of 2019, regardless of ownership of a particular stack. 

For manual testing specialists:
Specialist level
average salary
Intern (Intern)
33 333 rub.
Junior
44 024 rub.
Middle
68 031 rub.
Senior
107 203 rub.
Presenter (Lead)
146 428 rub.

For automated testing specialists:
Specialist level
average salary
Intern (Intern)
36 366 rub.
Junior
61,486 rubles
Middle
88 246 rub.
Senior
131,222 rub.
Presenter (Lead)
201,461 rubles

As you can see, there is every reason to develop and move to a new level of testing.

Basic Professional Requirements


This time there will be no tables with the most frequently mentioned technologies, because the methodologies and testing tools from company to company can be very different. Consider those skills without which a career will not work at all (pay attention - you can acquire them during the course of work, have them cool at the start, but not at all).

  • — , + . .
  • — Java, SQL, Python, .
  • Agile, -. 
  • Linux.
  • .
  • OSI ( , .). Wireshark.
  • — Bugzilla, Jira .
  • Selenium — -. . 
  • It is advisable to understand the strategies for testing black, white, gray boxes and the realization of where you are most applicable as a specialist.

This is the base, with experience you will see where and how deep you need to dive. 

By the way, if you have absolutely no experience, but there is little time to prepare for future work as a tester in parallel with your studies, I have three life hacks for you.

  1. Become a QA Freelancer for small manual testing projects. They pay little, but you will learn how to think as a tester, write test cases and report results. 
  2. If the goal is to test the web (and this is most often), create your own crooked oblique, but full-fledged website without templates and ready-made CMS. So you will understand how the environment works from the inside and you will know the habitat of all typical bugs.
  3. Find the program of any testing course, look for materials on it and accumulate a theoretical base to successfully pass the first interview.

Important personal qualities


In principle, a tester can be an introvert or an extrovert, a gamer or a role player, kind or not. Communicative skills play a role in a team, but overall overall adequacy and the ability to express one’s thoughts are enough. In testing, you need other, more subtle personality settings.

  • Analytical skills to understand the relationships, analyze huge amounts of data, test results, etc.
  • Time management and planning skills - only with them you can provide high performance against the background of a serious workload.

  • The special intuition that comes with experience is that the tester must anticipate in advance where a potential error could be expected.
  • High threshold of patience and stress resistance - it is important to carefully test the product, quietly discuss with the developers, repeatedly reproduce the bug, work out the same test cases, etc.

  • The ability to concentrate and maintain attention for a long time. By the way, sometimes it’s testing that allows you to develop this skill and save it for your future career.

The need for knowledge of foreign languages


Perhaps the testing engineer is a rare type of specialization in IT, where you can know the language exclusively at the level of tool commands. This is due to two important features:

  • a lot of articles and methods have been translated into Russian;
  • often the volume of language knowledge is determined precisely by the features of the product and the company - respectively, if the company works in the English market, the level is needed (for example, to test documentation or communicate with the international team and customers), and if it is on the Russian market, then the language requirements are practically zero.

But then again, if you want to grow into serious automation or go into development, you will need the language more and more, so it’s better not to waste time and catch up even with Intermediate. 

I had an example when I needed a tester with knowledge of Japanese and separately - with knowledge of German, including for working with clients (remotely). So, they found, trained and gave a salary higher than the developers in the company. Because the specialists are unique. They have not disappeared now :)

Where to study


There is a basic software testing course in specialized specialties at the university, there are courses at corporate universities and individual courses within companies.

Fundamental training for a testing engineer in Russia does not exist.

Perhaps, it’s for the first time in our series “Profession” that I’ll highlight online courses for teaching testing: they can really bring you up to date, teach the principles of testing, learn how to find, see and fix bugs, etc. For a beginner, you can find an acceptable option and go through it - this will give you confidence in the interview and the knowledge of the first time.

The best training in this area is to go from a trainee to a middle or senior in companies. Against the backdrop of self-education efforts, it’s generally perfect. As a rule, after the first experience gained in a company, getting a tester into others is quite easy. The main thing is to find the cherished first practice :)

Top Books and Learning Tools


▍Books


  • Arbon Jason, Carollo Jeff, Whittaker James "How to test on Google" - an informative book that is better to read already with some experience, at least junior. But what am I talking about! Read and enjoy at any level, very useful and well written.
  • Boris Beiser “Testing the black box. Technologies for functional testing of software and systems ”is a classic literature for testers. It is rather an academic textbook on testing, very sensible.
  • , , « » — ( ).
  • « , -» — , . .

▍-



▍Useful articles on Habré about the profession itself




Well, in general, the hub "Testing IT-systems" at your service. On Habré there is a lot of useful on this subject.

▍ Party testers


By the way, if I am skeptical about development conferences, I recommend attending conferences, meetings, festivals and meetings of testers and carefully familiarizing yourself with the program - you can get very interesting finds and techniques in your arsenal.

▍ Wikipedia


Software testing is a great Wikipedia article that will introduce you to future challenges in the profession at once. I pay tribute to her as the very first source of my testing knowledge. By the way, then she was much more modest.

The future of the tester


In addition to the standard way inside testing (from trainee to lead), there are several most likely ways to develop a tester's career.

  • Software development is a logical and not the most difficult way for those who are interested in programming languages ​​and want to not only pick someone else's code and a finished project, but also create something inside the team.
  • Project Manager. Excellent knowledge of the project as a whole, an understanding of the needs and requirements of customers is a direct way to this point.
  • Scrum master is an interesting spread, which testers well manage thanks to the knowledge of the project as a whole and the ability to tightly plan the deadlines.
  • Business analyst, marketer - money, but not so technical positions for guys with good communication skills.

In principle, after testing it’s good to work in any position in IT companies, from a PR manager to a project manager and a product ovner, because you know everything and a little more about the product and the employee’s roles in company projects.

Myths of the profession


▍Testers - the lowest caste of the IT industry 


Now it was a shame. Or is it like the Airborne Forces, but "did not code - not IT specialist"? The testing department is essentially a real quality control department that will not allow the company to disgrace itself in front of the client (if a hefty crutch falls somewhere, hehe), will detect obvious UI / UX errors in time, and check the internal logic of the application or service. The integrated work of testers of all IT companies in the world provides a certain level of quality and saves millions of companies money that could be lost on complaints from end users about endless bugs. 

Testers are full-fledged, strong IT specialists who are distinguished by an integrated approach to software and agribusiness, a deep knowledge of the product and the ability to see non-obvious relationships within the development. 

▍Testing is just finding bugs


No. Testing is a complex end-to-end process of working with a product, its hardware and software environment, and also with documentation. Finding a bug is a very small matter, but analyzing, reproducing, collecting all the information, taking dumps, drawing up a test plan and automating routine tasks, putting the load down, etc. this is a complex, multidisciplinary work. 


▍Testers pay little


At first, this is really not the most paid job. Agree, the company is offended to pay the employee, who for the most part is studying. But gradually wages are growing and further depends on the company: when I worked, I received only 3 thousand rubles. less than a middle-class developer, but I know companies where testers get more and less than developers. Much depends on the profile of the company and the skills of the tester. It is clear that the automation will cost more. But the wording “pay little” is definitely not about testing.

▍No technical skills applied


I have already listed the approximate actions of testers, and all of them are strictly engineering. Although you can get into testing without a technical background, you won’t be able to work without a technical background: you will either learn everything quickly or go to non-technical departments, because “naked humanities” are a grief in the QA department. Yes, at some stage you will not be required to have a profound knowledge of programming languages ​​(but did you remember that testers with higher knowledge of development are valued higher?), But engineering, admin and general technical knowledge will be useful to you. You will use them literally every day.

Main tip


There will be no advice, there are enough of them in the article. I will tell you that the worst thing in the profession of a tester. That's so scary that goosebumps and dizziness. The very first independent call for testing. You sit, conduct tests and put passed, passed, passed ... And not a single, even the smallest, most stupid and minor bug! And you are afraid that you don’t have this - to see mistakes, to be responsible for quality, to find something that went wrong. And what happiness is it when he is, the first, the first strangeness in the packet header or the first word of the interface with a typo.

Then you will have majors, critics and blocking bugs, with all the importance you will not only start a bug, but also stomp along the corridor to the developers to express everything about the error found. But you will never forget the very first bug that will open the door to the world of testing and responsibility for quality.



Friends, did you go through work in testing? What was it like, your first bug or the most stupid, funny, maybe even scary? A time of terrible stories! Previous series "Professions ..." Profession: backend developerProfession: front-end developerProfession: system administrator








All Articles