Are there prospects and outlets for the software testing industry? (Latest consultation)


Insert picture description here

愿你我相遇,皆有所获! 欢迎关注微信公众号:【伤心的辣条】 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!

1. The prospect of software testing and the current status of the industry

1.1 Salary for software testing

The path of software testing: function >>> interface >> performance >> >> automation >>> testing >>> the peak of life

Functional testing: There used to be a large gap in the Internet and software testing, so there are many functional tests. But in 2020, under the impact of the epidemic, basically all interview software tests will ask about "automation". Whether it is training or self-study, it is recommended not to stop function. Nowadays, the salary of outsourcing company functions is about 5-7k; but there is no room for promotion.

Interface test: On the basis of function, the salary of interface test will be higher, about 8k, at least understanding of automation.

Performance test: The salary of the performance test can basically be around 10k. First-tier and second-tier cities, and some third-tier cities can almost achieve it, depending on the local industry.

Automated testing: If you are just learning automation and preparing for employment, it will probably start at 12k, but there is a lot of room for promotion and salary increase. In terms of function, there is no increase in working years and increase in wages. But proficient in automation, depending on technology and work experience, the older the older, the more popular;

Test development: If it is pure development, you are not necessarily very good in this development circle. If it is test development , you must be a very famous and very powerful role in this circle. Don't talk about salary, be a good person who takes option shares.

1.2 The status quo of the software testing industry

Most of China's earliest exploration of IT engineering enlightenment and test positioning came from Microsoft, and technology enlightenment and development are mainly automation. Some industry leaders said that ten years ago, the performance test in the company was to hire people and start a little bit together. Then QTP and loadrunner quickly occupied the market.

When the Internet era came, CMMI was gradually ignored by Internet companies. The ratio of testing and development has changed from 1:2 to 1:3-5; in this era of mobile flower networking + entrepreneurial waves, each has developed rapidly, deriving CI, CD and DevOps, etc., and the testing and development ratio has reached 1:8;

Now is basically the era of big data and artificial intelligence, no matter it is the beginning of this era or whatever; in fact, new productivity has gradually formed and landed in the testing industry. You can refer to the new infrastructure data in 2020:

Big data, artificial intelligence, 5G, industrial Internet, the TOP10 of the four major industries under the four new infrastructure information infrastructure construction, three have software testing positions. Therefore, whether the industry that the subject is worried about has a future and a way out, you can rest assured. To put it simple and easy to understand, the supply of products in all walks of life exceeds demand, and the traffic that everyone is grabbing is the user. If the products and prices in the same industry are stable, then the user experience must be grabbed. Therefore, each company pays great attention to their own software and products. As long as they start to pay attention to interaction, then the development of software testing and product managers will be very good... If you have the fate to read this question and answer, you can feel relieved if you want to change careers.

Second, understand what software testing is

The definition of software testing is to find software problems and ensure that they are online or delivered after repair;

The two test methods are mainly to prove that the software is working, or to prove that the software is not working. Although the purpose is different, the operation is quite different.

The composition of software testing is composed of documents, data and procedures, so software testing should test the documents, data and procedures formed in software development. But many tests now only test programs.

Classification between tests:

• Unit test = module test, to verify and test the modules of the program

• Integration test = composition test to verify the interface relationship of program units

• Confirmation test: It is equivalent to inspecting and providing relatively objective evidence, to verify that the content is whether the software meets expectations

• System test: To check whether the target requirements are met, test the integrated software and hardware

• Acceptance test: According to the project task or contract, conduct a comprehensive test and review of the system to decide whether to accept the software

(Friendly reminder: Try to understand these as much as possible, it is also very easy to understand, because these are only the concepts of software testing, a must for zero-based learning)

In fact, it can be divided according to the test implementation organization, but it is only necessary to understand the content; the technical division is black and white gray box testing;

Test type:

• function test:

Functional testing is to see if there is any difference between the external specification and the program. The external specification is an accurate description of the behavior of the program from the user's perspective. When testing, design test cases in accordance with scientific methods for execution testing. Under the premise of ensuring that the test cases are executed exactly the same, exploratory tests are carried out based on business understanding and empirical judgment;

• Interface test:

UI testing, the interface is the most direct layer between users and software, so more attention is paid to user experience. Testers need to start from the user's feelings, interactions, browsers and emotions, and experience. Testers need to consider whether the layout of functional modules of the user interface is reasonable, whether the overall style is uniform, whether the position of each control conforms to user habits, and whether the text layout is beautiful and whether the naming is uniform.

• Compatibility test:

Compatibility testing is whether the software can run normally on specific hardware platforms, different operating systems, and network environments. For example, an APP can run on Huawei's mate30 and Xiaomi. There is also a compatibility test of operation and resolution on different systems.

• Usability test:

Simply put, is the software convenient, whether each function is complicated, and how to optimize it. This is not only for testing, but also for products. When testing, you can list the list according to the requirements and the general principles of ease of use in the analysis of competing software, and then the tester will test according to the list.

• Performance Testing:

To put it in the vernacular, the number of users increases at the hour of Double 11, how can you simulate a large number of users to perform operations and see if there are abnormal load conditions to test the performance indicators of the system.

The above are some basic concepts of software testing. The types of testing mentioned above still need to be understood before you can roughly understand what software testing has;

3. Daily software testing

First answer the main question. Some people say that the test is very idle and there is not much room for promotion, which is only 8-9k. Generally, after several years of functional testing, people who can't get up will say that it is idle and that there is not much space. The software testing industry is definitely not an industry of mixed qualifications, nor is it an industry of mixed years.

Tell a story to the friends who read the article:

A 33-year-old sister and a 35-year-old brother around me have been working for many years, and the salary requirements are not high. However, during the recent epidemic, they have been abandoned by companies and never found a job. In fact, the reason is very simple. All companies have been greatly affected by the epidemic, but companies prefer to choose young people and they are more flexible.

There is another story:

I heard a senior HR around me said that I recently met with a 33-year-old tester. The current salary is 4k and the expectation is 6k. Everyone agrees that it is terrible. I have worked at the age of 33 for at least 10 years. According to the 30-year-old changing career, 6k salary for 3 years of work, what does it reflect?

Daily life of software testing:

When there is a project, at the beginning of the project, a requirement review meeting is used to understand the requirements of the iterative function module, which is the day when the meeting is held while reading the document. In the understanding stage, you need to sort out the test points as much as possible. If you encounter a demand logic inconsistent during the sorting process, you can first find the product to confirm. Mainly with different personnel, the focus of the test is different;

In the middle of the project, it is necessary to start writing documents, which are test cases. If you are an automated test, you must start the analysis or accept the analysis of the leader. Which module needs automation, you are responsible for that part of the script. If you encounter a bug in the mid-term, you need to continue to communicate with the development. If the bug is submitted, regression testing is required.

Post-project work content:

After the execution of the test is completed, the tester needs to make a conclusion about the test, whether the test passed or failed. At this time, the software testers need to draw conclusions, but they cannot tell the development and product managers in one sentence that they can go online or the project fails.

4. How to learn software testing with zero foundation

We follow the content at the beginning and directly follow how to automate self-study. Because learning the function is not good, we go directly to automation with zero basics. Many functional tests enter the industry for three or four years. Salaries or positions have not improved much. The reason is that once the function is as deep as the sea, learning technology again is equal to fog. Look at the flowers.

4.1 Principles of Internet Programs>>The Only Way to Automation

Web front-end development foundation: basic content learning of HTML and CSS.

Web front-end development script: JavaScript is the most mainstream script learning. Similarly, this will also be designed in automated testing. In fact, dynamic scripts are often used in some tools, and they are also JavaScript languages.

Developer debugging tools to test applications: Although the browser's F12 is named as a developer tool, it actually plays a very important role in both functional testing and automation. Such as parsing HTML, locating elements, debugging scripts, monitoring the network, and capturing packets;

Internet program network architecture: what is the relationship between TCP/UCP/HTTP and other protocols

HTTP protocol data structure analysis: complete rest HTTP protocol data structure, including Request, Respouse data format, Header definition and usage, what each state represents, and how to distinguish.

Cookie and Session mechanism: What is the interpretation of cookie and what kind of relationship does it have with session? What should we pay attention to when testing?

4.2Mysql database

The advanced test I am talking about should not just stop at "addition, deletion, modification and investigation"

• Test the application from the mysql database: that is, the environment is set up, the use of the client Navicat, database operations and data-related sql syntax, you need to master the additions, deletions, and changes.

• Mysql advanced query: query upgrade, multi-table query, sub-query, query grouping, use of statistical functions (if you register for training institutions, you must ask clearly here, many institutions do not)

• Mysql automatically uses functions: Built-in functions and custom functions are also frequently used.

• Mysql stored procedure sp: an indispensable stored procedure of the database, usually called sp, how to define how to test, how to use it more securely, and what can be done more easily for testing with stored procedures in the test;

• Mysql transaction and programming: the use of database transactions and the principle and use of indexes, the application of database sql programming in testing;

4.3 Packet capture tool

Fiddler, Wireshark, Sniffer, Tcpdump various packet capture tools applicable projects;

4.4 Interface test tool

Interface test Loadrunner, JMeter, Postman;

There are two mainstream testing tools, JMeter and Loadrunner. Compared with Loadrunner's powerful and complete functions, JMeter is open source and compact and short.

Although Loadrunner is powerful, many items become decorations without using it. So more and more companies are more inclined to JMeter.

In fact, there are some mode differences between the two tools, but today's focus is to help you understand jmeter quickly.

4.5 web automated testing JavaorPython

The content that needs to be mastered here is the TestNG&unittest automation framework, assertion and log processing;

In fact, automation is mainly about ideas, in understanding business ideas, and not everything is suitable for automation. When you get a project, you need to analyze it first, which module to perform functional testing, which module to automate, who writes the code, and which framework needs some scripts.

Choose one of Java or Python: there is no code foundation and non-computer professional advice Python entry. In fact, I got started with python, and it’s okay to learn java again, which can help you better understand object-oriented;

Web automation will talk about the application of selenium3:

• Open source software: open source code can add some functions of the tool as needed;

• Cross-platform: Linux, windows, mac;

• Support multiple browsers: Firefox, Chrome, IE, Edge, Opera, Safari, etc.;

• Support multiple languages: Python, Java, C#, JavaScript, Ruby, PHP, etc.;

• Mature and stable: It has been widely used by companies such as Google, Baidu, Tencent, etc.;

• Powerful: Can most of the functions similar to commercial tools be realized? Because of the open source, customized functions can be realized;

4.6 Interface mobile terminal automation

Professional interface call and test solutions, complete web and interface automation framework of components, Appium overall use

4.7 Agile Testing & TestOpsgoujian

Continuous integration Jenkins framework needs to be familiar to bad;

The actual Jenkins framework, continuous integration is the most common framework, you need to learn Jenkins operation, permissions, system management, etc., commonly used components and operational strength

Solving static scanning and testing Sonar: an automated code scanning tool that can also quickly find problems in the code, so that the same specification can be discovered in advance, an artifact of code testing in automation. Application is not difficult~

4.8 Performance Test & Safety Test

Completely advanced, security is not something that everyone can learn, haha from function to security is also very difficult, but you can set a flag

Performance testing is relatively easy to learn: the basic knowledge of the interface is very helpful to the performance, and the tools are only an aid for performance, and more are ideas and strategies;

Performance test tool operation combat: The basics are all in front. It is not a problem to understand the script. What needs to be advanced is the key parameterization, dynamic data association, physical objects, and logs. Most of the scripts can be practiced.

Security testing origin and tool introduction: how to conduct security testing, and what are the classifications of security testing? What kind of tools will be used and their respective functions. Web vulnerability scanning, port scanning, system scanning, etc.

Web security testing manual combat: the role of interface testing in the security center, there is no manual security testing, basically there is no way to understand the automatic future results.

Finally: test the welfare

In the technology industry, you must improve your technical skills and enrich your practical experience in automation projects. This will be very helpful for your career planning in the next few years and the depth of your testing technology.

In the interview season of the Golden 9th and the Silver 10th, the job-hopping season, organizing interview questions has become my habit for many years! The following is my collection and sorting in recent years, the whole is organized around [software testing], the main content includes: python automation test exclusive video, Python automation details, a full set of interview questions and other knowledge content.


For software testing friends, it should be the most comprehensive and complete interview preparation warehouse. In order to better organize each module, I also refer to many high-quality blog posts and projects on the Internet, and strive not to miss every knowledge point. Friends relied on these contents to review and got offers from big factories such as BATJ. This warehouse has also helped many learners of software testing, and I hope it can help you too!

May you and I meet and you will find something! If you want to exchange experience in software testing, interface testing, automated testing, and interviews. If you are interested, you can use 313782132. There will be links to free materials from time to time in the group. These materials are collected and sorted out from various technical websites. If you have good learning materials, you can chat with me privately, and I will indicate the source. Share it with everyone afterwards. !

Guess you like

Origin blog.csdn.net/weixin_50829653/article/details/112846208