Even 10-15 years ago, our parents could not imagine that most of the household routine would be solved in a couple of mouse clicks. However, now the number of services has increased significantly, and people can afford to use what is of higher quality and convenience for the user. If you, in the process of using any application or site, thought about a profession that would allow you to make products better, then this article will give you a little instruction on how to enter the profession of a tester.
Who are testers?
There is a misconception that a "tester" is a profession that involves finding bugs and testing a product until it falls off. In fact, this statement is only partially true. The tester verifies that the product is convenient to use and that its functionality works properly. Accordingly, testing is not about finding bugs, but about checking that the expected behavior of the product matches the actual one. Although sometimes there is a need to torment the product, or even break it altogether, so that the developers curse you to make sure at what maximum capacities or how long the product can work stably. You can read about this in the article on load testing .
How do I start testing?
Obviously, for a start, it would be good to study the theory and have the opportunity to practice on something in order to reinforce the knowledge in practice. And along the way, you have two directions:
- Study on paid courses
- Selfeducation
There are now an insane number of organizations that are ready to train you and get you a job. If you are determined to walk this path on your own, you should start by studying the theory. For a start, it will be useful to become familiar with the following concepts:
Product life cycle
It is extremely useful for any beginner or current specialist in the it-sphere to know the life cycle of a product, since it will itself be a part of it at one stage or another.
Bug life cycle
In fact, the life cycle of a bug will depend on various factors: for example, the project, the priority of the bug, or the decision of the team. Templates do not always work here, but it is important to have basic knowledge to know at least the process of work.
Test types and test levels
Any tester should understand what kind of product he is testing, and what types of tests are needed for this particular product.
How to write checklists, test cases
The need to write test cases today is quite controversial. Yet, as practice shows, in the process of writing, the product is studied better, more questions are asked, and more product details come to light. Therefore, learning this skill will help you learn how to structure your checks.
Knowledge of test design techniques
Knowledge of test design techniques can be a huge time saver by eliminating unnecessary checks.
Ability to use bug tracking systems, systems for writing test cases, as well as storing documentation
For setting and monitoring tasks, there are special services that allow you to track the stage at which the task is, its priority, and so on. Some of the most popular are Jira, Redmine, Trello. For test case writing systems, there are services such as testRail, Qase, TestLink. In some cases, Google docs is sufficient. Documentation storage - Confluence, Notion and Wicki.
Understanding the operation of the http / https protocols, knowledge of http requests (Post, Get, Put, Option, Delete)
It is important for a tester to understand the operation of protocols, as well as to know the structure and types of http requests, to be able to read server responses. The error problem is not always displayed explicitly on the layout, in some cases it is useful to check the correctness of communication between the client and the server.
Ability to work with relational databases
A useful skill for a tester will be the ability to work with a database management system (DBMS). The ability to handle a DBMS will make your life much easier when working on projects with a huge amount of data, to check the integrity, as well as correct data processing. At the initial stage, you are unlikely to need high-level knowledge of working with SQL, but knowledge of simple commands such as "displaying all available databases" - SHOW DATABASES, "Viewing tables available in the database" - SHOW TABLES, Commands for creating SELECT queries ... ; is quite necessary.
Ability to download, read mobile application logs
In addition to describing the ways to reproduce the bug, video recording or screenshot, it is extremely useful to attach the logs of the mobile application at the time of the bug playback. This will make life much easier for the developer in fixing the functionality. It is also important to understand in what period of time the bug was reproduced.
Ability to google
In fact, it would be more correct to put this skill at the top of the list, since this skill is useful not only for work, but in general for a conscious life. As you work, you will have 100 questions, and for a start, it is better to clarify some things with a search engine than with a developer.
English language
Most of the sensible documentation, useful articles are mainly written in this language.
Inspection Toolkit
Postman is an api testing tool. This is one of the most popular applications that allows you to send api requests, create collections of requests, create semi-automatic api tests.
Google Chrome Dev tools - the developer's console is available on all browsers, but in terms of functionality and convenience it is this one that has developed the most, so the study should start with it. It is a website checking tool that will help you track requests, check website performance by changing the internet connection signal, check the layout of the website at different sizes. Also GCDt has a template for mobile sizes.
Android Studio and Genymotion emulators. Sometimes companies do not always have devices that are stated in the requirements, and in order not to postpone checks, you can use mobile device emulators.
Jmeter is a load testing tool. It has a fairly low entry threshold. In addition to load testing, Jmeter can be used as a proxy to track the requests going through your product.
Terminals- as a rule, they do not have a graphical shell and are just a command line. Terminals have a lower system load, and at first it may be unusual to use them, but then it will be difficult to switch to graphics. At the same time, in some cases, the terminal does not forgive mistakes, but the ability to work with it is quite a useful and necessary skill for a tester. In some cases, using the terminal, you can perform more actions than the mouse.
A list of materials to help you become familiar with the basics of testing:
- www.protesting.ru
- Software Testing by Sam Kaner
- Google Testing, Arbon Jason, Carollo Jeff, Whittaker James
- "Testing DOT com", Roman Savin
- www.youtube.com/watch?v=sS1PzmLELng
- stepik.org
Ways to put theory into practice
We decided on the theory. What to do with practice? The easiest way is to take any site, and start compiling test cases, checklists, and go through them. When errors are found, compile bug reports and send them to the support service. At least +100 karma from developers will drop for you, be sure.
To gain experience, you should try yourself in crowd-testing - on freelance platforms for testers. You can read more about this in the article .
Also, some companies expose their open source projects so that those who wish can test and leave any comments or suggestions about their product. Feel free to participate in various beta tests of games or programs. As a rule, it is on these raw applications that there are a bunch of bugs that are easy to catch.
In addition, you can join professional communities. For example, QA mobile community - a community of mobile testers , a community for automated testing , a community of testers in Kazan . This will significantly improve the quality of your development and increase your chances of finding a good job. Join groups on social networks that would help you find new professional contacts. Using the experience of colleagues in the shop as an example, you can find your own and avoid some mistakes, although sometimes it is useful to make mistakes.