Software testing or software development is better

Insert picture description here
There are often students who want to transfer to the IT industry. After learning about software testing and software development, they don’t know which position to transfer to. Today I will systematically compare software testing and software development from multiple dimensions, including basic quality requirements and personality requirements. , Entry threshold, knowledge structure, competitive pressure, career development, career prospects, etc. I hope to give a relatively comprehensive answer to my friends in choosing software testing and development.

1. [Basic Quality Requirements]

The basic qualities here include aspects such as logical thinking ability, problem analysis ability, communication ability, collaboration ability, and skepticism.

[Software testing]: As an excellent test engineer, you need a relatively strong comprehensive quality, including, for example, "five hearts", responsibility, carefulness, patience, concentration, confidence, etc. The details are not explained here, you can see my previous Related articles; the five "learning",

Logic, many companies will deliberately examine the logical thinking ability of test engineers during the recruitment process.

In criminal investigation, testing engineers need to analyze the underlying root causes of the problem by analyzing the appearance of the problem, with the help of professional tools and a good knowledge background.

Psychology, test engineers, need not only to test from the perspective of users, but also to understand the psychology of developers and analyze their error patterns.

Statistics, test reports are a good display of statistical knowledge.

Economics, good testing must be to help improve software quality, thereby improving user satisfaction, bringing more markets, and achieving profitability.

Communication ability is reflected in the need for test engineers to communicate with developers and users. Collaboration and skepticism are also very important qualities for test engineers.

[Software Development]: It should be noted that the software development referred to here is more inclined to software coding, excluding software design and software requirements analysis personnel. This is the future career direction of software coding. As an excellent development engineer, in terms of quality, he is more inclined to a certain aspect. The requirements for logical thinking ability are lower than that of test engineers. Because under a mature development model, ordinary coders are more likely to master the grammar of a development language and a development platform. So high school students in India can program, but it doesn't work in China. From this perspective, the requirements for the "five hearts" and the requirements for the "five university questions" are not so comprehensive. If testing puts more emphasis on comprehensive quality, then development pays more attention to certain aspects of quality.

2. [Character Requirements]

Some people say that character determines destiny, which is also right in a sense. Character will determine a person's interests to a certain extent, and a person will like that type of work.

[Software testing]: From a comprehensive point of view, as an excellent test engineer, it is best to be relatively extroverted in character, although this does not mean that you need to be as extroverted as a salesperson and good at communicating with others. But at least you have to be willing to actively communicate with developers and users. In addition, for personality, it is more important for test engineers to be more sensitive, more skeptical, critical, to pursue a perfect personality, and to have an inquisitive mentality. From a communication point of view, people who are too introverted are not suitable for the software testing industry, at least not suitable for first-line test engineers.

[Software Development]: The requirements of development engineers are not so obvious for their personality, and being introverted and extroverted has little to do with becoming an excellent development engineer. Because the development engineer is more facing the development environment, constantly modifying the code? There is also a lot of work that is repetitive and tedious. Therefore, the character requirements are able to withstand loneliness. So people who have written code for a long time sometimes feel very impatient. There are two ways to change this impatience. One is to strive for thoughtful design and communication needs analysis. The other is transformation, such as development management, product manager, project management, or test development.

3. [Entry threshold]

This part is specially written for those who want to enter the field of software testing and software development. Many people on the Internet are saying that the entry barrier for software testing is low, and the entry barrier for software development is high. In fact, this view is biased. Let's compare them in detail below.

[Software Testing]: Objectively speaking, there are more ways to enter the field of software testing, but not a lower entry barrier. For example, some people can enter the field of software testing through industry knowledge. Specifically, Kingdee and UFIDA have many test engineers who are Studying finance, not necessarily computer. Some people can even enter the field of software testing through personality and basic qualities. For example, Microsoft used to hire housewives to do software testing. It is not that Microsoft does not pay attention to testing. In fact, Microsoft attaches more importance to software testing than any software company. In all Microsoft products, the proportion of test engineers is higher than that of development. Others have transformed from software development engineers to do software testing, so there are many ways to enter the field of software testing. Just because there are so many ways, it gives people a sign that the entry barrier is low. From the perspective of the status quo, because of demand factors, companies inadvertently lowered the requirements for software test engineers, but this is to quench their thirst. Many companies have slowly discovered this problem, so the requirements of test engineers will become higher and higher in the future.

[Software Development]: Objectively speaking, there are relatively few ways to enter the field of software development, but it is not that the entry barrier is higher, because high school students in India can program. In fact, if you master the grammar of a development language and master a development platform, you can do coding. Especially in mature development companies. But from the perspective of academic qualifications, it is still very difficult for high school students to do software testing. It’s just because development engineers have to learn a programming language, so on the surface they seem to be more demanding. Another factor is that they are affected by traditional factors. There are many more people doing software development than software testing, so from competition From the pressure point of view, the requirements are even higher, and they are relatively high.

4. [Difficulty of changing career]

In fact, the most important reasons for changing careers are nothing more than the following: dissatisfaction with the current salary, bottlenecks in the current profession, greater room for development in new industries, and preference for new ways of working. I will not discuss the motivation of changing careers here. I will consider more of the obstacles to changing careers. The main obstacles are. How to choose the direction of changing careers based on your own actual situation? How to overcome insufficient or irrelevant work experience? How to overcome the lack of professional knowledge? What kind of age is suitable? This part is written specifically for people who change careers to do software development or software testing. Many people on the Internet are also saying that the reason why I switched to software testing is because of the low entry barrier and good prospects, because I can learn, but I can't learn software development. Is it really? Not necessarily. The right one is the best.

[Software Testing]: Your actual situation, including the basic qualities and personality characteristics mentioned above, as well as the entry threshold factors, if the comprehensive quality is comprehensive, the personality is outgoing, the communication skills are strong, and there is a good industry knowledge background. Such as financial background, financial background, logistics industry background, securities background, e-commerce background, mobile communication background and so on. At the same time, if you are under the age of 35, a career change test will be more appropriate. After professional knowledge learning, combined with industry analysis, plus the guidance of experienced people. The difficulty of changing careers is still relatively small. The feasibility is still relatively high. Because you can make good use of some things in your past.

[Software Development]: From the perspective of changing careers, it is difficult to easily change careers based on basic qualities and personality characteristics. This is relatively difficult. From the perspective of past knowledge background, changing careers is more difficult to use. Therefore, past experience is of little help to change career development. From this point of view, if you want to change career development, you must accept starting from scratch. Therefore, people who are over 25 years old and have two years of work experience or more are not suitable to switch careers. Development. Because it will waste two years of work experience.

5. [Knowledge structure]

Knowledge structure determines career development, and knowledge structure determines industry development, including future career planning considerations. The following is a comparison of software testing and software development from the knowledge structure that an excellent test engineer should possess.

[Software testing]: From a comprehensive perspective, the knowledge structure required by an excellent test engineer includes the following aspects. The first is computer knowledge, including programming languages, and master at least one development language, such as c, java, C#, etc., a scripting language, such as Tcl, python, Perl, Ruby, Shell, is very helpful for the future career development of test engineers. Database knowledge, although not all test engineers need to master a database, such as mobile Internet, the database requirements are relatively low, but for most large projects, there will be a database, so master at least one database, such as Oracle , DB2, Mysql, etc. In addition, operating systems such as Linux and Unix core commands are also very important. For some involved in the network, network and communication knowledge, such as Tcp/IP protocol is also very important. In addition, other computer knowledge such as data structure and software engineering is also best. The second part is the core technology of software testing, mastering the core methodology of software testing, including the core engineering methods of software testing requirements analysis and software testing case design. Master the mainstream software testing tools, such as the performance testing tool LoadRunner, the automation tool typically represents QTP, the test management tool QC, the open source test management tool Testlink, Bugzilla, Bugfree, Jira, etc. It is equally important to master the core R&D process, such as RUP, the testing process, such as the double V model, or the now popular agile test. Methods are secrets, tools are weapons, and processes are routines. Although the test is like martial arts, cudgel is like a black box test, and swordsmanship is like a white box test. Different martial arts have different requirements for knowledge structure. This is also one of the reasons why there are more ways to enter the field of software testing than development. The third part is industry knowledge and background. For some industries, non-computer professionals will have relative advantages.

[Software development]: The knowledge structure required by an excellent software development engineer, from a comprehensive perspective, includes the following aspects. The first and most important thing is to be proficient in at least one programming language syntax, such as Java, C, C++ , C#, etc., be familiar with at least one development platform or tool, the platform corresponding to the specific development language, such as Eclipse, Netbeans, VC, etc. Familiar with a database, such as Oracle, DB2, Mysql, etc., familiar with operating systems, such as Linux, Unix, including related compilation environments, such as gcc, etc. Familiar with software engineering, algorithms and data structures. You can read more books about design patterns in this area. The second part is English. English is also very helpful for software development, because the development platform and environment are mainly English. English also helps to understand the grammar of a programming language.

6. [Competitive pressure]

The analysis of competitive pressure helps us to choose. Choosing more than effort means that the different degrees that can be achieved in the same five years. The size of the competitive pressure depends on the current situation of the industry. The more mature the industry, the greater the competitive pressure.

[Software Testing]: Compared with software development, the history of software testing is relatively immature, especially in China. Judging from many headhunting recruitment websites, it is difficult to recruit someone with about 10 years of testing experience. The reason is that the rise of software testing in the true sense basically only started around 2000. Today, the ratio of software testing practitioners to software development practitioners is still far from the mature ratio of 1:1 in foreign countries. So relatively speaking, the pressure of competition is relatively small. Strictly speaking, the situation of software testing in China is still in troubled times, so heroes come out of troubled times. In addition, many companies have realized the importance of software testing to software quality, and many software incidents force companies to really think about the core value of testing. Therefore, objectively, the demand for software testing is increasing, although the requirements for testing engineers are getting higher and higher.

[Software Development]: Compared with software testing, the history of software development is relatively mature, although compared to major software countries such as India, it is far less mature than others. Software development was very popular around 2000. There was once a slogan: "Learn C++ well, and you won't be afraid to travel to Shenzhen". At that time, Shenzhen was seriously short of C++ talents. But there is actually no shortage of junior development engineers on the market. Because the primary ones are relatively saturated. In addition to development, if you only do coding within 3 years, you will encounter professional bottlenecks. In addition, from the perspective of learning, the development platform and language update are still a bit faster than the test platform. Therefore, in an objective sense, it also leads to greater pressure on software development. In addition, in the same company, normally speaking, development overtime will be more than testing overtime.

7. [Career Development]

Regarding career development, in fact, the career development of testing and development is the same in some respects. For example, in the future, both can be developed in the direction of management, and both can be considered in the direction of needs analysis. It can even develop into consulting and training services. These are what they have in common.

[Software Testing]: As mentioned earlier, software testing requires more comprehensive requirements than software development from the perspectives of comprehensive quality and knowledge structure. This directly leads to the fact that the career development path of software testing is wider than that of software development. In the field of testing technology, you can be promoted from the path of test execution engineers, test design engineers, test system engineers, test architecture engineers, test experts, and you can also take automated testing, test development, performance testing, usability testing, security testing, etc. Special. In addition, from the perspective of management, you can be promoted from ordinary test engineers, test project managers, test supervisors, test managers, test directors, and major department test directors. In addition, from peripheral IT careers, testing can also take industry testing experts, such as financial field testing experts, project management, software testing consulting and training, software quality assurance (SQA), software sales, technical support, etc. As long as they are in the IT field Row.

[Software development]: The career development of software development is actually quite extensive. In the field of development technology, it can be promoted from the fields of software coding, software design and architecture, and software requirements. It can also be promoted from general development engineer, development project manager, development manager, development director or research director. In addition, you can transform to do testing, and do test development in the testing field by learning key testing techniques. However, from the peripheral IT profession, development is relatively narrower than testing. It is difficult to use industry experts, unless you first need to analyze the needs, and finally use the industry experts.

8. [Career Prospects]

Strictly speaking, software development and software testing have very good career prospects. Because IT serves mankind and IT changes people's lifestyles, IT is very important to modern society. But from a historical perspective, there are still some differences between the career prospects of software testing and software development.

[Software Testing]: Regardless of the status quo of the industry, the importance of software testing, and the history of software testing, at least for the foreseeable next 10 years, the entire software testing industry should be in a life cycle of vigorous development. Because a profession needs a certain amount of time to carry it from birth, development, maturity, and stability. You can also see this from some official data.

[Software development]: From the perspective of life cycle, software development has long been different. Many companies just focus on making software. It is like making an electronic mall similar to Taobao. In fact, in terms of function, from code implementation From the above point of view, it is very mature. You can buy a ready-made template for a few thousand yuan, and you can customize it. Therefore, the development model is changing, factory-oriented, and modular thinking is very mature. Therefore, future software development will definitely pay attention to personalization and differentiation. In this sense, the career prospects of software development will be affected by demand. In addition, from the perspective of industry information, relatively new development technologies will get attention. The old will slowly fade.

Generally speaking, if you have to make a conclusive comparison between software development and software testing, it is still more difficult, so I give everyone who reads this article a suggestion, if it is difficult for you to choose which one as your career Come to think. I strongly suggest that you can ask senior people in these two fields, their suggestions should be more critical to you.

In addition, ask the following questions clearly:

1. What are your strengths? What are the disadvantages?

2. What kind of job do you want to do? What kind of work can you do?

3. There are certain things that must be dependent on oneself, and which things must be dependent on external forces.

Therefore, sometimes we not only have to bury our heads in work, but also need to look up. In addition, there are no shortcuts in life, but we must know how to take advantage of the situation. If you are dissatisfied with your career, changing careers is a choice, moving trees to death and people moving. Just analyze yourself when you are moving, because you can change yourself. Analyze the external environment, because you need to adapt to the environment.

As an IT technician, it is essential to hone your skills. Welcome to join the test exchange group (313782132). You can discuss topics of interest with Daniel online at any time, so that you can learn the most with the least time thing.

On this basis, some use cases such as reliability, fault tolerance, and compatibility can be designed to test the stability of the software.

Click on me and join us! There are many first-line technical experts in the group, as well as code farmers who are working in small factories or outsourcing companies. We are committed to creating an equal, high-quality software testing exchange circle. It may not be possible to make everyone's technology advance by leaps and bounds in the short term, but In the long run, vision, pattern, and long-term development direction are the most important.

The 35-year-old middle-aged crisis is mostly caused by being led by short-term interests and squeezing out value prematurely. If you can establish a correct long-term career plan from the beginning. After 35, you will only be more valuable than those around you

Guess you like

Origin blog.csdn.net/weixin_50271247/article/details/109469374