I interviewed a 33-year-old programmer for the company. Because of this detail, I could tell at a glance that he came out of a training class and had no work experience...

First of all, I would like to say: there are many excellent trainees out of the training. I do not hope that it is a pity that the two-way matching between employers and candidates cannot be achieved because of the label of training.

Recently, I saw such a message on the Internet, which caused a lot of sensation in the circle of programmers.

"I interviewed a 32-year-old programmer for the company. Because of this detail, I could tell at a glance that he came out of a training class and had no work experience..."

 

Trained programmers are always accidentally injured

I don’t know when it started, but everyone is looking down on trained programmers more and more, mainly because of their poor foundation, low education, poor level, weak learning ability, and fake resumes.

Some programmers from training institutions do have problems, but you can't kill all the trained programmers just because "it's just that many poorly performing programmers happen to have training experience".

In fact, many software and Internet companies have programmers from training institutions, and many of them have done a good job.

I myself am the front wave who was trained, and I will not follow the trend and dislike the back wave without thinking. The "dislike" mentioned above, to be precise, should be:

Everyone does not dislike programmers from training institutions, but those who have participated in the training and did not study hard, have poor foundations, are not good at work, and are not motivated and fake.

After all, there is nothing wrong with wanting to earn a higher income and pursue a better life through hard work.

However, as a former wave, I can't ignore the shortcomings of the latter. I can't stand the practice of some trained programmers.

Take resume falsification and project falsification as an example. I have interviewed many people, including many trained programmers. Sometimes the interviews are really speechless.

Obviously there is only half a year of work experience, so it has to be packaged and written as 2 years of work experience. Do you work overtime every day and count the overtime hours as working years?

Obviously I have never done a project, so I have to make up a project. The items in many people's resumes are similar, or even exactly the same. For example, many people said that they have done e-commerce projects, and the introduction was very smooth, and they were clear and logical at the first glance. But you can't ask details, such as asking about how many tables in the database? Which open source jar packages are used? How is the log written? This most basic detail reveals its flaws as soon as it is asked.

From this point of view, the training teacher helped prepare the interview skills, and asked the students to memorize the proficiency in advance... Who would dare to recruit such a programmer?

If you fake, I fake, he also fakes, everyone fakes, fakes are fun for a while. But as the old saying goes: good things don't go out, but bad things go a long way. Gradually, everyone will think that the programmers from training institutions are parallel imports, and they are unwilling to ask for them when recruiting.

There are already some companies that are unwilling to recruit trained programmers. Why?

Everyone wants to recruit a good programmer, right, but it takes a lot of time and effort to recruit a good talent.

Assuming that one excellent programmer can be selected from 30 professional programmers, due to ability and fraud, only one excellent programmer can be selected from 50 training programmers. Everyone is willing to save time and energy and recruit from the former. people

Now the hottest time in the IT industry has passed, and the shortage of programmers is not so severe anymore. I can’t wait for hundreds of people to compete for a job. - It saves time and has a high yield rate.

As a programmer, the most important thing is your learning ability and technical level. Heroes don’t need to ask where they come from.

It doesn't matter whether you are from Peking University Tsinghua University or Peking University Jade Bird .

If you are a trained programmer, since you have chosen a path, stick to it. It may be a bit bumpy in the early stage, so don't care too much about what people think of you.

At the same time, it is also a warning to us: In this era, nothing is certain, and nothing is easy. We can only get a real job by working hard and jumping out of the comfort zone .

 

If you want to know how to learn automated testing by yourself, you must first understand whether it is worth learning?

Let me talk about a few points. If you are in this industry, you will definitely understand whether I am right or not.

1. The seemingly "declining" testing industry in view of the past major changes in the situation

Test engineers who do not understand technology will gradually be eliminated.

A wave of unemployed test engineers is inevitable. Although I also called on people around me to get rid of backward business systems and backward testing skills in the early days, it is also heartbreaking to see that many people are getting more and more difficult. Including the less and less demand for test engineers, and fewer and fewer recruitment positions. Typical newly emerging giant companies such as Facebook did not have QA in the early days. Even in the past few years, there was a debate about whether the QA team deserves to exist. On the surface it appears that the testing industry is in decline. What's interesting is that the original intention of everyone discussing whether the QA team is worthy of existence is to better ensure quality, which is quite intriguing.

The vast majority of companies are very supportive of the existence of the QA department. The question is whether the value of the QA team is large or small. In the past, the outdated test system, backward tester ability, and lengthy test process were used by the entire IT A key point of industry criticism. When the productivity of R&D is gradually improving, and the deployment of operation and maintenance is gradually being automated, the value and cost of QA can no longer be ignored. It even becomes the biggest cost of a project. This is a problem that any company cannot ignore.

In the early years, Alibaba’s executives collectively went to Silicon Valley to visit the newly emerging giants, and the conclusion was that their processes and execution were much stronger than those in China. Even Facebook grew into a large company without QA in its early years, so Ali quickly Promoted the cutting of the process, which includes the abolition of SQA, the abolition of demand analysts, the abolition of project managers, and the reduction of QA positions. Enter the simplest mode of product, research and development, and testing. Whether QA will be removed also depends on the value of this department, so don't take it for granted that "existence is reasonable",

Some companies are now experimenting with the "no QA" model. The only constant on the Internet is change. For example, a typical example is that algorithm testing in search, recommendation, machine learning, etc. is an important field and requires professional expertise. Involved by test engineers. This industry can accommodate many testing teams. However, the testing industry has not formed a correct testing method for this field in recent years, and finally lost this market.

Now it’s all R&D. Guaranteed. Because there are no qualified test engineers to guarantee this business. The same is true in the field of performance testing. With the performance test platform, full link stress test, performance monitoring, AB Test, cloud stress test With the emergence of such technologies and services, the demand for performance testing engineers will also shrink. Performance testing in more and more companies has become dominated by R&D. If this business is lost, the demand for performance testing QA will naturally be affected. Influence.

It must be remembered that the business space determines the living space of QA. This is a common principle in all industries. If you cannot meet the business needs, you will be eliminated. You can either choose to retreat to the defense or choose to accept the challenge bravely.

What will the future of the testing industry look like? Many people will be worried. But I am still optimistic on the whole. Because I like the entire industry, and I have been thinking about it over the years. Let me tell you my opinion

2. Test the size of practitioners

The size of employees is negatively related to productivity and positively related to business scale. How big it can be in the future depends on the dual factors of technology and business scale.

The first is the big environmental factor. With the Internetization of various industries, the IT industry is expanding. Food delivery, nail art, and even the drone, automotive and aerospace industries will all become technology companies. The R&D team will expand, and the QA team will naturally overall expansion.

The premise is that QA itself must keep up with the times. Secondly, with the improvement of productivity, it will naturally not need so many people. This is the case in any industry, and the testing industry is not special. Just like the automotive industry. , stack technology, use robots, and improve the process. Improvements in industry technology, testing technology, testing tools and testing services will all improve testing efficiency and reduce costs to a certain extent.

This improvement will lead to a more streamlined and efficient QA team. A large number of people means that the value of everyone is as cheap as the workers in the Foxconn factory. The pursuit of high added value is the right way. This is a win-win for the company and the testing team.

The third factor is industry status. The popularity of devops promotes close cooperation between R&D and operation and maintenance. Once this stage is completed, the production deployment of products will be very smooth. Then problems will be exposed earlier and earlier , everyone will pay more attention to quality. At that time, it will enter a new era, DevQA operation and maintenance will gradually become pipelined, and Dev and QA will become the new protagonists. It’s just that it’s not necessarily the current software testing that can support the overall situation. Engineers will be test engineers in the new era. The testing industry will become more and more professional. Talents, technologies, tools, open source platforms, and services will become more and more perfect. Trend. There will also be innovations at the technical level. Previous tests can only leave test cases and business knowledge documents without continuous accumulation. With breakthroughs in interface testing, quality monitoring, coverage analysis, business modeling and other technologies, QA It will also form its own stable and accumulative business data, and gradually form its own platform and business. The dual factors of business space + technical threshold are a core factor that I firmly believe that the QA department can exist for a long time.

3. The management of the testing industry will gradually become flat

Almost most Internet companies are splitting up their business and QA teams to improve execution. Therefore, there will be fewer and fewer director positions that manage hundreds of people, and more and more directors who manage less than a hundred people. Or some money-burning start-ups are going against the grain. Among them, these test managers will encounter some new challenges. For example, most of the higher-level managers are from R&D. If they don’t understand the R&D system, there is almost no room for development. The test management system is lost. The superstructure has a far-reaching impact on the future. There will be pains, but the result will definitely be good

4. There are many reasons for the increase in the demand for testing technical personnel

Because of the spin-off of large companies, there is no longer a unified testing technical support department, so each team after the spin-off needs to form a corresponding functional team, and the demand for testing technicians will increase instead. Small and medium-sized companies also demand quality Guaranteeing the effect is not only better, but also faster, and requires a lot of technical talents. It can also be seen from the job descriptions of various recruitment websites in recent years

5. The disaster and rebirth of outsourced testing

Originally, companies doing outsourcing business in Europe, America, Japan, and South Korea will gradually decline due to the development of the domestic Internet. They need to transform to do domestic business. However, most domestic outsourcing businesses are also repelled, and outsourcing business has many disadvantages in terms of efficiency, communication and management. They themselves cannot Carrying the training and long-term development of test engineers. Therefore, in the past few years, a large number of outsourced test engineers will transform. In this regard, new and excellent outsourced service companies are needed. They can have their own test services, test technologies and advanced tests. Only research engineers can do it. For example, Neusoft has also started to make its own various cloud measurement platforms, which is a change to cater to the new era.

6. Test engineers who do not understand development are already illiterate in the new era

The first one is that there is not much room for promotion at work. The second is that it is also difficult to change jobs. The best result is to transfer to management with years of experience. I have communicated with many test managers in the industry, and most of the jobs are more than 6 People who are more than 20 years old will be burnt out in test execution, and can no longer get started in the improvement of test technology. It is better to recruit interns. Relatively speaking, people with technical foundation will still maintain their enthusiasm for learning after working for more than 8 years. So The structure of the future test team will basically be the management model of most business test engineers + a few test experts + test managers. Those who were illiterate before were illiterate, and those who did not know English later were illiterate. After countries called for more emphasis on IT technology , The illiterate in the new era is almost someone who doesn't know how to develop. The original intention of the testerhome community is to arouse the whole industry's attention to testing technology.

7. The threshold of the testing industry has increased. It was in the development stage before

The industry’s demand for talents is the first. With the development and stability of large companies, recruitment has stabilized. They basically only recruit from 211 colleges and universities. Social recruitment also depends on academic qualifications. , In terms of academic qualifications and experience, it is also highly valued. There will be fewer and fewer companies that can recruit talents without sticking to one pattern. I have recommended many students to other excellent companies, and some of them have good skills, but their education I haven't passed the test. So I hope everyone can pay attention to this issue in terms of skills and education. In addition to the education threshold, there are also technical thresholds as mentioned in the previous article. So come on, boy!

8. Salaries in the testing industry are on the rise

The testing industry will be reborn after its own purification and washing. A typical change is that the salary has been raised from the previous range of 3k-15k to 1w-3w as a whole. The improvement of technical content and responsibility will inevitably bring overall returns. Now as long as the technology is good, education is no problem. It is very common to get a monthly salary of 20,000 to 30,000 yuan after working for 3 years. I will talk about the salary in detail later.

9. R&D engineers enter the testing field

In recent years, the entire industry is very dissatisfied with the development of the testing industry. In layman's terms, everyone thinks that testing is very low, but they cannot live without it. The mood of R&D and submitting a project to the test is the same as going to the train station to buy tickets during the Chinese New Year. To apply for test resources, to explain the business and implementation to the test, and to meet relatively low-level or new recruits, you will not even have to pay for the environment Hands-on teaching. R&D is just to modify a line of code, and QA or testing will be fried. Various processes are enough to make R&D lose several hairs. As a reference comparison, let’s think about operation and maintenance. Deploying an environment back then was very different from submitting tests. For example. To apply for operation and maintenance intervention, you need to apply for machine resources, then submit deployment documents, and specify the version number of various details such as the basic environment and dependent libraries. Dimensional tearing force. There was a popular saying in the operation and maintenance industry back then that "people" are the most critical release guarantors. Now with the popularity of continuous delivery and devops, releases have become "silky smooth", one-click Publishing, free to choose the gray scale, and the usual release does not even require the participation of operation and maintenance. After trying the sweetness of the new model, the disadvantages of the testing industry are already unbearable. Therefore, in the case where excellent test engineers and architects are hard to find Now, more and more companies choose to use R&D engineers directly. Their pursuit is very simple. Single test->interface test->basic smoke test can be automated. If it can be like It would be more perfect to make testing as a service like operation and maintenance. After understanding the current situation of the testing industry and clarifying the prospects, it is necessary to talk about what to learn in detail.

What to learn about automated testing?

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, learn a language. As for what language to learn, it’s very simple, don’t worry about it. First, check whether you have a programming foundation. If you have no/weak programming ability, choose python. If you have, choose java (more difficult), python, etc. Can.

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.

 

1. To lay a solid foundation before building a building, you first need to learn a language

We also mentioned above that if you want to do well in automation, you must learn at least one programming 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.

2. After getting started with the language, you will officially embark on the road to become a god of automation, the introductory chapter Selenium

As the ancestor of automation, selenium 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 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!

3. Tired of Selenium

After you have played for a few days or a few weeks, you seem to have no interest in Selenium, and the scripts are getting more and more 6, and you can write some linear automation scripts. At this time, you are a little proud and complacent. Automation is nothing more than that, is that all?

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.

4. Get in touch with the automation framework unittest/testNG

When you 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, and the test results cannot be counted. At this time , you need a unit test framework 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.

5. Not satisfied with the functions of the unit testing framework

When your script is well written, the use cases will be organized, and then every time the leader tells you to run a test, then send the test results to him, and summarize them 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.

6. Learning Automation Framework

At this point, you have already started to think about how to write an automation framework, which means that your automation has already started 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 case management, logs, test reports, Mail, 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.

7. Initial interface test

The above ends the learning of UI automation, 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!

8. 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.

9. request/HttpClient combined with unittest/testNG+allure

In the same way, when you learn request/HttpClient, you will naturally think of integrating them with a unit test framework, and then you will find a tall allure test report, combined with some log module printing parameters, such an interface framework that you are familiar with It came out, almost the same as before! Trivial.

10. Try to manage test cases with yaml/Excel

Waiting for you to take your own framework and write test cases repeatedly and boringly, 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? ,very tired! 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?

11. 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.

12. Test platform/tool ​​development at the top of automation

You are still not satisfied after you have built the company's automation ecosystem. 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.

The above is for me personally, and I believe it is a learning route for most of them to learn automated testing. Of course, this time I did not mention some automated testing on the App side/small program side, but they are all roughly similar.

write a summary

Software testing is the easiest subject to get started in IT-related industries~ It does not require the brain-burning logical thinking of developers, and does not require operation and maintenance personnel to be on call 24 hours a day. What is needed is a careful and serious attitude and an understanding of the breadth of IT-related knowledge points. The growth path of each tester from entering the industry to becoming a professional expert can be divided into three stages: software testing, automated testing, and test development engineer.

Finally, I would like to thank everyone who has read my article carefully. Reciprocity is always necessary. Although it is not a very valuable thing, you can take it away if you need it:

These materials should be the most comprehensive and complete preparation warehouse for [software testing] friends. This warehouse has also accompanied tens of thousands of test engineers through the most difficult journey, and I hope it can help you! Partners can click the small card below to receive 

 

Guess you like

Origin blog.csdn.net/kk_lzvvkpj/article/details/128154371