This article is an article on the "programmer" magazine by the end of 2002. Although it is time, it is worth seeing. ------------ Preface: Software Test One Very New Discipline, the content of the current research is still not in-depth, still in the infant stage. The software test requires what professional foundation has not contained, and there is currently no very good standard to measure testers. But there is no doubtable, software test is increasingly attached to software companies, and the role of software test engineers is gradually recognized. This has been confirmed in foreign large software companies like Microsoft, in Microsoft, a developer corresponds to one to two testers. Now, let us approach the software test engineer and pay attention to their growth path. From programmers to software test engineers special planning / post editorial department author writing / Yan Hui domestic software company's attitude toward software testing is worrying. The software test engineer is insufficient, and the proportion of development testers is unreasonable. According to the survey, the proportion of testers and developers in the best enterprises is 1: 8, and some is 1:20, and even there is no full-time test engineer. Dr. Chen Honggang, who has participated in Microsoft Windows95, Exchange Server 4.0 and 4.0, and SQL Server 2000 Development and Testing Work Chen Honggang, although he has risen to the Microsoft Asian Institute of Business and universities, but still lag behind domestic software testing levels. Deeply feel. Many domestic companies are still in the exploration stage, and small businesses have the main energy to complete the initial capital accumulation as soon as possible. Some companies also understand the importance of software testing, very hard work, but because of many reasons, they don't learn the essence, I don't know how to do it. Therefore, it can only be limited to a simple black box to learn from the book, white box test. Many people know that there is a pressure test and performance test, but it is unclear for how the product is specific. Chen Honggang said that it is necessary to have an open software culture, and in many companies, test engineers are only absolutely obedient, and they have not developed their enthusiasm and creativity. Some managers have insufficient process management experience in software development, and still use traditional enterprises to manage, coupled with the control understanding of software quality, it is considered that the programmer has been tested after the programmer can be used, not Recognizing that software testing is the best way to control quality. However, there are still some large companies and professional companies that have already stepped up in software testing. In 1994, IBM software test project was initiated. In 1999, the software test became one of the company's main software outsourcing business is one of them. Because the customer is a large software company such as IBM, Liu Zhong, senior vice president of Teng Software, said they have differently varied by foreign companies in software testing, and also research and apply a variety of software test technologies. Software test engineers mentioned software test engineers, many people think of using software, trying to find low-level people or software users who have occurred in frequent operations. In fact, this is a mistake concept, and software test has long surpassed users to discover the basic test phase of bugs. Chen Honggang said that Microsoft's software test engineers divided into three types: Test executor (Basic Software Tester), test tool software development engineer (Software Development Engineer in Test) and advanced software test engineers (Ad_hoc Tester) test executive responsible for understanding the product The functional requirements, and then test it according to the test specification and test cases, check whether the software is wrong, determines whether the software has stability, which belongs to the lowest level execution role. Test tool software development engineers are responsible for writing test tools, and testing software using test tools; or develop testing tools for software test engineers. The performance test after product development, submission tests are likely to use the development test tool.
The strongest technical requirements are these people because they have the technology of writing procedures. "Because different products are different, the requirements for test tools are also different, just like Windows test tools cannot be used for office, office can not be used for SQL Server, and Many test engineers are responsible for writing tests for a product. . "And Ad_hoc Testet belongs to the more experienced, you will find a good test engineer who is doing and do, which requires strong creativity. When I just entered Microsoft, the boss was also only a way of operation of Chen Hong Kong. Every day, according to this procedure, a few days, a bug did not find it. Chen Hong Kong is also very depressed. I feel like this is quite right, and I will ask myself: Why do you have to do this! So I changed another method, so that he was surprised that a lot of serious bugs were found, and they did not dare to speak. One day, he found more than 10 very serious bugs, the development manager was shocked, and the angry rushing to Chen Hong Kong asked: "Do you change the test mode and test steps?" Chen Hong has scared, said: "It may change a little." The other party said: "I am very angry, but I am not angry with you, but because the test staff is too bad, or there is a problem in the previous test, some bugs have some bugs for half a year or even one Year, but until now, I found that now I have to fix these mistakes! "Later Chen Hong has got the boss's thumbs up, I can do test according to my own ideas. In this regard, Chen Hong Kong feels deeply: "I realized the culture of Microsoft very encouraged to create a culture, and I feel that I only follow the dogma is not a good tester, just like the user. Software test engineers need to pioneering and creative." In development management, testing should not be attributed to project management, and should not be owned by developers. These three departments should be paced and collaborate, and the test engineers finally determine if the product can be released. The quality of the software test engineer is still in the development stage because software tests are still rising to the theoretical level. The evaluation of the personnel, including Microsoft, there is no unified standard, so the evaluation software test engineer can only eliminate according to work practice. Software tests are very important to logical thinking, learning ability, and reactions, is also very important to have strict thinking and reverse thinking. Chen Honggang said that in five or six people's test team, more than half of the BUG was found. He believes that this is closely related to the background of math majors, and the training of logical thinking in mathematics is good at finding all aspects of factors. For example, it is necessary to prove a theorem. All aspects are considered, and a condition is not satisfied; but if it proves that it is not established, the most commonly used is to find an alpha, as long as there is a point to do not set up, the software test is also looking for this. Doing testing and considering all possible possibilities, but also do something that is not done according to regular, very strange things. In addition to vulnerability detection, testing should also consider performance issues, that is to ensure that software is running very well, there is no memory leak, and there will be more and more slowed; in different environments, consider software compatibility is equally important . Software tests have a big relationship with the size of the product, because the bug's bug is often connected in large software. Software test engineers need to have a skeptic attitude towards the software. This is because developers like to be of course, always find data that is conducive to their own procedures, some developers do even think that data that is not conducive to program is tarnished and embarrassed to code. Software tests must be strategically prepared for various data, designed different application scenarios from each detail, and do not want to assume that any one of the data is feasible.
In terms of professional quality and communication, it is not a test engineer to pick someone else's problems, but this work requires strong communication skills. Regularly communicate with developers, talking to doing things must be very good, can't accuse others, otherwise they will be half a way. The character will communicate smoothly with the developer, and it is a completely different problem with people and the right. How to develop an excellent software test engineer Langchuan software test engineer Zhang Jianyang graduated from the Department of Peking University, developed fluid mechanics analysis software, the problem arising from the lack of testing, giving her a deep impression. Later, I went to Datang Telecom to do a UIM (Unified Messaging System), she found that although the company has taken a lot of reward methods in order to encourage employees, they are still very willing to do system testing. And Zhang Jianyang has been involved in the translation of many domestic and foreign information, and has a strong interest in software testing. Similar to Zhang Jianyang, it is not very common to position in software testing, because the programmer is more willing to do development rather than testing, from a large environment, the income level of testers is also one of the reasons. In Microsoft, testers and developers' salary levels are the same. How to change this status? Some people say that you can send people to advanced foreign software companies, but this way is that it is involved in trade secrets and is operative. Dr. Chen Honggang believes that a better way is to introduce talents, and work in foreign large software companies, and experienced talents, and even hire high paying. He said that this is not just a person's problem, the key is to increase the level of the entire software test. Introducing talents is only starting, more importantly, cultivating a number of software test talents. The education and training of software development is more regular, and all schools have professional, but software test has no formal professional graduates, and there is no criterion for judging. Dr. Chen Honggang gave many software colleges, opening four software testing professional basic courses: software testing foundation, software test development, advanced software test cases and industry software characteristics test methods. Domestic now has some software testing basic textbooks, but other textbooks have not yet. Advanced software test cases are mainly large software test cases, and large software has a strong representation. The course of industry featured software tests can broaden the students' vision. Dr. Chen said that in foreign countries, it is also a very small university to open test major, but can learn from the prolonged training institutions. After a group of professional test talents, people will recognize their importance. If you have already started working on software testing, don't think of the potential and future of software testing. Liu Zhong has begun to the test of IBM's OS2 Chinese version of IBM in 1995, and he has been working in the software test field and rose to the company's senior vice president. Hohen Software has also cultivated a group of test engineers, which will suspect the professional goals of the test career to clarify their own testing. Liu Zhong said: "Many people will say a lot of trouble when they start testing, very boring, just a blaming, rather than take the initiative to learn, he didn't see the knowledge behind software testing. Because learning can do These work, don't learn, you can do these work, but the quality is different. Some people learn to teach many test technology and management knowledge, the company will naturally cultivate him in the next project. "So for a novice, To cultivate your own ability in all aspects. The first thing is to understand various test processes, and translate into their knowledge on the basis of understanding, and later encounter similar problems to solve themselves. On test skills, you must know that there are those means, such as pressure testing, which tools can be assisted. From professional skills, facing different technical directions, like operating systems, networks, communications, etc. These three aspects should be synchronized to grow.