A short overview of your career development options in quality control and quality assurance.
Where to begin?
So, suppose you are planning a career in IT and first heard of QA. Now you want to figure out what it is.
QA is a process of ensuring the quality of a software product at all stages of development, but in the CIS, this term is often applied to software testing.
What will a beginner need to step on the path of a quality fighter? Now let's figure it out.
For most companies and projects, it will be enough:
- An idea of โโthe software development process (a technical education close to the IT sphere will be a plus, but as the experience of many colleagues shows, this is not a prerequisite);
- Knowledge of the basic principles of software products (mobile or standalone applications, sites, depending on the profile of the company);
- Acquaintance with the theory of testing, a basic understanding of test design, what kind of test documentation happens and where it comes from (this is very easy to google if you wish);
- The ability to quickly deal with the TMS-system;
habr.com/en/post/461205 - The desire to learn new things, quickly understand the details of how the software works now and how it should work.
If the points above are doable, then we can hit the road.
OK, where are we going?
Next, weโll talk about what directions to pump and what results can be achieved by starting your path in IT with quality assurance.
Roles in QA
You can choose a direction without changing the scope of activity and develop as a narrower specialist. Or combine several roles. You need to master the testing strategies and types in different development methodologies, learn to use testing management tools (
TestLink ,
TestRail ,
Test IT , etc.) and bug tracking systems (Jira, Redmine) - this knowledge and skills are fundamental for all QA engineers . The most popular options for specialization are automated and load testing.
Manual testing
When you need to spend more resources on the development of autotests than on the product itself - it is easier / cheaper / faster to check new functionality with your hands.
Many people think that manual testing is something simple and anyone can handle it. In fact, manual testing requires a lot of skills. Manual testers solve those problems that others cannot cope with.
For manual testing, you will need:
- High analytical skills. Not only errors will be expected from you, but also suggestions on how to do better. After all, only manually can you check such things as, for example, usability;
- Creativity. In modern realities of development, the requirements are not always complete and testers are faced with the fact that they need to think through many options for using the systems that they test;
- Maintenance of test documentation. A good tester always has a clear plan of action and testing activities based on requirements and deadlines;
- Knowledge and experience with testing management system;
- Possession of tools for working with HTTP requests (Postman, curl);
- Database knowledge, ability to write SQL queries.
And much more that depends on the industry and the sphere for which development is ongoing. This can be work with highly specialized programs and hardware.
Test Automation
Automated tests help release new features faster, test faster, and reduce manual tests.
So what may be needed to start automating the tests?
- It will be necessary to write code, for example, in Java or Python;
- Master automation tools (Selenium, Katalon);
- Basic knowledge of HTML, CSS, XPath;
- Ability to work with version control systems and code repositories;
- API skills;
- Knowledge of CI / CD systems (Jenkins, TeamCity, etc.).
If you think youโre ready, then you can take the simplest test script that was repeated a thousand times and try to automate it - you will surely like it
Stress Testing
The meaning of stress testing is to measure the quality of a system that operates under a specific load. Performing performance testing, you can determine the scalability, fault tolerance and stability of the software product.
The work of specialists in this profile includes the collection of data on application performance, response time, and error localization under a load that exceeds normal system usage scenarios.
The most important skills for those who want to do stress testing:
- Knowledge of the architecture of the system under test. Immersion in performance testing will require you to learn the development languages โโand frameworks that are used to create the product;
- Ability to develop and analyze load profiles;
- Again programming. For load testing scripts, such languages โโas Java, Python, JavaScript, C ++, C # and special frameworks, for example, Gatling;
- Knowledge of hardware and network architecture. Often hardware can become the cause of a decrease in application performance; you need to navigate in such concepts as memory, processor, network bandwidth and be able to analyze data about them.
Test analyst
Test analyst is a person whose job is to create testing artifacts based on requirements. In small teams, these tasks are solved by an ordinary tester, while in large teams the functions of testing and test design are often clearly divided between people.
An ideal chain of interactions would look like this:
- the analyst prioritizes the testing and draws up a logical map of the project;
- the test analyst, based on this information, begins to develop tests;
- the tester tests on the described test cases (yes, here's a sentence).
Alternative career paths. Is there life after QA?
Systems Analyst
Have you struggled with poorly described requirements throughout your career? You have a chance to fix it. You will communicate with users of the system, collect and analyze requirements, and then record them in the documentation. Close interaction with developers and the experience of a quality assurance engineer will help ensure that the requirements are complete and worked out. In addition, participation in the implementation, user training and the collection of feedback on the effectiveness of the system are possible.
Business analyst
The main advantage that testers have over developers is that they gain knowledge in the subject area, in the field of business. A frequent option for a tester to move along a career path is to switch to business analytics. As a business analyst, you will participate in the formation of product requirements for the business.
Manager
Let's say itโs easier for you to communicate with people than with databases - then you can try on the role of a manager. Quality Assurance Professionals have a deep understanding of how to make software better. If you are ready to make difficult decisions and bear full responsibility for them, there will be no problems. Here, too, there is a branch, for example: project manager, resource manager, test manager, etc. It all depends on the processes built in the company.
Developer
Often testers go headlong into development, as being side by side with programmers, it is much easier to learn their craft than to get a special education. Moreover, they will tell you, prompt and help. This is a good way to start a career, get acquainted with the development process from the inside. Especially if you already know programming languages โโand were engaged in test automation. The main desire.
If you missed something, Iโm glad to discuss it in the comments!