Software Testing Career Planning

Reprinted from
http://www.cnblogs.com/Ming8006/archive/2013/03/07/2947656.htmlThe

development error of software testers
The products developed by the company are highly specialized, and software testers need to have strong professional knowledge. Now the development of software testers has a phenomenon that test managers do not want to see:

  1. Software testers with strong development skills have turned to software development (non-testing tool development);

  2. Testers with strong business capabilities have turned to

  3. People with strong communication skills and strong professional skills have turned to software implementation; why

  don’t you want to see that the excellent people you cultivated have all gone to work for other departments and other companies, while testing There are always newcomers here, and always new software test engineers: average development level, average business ability, and average communication ability. For those test colleagues who changed careers, their salaries did not make a qualitative leap. When they got to the 'over there', their grades were mediocre, and they were quickly buried. Of course, those who are really interested in development, business, and implementation want to make a difference in these areas are excluded. The question is, why do those people 'change careers'? The reasons are nothing more than the following:

  1. The company's software testing has no technical content and is not challenging;

  2. It is believed that a test manager in the company is already a tester The highest level of development;

  3. The salary of testers is lower than others;

  4. I want to know about other positions outside the test, enrich my experience, and prepare for better management in the future.

  So, is the company's software testing really low-tech? Has the work efficiency reached the highest level? Does it really not need a challenge? Is there no distinction between senior and junior test managers? Testers can't be paid more than developers. Are the personnel high? Do testers really need that many? Of course not, maybe the 'old way' of many years cannot be changed by ourselves, maybe some people complain that the leaders are conservative and stubborn, but no one will stop us from innovating , to prevent us from exploring new models, new ideas, and new working methods to change this status quo. No company is a fool, and a person's salary is proportional to the value he embodies. Therefore, we should break the routine and explore new things. This kind of innovation includes not only technological innovation but also management innovation. Regarding career development, let’s talk about it only based on the actual situation of the company and the ideas from everyone:

  1. Software testers with strong development skills can turn to the development of automated testing tools and test management tools. With strong ability, it is necessary to learn more about third-party testing tools, dig out the needs of testers in the test group, and understand the business;

  2. Those with strong business ability can be test (use cases, plan) design engineers. Due to the strong product business of the company, Requirement personnel can only provide requirement documents for testers, but what are the most important test points, and what kind of testing method is adopted in the testing process can make the test path the shortest and the coverage rate the most complete, these all need to grasp the essence of the software business ;

  3. Being a test manager, can completely improve the management, what are the characteristics of each person, how can each team member's ability be brought into full play, how to better win the interests of testers, and how to do the best In addition, how to improve their prestige, executive power, leadership, and how to manage to make people tsk tsk, to this level, through horizontal and vertical comparison, the advantages will come out naturally .

  In addition, switching to development, requirements, implementation, and then switching back to testing for management, I agree with this, but it is not easy to master, and if your level is too high, it is very likely that such people will become heroes The idea of ​​​​useless, the company's platform is too low, and I feel that my level is too high, so it is likely to lead to the resignation of such people, so personal development and the development of the company's testing department must keep pace, no one can pass How can two people who are fast and inconsistent in pace walk on the same path? Therefore, in the case of personal development, it is not impossible to pay attention to the overall development of the company, and to recognize the development direction of the two before 'transferring'.

  4. Is it the ultimate to be a test designer, automation tool, and management tool developer? Of course not, there are still consultants, consultants, and experts in the testing industry. If the test management is done well, you can also be a project manager or a department manager. , really can't, you can start a business.

  In a word, there is no limit to development, the road is one that you walk out of yourself, don't just follow the road that others have stepped on. Several ways of thinking    that

testers should    have There are also more. When a defect is found, to further locate the problem, it is often to go upstream and analyze    . Reverse thinking is relative, that is, thinking in the opposite direction to the conventional thinking, and testers can often use it to find Vulnerabilities in developers' thinking    2. Combination way    of thinking There is no problem with many things in single thinking, but many problems can be found when related things are grouped together; for example, multi-process concurrency increases the complexity of the program to a higher level. Let the defect rate of the program increase    accordingly. According to whether or not to sort the combination, it can be divided into: arrangement (ordered) and combination (unordered); for different applications, consider using "arrangement" or "combination" as appropriate














   · In order to make full use of combinatorial thinking without confusing your own thinking, you should pay attention to the "fractal dimension", divide relevant factors into different dimensions, and then consider their correlation

   3. Global thinking

   · Things often have multiple faces , when we master more levels, the clearer our understanding of it, the more conducive we are to grasp its essence, the global thinking method is to allow us to analyze the system under test from multiple perspectives; try to see the system from different roles , analyze whether it can meet the needs

   . In fact, in the process of software development, we usually conduct various reviews, which is to use the way of global thinking to let more people participate in thinking, brainstorming, and try to achieve an all-round review of a certain    The

   correctness

   of    the solution and other characteristics Flawed?    · Pay attention to two poles, not one pole ·    Testers    have been working for a long time, and they tend to go to extremes - occupational disease, which is not conducive to communication with    people Remaining "fundamental"    · A test for the essence of things (the essence of solving problems), so that we will not deviate from the direction    6. Comparative thinking    · When understanding things, people often compare with certain concepts in their minds to find Identify similarities, differences, or categorize them so that they can be added to the knowledge system in the brain, and if possible, establish a good search method for later use



















   · Application mode is a very common example of "comparative thinking". Now the mode is very popular, including design mode, architecture mode, test mode, etc. Some experts find out the solutions according to the commonality of some related problems. After taking the name , which can make it easy for everyone to reuse

   . Let experience play a role here. Experience is very important in testing. Comparative thinking is the way to use experience.

   7. Move and be more exciting

   . Pay attention to the runtime state

   of the program. It can reflect more in the code how the program will run in the future; while object-oriented significantly separates the code from the runtime

   . Let us pay attention to the static structure of the code (such as the class structure), but also pay attention to its dynamic (object interaction network). ) performance

In fact, these ways of thinking are used consciously or unconsciously by everyone, and they each have their own advantages. Diverging our thinking and consciously using them in thinking about problems can sometimes give us a kind of "" Willows and dark flowers brighten another village" feeling.


The advanced path
of a test engineer is understood from a narrow perspective. The advanced direction of a test engineer's job is roughly as follows:

that is, there are two general directions: management direction and technical direction.


In a broad sense, the development of testers is divided, that is, not only limited to testing their own work, there are roughly six categories of directions. There are three core skills elements that determine different development directions, namely:

three core elements: management skills, testing skills, and business skills.

According to the mastery of the three skills and the intersection between them, they can be roughly divided into 6 categories:

  ◆ Management

  ◆ Testing Technology

  ◆ Business Technology

  ◆ Technical Support

  ◆ Quality Assurance

  ◆ Other

For the general requirements of the three core skills in the six major directions, please refer to the following diagram:


(Note: The above diagram is only a simple diagram of the six categories of development directions and the mastery of the three core skills. It does not represent specific values ​​and has no horizontal comparison value. )



  The six major development directions and corresponding positions of the testers:

Note: It only represents the specific directions of the major directions, and the directions/posts are not marked with superiors and subordinates



  . Describe the knowledge points to be learned and mastered. If you are interested in a certain position in a certain direction, in today's developed network resources, if you have the heart, you will naturally find the skills and knowledge required by testers and summarize them, so I will not repeat them in this article.

Software testing engineer career planning
Due to the rapid development and strong demand of the domestic software testing industry, the promotion of software testing positions in China is generally faster than that in foreign countries, but because the industry itself is too young, everyone has an understanding of the development of the software testing profession in software testing. It is not enough, which causes many young people who are interested in this development to hold back. Therefore, the following is an introduction to the distribution of mature software testing industry positions in overseas companies. Some companies in the front-end software testing industry in my country are also similar. This can be used as a reference for software testing career planning and give newcomers a guide.

  The first stage: (Tester) Junior Test Engineer

  Self- Conditions: Individuals with a computer professional degree or some manual testing experience for the first time.

  Specific work: Execute test cases, record bugs, and perform regression tests, record regression test scripts through testing tools such as qtp, and execute regression test scripts.

Learning direction: develop test scripts and become familiar with the test life cycle and test techniques.



  The second stage: (test engineer) program analyst

  Self- condition: a test engineer or programmer with 1-2 years of work experience. Possess preliminary automated testing capabilities and improve automated testing scripts.

  Specific work: Design and write test cases, write automatic test scripts and lead the initial stage of test programming.

Learning direction: develop skills in programming languages, operating systems, networks and databases.



  The third stage: (senior test engineer) program analyst

  Self- condition: a test engineer or programmer with 3~4 years of experience. Have certain industry business knowledge and reserve the ability of system analyst.

  Specific work: Help develop or maintain testing or programming standards and procedures, analyze software requirements, and obtain test requirements. Determine the test method corresponding to the test requirements, and obtain the test strategy plan. Participate in peer reviews (software requirements, software test plans, etc.) and act as a consultant to other junior test engineers or programmers.

Learning direction: Continue to develop skills in programming languages, operating systems, networks and databases.



  The fourth stage: the leader of the test team

  Self- condition: a test engineer or programmer with 4 to 6 years of experience. Has rich industry business knowledge, has the ability of system analyst, and specializes in performance testing.

Specific work: Responsible for managing 1~3 test engineers or programmers. Focus on the skills side with some scheduling and job size/cost estimating responsibilities. Analyze the causes of performance bottlenecks and provide development teams with bug resolution strategies.

Responsible for scheduling, work scale/cost estimation, delivering products according to schedule and budget targets, responsible for developing technical methods for projects, able to provide support and demonstrations to users;

learning direction: performance testing, testing skills Stage



  5 : (Senior security or Performance test engineer) senior leader of testing/programming

  Self conditions: Test engineer or programmer with 6-10 years of experience.

  Specific work: responsible for managing 8 to 10 technical staff. The overall program design of performance testing, software system performance problem location and performance optimization, memory optimization and analysis of data overflow, etc., analysis of system security vulnerabilities, etc. Responsible for scheduling, job size/cost estimates, and delivering product on schedule and budget targets. Responsible for developing the technical approach to the project. Provides support and demos for some users.

Learning direction: Develop technical expertise in some specific fields Stage



  6 : Testing/Quality Assurance/Development (project), Manager

  Self-Condition: More than 10 years of work experience.

Specific Jobs: Manage 1 or more projects involving 8 or more people. Responsible for the entire development life cycle business within this area (Test/QA/Development). Provides interaction and lots of demos for some users. Responsible for project cost, schedule, planning and division of labor Stage



  7 : (Company-level Quality Director) Program Manager

  Self-Condition: More than 15 years of experience in development and support (testing/quality assurance) activities.

Specific work: Manage people working on several projects and the entire development life cycle. Responsible for grasping the project direction and profit and loss



  responsibilities Career planning is a major event in life. Let me share my personal experience and talk about my own point of view:

  step1: During the campus stage (1 year to 1.5 years before graduation),

  many people's career planning is only after work. To start, in fact, to do so, there are great limitations. Anyone who has worked has an experience that their first job will affect the development trajectory of 5 to 10 years, and even have an impact on their whole life. Therefore, choosing a suitable job as a starting point is a problem that must be thought through on campus.

Since China's education is basically theoretical education, most people's practical ability before work is relatively weak. Although it has its shortcomings, it also has a good side, that is, it has better plasticity. Good plasticity means that there is a lot of room for choice. Therefore, when everyone chooses the first job, they should fully combine their educational background, personal ability, hobbies, long-term goals, etc., and make rational decisions.

  Software testing, especially black-box software testing, is a profession with a low starting point, quick start, and relatively large room for development. Therefore, for many students, it is very suitable for entry-level positions in IT employment.

  The planning of the campus stage is mainly to choose a big entry direction. Of course, you can also give yourself a long-term goal at this time, but you don’t need to plan too carefully, because everything is still unknown before you enter the industry, so you can grasp the route.

  The following assumes that everyone chooses software testing~~

  step2: entry stage (3 months to 1 year after entering the industry)

  For newcomers who have just entered the industry, this period is a comprehensive familiarization period, the most able to learn new knowledge, and the most hardworking enthusiasm and drive. It is suggested that everyone can take advantage of this momentum to understand the whole picture of the field as much as possible, understand the content, characteristics, advantages, limitations, etc. Adjust your plan accordingly.

  For the testing industry, there are generally several categories of technical aspects: black box testing, white box testing, automated testing, testing tools, special business skills, etc.; related management aspects generally include: test management, quality management, project management, etc.

  In the face of the above-mentioned various directions, it is recommended that everyone understand the connotation a little, and then determine 1 or 2 as the main direction of the medium and long-term attack. If this standard is reached, the entry has basically been achieved. As for whether you can enter the hall, it depends on later efforts.

  step3: Improvement stage (3 to 5 years after entry)

  As for whether to choose management or technology after getting started, in fact, this kind of problem is inevitable. The key is to look at your long-term positioning. However, I personally suggest that the current stage should still focus on technology. After all, in a technical environment, it is difficult to convince the public without a solid foundation to do a good job in management.

  This stage is the stage where people are most likely to slack off. After all, the enthusiasm for just entering the industry has long been cooled by the day-to-day complicated work. With certain work experience, it is not a problem for most people to be competent for their own jobs. Family, entertainment began to occupy the mainstream of leisure life. However, after all, everyone is still very young, and most people are only in their 20s at this time, so it is very scary to slack off. Therefore, it is particularly critical at this time to plan to improve our core competitiveness.

  Improvement is to improve, but for most people, it is not necessary to work hard. At this time, you are in a relatively stable position, you can consider refining your mid-term planning. According to the selected direction, make a self-improvement plan, and define the milestones of self-examination (for example: every quarter or half a year counts as a stage), every day or every week, you can study a little regularly. Set a goal - "progress a little bit every day", and it will not be a problem for a few years.

  Personally, I am opposed to quick success and quick success. I prefer to be steady and steady. At this stage, I should not be a "panacea", but should strive to become an "expert" with good skills.

  For those who choose to be technical, the standard for reaching this stage is generally to be at least familiar with most technical details of your chosen technical direction. "Details determine success or failure", although the ability to grasp the overall situation is necessary, but technical In other words, if you can't drill very finely and deeply, I'm afraid it will be difficult to call yourself a master.

For those who choose to be management, my personal tendency is: this stage is exposed to the concept of management and can be involved in management, but it is not appropriate to enter management in an all-round way at this stage (unless you have a deeper consideration, you may not go steadily) . The concept of learning management is very important. In fact, management is more of a way of thinking and doing things. This knowledge is very deep, and it is not like technology. Will it be so obvious? Therefore, it is recommended to read and learn more, learn from each other, And try to develop your own style of doing things. Senior software test engineers, test team leaders, etc. are all good management positions with technical characteristics, and you should be able to do them at this time.

  After reaching this stage, you can also become a veteran. You don’t have to worry about job hunting. You should be able to easily change jobs or be harassed by headhunters from time to time. When you reach this stage, you need to make more in-depth planning.

  step4: At the sublimation stage (5 to 10 years after the veteran)

  , you are about to enter middle age. Whether you used to focus on technology or prefer management, you are facing the dual pressure of family and society. You cannot be like a young person. You have been working hard all day, and you need stability. Therefore, you cannot change jobs frequently. It is recommended to consider more formal and potential companies, and consider giving yourself a long-term development plan.

  Just because of the background of the previous details, at this time, you need to work hard to improve your macro grasp ability. Even if you are a technical person, you must consider appropriate transformation management (Chinese characteristics are: it is difficult for engineers to exceed the age of 35, and most people turn to management or business when they reach the age of 30). Of course, the average person is that the better the technology is, the easier it is to get to the heart of the project when it comes to management. However, for people coming from a technology, the key is to start developing the ability to deal with people. The key to this stage is that you need to gradually form your own management style and have the ability to coordinate parallel transactions.

  Of course, there is a difference between pure management and technical management. For those who are purely managerial, it is particularly important to skillfully apply the scientific concepts of management and form their own style. A pure management test manager can not only do a good job in testing management, but also do a good job in project and even other management. In fact, no matter what the object of management is, their management philosophy is still the same. A lot of experience gained from test management can be well extended to other management fields. For technical management people, they mainly lead the technical team, and at the same time, constantly supplement new technical knowledge and keep up with the technical trend. At this time, you have a strong technical background, and you don’t need to delve into the details too much. You only need to gain insight into the core and arrange your team members reasonably.

  At this stage, a small number of people may choose to leave a specific enterprise and start to engage in testing and consulting. It is a new beginning full of challenges, and it must be completed with previous accumulation.

  For most people, a key question at this stage is whether to take the test as their lifetime position, and if so, basically achieve the above goals, maintain the status, and basically be able to retire. If not, it's even scarier. In fact, I don't recommend people at this stage to transform unless there is a good reason and a good opportunity. After all, to reach this stage, you have worked hard for at least 5 years, and it is still the prime time of your life, time will never return. Please be careful when changing careers in the current state.

Reference
[1] Several ways of thinking that testers should have http://www.233.com/pm/Know/IT/20090729/113936752.html

[2] The advanced road of test engineers
http://www. 51testing.com/html/98/n-229998-2.html

[3] Career planning for software test engineers http://wenku.baidu.com/view/fd035accda38376baf1fae61.html

[4] Misunderstandings in the development of software testers
http://www.51testing.com/html/48/n-85348.html

[5] Software Testing Fundamentals: Concept http://tech.it168.com/focus/200902/testconception/index.html

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326188455&siteId=291194637