preface

A colleague once asked me a very serious question. He says he’s been testing software for four years now, but he doesn’t know what the difference is from three years ago, and he wants to know what his fifth or sixth year will be like. He was transferred in his fifth year. Although he had transferred his post, he asked me this question again when we contacted later. It seemed that this question had puzzled him deeply and for a long time.

This has touched me a lot, and I believe this issue is universal to a certain extent. Is software testing a profession with little room for advancement and only a “job transfer” after a certain stage? Definitely not. Martin Pol, the European industry’s “Test Guru”, was awarded the first European Award for Outstanding Contribution to Testing in 1998, and received the Order of the British Knights. Martin had been testing for decades, eventually earning fame and fortune as a tester. What’s more, it is said that both his eldest and youngest daughters are testing, which is a veritable “testing family”. But Martin’s example does not address the question of what has happened to software testing itself. It just gives us the best possible outcome, and shows us that this path can work. So what are the career paths of software testing? As a software testing engineer, how to make a career development plan for yourself?

To recommend a software testing technology exchange group: 1079636098 group benefits free

I. Career development direction of software testing

Software testing career development, can be summarized into “management” and “technical” two categories. In addition, software testing can be developed in the area of quality.

1.1 Development of software testing in management

Software test management is one of the more familiar software test career development routes, the more popular positions include test leader, test manager, test representative, test supervisor, test director, test minister and so on. The scope of work for the same position may vary slightly in different companies, and can be roughly divided into the following three levels according to the level of management.

1. Junior software test manager: Test team leader

It is usually performed by a test engineer with about two years of working experience. May manage 2 to 5 software test engineers. Typically, the test leader is not responsible for the entire product, just one or more features.

The test leader is not a full manager. Most of the management work is focused on the formulation and execution of the test plan; In product testing, they are often responsible for the key and difficult product testing; In addition, they are responsible for bringing in new employees to make the testing run smoothly.

2. Intermediate software test managers: test manager, test representative, test supervisor

The positions are in no particular order and are generally filled by test engineers with about 4 years of working experience.

The intermediate software test manager is responsible for the product and may be in charge of 10 to 20 software test engineers (including the test leader).

The most important job of an intermediate software test manager is to run the test project, develop and execute the test plan, evaluate the product quality after the test, and make recommendations for product release. To do these well, they need to master more knowledge of project management, deeply understand the value of the project, and do well in project scope management, quality management, cost management, time management, risk management and manpower management. In addition, they also need to work closely with developers, marketing personnel, service personnel, etc., during which communication and coordination skills are essential.

3. Senior software test manager: Test director, Test director

More than 10 years of software testing experience, responsible for product lines or companies.

Senior software test managers need to understand the business goals of the product and be directly responsible for its success. They are responsible for the development of the test team, recruiting and training personnel, retaining key talents, improving or updating unqualified personnel, and improving the team’s competence and professional ability; Responsible for project financial management (budget and control); Responsible for resource planning and allocation; Continuously improve test capability, improve efficiency and product quality, and be responsible for cost, cycle and quality of delivery from a test perspective.

1.2 Development of software testing in technology

The technical direction of software testing is not as clear as the management direction of software testing. One view is divided into assistant software test engineer (or intern software test engineer), junior software test engineer, intermediate software test engineer, senior software test engineer and chief software test engineer (or senior software test engineer) according to their testing experience and ability. However, this classification does not highlight “software testing techniques”, so I personally prefer a simple division of product testing techniques and specific testing techniques.

Product testing technology refers to a specific (or a class of) product testing better technology; Special test technology is not for specific products, but for the testing field of universal technology.

  1. Product test specialist: Software test architect

Software testing can be developed to be a technical expert in product testing. Some companies refer to product test technical specialists as software test System architects (referred to simply in this book as test architects).

There is a corresponding responsibility between the test architect and the system architect.

System architect plays a bridge role in the process of business (requirements) transformation to development technology, responsible for the overall architecture design of product development; The test architect acts as a bridge in the transition from business (requirements) to test technology and is responsible for the overall architectural design of product testing.

The system architect is responsible for researching and tackling the technical key points and difficulties in product development. The test architect is responsible for researching and tackling the key points and difficulties in product testing to provide the optimal testing method for the testing organization.

The system Architect assists the development project manager in planning and controlling the project schedule; The test architect is responsible for assisting the test manager in planning the test project and controlling the test project schedule.

The system architect is responsible for organizing technical training within the development project team; The test architect is responsible for organizing technical training within the test team.

The system architect needs to have certain strategic planning ability, business modeling ability, data analysis and processing ability, product life-cycle oriented quality assurance and continuous improvement ability; Test architects also need these capabilities.

Some people say that the system architect is the “soul” of product development, so the test architect is the “soul” of product testing.

2. Special test engineer

Software testing in technology, but also to the special test engineer direction of development, become an expert in a certain field of software testing.

From the point of view of testing system, software testing has formed a complete testing system so far. Any link in the test system, test strategy, test analysis and design, implementation, testing, evaluation, testing process each domains such as connotation is very rich, can contain a lot of in-depth development of the technology, such as automatic testing technology, test tools, including product test simulation tool and test process management tools) development, defect analysis and test evaluation technique, etc.

From the point of view of product quality attributes, special testing technology can also include performance testing technology, reliability testing technology, security testing technology, etc.

In fact, product test specialists (software test architects) also need to be proficient in the testing techniques mentioned above, such as test analysis and design, automated testing techniques, and performance testing techniques. However, any technology used by a product testing specialist is in the service of the product, and he needs to choose the most appropriate test technology for the particular product he is currently testing, and adapt the test technology for different products. And special test technical experts do not pay attention to specific products, but tend to the common aspects of technology research.

Table 1-1 and Table 1-2 summarize the development directions of some common specific testing technologies for your reference.

Table 1-1 Test technologies Special test technologies

Table 1-2 Special testing techniques for quality attribute classes

1.3 Development of software testing in the field of quality

Software testing can also move into the realm of “quality management.” The main reference directions are as follows:

1. Product process design

Responsible for the whole process system construction of product development, marketing and delivery. For example, the well-known integrated Product Development (IPD) process.

2. Enterprise quality manager

Enterprise quality management has become an important part of enterprise management.

Quality master Juran called “quality planning”, “quality control” and “quality improvement” the quality management trilogy. The specific meanings of each step are as follows:

Quality planning: dedicated to the formulation of quality objectives and define the necessary operational processes and related resources to achieve the quality objectives; Quality control: committed to meet quality requirements; Quality improvement: work to enhance the ability to meet quality requirements. Enterprise quality managers systematically manage the quality of enterprises through the trilogy. The method of quality management system can be summarized as follows:

Establish a process method as the main body of quality management system; Make clear the interdependence of each process in the system and make it coordinate with each other; Control and coordinate the operation of each process of the quality management system, pay attention to the key process, specify the operation method and mode of key activities; Understand the roles and responsibilities necessary to achieve common goals, and reduce barriers caused by unclear responsibilities; Identify resource requirements prior to action; Set system objectives and sub-objectives of each process, and ensure the expected overall objectives through the implementation of sub-objectives; Continuously improve the quality management system through monitoring and evaluation to continuously improve the performance of the organization. Of course, the quality here is not only refers to the product quality, to achieve the effect of the overall quality of the enterprise.

3. Customer satisfaction management expert

“Customer satisfaction” is the key factor to the success of the product. Paying attention to the voice of customers and making customers satisfied is undoubtedly of great significance to the improvement of product quality. “Customer satisfaction management” has also received more and more attention and become an important content of quality management.

For “customer satisfaction management”, the key is to identify the satisfaction factors of key users and do a good job of quality assurance related to user touch points.

“Key customer satisfaction factors” refers to the analysis of specific product quality requirements and service attributes of such customers after conducting market survey on specific market segments, and taking key customer satisfaction factors as the input of enterprise product and service strategy, so that enterprises can maintain product competitiveness to the maximum extent. “User touch point related quality assurance” refers to products and services that can be perceived by customers, including product promotion, bid compliance, supply assurance, engineering delivery, technical support, spare parts support and customer training, etc. Customer perception of any contact point will be good or bad, so it is necessary to define the key and standard actions of each contact point, and ensure that they are implemented in place to improve the quality of customer perception.

Customer satisfaction management, the premise still needs to have a good demand and understanding of users. Unlike software testing, customer requirements are not limited to the product, but to all aspects of the customer’s perception, involving a wider range of. For software test engineers, a career in customer satisfaction management is also a good choice.

2. Career planning suggestions for software test engineers

In view of some problems that may be encountered in the career planning of software testing, this paper puts forward some personal suggestions for your reference.

To recommend a software testing technology exchange group: 1079636098 group benefits free

2.1 Do management or technology

Software testing career development can be summarized as “management” and “technical” two categories, this has been relatively clear. The question now is, should we go the management route or the technical route?

Perhaps influenced by the traditional Chinese concept of “excellence in study leads to official”, many people will choose management without thinking about this problem, and even think it is a disgrace for a 30-year-old software testing engineer to still be engaged in technology. In fact, we can put aside other problems and infer purely from the time, undergraduates normally graduate at the age of 23 and have 7 years to 30. Graduate students graduate at the age of 25, only 5 years to 30 years old, 5 years, 7 years is not too long for software testing, which is difficult and requires a high level of comprehensive requirements for practitioners. The understanding of software testing can only be regarded as a “glimpse”. Therefore, it is recommended that software testing engineers plan their career milestones in a longer time frame. A small step in 5 years and a big step in 10 years may be more appropriate for the software testing industry.

In addition, software testing in the “technical direction” and “management direction” can be exchanged, cross development, test manager can transfer to test architect, test architect can also transfer to test manager. Figure 2-1 is a schematic diagram of this transformation relationship.

Figure 2-1 Conversion between Management direction and Technical Direction of software testing

Why does software testing have this characteristic? This is because software testing is a discipline based on practice, for software testing, “management” can not be “absolute management”, software testing managers should first of all product testing technical experts, which is the basis of “do the right thing”. It is hard to imagine how a software testing manager who does not understand testing technology and testing activities can evaluate the key points and difficulties of software testing, make plans and evaluate the progress of risk control projects. At the same time, “technology” can not be “absolute technology”, technical personnel who do not understand “value”, “target” and “cost” are prone to make the mistake of falling into “only technology”, the lack of “management” thought will make their test strategy unrealistic, empty paper test strategy is meaningless.

An ideal test team has two roles: test manager (test representative) and test architect. The test manager is in charge of management, the test architect is in charge of technology, but it does not mean that the test manager is in charge of management, only understand management, the test architect is in charge of technology, only understand technology. Instead, the test manager (test representative) and the test architect are familiar with each other’s domain key activities, able to review key deliverables, able to provide each other with decisions on their domain key activities, and able to back each other up. There is a division of labor between the test manager and the test architect, more of a collaboration.

Therefore, it is suggested that test managers must not give up technology too early, take the so-called “pure management” route, and immerse themselves in various management meetings, communication and coordination. Do not think that reading a few books, attending a few salon forums, a few times of training can master the key testing techniques and methods, only in product testing continuous practice, summary, practice, summary, can continue to improve themselves. If the testing technology has shortcomings, the test management level can not really improve, with the deepening of testing qualifications, professional ability and qualifications will become more and more mismatch, personal career development path will become more and more narrow.

To recommend a software testing technology exchange group: 1079636098 group benefits free

For test architects, in addition to product testing techniques, they also need to have a deeper understanding of the value of the product, and learn to make trade-offs around how to make the product successful, rather than just from the perspective of testing techniques. Product testing is qualified to talk about success only when the product is successful. What good is a failed product, no matter how well tested?