What is agile testing?

Table of contents

Foreword:

Definition of agile testing

Characteristics of agile testing

Why agile testing

Shorter time to value

Emphasize that quality belongs to everyone

Simplify and save costs

Agile Testing VS. Traditional Testing

How to migrate from traditional testing to agile testing

1. Organizational culture change

2. Adjustment of organizational structure

3. Personnel training and guidance

4. Light process

Key elements of agile testing success

1. Strong leadership support

2. Testers have an agile mindset

3. Have the confidence to try

4. Collaborate closely with all parties

5. Automation, automation


Foreword:

Agile testing, also known as agile development testing, is a method of software testing in an agile development environment. It emphasizes the principles of rapid response to change, cross-functional teamwork, and continuous feedback.

In the traditional waterfall development model, testing is usually placed at the end of development, which can lead to problems such as testing process shortages, delays, and insufficient handling of requirements changes. In contrast, agile testing emphasizes early and continuous involvement in testing to ensure that software quality continues to be at a high level.

Definition of agile testing

Accenture's definition of agile testing (which is basically consistent with Wikipedia's definition) is roughly like this: Agile testing is a testing practice that follows the principles of agile software development. Agile development model integrates testing into the whole development process instead of treating it as an independent stage. Therefore, testing has become a very important link in the entire software development process. Agile testing includes cross-functional teams with professionally skilled testers, which enables this combined team to better deliver value and meet the project's business, quality and schedule goals.

From the definition, it can be seen that there are three main core connotations of agile testing:

1. It follows the principles of agile development (emphasis on compliance)

2. Testing is included in the overall development process (emphasis on integration)

3. Cross-functional teams (emphasis on collaboration)

In addition, the basic testing methods and techniques used in agile testing are the same as traditional testing.

Characteristics of agile testing

Since agile testing is a new testing practice, what are its characteristics? I use "four more" to summarize:

Stronger collaboration: Agile developers and testers work more closely, preferring more direct communication rather than back-and-forth communication through email documents;

Shorter cycle: The time for requirements verification or testing is no longer calculated on a monthly basis, but on a daily or even hourly basis. User acceptance testing happens at the end of each sprint;

More flexible planning: Agile testing also needs to embrace change. The test plan is no longer an immutable document, but will be flexibly adjusted according to the order of business value delivery; more efficient automation: Compared with
traditional testing, automation plays a more important role in agile testing. played an extremely important role. It is a very effective means of achieving fast delivery and ensuring quality

Why agile testing

A very direct reason is that if the entire project is adopting an agile development model, such as an iteration every two weeks, and you are still talking about the traditional testing stages with the project, it is like two gears with different speeds, which cannot be combined at all. Just ask, can all the testing stages be completed in two weeks? Therefore, there must be new testing practices to replace the original model in order to better adapt to the characteristics of agile small steps. Of course, in addition to adapting to the rhythm of development, agile testing still has its unique value:

Shorter time to value

By adopting the mode of agile testing, it can fit the entire agile development cycle, so that the entire agile development can be delivered at the same and fast iteration rate and cycle, so that end users can obtain business value as soon as possible;

Detect testing risks earlier

Agile testing allows testers to start testing as early as possible, discover system defects or existing problems as early as possible, avoid all problems from accumulating in the final testing stage to form "Big-bang" results, and reduce overall system risk;

Emphasize that quality belongs to everyone

Quality is built, not measured. Agile testing has always emphasized that quality is the responsibility of everyone. In addition to testing, developers and product managers are obliged to be responsible for the quality of their deliverables, so as to ensure the overall quality of the project;

Simplify and save costs

Agile testing does not require detailed test plans and test documents, nor does it define complicated testing processes and defect processes. This lightweight management mode reduces unnecessary burdens for testers and saves workload and costs.

Agile Testing VS.  Traditional Testing

So what is the difference between agile testing and traditional testing we are familiar with? I compiled the following comparison table:

How to migrate from traditional testing to agile testing

1. Organizational culture change

Deloitte mentioned in an introduction to agile development that organizational culture is a term used to cover all aspects of an organization—from basic perceptions, attitudes, and values ​​to organization-specific language, knowledge, and technologies. In the agile culture, compared with the process, agile is more concerned about people, so the agile testing organization should be a cultural atmosphere that is people-oriented, self-organizing, and collaborative. But according to the author's observation, many agile projects still lack such cultural genes. For example, during the stand-up meeting, you will still see the so-called TeamLead standing in the "C position" hosting and leading the meeting, and the team is standing behind and waiting for the report.

2. Adjustment of organizational structure

From the perspective of project characteristics, agile is a "strong project-based" management method. Therefore, if it used to be a functional organizational structure, such as developers belonging to the development department and testers belonging to the testing department, then adjustments need to be made in agile projects . Development and testing belong to the same project and team, and everyone has the same goal, which is to ensure the success of the project. Therefore, testers may help developers review code, and developers will also help testers to test, and the functions of personnel roles become blurred.

3. Personnel training and guidance

Any new method without relevant training and understanding will make the specific executors feel uneasy and have no confidence. Similarly, testers in agile projects also need to receive agile knowledge training before testing. If possible, it is best to have an agile coach with rich experience help with the introduction, grow with the help of the coach, and avoid going in the wrong direction.

4. Light process

Traditional project development management methods such as CMMI are relatively process-heavy and require a lot of deliverables. Agile emphasizes light processes and minimizes unnecessary documents, making the entire development model lighter. Therefore, when designing the process and deliverables, it is necessary to fully consider this feature and simplify it as much as possible. Of course, fewer documents does not mean that no documents need to be written, some necessary documents are still needed.

Key elements of agile testing success

In "Agile Software Testing: A Practical Guide for Testers and Agile Teams", Lisa Crispin summarized the seven key elements of agile testing success, which I think can be reduced to the following five key elements:

1. Strong leadership support

Any change cannot be successfully implemented without the strong support of the leadership. From the perspective of the leadership, it is necessary to provide a relaxed environment so that the entire agile testing team can form a self-organizing model. When encountering problems, it is not to pursue accountability, but to give enough trust and support to help the team overcome difficulties and accompany the team's growth.

2. Testers have an agile mindset

Testers need to understand agile and master the basic knowledge and principles of agile, so that they can be integrated into the agile environment faster in the entire agile system, so as to better carry out the entire testing work.

3. Have the confidence to try

Agile testing is relatively new compared to traditional testing. Many testers are afraid to try new things, and they are timid and hesitant to do things. Therefore, testers need to have the determination to dare to try, not afraid of not doing well, but afraid of not doing it. Only by doing it will you know where it works and where it doesn't work. Then optimize according to the shortcomings, so as to achieve success in the end.

4. Collaborate closely with all parties

In an Agile project, the direct communication between testers and other parties will be very frequent. Testers not only need to work closely with developers, but also need to maintain frequent communication with product managers and even end users to make the entire test more efficient.

5. Automation, automation

Automation is a very important element of agile testing. In the extremely short delivery cycle of agile development, it is very difficult to meet the requirements of rapid release if only relying on manual testing. So automated testing is an essential means. In addition, the automation mentioned here does not only refer to purely automated testing, but also includes how automated testing is integrated in the entire delivery pipeline, reducing the entire delivery time, achieving continuous integration and even DevOps, and ultimately bringing value to the project.

  As someone who has been here, I also hope that everyone will avoid some detours

Here I will share with you some necessities of the way forward in automated testing, hoping to help you.

(WEB automated testing, app automated testing, interface automated testing, continuous integration, automated test development, big factory interview questions, resume templates, etc.)

I believe it can make you better progress!

Click on the small card below

Guess you like

Origin blog.csdn.net/Free355/article/details/131622335