QA-testing: what and how to do?
Testers, or QA engineers, are people who check how a program or application works. At SECLGroup.com they look for bugs, make sure the program does exactly what it is supposed to do, protect the product from hackers, and check how the application works on different devices and operating systems.
For those who did not work as a tester, it seems that it is very simple: I pressed all the buttons in a row, found an error, and told the developer, and that’s it. In fact, a tester is a complex and creative profession at the intersection of IT, UX design, and product management.
What does a tester do?
To be honest, testers really have to click on all the buttons and links, fill out all the forms and try to make all the possible mistakes that the user can think of. You can’t do without it.
Because of this, politically incorrect developers once insultingly called testers “clicker monkeys.” The term was so common that Android named its test automation tool MonkeyRunner, in the sense that it’s like a monkey, only faster.
But don’t think that testers are just randomly hitting keys in the hope of finding a bug – this is unproductive. They have their own methods for identifying program weaknesses and quickly finding bugs.
QA engineers come up with instructions for testing – test cases. At an elementary level, it looks like this: analysts write requirements – what data should be at the input, how it is processed, and what should be the result; testers write step-by-step instructions to test the program against these requirements.
The tester must scrupulously check what will happen if some action is taken and whether the result is as expected.
But errors are insidious – in laboratory conditions, they may not manifest themselves, but the user will stumble upon them after the release. Therefore, QA engineers come up with the different standard and non-standard situations to check how the program will behave. This is a creative process, in order to find hidden bugs, you have to be smart and analytical.
It is necessary to provide for all possible and impossible options. What happens if the user enters numbers instead of letters? What if his computer is buggy? What if many users will work at once and overload the system?
The work of a tester is an endless approximation to perfection. It is impossible to check everything, so the tester must work in such a way as to perform a minimum of actions, but find a maximum of errors.
Manuals and autotesters
Programs for automatic testing help to facilitate the work of the tester. Automation reduces testing time and reduces routine work. In large projects, automation is indispensable: there are a lot of elementary repetitive actions, and there is not enough time to do them all.
All testers are divided into manual and autotesters. The former look for errors in the code manually, and the latter writes programs that do this automatically. But this is a very conditional division. You will not find an automator who would not be able to test the program manually. And many manual testers do not like routine, so they master programming languages and write automated tests. Experienced specialists can perform the work of both a manual operator and an autotester.
How to develop as a tester?
There are many career paths. Some start with testing, then go into development, but this is not the only option – you can also develop within the profession.
A junior specialist tests programs manually using ready-made test cases. In order to become a middle from a “monkey”, you need to develop: thoroughly study the project, know the code language, and the basics of automatic testing.
If a junior performs well, then in 2-3 years he will get a promotion and become a middle. Will independently write test cases and fill out documentation.
After another year and a half, a successful middle can apply for the position of senior specialist (Senior QA Engineer). His range of tasks is expanding: the signor plans testing work, and controls the work of juniors.
In five years, you can become a team leader – the head of a team of testers. From the team leader, professional competencies, management skills, and the ability to solve complex problems are required.
This is how the vertical career growth of a specialist occurs. But in practice, testers often choose development within the profession – for example, specialization in testing:
- Security testers – check the security of the program;
- Performance testers – test how it behaves under increasing load.
- Usability testers – check how convenient it is to work with it.
What personal qualities does a tester need?
In addition, the personal qualities of a specialist are very important in testing. Here is a list of the main ones that you definitely cannot do without:
- Perseverance and perseverance – to patiently look for defects. A good tester is sure that there are no programs without errors, only poorly diagnosed ones.
- Critical thinking, ability to analyze information.
- Attention to trifles, maximum meticulousness, in order to constantly be interested in: “What will happen if you click here? What if you enter another character?
- Communication skills and ability to work in a team: the tester has to constantly interact with developers, designers, business analysts, and customer representatives.
- Patience and self-control, because developers are not too fond of fixing bugs. Sometimes the tester has to remind about the found bug more than once or twice. He must be persistent, but at the same time be able to maintain good relations in the team.
- Responsibility and healthy perfectionism to constantly strive to improve the quality of the product being developed.
- The ability to clearly formulate your thoughts in order to competently draw up plans and test cases. If a tester has found a bug, he should describe in detail and clearly under what conditions it occurs so that developers can quickly fix it.
- The desire to develop – to master new testing methods in order to remain in demand. You need to constantly read technical literature, participate in conferences and seminars, and watch video courses.
What does a tester need to know?
The things that are required from the tester:
- knowledge of the basics of testing, its types, and methods;
- ability to create test cases, and test plans;
- knowledge of SQL query language, ability to work with databases;
- knowledge of programming languages;
- knowledge of version control systems: Git, CVS, etc.
In addition, the tester must be proficient in manual and automated testing tools. It can be:
- systems for creating test cases and tracking errors.
- file managers, text, and XML editors.
- test data generators and others.
To automate tests, you will need web application testing systems, and programs for functional and load testing.
Well, you will definitely need English – to read and fill out technical documentation.