Which major is better, software testing or software development?
Which position is more demanding, software tester or software developer? Which is more promising? The debate on this issue in the industry seems to have never stopped. It has been pointed out that this question is actually a false proposition. Experts from Wuhan Dana IT Training School said: The abilities of employees in two different positions cannot be compared because they are not comparable. However, it is undeniable that there is an inseparable overlap between these two positions. This paper lists several typical views of practitioners on software testing and software development, and includes their corresponding career development directions to provide reference for the majority of practitioners. Some software development graduates said that when they were still in school, teachers often said that if girls could not engage in development in the future, they could take the exam. When I first entered the enterprise, I asked about the development of developers in the next few years and was told that if my personal level is poor, I can switch to testing. Does it mean that the technical requirements of software testers are lower than those of software developers? Many developers and testers have expressed different views on this issue. Here are some typical viewpoints, including some suggestions for career development. Let's have a look. The author of Making Bombs, Dismantling Bombs and My First C++ Book said that he did not think that the technical level of program developers was higher than that of testers. He compared developers and testers to "bomb makers" and "bomb dismantlers" respectively. In this respect, Chen Liang Bridge even thinks that the technical level of testers should be higher than that of developers. Chen Liang Bridge further pointed out that the reason why a large number of people think that "the technical level of developers is higher than that of testers" reflects the current situation that domestic industries attach importance to program execution and despise program quality. Feng Dong, an Adobe programmer with "productivity" and "extra support", is just the opposite of Chen Liang Bridge's view. He said that in the software industry, only companies with equal developers can test. In fact, the productivity of developers may be ten times different. Feng Dong believes that at present, testers in most companies in the industry play an "auxiliary" role, and only developers can play a "production" role. In other words, if you can only hire one person, will you hire a developer or a tester? "A bomb maker can be regarded as at least half a bomb maker. If you insist that bomb makers can make bombs, I can only say that the title you gave him is wrong. " Therefore, the technical level of testing and development is not in the same "situation". Chen, a project development engineer at Microsoft Asia Institute of Engineering, believes that for those who don't really know what testing is, the view that "the technical level of developers is higher than that of testers" is representative. Chen Fuqi said that the purpose of software testing is to ensure the quality of software, and from the engineering point of view, software testers play an important role. He believes that to truly understand what testing is, we must first understand what testing is for. Chen Fuqi introduced three aspects of software testing: the first aspect is monitoring the product process. Program development and bug correction in this process is a time-balanced work. If it develops too fast, it may bring more problems to the next stage. Moreover, each stage of development needs certain information collection and analysis. These can only be done by testers. The second aspect is to build complex application scenarios. Take building a complete regression test environment of ActiveDirectory server as an example. Chen Fuqi has built 1 1 domain controllers for this purpose, not including clients that may be dynamically added or deleted in the middle. This process involves a lot of destructive operations, and after each destruction, the site must be restored for the next test. Chen Fuqi believes that this kind of test scenario can't be built by any programmer. The third aspect is to simplify the problem report. When a user reports, the description given by the user often lacks the step description that directly points to the problem. At this time, it is necessary to analyze the process and communicate with users repeatedly to finally locate the key steps, and this series of work is not suitable for developers to deal with. Chen Fuqi introduced some situations that did not require special tests. That is, the software itself does not contain complex application scenarios, such as stand-alone software, single-server websites and so on. And more complex application scenarios need to pass professional and rigorous testing, such as stock software server system. It is impossible to do a good test without technicians who are familiar with this complex system for a long time. The skills required for testing and development overlap, but they belong to two positions with different requirements. If you do the test because of poor development technology, it doesn't mean that you can become a good tester. At present, the separation of development and testing has contributed to a trend: some programmers are less and less concerned about the quality of their programs and how their programs are used. At the forum of Microsoft test expert group in CSDN, someone once said that a product was dead to him when it was released, and he no longer cared. Chen Fuqi thinks this represents the views of some programmers. But this is not the fault of the programmer, nor the fault of the division of labor. It is incompetent leaders who set up the position of testing just to throw rubbish, but they are unable to grasp the relationship between the two roles and improve products. Another tendency of this incompetence is to hire a large number of testers, thinking that good products can be piled up by people. They forget that the role of testers is to monitor quality changes, not to improve quality. The only way to improve quality is development. Losing luggage can make people go into battle lightly, but only knowing that losing luggage can't make a good product. IOS developers should think that the technical level requirements of developers and testers are roughly the same, but the focus is different. Developers need to be proficient in a technical point, and testers need to be highly familiar with a technical aspect.