In 2020, how to transform and upgrade the testing career to automated testing ~ test development?

All test practitioners want to transform from business test to test development engineer, because this is a threshold, a level, an important driving force for elevating themselves and improving personal value.

The test development engineer is a hands-on role. Compared with development engineers, test development engineers not only have the ability to write code, but also need to master the knowledge of operating systems, databases, networks, software testing and other related fields. Compared with business test engineers, test development engineers have skills such as writing test scripts, designing test frameworks, building test platforms, and maintaining test environments, but may not have the professional business knowledge background of business test engineers. Test development work is essentially the work done to ensure that the test can be carried out correctly and smoothly. Test development should serve business testing. Test development does not exist separately from business. In the life cycle of a software system, business test engineers and test development engineers coexist and will not replace each other.

Insert picture description here

So, are you ready for the transformation?

1.2 Challenges of business testing

1.2.1 Challenges and new requirements of testers

Iterating quickly in a fixed time and testing for highly concurrent tasks has always been a challenge faced by testers and test teams. In addition, they have to deal with changing user needs. At the same time, the number of developers and testers in the industry is unbalanced, and tasks other than traditional testing lack clear directions and career development paths. These are testers. the problem we are facing. The diversification of business, as well as the company’s strategic adjustments and the continuous development of the entire industry, require testers to have more and more skills, and their responsibilities have become greater and greater. The role of traditional testing has been unable to meet the needs of the work. People also want to become more technical than ever. Today's work also requires testers to have higher execution capabilities than before, to be able to provide quick feedback, and sometimes not only testers, but also developers.

From a process point of view, testing is between product and development. It requires communication with product personnel and developers. The characteristics of the work also determine the challenges that testers face. Nowadays, when a large number of companies are recruiting duck test engineers, they need more and more comprehensive test talents, requiring applicants to master certain development skills, so that they can better understand the system, find deeper defects, and communicate with developers It will also be more efficient, and can also put forward more constructive opinions when communicating with product personnel. In the future, testers who do not understand technology or code at all may be eliminated by the industry.

The only way to meet the challenge is to keep adapting and improving. Testers must understand how their roles are changing and how to provide the best services to stakeholders in different environments. Testers need to have high flexibility and adaptability, constantly learn new skills and methods, and be willing to take on new roles and activities. This is the core skill that testers themselves must master.

Combined with the actual situation of the author’s team, the team’s goal is to be able to respond quickly and support rapid business iteration, while at the same time freeing testers from heavy repetitive work, providing internal and external "empowerment", providing a good testing platform and easy to use Test tools and efficient test methods. This puts forward some new requirements for testers.

1. Ability to write code

Having the ability to write code can improve testing efficiency, independently or assist developers in locating problems, rather than just reporting problems. This also helps testers understand the programming process, improve their way of thinking, and enhance the test image.

2. Tool thinking and tool development ability

Tool thinking helps testers keenly discover work points that can save manpower. Having the ability to develop tools can truly liberate yourself from heavy repetitive work.

3. Ability to continue learning, learn to think

Continuous learning is not only an attitude, but also an ability. Continuously learning new technologies and new ideas, understanding new dynamic trends, etc., can help testers better adapt to changes and make progress in the changes. Learning to think about this topic is very broad, including many other cognitive processes required by testers such as risk avoidance, project promotion, and problem solving. However, if the tester cannot continue to learn, his thinking will also be limited. Only by continuous learning and continuous thinking can we know what we can provide in the unknown future and how the value should be reflected

4. A strong heart

Testing is a process of constant questioning and being questioned. Testers face a lot of heavy work every day, they may be challenged by others anytime and anywhere, and they may encounter doubts and misunderstandings at work. To carry on the work, a strong heart is extremely important for testers.

5. Test thinking

Testing thinking determines how far the tester can go on this road of testing. The core skill of the test is not test theory or test tools, but test analysis, test design, test structure and test supplements: "Simulate the beauty to grow, slacken the way" has always been the author’s team. Learn to analyze tasks and distinguish Priority, with unified planning ability, can make the work achieve a multiplier effect. The basis and necessity of transformation

Transformation is to better meet business needs, better guarantee the quality of the system, but also to better match the company's strategy. Whether each team is transforming, as well as the motivation and basis of the transformation, vary according to the specific situation. The author's team is mainly responsible for the testing of the business. After the year, an experienced test manager is added, so there is also a test development position, which is also an advantage of the team transformation.

Insert picture description here

I believe that there are many teams in the same situation as the author, so what problems need to be clarified first for such a team to quickly transform?

1. The purpose of transformation

To better meet business needs to match the company's strategy, while taking into account the development trend of the industry, improve the overall technical level of the team, realize the common growth of the team and the individual, and realize a virtuous circle

2. Direction of transformation

Unit testing is very important and necessary to implement. In the work practice of the agile development model, developers undertake the work of unit testing. Due to the adjustment of the company's strategy, automated testing of the UI layer is no longer the focus of the team. Therefore, automated interface testing combined with the development of test tools is the preferred direction for the transformation of the author's team. A complete interface testing system can ensure the quality of the product to a large extent, and this part of the investment has quickly achieved results, and the development of testing tools can free testers from a large amount of manual repetitive work and improve efficiency.

3. The basis of transformation

Team transformation should choose a transformation plan based on the purpose of the transformation and the problems to be solved. In general, you can select and prepare from the perspectives of transformation willingness, transformation time, transformation planning, skills before and after transformation, and application.

(1) Transformation willingness

If the team wants to transform successfully, in addition to external environmental factors such as business needs and industry trends, it also needs to consider the willingness of team members to transform. The willingness of team members to actively transform is a key factor for successful transformation. The difference between forced transformation and active transformation does not need to be discussed here, and the transformation effects achieved are also different. Giving full play to the subjective initiative of team members can quickly complete the transformation and achieve surprising results.

(2) Time required for transformation

Team transformation must undergo a process of learning and practice, and this process takes time. However, the nature of the testing work determines that the most lacking thing is precisely time. So where does this time come from? It is necessary for team members to reach a consensus to avoid taking up their spare time and making them feel resistant

(3) Transformation planning

The team wants to make a successful transformation. Before the transformation begins, it is necessary to plan the entire transformation period, including the skills to be learned, the progress of learning, the time for practice, the assessment of mastery, backup learning materials and alternative plans during the transformation period. Follow the plan to ensure that the transformation is carried out in an orderly manner.

(4) Skills before and after transformation

According to the purpose of the team transformation, the required skills of the team are not the same, and the desired effect is also different. The team should decide the skills to be mastered according to the characteristics of the business and the urgency of the problem. The skills required before the transformation are basically the same, including basic knowledge of testing, business background knowledge, database-related operating capabilities, mainstream programming language development capabilities (preferably consistent with the company's development language), etc.

(5) Application

In order to achieve good results in team transformation, actual combat is a problem that must be considered. If there is no practical application, then no amount of theoretical support can only be on paper. In the transformation process, you can try to apply the training skills to actual projects. If there are no projects, targeted actual combat can be created artificially. Only through practical application can we discover and solve problems, so that the transformation can really work and achieve good results.

Insert picture description here

1.3 Goals and plans for team transformation

1.3.1 Confusion on the road to transformation

Automated testing is an inevitable result of the development of software testing. With the continuous development of software technology, testing tools have also been greatly developed. People began to use testing tools to help themselves do some repetitive tasks. A distinctive feature of software testing is repeatability. Repetition makes people feel bored, and repetition also doubles the workload, so people want to use tools to solve repetitive problems.

At present, automated testing is in a touted period in the industry. On the one hand, many professionals greatly appreciate automated testing. On the other hand, in the era of mobile Internet, the living environment of enterprises has undergone profound changes. Major Internet companies are seeking their own development paths, and the company’s transformation has become inevitable. trend. If the company wants to transform, employees must follow and change. So far, the author cannot forget the novelty of the team members when they first heard about component testing. With rounds of discussions about how to do and how to do it, the team members slowly realized that this would be a long road, during which there must be confusion and pain. However, the more painful and severe challenge is the transformation of the team. Can the transformation meet the expected expectations?

Many teams will basically face the following two problems to varying degrees.

(1) Staff level is uneven

Team transformation is not a one-person transformation, it usually involves the simultaneous transformation of a dozen or twenty people. The level of each person is uneven, and the learning ability is also different. For example, most people were engaged in functional testing before, and they had not developed automation tools or frameworks, had not used many automation tools, and had not done development. So, this requires us to take a two-pronged approach, online learning and offline training simultaneously.

(2) What to do and where to start

At first, Microsoft also had a position that only performed manual testing without writing code, called STESoftware Testing Engineer). Now all the positions of test engineers are called SDET (Software Development Engineer in Test). It can be seen from the name that the latter requires mastering programming ability, and mastering programming ability is for better testing.

The sufficient condition for the transition from STE to SDET is that testers have a strong understanding of software and requirements, and at the same time, they are good at understanding requirements from the perspective of users, and the emphasis on quality has greatly reduced the rework rate of the program. The necessary condition is to achieve development. Design ability and coding ability possessed by personnel. Recognize your own shortcomings and continuously improve your abilities in the following areas.

(1) Understanding of the idea of ​​program architecture: learn design knowledge by participating in requirements review, design review, and code review.

(2) Coding ability: Improve your coding ability through unit testing, automated testing, development of test tools and test frameworks.

Get out of the confusion and have a goal to strive for, as long as you pursue it desperately and persevere, you will eventually see the direction of success.

1.3.2 Setting goals

We should have a purpose in everything we do. With a purpose, there will be a corresponding goal. Then based on this goal, carry out the implementation of related activities to achieve the goal. Similarly, when we implement automation, we must first clarify the goal of automated testing, that is, what benefits the automated testing can bring to us and what problems can be solved. We cannot automate for the sake of automation, we must clarify the goal of automated testing before implementing automated testing.

Insert picture description here
1. Improve testers’ sense of accomplishment and happiness, and reduce repetitive work in manual testing

At present, in most SMEs, manual testing takes up a large proportion of daily testing work. Testers must follow the development team to continuously carry out alternative development and testing. A functional module may be repeatedly tested more than 10 times in the entire test cycle.

How to change this status quo? Automated testing is definitely a good choice. After the corresponding script is written, it can be run repeatedly. Testers only need to click a button to start the test work, and then look at the test results. This completes the work that used to take a long time for manual testing. At this time, the sense of accomplishment and happiness of the test work spontaneously arises, and testers will also have the willingness to actively promote the in-depth implementation of automated testing in different projects

2. Improve the execution efficiency of test cases, realize rapid automated regression testing, and quickly give quality feedback to the development team

Use manual methods to execute test cases, the execution speed must be very slow. Humans are living beings, not machines. Long working hours will inevitably feel tired, and the speed of test execution will naturally slow down. In the case of a large number of test cases, the time cost of testing through all test cases will be quite high.

If automated testing is used instead of manual testing, then the executor of the test case becomes a machine. The machine can execute continuously around the clock, and can tirelessly and quickly complete the test tasks assigned to it by the test script. This method is bound to greatly improve the efficiency of test execution, shorten the execution time of test cases, and improve the accuracy of test execution.

At present, the agile development model is beginning to be popularized and applied in various software companies. Agile development has high requirements for the quality feedback of the developed products. It is necessary to develop a Build version every week or even every day and deploy it in the test environment. At the same time, it is hoped that testers can give fast quality feedback. At present, only through automated testing can the quality feedback requirements for large-scale agile development projects be truly realized. Agile development projects that lack automated testing greatly increase the risk of project failure

In order to verify whether this goal is achieved, you can compare the execution time of previous manual tests to see if the execution time of test cases is significantly shortened, and ask the developers whether the quality feedback speed of the project can bring great help to the rapid product release .

3. Reduce the number of testers and increase the ratio of development and testing

Save the labor cost of the enterprise. Among the operating costs of most IT companies, the cost of 5006-706 is the labor cost. How to better control the labor cost is of great significance to the development of the enterprise. The use of automated testing methods will inevitably reduce the workload of manual testing, so as to achieve the purpose of reducing testers, thereby reducing the labor cost of the enterprise and improving the profitability of the enterprise

4. Online product operation status monitoring

After completing product development and testing, the product will be released to the production environment to formally provide services to users. However, during the operation of the production environment, products will always have problems or failures of one kind or another due to various reasons. How to quickly find such a problem? Someone said: "If there is a problem, there will be users calling customer service, so that we can find problems in the production environment." Using this approach will inevitably reduce user satisfaction with the product. In addition, if there is no feedback from enthusiastic users, the time when problems in the production environment are discovered will be greatly delayed. Therefore, it is not advisable to rely solely on customer feedback.

In order to ensure that problems in the production environment are found quickly and in time, automated test scripts can be written to test the main functional logic of the product. Run the test script regularly to check whether the product system can still work normally. If no problems are found after running the test script, the test script will be run after a period of sleep to check the running status of the product system. If the test script finds the operation problem of the product system and confirms that the problem of the product system still exists after several retries, the test script will automatically send alarm emails and text messages to the system operation and maintenance personnel on duty. After receiving the alarm information relevant personnel can run manual processing system failures occur, thus achieve the purpose of real-time monitoring of production systems for the first time at the discovery and
fault management system

5. Insert large amounts of test data

In the process of system-level testing, a large amount of test data is often inserted to verify the processing capabilities of the system. For example, a tester wants to insert 100 orders, and each order must have business requirements. It will take a long time and a lot of effort to insert these data manually. However, if we have "

6. Common wrong goal: use automated testing to completely replace manual testing

Some people think that after the transformation, automated testing is no longer necessary. For any project, automated testing is preferred, which is not advisable. Before making a decision on how to treat automated testing, we must first have a clear understanding of automated testing. Automated testing is a supplement to manual testing. The correctness of many data, the aesthetics of the interface, and the satisfaction of business logic are inseparable from the manual judgment of the tester. Relying only on manual testing will make testing too inefficient, especially the repetitive workload of regression testing will cause huge pressure on testers. Therefore, both manual testing and automated testing are indispensable, and the key is to use appropriate testing methods in appropriate places.

The above content is the entire content of this article. The above content hopes to be helpful to you. Friends who have been helped are welcome to like and comment.

If you want to exchange experience in software testing, interface testing, automated testing, and interviews. If you are interested, please follow me, add group 313782132, we will have technical exchanges with colleagues.

Software testing is the easiest subject in IT-related industries to get started~ It does not require the logical thinking of developers, and operations and maintenance personnel are not required to be on call 24 hours a day. What is needed is a careful attitude and a broad understanding of IT-related knowledge. The growth path of each tester from entering the industry to becoming a professional expert can be divided into three stages: software testing, automated testing, and test development engineers.

Insert picture description here

Here are some information I have compiled. If you don’t want to experience the self-study again, you can’t find the information, no one answers the question, and you feel like giving up after a few days, you can add our software testing exchange group 313782132, which contains various software Test data and technical exchange

Guess you like

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