Introduction Guide to test development, specializing in treating discomfort


The term “contact test development” has been used for a long time. Here are some opinions of Xiaobian.

Go to the directory first

1、 What is test development?

2、 What capabilities should test development have?

3、 How do I get started with test development?

What is test development?

Looking ahead, test development is not a new term in the industry.

Most people are interested in test developmentStereotypeYes:

Write automated tests all day, develop some tall test platforms or test tools, and rarely or almost do business level tests. The entry threshold is relatively high, which is the ceiling of the testing industry.

Introduction Guide to test development, specializing in treating discomfort

But is this really the case?

“No”, the water of test and development is very deep. Adding “development” after “test” really doesn’t mean that you are really a “development”.

The work content of test development is often not defined by the four words “test development”, but“Determined by the recruitment department”of

The work content of test development can be divided into the following three types:

1.Development only, no testing

2.Both development and testing

3.Test only, not onhair

Here is a simple explanation:

“Development only, no testing”

Some large Internet factories have developed to a certain scale and the number of users is very large. If a bug occurs at this time, it will often cause a huge butterfly effect and bring huge losses to users.

Traditional manual testing can not meet the needs of daily testing. Relying solely on base people to ensure business quality is one-sided, costly and inefficient.

Therefore, large factories do not hesitate to hire test and development engineers at high salaries to develop test tools or platforms to enrich test means, improve test efficiency, strengthen product quality and ensure the high availability of the system.

There are even rumors that some departments of a fortune newspaper factory want to “de test”, which is called “inner volume”.

“Both development and testing”

For some medium-sized Internet companies, their business is on the rise, but quality engineering is in its infancy.

The test development engineer recruited at this time needs to lead several outsourcing students to ensure the business test tasks together, and then need to build the quality infrastructure from 0 to 1 (or from 1 to n).

Being both a father and a mother is complicated. Basically, most test and development engineers are at this stage.

“Test only, no development”

“An interview makes a rocket, a job turns a screw”, which is really appropriate here.

Generally, some companies have a large and complex business, and need to recruit some business testing experts with slightly stronger ability to work on cover quality assurance.

Although such companies apparently recruit test and development engineers, they actually do business testing after they come in.

Compared with the above two types of test development, there are still a few test development engineers who “only test, no development”, and their “happiness” is generally not high.

But anyway,“The threshold stone for recruiting” test development engineers “will still be higher than” test engineers “, and the salary will be relatively higher.”

Introduction Guide to test development, specializing in treating discomfort

What are the capabilities of test development?

The editor draws the following conclusions from the recruitment requirements for test development on major recruitment platforms, the description of test development by the test community or blog, and some of his own experience:

“Solid test basic skills”

1.Familiar with business, be able to test a business function independently.

2.Familiar with test process, be able to reasonably formulate the test plan, control the test progress, and have a keen sense of quality risk.

3.Have a certain test thinking, be able to design high-quality test cases.

4.Rich testing methods, at least have solid testing experience at one end of app, Applet / H5, web, server, etc.

5. Be familiar with common test tools, andUse these test tools freely

6.Have certain test architecture ability, have a certain understanding of CD / CI and some specific practices of Devops.

“Solid computer skills”

1.Familiar with computer networkIn particular, you should have a deep understanding of HTTP and TCP protocols.

2.Familiar with operating system and basic principles, process thread, CPU scheduling, memory management, IO read / write, etc.

3.Familiar with database, be familiar with mainstream relational databases and non relational databases, and be able to write SQL queries in complex scenarios.

4.Familiar with the basic use of Linux, good at writing shell scripts.

“Solid programming skills”

1. Master at least oneBack end programming language(Java / go / PHP / C + +), and at least onescripting language (Python/JavaScript)。

2.Understand mainstream testing tools / frameworks / platforms, secondary development can be carried out based on this.

3. Master web development skills, be familiar with back-end development framework and middleware,Be familiar with and master at least one popular front and rear end separation project

4.Master the basic use of IDE tools, and be able to use GIT and other code version control software

5.Good programming style, learn basic code tuning techniques.

“Soft power”

1. Dare to think, dare to do, dare to try, and have the spirit of innovation.

2. Be good at thinking, summarizing and checking data.

3. Have the character of climbing the peak and overcoming difficulties.

4. Good communication skills.

How to get started with test development?

“I. strengthen the basic skills of testing”

Deepen understanding of the business

It is equivalent to playing rogue if it can’t be applied to the automatic test of business, the core goal of any test development is to empower the business. So how to deepen the understanding of business?

The editor has several suggestions:

1.Maintain a test case of the whole process for a long time, don’t write too detailed, but write it fully and update it frequently. The purpose is to help us sort out the business details quickly.

2. CultivationHand drawn business flow chartAnd be good at summarizing and taking notes.

3.Look at the business code written by the developer, from the code level to deeply understand the business details.

4.Research competitive products, including function, performance and stability.

Improve personal testing ability

The following suggestions are made:

1.Master mainstream testing methods, including but not limited to: automation test, interface test, performance test, stability test, security / penetration test, mobile end test, service end test, etc.

2.For the popular testing tools in the industry, you can count them

3. If you want to solve the test pain point, don’t think hard and make a car behind closed doors. Big factories must have encountered all the problems you encounter.You can find some solutions from big factories on the Internet, or directly ask friends who work in big factories.

“II. Strengthen computer skills”

Computer foundation is like a man’s deposit. You can’t use it, but you can’t do without it.

“If there is really no foundation”, it is suggested to study systematically. You can find some materials on the Internet, B station, blog, CSDN and other places

Introduction Guide to test development, specializing in treating discomfort

“If you have a certain computer foundation”, there are several ways to strengthen the foundation:

1. In case of sufficient time,Systematically read computer books。 Recommended operating system, illustrated HTTP, illustrated TCP / IP, MySQL must know and be able, etc.

2.Brush technical interview questions, it’s not beautiful to be able to check and fill gaps, and prepare for job hopping interview?

3. Geek time,, etcOnline learning platform for autonomous learning

“III. strengthen programming skills”

Here are four words for you: study hard and practice hard.

The learning of programming language should never stay on the study of grammar and foundation. If you stay at this stage for a long time and can’t break through, you may not be suitable for programming.

Programming language is just a tool for us to complete testing. Don’t program for programming

In order to implement programming technology, we should learn more testing tools / frameworks / projects and web development frameworks / projects to help us achieve our goals.

Here are some excellent ones“GitHub project”Study how people organize code and make tools easy to use:

UI automation

[uiautomator2] UI automation framework based on python, API is simple and easy to use.

“Interface automation”

[sosotest] the interface automation framework based on Django (Python) supports HTTP and Dubbo tests.

“Stability test tool”

[Maxim] it’s called smart monkey. It smells good.

“Bag grabbing tool”

[mitmproxy] has good support for Python

Command line tool

[Arthas] Alibaba’s open source Java diagnostic tool is easy to use. You can learn the testing ideas of the tool

“Front end background project”

[Vue element Admin] background item template based on Vue and element UI

“Whole station development project”

[mall] the whole station development project of Java’s e-commerce platform, after learning, can have a deeper understanding of the design of e-commerce system, which will be involved in the front and rear ends, and the technology will be improved comprehensively.

[ruoyi Vue] a background project with separate front and rear ends, based on Vue + springboot, can be used as the cornerstone of the test platform

The above items can be searched and obtained in GitHub.

“IV. strengthening soft power”

Learn to read English technical documents and how to write technical development documents for excellent projects, and constantly imitate, learn and improve.

In addition, technology sharing can be carried out in the company’s team to improve communication and expression skills.

(this is a learning exchange group built by Xiaobian himself: 609867432. In the group, you can get learning materials for free. If you are interested, you can add it! In addition, you can also add qq2517761403 or V: dingyu-003 for private chat!)

Recommended Today

Test and development. Python + flask implements the interface to receive disk information

Today’s sharing is based on: Test Development: Python + flask implementation interface receives memory information to further share how to use Python + flask implementation to receive disk information. Principle: Call the shell script through Python to execute the relevant commands of disk, then process them, and then request the requests library to push data […]