As testing has become more and more important in the software development cycle, the gap in domestic testing has been large, and a variety of software and internet companies have been recruiting test engineers, and some of the companies that are in front of them have even canceled their position as a test engineer since the start of the year, all of which have become test development jobs, such as Baidu. On the one hand, the test development shows that the engineers have higher requirements, need to be able to test the ability to develop capabilities, on the other hand, automated testing becomes a trend, using the development of techniques to solve the problems in testing to improve testing efficiency, reduce the human ratio of QA and Rd.
1. Technical Content
Having interviewed a lot of recent graduates and asked why they chose to test and develop this position, they often hear the following answers:
"I feel that I am weak in development, but I am more careful and think the test position is more suitable." ”
"I've been in labs and internships, I've done functional tests and performance tests, and I prefer testing."
"Development can only understand the local part of the project, but testing needs to know more, I expect to have better bigger picture"
No matter what the real idea is in people's heart, the technical content of the unconscious test is not developed. In the campus recruitment, we will be partially inverted in the development of the end of the position of the people back to the test development interview. Objectively speaking, the technical content of test development in software coding is really not as good as a pure development position, let alone a test position. However, I would like to say that the level of technology required by the position itself should be more than a simple development position, the real high level of QA will require a minimum of years of development experience, otherwise he can not from the SOFTWARE product design, architecture and implementation of the proposed substantive comments and risk assessment, At best, just point out several bugs in the delivery software. Therefore, based on the current domestic market, personal advice if you want to test the career development of people, first involved in a few years of research and development work, after all, that is the subject of software engineering, and then in the development process to cultivate test awareness, which is also the professional quality of programmers. Many of Google's engineers have a strong sense of quality, and many of the code itself is not review by its own unit tests and functional tests. The goal of a test or development position is to avoid development, so it is difficult for the career path to develop smoothly.
2. Basic quality
There are two kinds of test and development projects in the company, one is to develop test tools or systems solely for the Test team (because this part and the simple development position is not very different in nature, the discussion is based on another one), the other is to play a subjective role in the testing process, using automation to minimize duplication of labor, For example, the development of test tools for specific scenarios (of course, this tool can be generalized to the entire group or company), test scripts and test cases.
Test development engineers should have two areas of knowledge: testing knowledge and developing knowledge. The reason to put the test in front, because the development is based on the test practice. One of the test knowledge is divided into two parts: first, the Theory of knowledge, the development of software industry has been decades, the accumulation of testing is even less, so to master this part is not difficult for the general people, on the other hand is the experience of knowledge, mainly in the project testing process accumulation, many system test points, Risk points need to have a wealth of experience to evaluate, which is also a senior test engineer value. Development knowledge is, of course, similar to that of a development engineer, no more. In the soft quality aspect, the test development engineer should have the better organization communication cooperation ability. Now many companies are implementing the whole process assurance, QA in order to play a greater impact and ensure the quality of the project, need from the requirements to design, testing to full-line tracking participation, which involves a lot of cross-departmental cross-team communication, even in the group communication is very frequent, engineers need to be very good expression ability. At the same time, because the test in the software life cycle in the post-position, so many work to the upstream of the link there are more resistance, which also requires engineers have better co-ordination and collaboration ability, and ultimately achieve the goal.
3, go farther
Admittedly, many of the test theories now, whether white-box or black-box testing, whether unit test, integration test or system test, appear to belong to the test personnel research patent, in fact, most of the methodology is developed by developers. Once again, it is not possible to thoroughly understand the test without participating in the research and development of the software subject, so it is necessary for the developers to have the development ability and skill to test the personnel. Of course, because of the project schedule and time and other reasons, testers can be difficult to have more development opportunities, but this does not prevent you from continuing to learn. We have a large group of in-depth research of the Python QA, has been in this interest, many development teams used in the Python development system will call him the past training, he is not only the quality of senior testing engineers, but also personally developed a variety of practical test automation tools. In addition, the test can cover a lot of aspects, but the human energy is limited, test development engineers must also have their own core competencies, the selection of a direction is a good practice, to become a certain area of experts, such as unit testing (do not think that developers do, many developers do not have a single sense of awareness and skills), Performance testing, safety testing. The group also has a performance test for 6 years of people, from the beginning of career development has been relatively smooth, and development momentum is good. Finally, the test development engineers need to develop their own bigger picture, this is in the professional process of intentional training, the company's current task is what? What is the focus? In large companies need to take advantage of, QA's job is to ensure quality, need to rely on processes, tools and other external resources, so in the work as far as possible with the general direction. For example, the company last year is the QA internal level of the year, need QA with unit testing, Code review ability, this year is to ensure the quality of the premise, improve the software release cycle, the main push continuous integration.
4, the nature of the test
2V (Validation and verification) is the basic responsibility of QA, that is to guarantee two points: Validation, the software developed according to the established requirements, not deviate from the product direction, verification, the software to meet the needs of the basis of ensuring its correctness, from the function, Performance, security, and many other aspects of validation. In the traditional sense, the 2nd is the majority of QA awareness, that is, to find a bug, that a software to find more bugs in their value, in fact, the highest level of QA is the software in the test can not find the bug, because in the start-up phase of the software you started the quality assurance work, from the requirements, design, Coding these early stages eliminates the potential for bugs to occur. Of course, these are some of the ideals, but what is the essence? Behind the software is people, is the PM to develop the requirements, is the development of Rd, the test behind the actual measurement is human rather than software. People can always be thinking loopholes, people can always make mistakes, so there will always be bugs, but some people are fine, some are responsible for their own development after the single test, functional testing, so that the follow-up can find his bug has been very few. Understand this layer and do not think purely from the technical perspective of the test.
The last thing to say is, whether in large companies or small companies, we all have pressure to develop, mentality is very important, to entrepreneurs and not the attitude of the workers to work to see a lot of problems are very different.
Reprinted from Baidu Library: Http://wapwenku.baidu.com/view/a5f3fd7f31b765ce050814ed?pn=2&vw=all&ssid=&from=&bd_ Page_type=1&uid=41de6365424d44d672ba16da784b7dd0&[email Protected],[email Protected],[email protected],[ Email protected],[email protected]_220,[email protected],[email protected],[email protected],[email protected],& St=1&wk=rd&maxpage=3&pos=all
Understanding of the test development engineer