Functional testing will be eliminated in 2023? Automated testing to test development? My road to testing...


foreword

Now in 2023, the industry is now relatively volatile, and only functional testing will be eliminated sooner or later.

It seems that many interviews this year will not be automated and even have no interview opportunities. I even checked the recruitment online. Basic positions require automated testing skills.

Why do you say that only functional testing will be eliminated?
After all, functional testing can be learned in a month. Many people learn by themselves and just do functional testing of projects. This way the threshold is too low, and this kind of people will be huge, so the competition will be fierce, and companies will definitely It raises the threshold, which is why there is an industry involution this year. Everyone is competing for a job, so don't you have to have a solid grasp of various technologies?

As for software testing, functional testing is the basic skill of a tester, and it is also essential. With the passage of time and the development of technology, as a test, not only must there be a solid foundation, but also continuous improvement. If If you stay at the origin all the time, you will be in a state of stagnation, and you can imagine your own development.

Since you talked about the career development of software testing, as a software testing engineer, if you have been doing functional testing, what software testing career development are you talking about?

Now that you have laid down and just want to do functional testing, not interface testing, performance testing, grayscale testing, white box testing, automated testing and test development, what software testing career development are you talking about?

Even if you will not be eliminated, then you can see that the people around you are developing. Don't you feel uncomfortable all the time?
If the profession of software testing is actually only testing, the ceiling is so high. If you want to talk about development, you are getting closer and closer to development.

Advanced route to automated testing

The highest state of automated testing is: developing testing tools, designing automated testing frameworks, and letting others use them.

You need to learn a language first
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 py, these are all needed, in fact, it is almost the same, if you know one language, the others are similar.

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

Getting started with the web automation framework Selenium
can help you quickly understand what automation is, and it can give you intuitive feedback on the page. It was the same at the beginning, looking at selenium's api, bit by bit, and tried almost every method.

Unit test framework Pytest/Unittest/TestNG
You will start to learn, the usage of 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, and the execution order of the use case How to control, how to write assertions, these are what you have to explore and learn.

Learning automation framework
Start to study the structure of the framework, there are case management, logs, test reports, emails, basic encapsulation classes, etc., a framework design pattern (classic PO pattern)

Initial Interface Test
Most companies use the http interface, so you start to learn from the http protocol to understand its structure, request header, request parameters, request address, request method, etc.

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 foggy, 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.

Learning the Request/HttpClient library to initiate a request
After using postman, you will think, so how do I use code to initiate a request?

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 Pytest/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 an interface framework that is familiar with the road will come out, which is similar to the previous one.

yaml/Excel manages test cases
and waits 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? I have to write code all the time, so 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?

Mainstream supporting automation framework
Interface automation testing direction: Python+requests+pytest+yaml+alluer+Jenkins;
web automation testing direction: Python+selenium4+pytest+POM+allure+Jenkins;
app automation testing direction: Python+appium+POM+pytest +allure+Jenkins;

git? jenkins? docker container? distributed?
The code can only run locally. If you want to use it for others, you need to configure the environment on other people's computers 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.

Automatic test platform/tool ​​development
Waiting for you to 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! Development framework django/flask/springboot, understand the process of interface development, understand mybatis, shiro, quartz and so on.

Start to learn front-end vue/react, understand what component development is, pass values ​​between parent and child components, and start to understand a lot of things, even the knowledge of operation and maintenance, more and more towards the direction of the great god, I hope you are not bald, at this time You can proudly call yourself a qualified test developer.

The following is the most complete software test engineer learning knowledge architecture system diagram in 2023 that I compiled

1. From entry to mastery of Python programming

Please add a picture description

2. Interface automation project actual combat

Please add a picture description

3. Actual Combat of Web Automation Project

Please add a picture description

4. Actual Combat of App Automation Project

Please add a picture description

5. Resume of first-tier manufacturers

Please add a picture description

6. Test and develop DevOps system

Please add a picture description

7. Commonly used automated testing tools

Please add a picture description

Eight, JMeter performance test

Please add a picture description

9. Summary (little surprise at the end)

Every effort is to make yourself better and make your life better. Don't be afraid of failure, bravely meet challenges, persevere, and success will be waiting for you not far ahead. Believe in yourself, you will be able to create your own brilliance!

Only by working hard can you reap the fruits of success; if you persevere, you will find yourself stronger than you imagined; no matter how many difficulties you face, you must maintain faith and courage; every progress is the driving force for progress, let us move towards the goal together struggle!

Only on the way of continuous advancement can one discover one's own limits, and only after experiencing setbacks can one achieve brilliance. At any time, you must persist in pursuing your dreams, and believe that your efforts will eventually be rewarded. Remember, only by working hard can you make yourself better!

Guess you like

Origin blog.csdn.net/csdnchengxi/article/details/131329557