2021 test market analysis and suggestions

It is strongly recommended that you finish reading this article to avoid detours and avoid being fooled.

Preface

After another busy year, is the 2020 plan completed? Has the goal been achieved? Buying a house, buying a car, withdrawing orders, raising salary, etc. are all very realistic things. In 2021, the post-80s will enter 40+, and the post-90s will enter 30+. Once a chasing teenager, today’s greasy uncle suddenly Time is cruel, and the workplace is the same. Competition and layoffs do not know the fate of the next moment. Only the strong can control their own destiny and fear the future. Because of this, many paid study rooms have emerged in big cities because the atmosphere is very important;

I have been exposed to a lot of tests, saying that I am old, or have poor skills, anxiety, and a sense of professional crisis. Also, if your testing skills do not match your age and working years, how can you compete with others? Especially, people after 00 will come to grab a job. If the skills are mediocre, low salary is normal;

As a tester, how do you become a strong man in charge of your own destiny?

If you want to develop well in the testing field, it is indispensable to improve your testing technology. First of all, it is more important to choose the right direction. I wrote a "Test Technology Improvement Recommendations" before, which aroused widespread resonance, functional testing, automation Testing, testing development, performance testing, security testing, and testing management are not simple in each direction. However, the big environment is that you don’t know how to code or understand the underlying principles, which are considered low.

Go to the boss to search for a few recruitment, look at the recruitment requirements.

Test open 20k or more

Insert picture description here
Insert picture description here
Performance above 20k
Insert picture description here

Recruitment requirements analysis and market conditions

1. I searched for positions up and down 20k, and it is true that there are more open positions than performance positions, but many tests require performance or performance experience is preferred

2. Regardless of whether it is testing or performance, the mainstream technology developed and performance first are necessary for interviews to build rockets and high salaries.

3. Language, or java is more competitive

4. Test the salary market. For a
Insert picture description here
long time, whether it is private chat or group chat, I found that the two improvement directions that everyone most yearn for are test development and performance testing. Since some test developments also require performance, let's talk about performance first.

Performance Testing

Note: The performance test mentioned here does not only use tools to run without monitoring and analysis. It is a performance layman who only runs with tools.

Why choose performance testing?

1. Interviews make rockets and high salaries are necessary: ​​Internet users are getting larger and higher and higher performance requirements, so performance testing is getting more and more attention, and many high-paid recruits regard performance as a must or add points item;

2. Improve the status of testing: To improve the status of testing, we must do more tests that overlap with development, such as performance. Because performance is the weakness of most developments, we finally have the opportunity to raise our eyes and encourage development. Many tests are not complaining about the lack of status. What?

3. Weak code and don't want to write code: Most performance testing tasks do not need to write much code, because there are mainstream tools with powerful functions, and occasionally write simple beanshell;

4. Prospects: lasting competitiveness, performance is the accumulation of experience, the more you do, the stronger your ability, the higher the salary and the longer the career cycle, similar to traditional Chinese medicine; performance is the knowledge of the architect and requires continuous In-depth, continuous practice, continuous accumulation, and continuous summary will continuously improve the ability. Moreover, frequent communication with senior developers and architects, and excellent people, will definitely learn a lot;

Does performance need code?
Regarding code, not all performance problems are code problems: For example, during the stress test, the error log promotes "Cannot get jdbc connection", this should be considered the problem of jdbc configuration; dba does not code, it is not still database tuning ;

If the performance is to be in-depth and comprehensive, you still need code. Because some problems are code problems, you can at least understand the corresponding code based on the thread stack information, and then analyze and locate it. Therefore, it is strongly recommended to supplement the code later;

If it is difficult at the beginning, you can let the development help look at it together (after all, the amount of code is huge, and some problems can not be analyzed and waited for a few lines of code). You can learn by the side, ask more, haha, accumulate time and time, and slowly get started;

In short, performance can let you by analogy;

Knowledge required for performance:

There are a lot of things to learn about performance. In short, it is the knowledge of the architect. It needs continuous learning, practice, and summary. It needs to be in-depth, and it also needs code, at least to understand it. This is why the interview is necessary for rocket performance;

Basics: performance theory, concurrency tools (jmeter, loadrunner, etc.) and protocols

Back-end performance: basic technology stack (linux, nginx, tomcat, mysql, jvm, distributed messaging middleware, distributed storage middleware, distributed framework, microservices)-monitoring, analysis and tools-full link-performance automation ; Performance is best to understand the developed code (recommended to learn java)

Front-end performance: there are tools to do

Other extensions: maven–git–shell–jenkins–docker–kubernetes

Regarding the performance level, take a look at what some information on the Internet says:

Performance layman (abbreviated as a runaway type): can do simple scripts to run concurrently (complex, if you need to write code, you can't handle it);

Primary performance: performance monitoring;

Intermediate performance: positioning and tuning common performance problems;

Advanced performance: good tuning, automatic performance early warning monitoring, capacity planning;

Strictly speaking: jmeter≠performance, remember, don’t be fooled by others, and performance and jmeter are not strongly related, jmeter is just a concurrency tool, there are many concurrency tools, you can simulate concurrency with other tools or write your own concurrency code, performance focus It is monitoring, analysis, and tuning.

Regarding the performance level, take a look at what some information on the Internet says:

Performance layman (abbreviated as a runaway type): can do simple scripts to run concurrently (complex, if you need to write code, you can't handle it);

Primary performance: performance monitoring;

Intermediate performance: positioning and tuning common performance problems;

Advanced performance: good tuning, automatic performance early warning monitoring, capacity planning;

Strictly speaking: jmeter≠performance, remember, don’t be fooled by others, and performance and jmeter are not strongly related, jmeter is just a concurrency tool, there are many concurrency tools, you can simulate concurrency with other tools or write your own concurrency code, performance focus It is monitoring, analysis, and tuning.

Test development

Note: The test development mentioned here refers to test development that can develop test products and test tools.

Why are you keen on test development?

1. There are many recruiting positions, and the salary is good: it seems that testing has become synonymous with most of the full stack. Let’s take a look at recruitment. Some testing and development require performance, automation, etc., in addition to testing and development. Good performance, of course the salary will not be low;

2. Low work pressure: It is generally not urgent to develop test tools or test products, because they are used internally, so compared to the full-time development of the company facing the pressure of product launch and project delivery, the pressure is much less, so it is bald Very little test development;

3. Incompetent development: Some have done development for a short time, or have been trained in development, but are not competent in development, they will be tested and opened. After all, they will write some code, which has some advantages;

4. Prospects: It may be limited to improve their own development capabilities, because the tools or products developed by testing are used internally by the company and the number of users is limited. Basically, they will not consider high concurrency, high availability, security, etc. (because It is for internal use, basically there are no such requirements), it is estimated that there will be no such performance and security requirements. Unlike full-time development, when various cutting-edge technologies and frameworks are used, performance, security, etc. must be considered. The improvement is definitely not as good as full-time Development is fast; of course, the products tested and developed can meet the needs of the company. Moreover, everyone has different positioning and planning for themselves in the future. If you consider changing to other directions, such as products, this is all to deal with development. Mainstream development technology is both an advantage and a trend; therefore, I recommend switching to development for young people. Don't be afraid of pressure and hardship. After a few years, your career path will be completely different. If you simply like to write code for testing and development, please strictly demand yourself with the goal of advanced development, so that the career cycle is long, and the advantages of transferring to other projects are also great; in addition, Recommend java, so that it is convenient to communicate and learn more with development;

Knowledge required for testing

Test development requires front-end and back-end skills (normal companies will not provide full-time front-end for test development), and may have to design products by themselves. That is full-stack development+, and the requirements for capabilities are also very high. Poor design, it may not be able to be put into production in the end, or it may be difficult to iterate, and it will eventually need to be completely rebuilt;

Front end: html–css–js–vue

Backend: javase–tomcat–jsp–springboot (preferably spring–springmvc first)–mysql–mybatis–shiro–redis–nginx–message middleware

Other: maven–git–shell–jenkins–docker

Of course, you can also choose the python technology stack. I still recommend java. See the language selection below for details.

automated test

I often see some testers spend a lot of time researching automation, although it is a basic necessary skill for current testing (about 12 years of test basics are functional use case design method equivalence classes, boundary values, etc., about 17 years of test basics. It is functional automation), but automation is only a regression, and new problems cannot be found (unless your business test is missed);

Even if you are doing automation full-time, within a year, the guarantee will make you feel boring, because what is the technical content of copying and pasting maintenance scripts every day? How much is your promotion? Where is the job of writing a framework every day?

Suggestion: ui automation can be interviewed, interface automation is more practical, and it can automate continuous integration and run to produce results;

so, it is not recommended to spend too much time tossing, automation is not as high as the organization, to improve competitiveness, it is better to spend more time learning code, performance, etc., and understand the underlying principles of the mainstream technology stack, so that you can interview Building rockets requires high salaries;

How to learn automation quickly?

I won’t talk about the code base. As for the framework, I suggest finding an automated framework online to understand, and modify it to meet the current work use, or you can ask me for one.

Safety test

As for safety, in addition to the scope of knowledge mentioned below, I think that behaviors, psychology, etc. should also be added. The safe water is too deep, and if you don’t pay attention, you will break the bottom line, and you may go in and pack food and shelter. , Also equipped with security, so, not recommended;
Insert picture description here

Test management

Some test friends said that they plan to transfer to management. I suggest that it is best to do technical management, otherwise it will be difficult to convince the public. Therefore, we should first improve the technology, and then improve the business and management. In short, the opportunity is reserved for preparation. Of people.

Test improvement suggestions: language & technical direction

language selection

As for the choice of language, I recommend a high-level (java), plus 1-2 scripts (python, shell). Many recruiters also require this. It can be said that it is standard. The scripting language will be basic, as far as possible. That is java, and most of the current projects are java (followed by go, python is too few), learn java, can do automation, testing, performance, white box, and develop barrier-free communication. If you have any questions, you can also ask development, why not do it?

Code, as long as you insist on writing and practicing, getting started is quite fast.

It is really difficult, especially for non-computer majors. You can get started with python, automate the simple and practical interfaces, and find a sense of accomplishment. You can add me to WeChat to send you an automation framework, understand, change, and run continuous integration. Ok, automation is a regression, don't spend too much time, and then go deep into java.

Technical direction selection

If you don't want to write code and want a high salary, performance is a good technical improvement direction. It is worth choosing to make rockets for interviews, high salary, and to enhance competitiveness and test status. But to do in-depth, at least you have to understand the code, so you still need to learn later;

If you like to write code, choose development or test development, even if you do not do performance, but some positions still require performance, so you still have to learn performance, even if you do not do performance, you still have to pass the interview to build rockets first?

No matter which direction, as long as you work hard, it will not be bad, and no matter which direction, the end is: test development requires performance, performance testing requires code, and security also requires code (very safe is written by yourself tool);

Recommendation: interface automation + performance

postscript

Human energy is limited, especially after having a baby, or after being old, so it is not recommended to learn more than one direction, just choose one direction to go deeper, because the technology is updated quickly, the learning is too much, and the maintenance cost is also high. ;

I’m going home now. I can only wake up quietly when the baby is asleep and start the computer to summarize and organize notes. So, if you haven’t reached this point, especially if you’re single, hurry up and learn, less drama, less vibrato, and advance Keep your skills firmly, jump into a good company, and get a satisfactory salary.

Do not overwhelm yourself with more skills, continue to learn, and enhance your competitiveness; be sure to solidify your skills before 32 (the skills are not good after 32, it is really difficult to change jobs, and it will be difficult after 30);

Some friends said that they plan to change careers. If you switch to a non-computer-related industry and have no channels or resources, it is still not recommended. After all, the cost of changing careers is very high, especially if there are old people at the top, small people at the bottom, and various If you want to transfer loans, it is also recommended to transfer products, technical support, etc., but the prerequisite is to learn the technology first, the trend is to be technical, such as: products that understand technology.

Welcome to exchange ideas;

Come on, test man! The road is underfoot, and success is tomorrow!

You in the future will definitely thank yourself for your hard work now!

Recommend a software testing technology exchange group to everyone: 1079636098 group friends receive free of charge

May you and I meet and you will find something! Welcome to follow WeChat public account: programmer Yifan

1. Receive a 216-page software test engineer interview book for free.

2. Software testing learning route and corresponding video learning tutorials are free to share!

Guess you like

Origin blog.csdn.net/qq_42434318/article/details/112821014