Is the software testing industry coming to an end?

I chatted with an HR friend two days ago. She said that she just posted a general test position on the boss, and received hundreds of resumes in less than an hour. And the quality of the resume is extremely high, which is unimaginable in previous years. There are few positions and fierce competition. This is a true portrayal of software testing employment this year, and it is also a true portrayal of all positions.

The general environment is not good, and money is getting harder and harder to earn. Yes, even my old lady who lives in the 18th-tier countryside knows it, and told me not to spend money recklessly. But if there is no income, there will always be a day when we will run out of food. No matter what the market is, we have to find a job as soon as possible.
So, you started to submit resumes frantically. For you, the greatest sincerity in finding a job is to submit resumes frantically. I don't know when these days will end.

The market has changed, but your job-seeking thinking has not changed, and you are still looking for a job based on your past job-hopping experience.

The resume does not do any optimization, it is the same, there is no highlight!

Lack of delivery skills, weak communication skills, it is difficult to impress HR to make an appointment for an interview!

I don't know how to prepare before the interview, I don't brush up the questions, I don't do the project sorting out, and I am confused when I ask for details!

The testing technology is single, and the depth and breadth are not enough. Even if there is an interview, it is often a round trip!

Opportunities are few and far between, and I haven't seized any of them. After a long time, my mentality is out of balance, so I can only comfort myself with the fact that my education is not good enough, and my industry is not good enough.

But I know you are not reconciled. Although many people say that the IT industry is dead and they can’t find a job at all, compared with other industries, the IT industry is still a high-paying industry. My past experience is also in this field. can let go.

Are you also facing the above difficulties and urgently need a way out?

The knowledge architecture diagram of the development direction of software test engineers I compiled below should help you

Put aside doubts, just do academic discussions
This time we put aside all doubts, such as what is the use of automated testing? Can automation really improve efficiency? After learning how much salary can be raised by automation, etc., I will not discuss the above topics this time. These issues are also frequently discussed issues.

In response to the above problems, I will make a summary. The technology that can increase wages and make more money is worth learning! Since automation is so popular nowadays, it naturally has its value.

What is Xiaobai thinking?
Presumably every great god has come up step by step from Xiaobai. Of course, I can understand Xiaobai's thoughts very well, because I often communicate with some colleagues who are just getting started in automated testing, and I have a deep understanding of some of their confusion.

Most novices think of nothing more than the following questions:

1. Is automated testing easy to learn?
2. Can I do automated testing without learning/writing code?
3. How to learn automated testing?
4. Which direction should I learn first to learn automated testing? Learning ui automation? Or interface automation? It seems that App automation is also popular? Or another small program automation?
5. I don't have a code foundation, and the work is just a little bit, should I apply for a training class?
6. What language do I need to learn? java or python?
...etc

Let me share my thoughts on the above issues:

First of all, automated testing is easy to learn! But remember, you must be clear about the direction of learning, don't go too far and waste your energy.

First, of course you can do automated testing without writing code, but my personal suggestion is to learn a language. As for the language to learn, it is very simple and you don’t have to worry about it. The first thing to check is whether you have a programming foundation. If you don’t choose py, if you do, choose Both java and py are available

Second, you need to look at what language you use for development. Using the same language as development can lower the threshold of communication between you and development while learning automated testing, and increase your right to speak in the company.

Third, which direction to study? I suggest: web ui automation = "interface automation = "app automation/small program automation, of course, focus on learning interface automation, ui automation must be learned, but there is not much need to delve into it.

Fourth, do you want to sign up for training courses? It depends on you personally. If you feel that you have a strong ability to learn and understand, and you are very self-disciplined, and at the same time the direction of learning is very clear, then of course you don’t have to sign up for training. Wouldn’t it be nice to save some money?

If you have no understanding of automated testing or some programming languages, and there is no one around you who can teach you, then signing up for training is definitely a way to improve quickly.

To lay a solid foundation before building a building, you first need to learn a language
. As we mentioned above, if you want to do well in automation, you must learn at least one language. Of course, to what extent do you want to learn a language? I can't keep learning, can I? The answer is, just use it!

Mastering most of the grammatical basics can already meet your daily automation needs, because writing scripts is not as difficult as developing!

You need to learn the language, for loop, if judgment, data type, operator, object-oriented programming, etc., whether it is java or python, these are all needed, in fact, the same, if you know one language, the others are similar.

After getting started with the language, I officially embarked on the road to becoming a god in automation. The introductory chapter Selenium
selenium, as the ancestor of automation, has been played badly. Basically, as long as it is doing automation, everyone knows it. Why learn selenium first?

It can help you quickly understand what automation is, and it can give you intuitive feedback on the page. We did the same at the beginning, looking at selenium's api, bit by bit, and tried almost every method.

Selenium has 1.0 2.0 3.0. It is recommended that you learn about its history, u and its operating principle before learning, so as to arouse your interest in learning. You need to install a browser to learn selenium. It is strongly recommended to use Chrome instead of FireFox, the former is more compatible.

After installing Chrome, you need to install the driver. Congratulations, you will step on the first pit of automation! Most of the reasons are because your driver version and browser version do not match. After being able to visit Baidu, su and kw are very impressive here (you will know what they are after you learn them)

You will try various selenium methods again to operate the browser. At this time, it seems to open the door to a new world, oh! It turns out that automated testing is such a thing! amazing!

Tired of playing Selenium
and waiting for you to play for a few days, or after a few weeks, you seem to have no interest in Selenium, and the scripts are getting more and more written. You can write some linear automation scripts. At this time, A little complacent, automation is nothing more than that, that's it?

What I want to say is, don't be too happy, you just stepped into the door of automated testing and took a small step. At this point, you can start to try, write some repetitive operations in the project into scripts and run them, and you will feel a sense of accomplishment! The effectiveness of automation has initially taken shape, as if you have begun to understand how to use automation to improve efficiency.

Get in touch with the automation framework unittest/testNG
and wait for you to learn the unit test framework unittest/testNG. When you learn selenium, you will find that most of the linear scripts are difficult to manage, and each script needs to be run one by one. The test results cannot be counted. At this time, the unit test framework needs to debut!

You will start to learn how to use the unit test framework, how to create a test class, how to write test methods, how to write your script as a test case, how to verify whether the test is passed, how to control the execution order of use cases, and how to write assertions , These are what you have to explore and learn.

Not satisfied with the functions of the unit test framework.
When your script is well written, the use cases will be organized. Then every time the leader tells you, run the test, and then send the test results to him, summarizing it in the form of a test report.

At this time, you open your editor many times, run the test, and then run the test in a hurry, statistical test results one by one, and send them to the leader after being exhausted.

The next day the leader said again, before you leave work, you can run another test and give me a report, and you will feel like dying. Then you start to browse Baidu, browse the forum, and want to get a solution, then the "framework" will come into view once.

Learning the automation framework
At this point, you have already begun to think about how to write an automation framework, which means that your automation has begun to get started, and it is developing towards the intermediate level. You start to study the structure of the framework and find that there are use case management, logs, Test reports, emails, basic encapsulation classes, etc., and a framework design pattern (classic PO pattern)

You start to organize your use cases, encapsulate base classes, write page classes, encapsulate logs, mail modules, etc. After a few weeks of polishing, your first automation framework is born!

At this point, you can go to various technical groups to show off, and automatically write an automation framework, and many novices will start to praise you and call you a master.

The initial interface test
has finished the learning of UI automation above, so let's go to the interface. Generally, companies use the http interface, so you start to learn from the http protocol, understand its structure, request header, request parameters, request address, request method, etc., and try to learn some packet capture tools

Such as fiddler, chales, wireshark or browser developer tools, etc., to capture packets to obtain some interfaces, and slowly observe its request structure, but at this time it is still in the fog, and I don’t know much about the interface. So I downloaded an interface testing tool, tried to enter the parameters into the tool, and manually initiated the call.

When the tool returns a 200 code, oh, that's what happened. It seems to transmit and receive data with the server, and then the front-end page will display the data to the foreground!

Try to learn the Request/HttpClient library to initiate a request.
After using postman, you will think, so how do I use code to initiate a request? At this time, you need to learn these two things. After pip install & import requests, start your interface automation journey.

You try to use the interface to realize the addition, deletion, modification and query of the previous ui automation. You take the request parameters of the packet capture, call one by one method, and then run it with one click! One green and three red! Why? Then I found that the interface returned 401, no permission! profound! I am not logged in, so how can I log in? ?

Start researching with a lot of doubts. At this time, you need to understand the working mechanism of cookies and tokens, and then cooperate with your code to cache cookies to achieve login. After solving this problem, the interface still reports an error. Deleting the interface reminds me that there is no such data!

After checking and checking, it turns out that my piece of data has been used up, so how can I ensure that the parameters I enter every time are new? At this time, you need to understand the interface association, how to extract the parameters from the response of the previous interface, and use it for the next interface.

request/HttpClient combined with unittest/testNG+allure
is the same. When you learn request/HttpClient, you will naturally think of integrating them with a unit test framework, and then found a tall allure test report, combined with some log modules Print the parameters, and such a familiar interface framework will come out, which is similar to the previous one! Trivial.

Try to use yaml/Excel to manage test cases
and wait for you to take your own framework and write test cases repeatedly. At this time, you think, why do I have to request.post every time? The method is the same, but the data is different. , Why do I have to write code all the time, it's so tiring! Why not use some files to read test data and do parameterization?

At this time, you start to study reading and writing excel/yaml. You want to manage all test cases in files, so you don’t have to write code every time, but things are not that simple! So how do I handle linked data in the file? How to cache cookies? How to make an assertion? What if you do some dynamic input?

The above questions are left to you to think for yourself.

Premium goods? git?jenkins?docker container? distributed?
At this point, you have already written several frameworks and optimized them based on your own framework. Then you find a very serious problem at this time. My code can only run locally. If you want to use it for others , You also need to configure the environment on someone else's computer, and copy the code to him.

So why not use some code management tool to manage my scripts? Then you will need to learn git and know how to add commit push to push my code to the company's gitlab, so that others can use it, so with gitlab, I want to do some scheduled tasks and let it execute automatically?

Learn jenkins. More, what if I want to run multiple use cases together? Learn selenium grid, docker, etc. .

Test platform/tool ​​development at the top of automation
After you build the company's automation ecosystem, you are still not satisfied. Why don't I manage these things visually? Make a platform? Manage use cases, manage tasks, manage test reports? Can I also integrate some of the company's deployment tasks?

Great idea! At this time, you are not only an excellent automation engineer, but also on the road of test development! Start learning, understand the test framework httprunner, the development framework django/flask/springboot, understand the process of interface development, understand mybatis, shiro, quartz, etc., and start learning the front end

Vue/react, understand what is component development, parent-child component passing value, start to understand a lot of things, even the knowledge of operation and maintenance, start to understand k8s docker, microservices. . Then you are going more and more in the direction of the great god. I hope you are not bald. At this time, you can proudly call yourself a qualified test developer, or call yourself a full-stack developer. This is the end.

PS: The above is just me, and I believe it is a learning route for most people who learn and like automated testing. Of course, some automated testing on the App side/small program side is not mentioned this time, but they are all roughly similar. I hope you will like this article after reading it! I wish you all less detours

So I set up a self-study group for software testing and development. Friends who are learning testing can click the small card below

Guess you like

Origin blog.csdn.net/2301_77645573/article/details/131438408