【Software Testing】What is Agile Testing?

Transfer from WeChat: Rick Chen Chen Xiaocai TestOps 

When I was writing a DevOps training summary, I saw Rick Chen's article, I agree with it, and forward it! original address

https://mp.weixin.qq.com/s/muwde7PsQkkJeZF4CIUDEQ

 

With the popularity of agile concepts and methods in recent years, more and more organizations and projects have chosen the agile development model. So for testers, what is the difference between agile testing and traditional testing? How do testers in an agile project need to transform to adapt to the current popular testing model? Please see the introduction below.

 

Definition of Agile Testing

 

Accenture's definition of agile testing (which is basically the same as Wikipedia's definition) goes something like this: Agile testing is a testing practice that follows the principles of agile software development. The agile development model integrates testing into the entire development process rather than treating it as a separate phase. Therefore, testing has become a very important link in the entire software development process. Agile testing involves cross-functional teams of testers with specialized skills, 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. Is to follow 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)

Other than that, the basic testing methods and techniques used in agile testing are the same as in traditional testing.

 

Features of Agile Testing

 

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

 

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

 

Shorter cycle times: Requirements verification or testing time is no longer measured in months, but in days or even hours. User acceptance testing is performed at the end of each sprint;

 

More flexible planning: Agile testing also needs to embrace change. The test plan is no longer a static document, but will be flexibly adjusted according to the order in which business value is delivered;


More efficient automation: Compared to traditional testing, automation plays an extremely important role in agile testing. 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 the agile development model, such as one iteration every two weeks, and you are still talking to the project about the traditional testing stages, it is like two gears with different speeds that cannot be combined at all. How can I complete all the testing stages 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 and fast running. Of course, in addition to adapting to the rhythm of development, agile testing has its own unique value:

 

Shorten the value delivery cycle

By adopting the model 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;

 

Identify testing risks earlier

Agile testing enables testers to start testing as early as possible, discover system defects or existing problems as early as possible, avoid all problems accumulating in the final testing stage to form a "big-bang" result, and reduce overall system risks;

 

Emphasize that quality belongs to everyone

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

 

Simplify complexity and save costs

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

 

Agile testing vs.  traditional testing

 

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

 

traditional test

Agile testing

1. Testing happens in the final stage

1. Testing happens in every Sprint iteration

2. Communication between groups is formal

2. In addition to formal communication between groups, there is also a lot of informal communication

3. Test automation is optional

3. Test automation is highly recommended

4. The test is subject to the requirements document

4. Testing is subject to the end user

5. Detailed test plan

5. Lean test plan

6. Planning is a one-time event

6. The plan is divided into different levels

- Start with coarse-grained planning

- 'Just-In-Time' planning for Sprint 0 and subsequent Sprints

7. The project manager plans the work of the entire team

7. The team is empowered and actively involved in the program

8. Request detailed requirements at the beginning stage

8. Allow High-Level requirements at the beginning

9. Limited customer involvement after requirements are defined

9. Customer engagement throughout the project life cycle

  

How Traditional Testing Migrated to Agile Testing

 

1. Changes in organizational culture

In its introduction to agile development, Deloitte mentioned that organizational culture is a term that is used to cover all aspects of an organization—from basic perceptions, attitudes, and values ​​to organization-specific language, knowledge, and techniques. In an agile culture, agile is more concerned with people than processes, so an agile testing organization should be a people-oriented, self-organizing, collaborative culture. However, according to the author's observation, many agile projects still lack such cultural genes. For example, during the stand-up meeting, the so-called TeamLead will still be seen standing in the "C position" to preside over and lead the meeting, and the team will stand behind and wait for the report.

 

2. Adjustment of organizational structure

From the perspective of project characteristics, agile is a "strong project-based" management method, so if it used to belong to a functional organizational structure, for example, developers belong to the development department and testers belong to the testing department, then it needs to be adjusted in agile projects. . Development and testing belong to the same project and team, and everyone's goal is the same, that is, to ensure the success of the project. So testers may help developers review code, developers may help testers 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 executor feel uneasy and have no confidence. Similarly, testers in agile projects need to be trained in agile knowledge before testing. If possible, it is best to be guided by an experienced agile coach, grow with the help of the coach, and avoid going in the wrong direction.

 

4. Light process

The development management method system of traditional projects, such as CMMI, is relatively process-heavy and requires a lot of deliverables. Agile emphasizes light processes, minimizes unnecessary documentation, and makes the entire development model brisk. Therefore, when designing the process and delivery parts, this feature needs to be fully considered and simplified as much as possible. Of course, less documentation does not mean that you don't need to write any documentation, and some necessary documentation is still needed.

 

Key elements of agile testing success

 

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

 

1. Strong leadership support

Any change can be implemented successfully without the strong support of the leadership. From the perspective of 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 be held accountable, but to give enough trust and support to help the team overcome difficulties and accompany the growth of the team.

 

2. Testers have an agile mindset

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

 

3. Have the confidence to try

Compared to traditional testing, agile testing is relatively new. Many testers are afraid to try new things, timid and shy. Therefore, it is necessary for testers to have the determination to try, not afraid of not doing well, but afraid of not doing it. Only when you do it will you know where it works and where it doesn't. Then optimize according to the shortcomings, so as to finally achieve success.

 

4. Work closely with all parties

In an agile project, direct communication between testers and other parties is 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. Therefore, automated testing is an indispensable means. In addition, the automation mentioned here not only refers to pure automated testing, but also includes how automated testing is integrated into the entire delivery pipeline, reducing the entire delivery time, implementing continuous integration and even DevOps, and ultimately bringing value to the project.

 

 

 

 

 

References:

1. Agile Software Testing: A Practical Guide for Testers and Agile Teams

2.  Wikipedia

3.  Accenture Agile Testing Methodology

4. 德勤《From Waterfall to Agile - Anorganization and culture change perspective

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325191005&siteId=291194637