Platitudes, and then talk about software testing career development

There is such a widespread phenomenon

Test recruiters, especially in a second-tier Internet company recruiters most distressing thing is to recruit people. Trying to find a suitable person to reach for the stars, all kinds of nets every day, watching several hundred resumes, face several dozen people groan a little Italian partner thankful. But while many small partners found that the test is difficult to find a job, especially into a bigger factory, they pick particular: to write the code, the ability to have the software architecture, and asked a big lump usually never use the technical issues, but also pick experience, communication skills pick, pick this pick it, pick it sometimes special education, pick age. . . The total is difficult to match up supply and demand, resulting in both parties are suffering.

Why?

Capacity requirements do not match is the core of the problem. Software, Internet the past 20 years of rapid growth, in fact, has gone through many stages. Software outsourcing industry flourished stage and prosperous phase (2000-2010) industry has entered a large number of testers, the test was the most mainstream practice: focus on the system acceptance phase. The basic principal work testers have invested in a business based on black box testing, code capability, the ability to understand the system requirements much. After 2010, the real rise of the Internet industry for the domestic software development model began to slowly turn around, fast iterative model gradually rise, development cycles are getting shorter, faster and faster iterations, but the system is more and more the more large, complex. The original test operating mode and scope of work are increasingly unable to meet the requirements. But a large number of employees in the skills of change is a very difficult thing, the industry is a huge inertia. From a macro point of view a lot of QA skills to keep up with demand shift change is the main cause of market supply and demand mismatch.

So What?

Three perspectives:

1. The only manual testing, career development, test engineers do not understand the system implementation will be more limited.

2. Can the transition to meet the market demand of the students will get excess returns in the past few years (because the market is in short supply, companies have to raise prices to find such a person).

3. For the individual, personal growth always the most important, they will never be responsible for their own development, do not rely on external environment, think of ways to become the meat and potatoes of the market was tricky.

In the end what kind of person sought-after?

According to my understanding that people will talk about what it sought, limited space will be biased towards technical point of view. Personal opinion, welcomed the discussion and brick.

 

Foundation testing - Project Experience

There are hands-on experience testing more complex system, you will more than more than 50% of the candidates. What is more complicated system? Invested 50 man-years developed a complex system it can be called a system. Therefore, the complex system is not very rare. However, if you touch only a simple module, or even just develop a stable test maintenance module, rather than comprehensive understanding, it can not be said to be too complex test systems. There is a complete project from start to finish in contact experience is very valuable.

Foundation testing - the basics

Control three books: "ISTQB based tutorial" "Advanced Software Testing Design" "Advanced Software Testing Management" (after two advanced certification course is the ISTQB). Content side where you can Proficient (really proficient, not just the concept), you will be able to more than 80% of the candidates. Interviewed hundreds of people, I often ask a few questions: If the test time is not enough, how would you do? If we allow you to test you a totally unfamiliar with the system, how would you do? You usually will use those test design method? Appears to be very commonplace problem, is the test person. Because most practitioners are not subjected to systematic training and learning, for many years, is still insufficient skills, awareness deviation.

Using a primary language proficiency

Meet this, you're more than 70% of the candidates. What is it skillfully? Take for instance Java: Java tutorial system studied, such as high-frequency interview questions 50 questions about the self-test can be answered on more than 35; familiar with the most mainstream of the Spring framework, able to write a simple website, a basis the service Restful; read through a testing framework, or as mockito Junit source; embodiment proficiency test interfaces (such as frameworks based on some tests: rest-assured + Junit); service can read the code development, their code Code Review;

There are more in-depth knowledge of a language

Meet this, you're more than 90% of the candidates. What have a good understanding of it? Also take Java for instance: proficient use of common Java API; in-depth understanding of the knowledge-based language features / characteristics of the system, such as the Collections of the implementation mechanism, the type of system, I / O, network, multi-threading; well-known design patterns (broad range design patterns, not limited to the GOF design patterns); JVM familiar mode of operation; skilled use of debugging tools to troubleshoot performance problems to solve; master common scaffold on the market; mastering knowledge surrounding (OPs related to network-related knowledge) has a good the actual development experience (did produce something truly tested); for test development, AOP, Java byte code technology is very important knowledge. . . This is a very long learning list, take years to develop. Do, in fact, you are qualified for normal development of the post, which is the technical foundation to develop advanced test positions.

In the field of knowledge there is a good understanding

People can not know everything, but after a few years of work, the job will have accumulated to a certain domain of work.

For example, you test a system's core electricity business transaction module for three years, the business you must be skilled to speak out: product list, shopping cart, orders, back orders, scrap orders, payments, shipments, inventory, refunds, etc. cook preferential use of business processes, and common pit that may arise (loss of funding problems of all kinds, all kinds of problems the service is not available, logical contradiction), or simply can not reflect your experience precipitation and deep thinking; technology on the angle you want to be able to get out of the paint system interaction diagram, familiar interface and the core of the core parameters, able to read code development, skilled use of trace and monitoring tools to diagnose problems online positioning lines of code.

With the ability to protect the quality of technical

Test development will post a question to ask: Are you able to give you a technical means to improve test efficiency, enhance the ability of the test examples of it? This is one of the largest Hom interview. Many people will talk about some examples of automated regression tests, but the real success stories are very few, because how do, how do not want to do as good a tutorial online save one, turned into a toy. Automated do not just use tools, frameworks, in fact, to the characteristics of the measured object, the software life cycle has a deep understanding and knowledge of the job we have a strong development. In fact, environmental, CI, data, test case generation, data points than some small pair, can have a good effect mentioned outputs from these points can be well done, will be good points. There is a good success story, your chances of winning more than 80%, there is no short board, it almost certain.

Something other than skills - actual case

Previous work confirms your ability. You can clear a special show for work, your ability to prove the case when the interview is the most useful Warlords.

Something other than skills - your personal qualities

Generally have the following characteristics will greatly plus: fast learning, systematic learning, to apply their knowledge, systematic thinking, strong driving force, technical thinking, outstanding communication skills, clarity, resistance to stress, optimism, ability to resist setback the ability to quickly adjust, iterative improvement of awareness, ownership, teamwork, vision and planning. These features reflect the people's core, there is a strong core of people, do anything, temporary lack of skills, it can certainly make up. So, at the time of recruitment tend to judge whether to hire a decisive role

 

High spots Requirements (senior positions demand)

 

Overall understanding of the field of computer knowledge

This range is very large, people can not know everything. But the most basic knowledge can not have a blind spot:

Fundamentals operating system to work with the underlying operating: If linux, linux book to read through the operating system, familiar with the basic concepts to be familiar with basic commands, shell be able to read and write;

Network knowledge in particular TCP / IP, HTTP knowledge: recommend two books "graphic tcp / ip" "graphic Http" two books of the things to understand.

Knowledge database: the common market database (redis, mysql, oracle) common DBA operation, troubleshooting; SQL skilled use;

Web and mobile end knowledge: the ability to understand HTML, CSS, Javascript code can read, can read Android or iOS code, developers simply do the best.

Security Knowledge: Common security methods, tools; basic security offensive and defensive principles;

Software engineering / development process management: PMP hone combat all kinds of learning, the proposed system, agile development of several certification courses.

 

In a field of deep plowing

People can not know everything, but in a field of deep plowing is needed. For example, doing four or five years after the end of the test mobile. android and iOS have to have a certain ability to develop, and be able to read the code of business development is the most basic, it can replace part of the business development to achieve functional, complete part of component development is a very good self-check point. Mobile terminal capable of automated tools stack, stack monitoring tools (such as Friends of the Union, bugly, newrelic etc.), memory leak detection, detection Caton, power consumption, low network traffic, Buried, gray, version control and compatibility , user experience, security, and so the overall quality assurance program has the ability to get.

What to get it? For example: For example, using various means to reduce the rate of collapse to one thousandth or less. For a small team, this is a very easy to implement Hom. Do this, you need to know how to collect crash rate, how to use a range of tools to locate the core issue of how to promote the development of change and prevention (static code scanning tools introduced to prevent the indiscriminate use of immature third-party plug, preventing the code reivew common pattern such as null pointer could cause a crash, to promote the development log develop good habits, promote defensive end mobile programming programming develop habits, to promote the development of back-end interface to spit in accordance with specifications, to help develop the introduction of memory leaks, Caton tools, trend reports, alarm bells ringing, all kinds of grayscale settings, online monitoring ... change a data behind have a lot of quality-related work).

 

Using a comprehensive approach to software quality support capabilities to increase performance.

It sounds very abstract, a few examples of it.

Example 1: Team where you are always complaining about the time test was developed too long. How can shorten test time about it?

Through research, it was found that most of the small test environment is unavailable partners criticized. Multi-environment in the end not to use it?

You did a surveillance report available on Grafana environment and Prometheus, after use, we found that the environment in the availability rate of only about 35% of the working day, mainly due to: a few core hot application often hung up nobody.

You pull the whole team, specifically responsible for the deployment, the deployment of the agreed rules: only lunch and dinner time deployment and post-deployment to yourself to look at is not OK.

A week later, the environment availability rose to 65%. Further in-depth analysis and found that two students do not follow the rules, they are always breaking the rules, you go to them alone to talk.

A week later, the environment availability increased to 80%. There are a small number who do not abide by the rules.

You find SRE classmates mention needs to do a deployment card points, non-deployment time deployment must TL approval.

After one week, the degree of the environment rises to 85% can be used. Some TL does not abide by the rules.

You built alarms, deployed environment chaotic, broken, @ all the big teams in the group, who informed ruining the environment.

After one week, the environment availability reached 92%.

You add a feature: Application hang for some time no response, automatic restart services, there is still a problem, it automatically rolls back the previous version.

You solve the problem led to the development of an application start-up time is too long.

You promote environmental groups.

You promote the implementation of standardized processes on-line version of the test environment.

You push the smoke point with automatic card cases.

You promote the deployment of human environment backup mechanism.

You promote the deployment of the full basic training environment.

You summed up the Deployment Guide.

You do. . . . .

Finally, the availability of a stable environment to more than 97%. You save more than 60% block time test (not the original 35% availability)

Example 2: the above problems, in addition to the environment, there is a trough point: development test mentioned quality is not high. The first few days of testing, many of the main processes are a dead end, leading to a test always waiting, or follow along with the development of the FBI. And this time, has been considered a habitual test of time, because: put the test.

You promote: test provides a self-test to measure smoke mention use cases, developers must complete a certain extent.

You promote: do automated testing and development to build the same period in the development process, the core function was to protect up automation use cases.

You promote: the development of segmentation feature mentioned measure, not to mention save all of a sudden a big move cook.

You promote: Code Codereview become a team regular activities, QA follow-up in the early core code, abusing the problem in the bud stage.

You promote: external resources FBI carried out very early, do not let it become in the post-test test blocker.

。。。

Example 3: You find a long test time, QA and he has a problem.

You promote: a clear test plan and all stakeholders have clear expectations.

You promote: test test based on risk, the greatest risk of getting the fastest cover, scientific allocation of time, significantly shorter time bug feedback arc.

You promote: bug strict management, are all important and timely bug fixes.

You promote: good communication and reporting mechanisms, so that the team every day key stakeholders clearly know how far from release.

You promote. . . .

You can tell he has done so more than five examples of success, and I'm guaranteed you will be berserk 1 line manufacturers. Rank basically expert from.

 

Continuous learning and complex problem solving skills

Example 1:

Your recent work is to help the team to back-office services to enhance stability. You see the internal netflix use something called ChaosMonkey to random production of service attacks, and forced engineers to improve the stability, so, you also realize the internal mechanism similar (milder), and promote the improvement of the stability of the team.

How do you know this is called ChaosMonkey things? Because you will often browse tier manufacturers of the technology blog, participate in industry conferences, attention to all kinds of new technology. Persistent habit.

Example 2:

Hard to do large-scale automation interfaces, external data depend too tough, too hard argument constructor, assert too hard to write. If you can simply recording playback just fine.

However, the external dependence is a sinkhole, writes mock also a sinkhole, assert also a sinkhole.

The actual case is, after several years of relentless multiple teams fill the hole, Ali has internal application-level recording playback tool, and hundreds of successful application is to use it, the impossible becomes possible return mission (the order of tens of thousands of case generated the same day, the same day put to use, and can be analyzed coverage), the implementation of automated testing need to pay revolutionary working hours reduced (less than 10% of the time originally paid).

You can tell he has done so more than five examples of success, and I'm guaranteed you will be berserk 1 line manufacturers. Rank basically expert from.

 

Other capabilities

Test is a one size fits all, some positions require higher-order what should be some of the more high-end jobs because of problems need to be addressed more comprehensive, more people need to deal species. Otherwise, you can easily become a professional short board, make a list of it (certainly not all):

  • Good project management skills, development manager with the ability to at least the same level or even better than him.
  • Certain software architecture capabilities.
  • Certain products sense: be able to communicate with a smooth, senior product manager, know know why he would think, to realize the significance of the product, the path;
  • From considerations of quality products to more than product manager, gave him output.
  • Excellent communication skills.
  • Team management (this is too important)
  • Goal management capabilities have a good core (mentioned above)

 

How the transformation / how advanced?

It is not difficult, there is no high-end approach. Below these four is enough, the core secret is perseverance.

 

You are familiar with the system under test, you are familiar with the system under test, you are familiar with the system under test.  Able to do from a technical, business point of view is the most important source familiar with the system under test to be a good QA of basic professionalism, but also the ability to ascend.

Slatternly: I was able to draw a diagram of the system architecture of it? I can read the code developed it? I am familiar with common business monitoring system it? Familiar with the system log it? We know how to develop and debug problems locating it? Give me a line, I can locate it? I can give someone else complete introduction to the core business of this field it? I can own a direct hands-publish on-line system it? You know how to roll back what? How gray is doing? I know what all the key technical points, such as how idempotency a deal is done? I have in the team: "This guy is the system most familiar" What reputation?

Slatternly all negative answer. . . Spend a year get it all becomes affirmative answer. This process, you will be forced to learn a lot and get a very considerable growth, which is the only way advanced, but also a lot of people place card. If not, do not read the back, also in front of all forget it.

Methods: read all the documents, force yourself to read the code, to actively participate in the development of all discussions, but not mad to ask, how to observe the development of on-line, how to troubleshoot problems, imitate, learn, use search engines, are summarized. . .

 

Find and solve problems, find and solve problems, find and solve problems.  You must have a bunch of questions, if you think I was doing good, there is no problem to be solved, it must be you own a huge problem!

Slatternly: find a pen to write you think quality, 10 questions your team and do the sort. Discharge of the most important three.

Methods: find the problem top3, choose a column a take it, to resolve. If not to be, hard to observe, and then go to be seen as a good fellow, you're better than others Bibi difference where. Try to solve these problems, from small problem, the problem can start to see the effect of setting a point in time. You really solve the problem after more than five, there will be feeling.

 

Learning system, learning system, learning system

Slatternly: I learned a systematic knowledge of it? I know I can speak so operating principle of this line of code I wrote it?

Methods: From the start of work, confirm what knowledge you need to make up. Learning from the Internet to find a road map of specific knowledge, work out a plan, according to. Join groups and find people to help you solve problems, and more invite him to dinner, ask more of him. After the acquisition of knowledge, immediately return to work to do testing. Or apply their knowledge to increase. Work in conjunction to study the effect of the system is the best.

Another example:

The company has a small partner (he should also soak the community), beginning candidates, he said familiar jenkins, with a lot. So the first job was: the daily work of all CI to him and informed within two months to be all set. He look stupid to force the original depth understanding of those who do not work can not support requirements. Later, he Sike every day, read all the documents jenkins (right, almost all of the documents read through), turned to address the numerous problems of the post, the process of recording hundreds of problem-solving, written on one hundred small blog jenkins (I still have not published it). A few months later, he cooked than I am, he's grown into a basic capability: to be alone in a small company to get a complete front-end, back-end, a set of mobile terminal CI solution. In fact, this set alone, you can find a good job. It is relying on the work, the results of a systematic study.

 

Select the challenging team, choose a challenging team, choose a challenging team.

Slatternly: There are a lot of people better than me what in the team? I admire my colleagues around all of it? I made it challenging thing?

Method: If these three points are negative, and you are in the early stages of his career. Maybe (just maybe), you should consider a change in the team.

 

END

 

Guess you like

Origin www.cnblogs.com/huile11/p/12519314.html