Worked for three years, monthly salary is less than 20k, software test engineer, worried about being replaced by fresh graduates

I have worked for 3 years, and my monthly salary is less than 20K. I am worried that I will be replaced by fresh graduates! The rapid development of the Internet is accompanied by the acceleration of the survival of the fittest among employees. Years are a dividing line. If people's abilities and physical strength are not enough, they will be eliminated. A lively work life makes many people anxious.

 

Recently, a test engineer from 211 undergraduate expressed his anxiety: "He has been working for more than three years, he is 25 years old this year, and his current salary is less than 20K. However, considering that he will be 30 years old in a few years, His technology has not improved much, but he is familiar with several frameworks. Except for the ability to write test documents, he has no real exposure to automated testing. I think any fresh graduate can replace me. When I saw the year-end issued by Ali When I got the big prize, I was so anxious. I didn't know what to do for the next five years so that I wouldn't be too embarrassed when I turned 30."

In fact, I believe that many friends have the same feeling and have some experience in this situation, but it is very difficult to change the status quo. However, it is impossible to change the status quo of many things without people making an effort to clarify them. How does one know if one can change them? It is not impossible to find the right direction and work towards it. So, what can a programmer do?

First of all, how become a qualified automated testing engineer.

It is necessary to master a programming language, which should be based on Java or python. Although any language can be used for automated testing, after all, these two are the most popular. If you don’t want to become a non-mainstream automated testing engineer among automated testing engineers, Then I still strongly recommend that you choose the python language, which is very friendly to weak programming foundations and easier to learn.

Programming language is the core of automation, if you don’t know how to program, it’s useless. Then you need to know the mainstream testing framework and some auxiliary tools.

The mainstream frameworks are nothing more than selenium, appium, monkey, monkeyrunner and the like. Basically, you can play with these few APPs and UI automation after mastering them.

Second, performance testing To do a good job in performance testing , one of the most important prerequisites is to understand the system architecture of the product under test, and master the data flow and interaction of the entire system; in this way, you can analyze the pressure points of the system and formulate performance tests Plan, otherwise your powerful performance testing tool may not achieve the testing purpose.

Then choose a performance testing tool. Here it is recommended to analyze some open source performance testing tools, such as: ab performance testing tool. Mastering the implementation principles of these tools will be of great help to optimize the tools to achieve the purpose of testing later. Instead of simply thinking that you can use loadrunner's recording playback and result analysis, you are the master of performance testing. In this way, I can only say that you have too low requirements for yourself.

Practice, analyze, verify, and practice repeatedly, and one day you will become a performance testing expert and testing expert in this field. What I have to say here is that the general performance testing expert is also a test tool development expert, otherwise you may You have to rely on others (not in line with the status of a big cow).

As a software test engineer, how hard should I work to quickly become an excellent test development master, or performance test master, or what knowledge system needs to be mastered as a software test engineer. This is not only a software test engineer who has just stepped into the workplace, but also an engineer who has started to get confused after working for three to five years. They must face and understand the problem.

1. Basic theoretical knowledge of software testing:

  • The theoretical knowledge of software testing is the theoretical basis and support for carrying out testing work, and it is a skill that must be mastered in a very important stage of testing.
  • Software quality model: the software testing process guarantees the quality of software, and from what aspects can we start thinking from the quality model
  • Test classification: The software testing process can be classified according to different angles, from basic testing to advanced testing
  • Development process: Tell testers a complete life cycle of software, the process of software from scratch to death
  • Testing process: master and guide testers how to carry out testing work in actual projects. This requires testers to have a thorough understanding of common mainstream testing processes. Encounter different software projects, know where to test software defects most efficiently
  • Test plan and scheme: how to plan and carry out test activities in the project to ensure that the test activities are carried out in an orderly manner
  • Design use case method: some test case design methods that must be mastered in the black box testing phase. For example, the design method of black-box test cases, test case elements, etc.
  • Software Defects: Defects should be identified and reported during test execution
  • Defect management: After submitting a defect, how to assist the development to deal with the problem of verifying the submission in actual work. For example: bug level priority classification, bug description, bug life cycle, use of defect management tools, such as Zen Tao, etc.
  • Test report: Review the test process and confirm the results, and generate a systematic professional software test evaluation report.

 

Second, software testing skills - Linux system

The linux system is the main server operating system, and it is also one of the basic technologies that most personnel engaged in IT positions must possess.

  • Basic knowledge of linux system: multi-user, multi-tasking, release version, etc.
  • Common linux operation commands: log viewing, file compression, decompression, user management, file permissions, etc.
  • Can deploy and configure basic application jdk, mysql, tomcat
  • docker installation and use
  • Write a basic shell RAD script
  • Remote terminal tools use: shell, xftps, etc.

 

Three, software testing skills - Sql database

As a necessary application system for software systems, the database often needs to operate the database in the process of interface testing, performance testing, etc., to verify the correctness and integrity of the data, all of which are inseparable from the operation of adding, deleting, modifying and checking the database. During the project deployment stage, the database is still Need to cooperate with project deployment. Database support is required in performance testing and interface automation testing.

  • Basic concepts of database
  • Relational Database
  • MYSQL basic addition and modification query statement, stored procedure
  • MYSQL complex query, multi-table query
  • MYSQL index and transaction related concepts
  • Use of database client tools: such as Navicat

 

Four, software testing skills - programming language

As for programming languages, it is recommended that you start with Python and learn Java language as a supplement. If you check the major recruitment websites, these two languages ​​are basically the main ones. Friends who have no programming foundation can learn the Python language first

The learning content of Python language includes the following knowledge points:

  • Python basics: Python language features, operating environment, basic grammar, code style, sample programs
  • Data structure: basic data structure: number, string, type judgment, type conversion, slice, string formatting, numerical operation, positional parameter and keyword parameter; combined data structure: list, tuple, range, dictionary, set, Non-hashable objects, unpacking, memory data structure addresses, immutable data
  • Program control: sequence structure, loop structure, judgment structure, exception handling, logical operators
  • Functions: Define functions, function parameters, return values, variable scope, anonymous functions, commonly used built-in functions
  • Modules and libraries: modules and packages, import keywords, common standard libraries, common third-party libraries, package management tool pip
  • Object-oriented: the origin and advantages of object-oriented, the connection between object-oriented characteristic classes and objects, and the special methods of objects
  • Logging: baseConfig, file logs, mail logs, custom formats, built-in placeholders, level filtering, level propagation, configuration files
  • Testing framework: unitest, pytest, etc.
  • Concurrent programming: multi-process, multi-thread, coroutine, thread pool, synchronization control, thread communication, distributed, monkey patch, async syntax, generator
  • Network programming: basics of socket programming, TCP server and client, parallel request processing, HTTP server and client

 

Five, software testing automation advanced - interface testing

The essence of interface testing is also a kind of functional testing. Through scripts or tools, the simulated client calls the server interface. Because it is tested from the interface layer, problems can be found earlier, thereby improving test efficiency and reducing repair costs.

  • http/httpst protocol learning
  • Common request method learning: GET, POST
  • cookie and session learning
  • Basic concepts of interfaces
  • Understanding of interface documents
  • Interface test case writing
  • Use of interface testing tools: postman, Jmeter, SoapUl

 

6. Advanced software testing automation - performance testing

The technical requirements of performance testing are very high, not only a deep understanding of performance testing indicators, test classification, and test design is required. You also need to learn about system business and architecture, so that you can better design performance scenarios.

  • Basic concepts of performance: meaning of performance testing, understanding of common performance indicators, classification of performance testing
  • Performance testing process: performance requirements analysis, performance scenario design, test script writing, test execution resource monitoring, performance tuning, regression testing
  • Use of Jmeter and roadrunner
  • Performance test report output

 

Seven, advanced software testing automation - web automation

Understand the purpose of automation, master TestNG&unittest automation framework, as well as assertion and log processing; students who do testing know that we mainly use Selenium or QTP for web automation, here we need to master Selenium's web automation environment construction, correct Browser configuration.

 

Eight, software testing automation advanced - app automation

More and more projects and systems provide services through the mobile terminal, and the software quality of the mobile terminal is becoming more and more important. App automated testing has become an important part of automated testing. With the help of Appium, there are many similarities between App automation testing and Web automation testing, but as a test engineer, you still need to master the tools and features of mobile applications.

  • Appium mobile test environment construction: Appium Server Appium and Desktop, Android operating environment construction, emulator installation and connection, real device debugging mode, adb, weditor, - - UiAutomator22, Monkey
  • Appium element positioning: native application element positioning, pure web application element positioning, hybrid application element positioning
  • Appium element interaction: waiting for element loading, basic properties and methods of elements, sliding, dragging, zooming operations, drop-down selection operations, toast message processing, common control analysis, common layout analysis
  • Package test framework: integrate Appium, adb and other tools, pre-defined exception handling, record Appium logs, screenshots, create a multi-purpose test framework

 

Nine, advanced software testing automation - continuous integration and continuous testing

Continuous integration and continuous testing is a process of building, testing a product, and fixing bugs in iterations. It helps teams find bugs early in the development phase, when bugs are usually less complex and easier to fix. Through continuous integration and continuous testing, you can minimize the risk of bugs earlier and speed up the delivery of better quality software.

  • Version control Git: background introduction, environment deployment, workspace, staging area and submission area, branch creation and merging, conflict resolution, labels, config and aliases, local warehouse and remote warehouse, GitHub and code cloud
  • Continuous integration of Jenkins: background introduction, environment deployment, file structure, remote warehouse and private server, ja package dependency, plug-in management
  • Container Docker: Understand Dockers images, warehouses, containers, Docker Engine and architecture diagrams, network settings, data persistence

I believe that you will continue to explore and improve according to this learning framework route, and break through the bottleneck of technology. It can be said that this process will make you miserable, but as long as you get through it. Later life will be much easier. As the saying goes, everything is difficult at the beginning, as long as you take the first step, you have already succeeded in half, and when you look back on this journey after completion, you will definitely feel a lot of emotion. I have also gone through such a journey before I can get more opportunities for high-paying positions. The hard work will eventually pay off, which can be regarded as a recognition of my ability and a real proof of my own value. At least a salary of 30+ after tax is quite satisfactory in my current state.

I also share some software testing learning materials, which should be very helpful for those who learn software testing. Friends in need can click on the card below to pick them up. In addition to the basic entry-level resources, you have also uploaded a lot of them Advanced automation resources, from theory to actual combat, can only be truly mastered by the unity of knowledge and action.

You can take it away by yourself (private message keyword "data" to get it for free~)

[50G software test package] with video tutorials + course notes + test documents + 216-page summary of selected interview questions

 

These materials should be the most comprehensive and complete preparation warehouse for friends who do [software testing]. This warehouse has also accompanied me through the most difficult journey, and I hope it can help you too! Everything should be done as early as possible, especially in the technical industry, we must improve our technical skills.

Finally, don't be a salty fish

If you want to take testing as your long-term career development goal, you need to keep learning all the time. To make yourself competitive, no matter how many years you are working now, as long as you take action, you will already have an advantage. That’s it, I wish you all In 2023, you can be promoted and raise your salary, get an offer from your favorite company, and everything will go smoothly.

If it is helpful to you, please like and collect it to give the author an encouragement. It is also convenient for you to quickly find it next time.

Guess you like

Origin blog.csdn.net/a448335587/article/details/129451862