Talk about the value and obstacles of continuous automation

Introduction: The continuous automation in the title does not only refer to testing, but also includes tasks such as building, deploying, and releasing. Agile teams rely on automation to ensure that each iteration is completed with working software ready to release the latest product. This article discusses in detail the value of implementing continuous automation, as well as the various obstacles faced.

Part 1 The Value of Continuous Automation

Why do you need automation? It is easy for everyone to think of a series of reasons. Here are some considerations that are easily overlooked in continuous automation practice.

1. Shorten the time-consuming manual testing

When the system under test (SUT) becomes more and more complex and the scale of software becomes larger and larger, the time-consuming of manual testing of all functions will become longer and even exponentially longer.

For a testing strategy that continuously regresses daily, manual testing is an impossible task.

But without a complete regression automation interception network, testers need to be distracted from basic quality assurance, and these basic tests also take a lot of time, bringing increasing frustration and boring feeling. Mounting technical debt can also lead to increased testing labor costs.

Without frequent test detection, the code design may also become less and less conducive to testability.

I believe everyone knows that manually creating test data for various complex user scenarios is an exhausting investment. This situation will eventually lead to the energy of testers to only cover a limited number of user scenarios, which may cause some important defects to be missed.

Manual testing is a huge challenge to people's patience and meticulousness. People are prone to omissions and mistakes in repetition. Shortcuts can be taken under the pressure of deadlines, not to mention lack of energy to dig beyond the surface for flaws.

Continuous automated testing ensures the consistency of each run and reduces human regression errors. People can focus on observing what happened to the product.

2. Automation frees up energy to do more valuable things

Automated testing can fight against human inertia. When unit tests and functional regression tests are continuously built and run, it means that testers can have more time for interesting exploration and study the inherent weaknesses of the system.

Automation does not necessarily dig out many new problems, but once a failure result occurs, it allows testers to quickly lock in problems that manual testing is unlikely to catch. This pleasant feeling is a kind of unexpected joy.

3. Increase confidence in development and testing

With the blessing of confidence, the previous manpower input strategy for testing has been optimized, and the workload of manual inspection has dropped significantly.

Reflection on defect repair and use case supplementation of new features also enhance the thinking on design quality and testability. Developers develop a good habit of thinking carefully about the behavior to be changed before modifying the code, and proactively writing tests to verify it. Ultimately producing better coders and testers.

The right automation safety net is critical to the satisfaction of agile teams at scale. If there is no such safety net, the testers will be regarded as a safety net, and the pressure will be transferred to the testers.

Automated safety nets for fast feedback on failures, allowing developers to fix problems at very low cost while their memory is still fresh.

4. Automated regression sets are the most powerful documents

Having a matching automation framework and a fully updated regression suite can guide the team to better capture requirements, and develop a collective habit of caring about the improvement of testing methods in iterations, so that requirement testability is no longer a problem.

The automated test library is developed together with the code base, and the team does not need to incur too much technical debt.

Even more surprising is that the test case is a "living document" that tells how the system works. Because it can be implemented clearly, problems will not cause too many quarrels, which is much stronger than static requirements documents that are not updated frequently.

Part 2 Barriers to Automation Practices

1. The attitude of developers

In many traditional companies, development and testing do not work together, and development does not see the specific work of testing and does not care. The waterfall R&D model makes the testing process farther away from the development work. When the testers are in full swing, the development may be in the development of the next version. Even a development that is proficient in unit testing may not think about acceptance quality beyond the unit level.

How to change the developer's attitude towards automated testing?

Getting them hands-on testing is the only way. But the coaching role is needed. The development team, especially the supervisor, should commit to the test goal, even if the goal is set a little lower, be willing to invest in training, and give enough encouragement to front-line employees.

2. Reduce the learning curve of test automation

Note that it will be very difficult to start working from poorly designed legacy code. You can start with incremental code and find a module with a well-designed architecture to learn from. When the team has proficiently mastered a testing framework, then conduct a comprehensive test of the old code.

Early on, the team evaluates the appropriate test suites to get actual coverage.

The recording and playback tools should be used with caution. UI-level scripts not only have the problem of invalidation of changes, but also maintainability problems caused by the difficulty of passing on knowledge.

In an agile project, although the code is always changed frequently, the purpose of writing the code seldom changes. Therefore, it is easier to keep up with the pace of development by organizing test scripts according to the functional purpose of the application, rather than according to the implementation of the test code. organize.

To measure the benefits of automated testing for development, don't just look at the initial cost, but also look at the opportunity cost, that is, the cost gap between quick fixes and post-project fixes.

3. The panic of insufficient programming ability

Automated testing is a matter for the whole team. There are always technical experts who are able and willing to help in the team. Even students with low programming skills can make contributions.

4. Old Habits

The most common reason for letting teams without continuous automation start to practice is: business releases are too tight, new features are too important, and there is no time to practice automated testing. It's better to try to complete everything with manual testing, so it is safe.

A complacent attitude will only prolong the technical debt and make the situation gradually worse. The content completed by manual testing cannot be guaranteed to be important, and defects that lead to major economic accidents may still remain.

Uncle Ding can see that when the busy business project starts to practice continuous automation, the daily work mode of testers has changed. From the pressure superimposed by business needs, more thoughts are put on supplementing stable interception scenarios, rather than for Anxious communication for various possible missed test accidents.

We understand that based on the historical culture of the team, it is difficult for engineers to prioritize business test automation over new feature coding tasks, but agile method practices can gradually overcome this obstacle. In the future, the official account will give more detailed sharing topics.

Finally: The complete software testing video learning tutorial below has been sorted out and uploaded. Friends can get these For [software testing] friends, it should be the most comprehensive and complete preparation warehouse. This warehouse is also Accompany tens of thousands of test engineers to go through the most difficult journey, and hope to help you too!【保证100%免费】
insert image description here

Software Testing Interview Documentation

We must study to find a high-paying job. The following interview questions are the latest interview materials from first-tier Internet companies such as Ali, Tencent, and Byte, and some Byte bosses have given authoritative answers. Finish this set The interview materials believe that everyone can find a satisfactory job.

insert image description here

How to obtain interview documents:


insert image description here

Guess you like

Origin blog.csdn.net/AI_Green/article/details/130129442