Today, there is a discussion of such an old topic, does it feel like a cliché? Because Mr. Dening, who was Google's China Test manager two years ago (at the end of 2010), wrote an article on "What is an Agile software test" (Posted on the INFOQ website [1]), has already touched on this topic, "Agile software testing is more of an idea, not a process." In 2011, I also wrote an article, "thinking and new developments in agile testing," published in the journal Programmer, "a new, more complete Agile testing Framework" [2], based on the most fundamental and common ideas of BDD, ATDD, and TDD. Earlier (October 2010), wrote a "methodology and practice for Agile Testing" (also published in the Journal of Programmers), the beginning of the section discusses "What is agile testing", simply put, "agile testing is a continuous response to software quality problems in a timely manner" [3]. However, the space is not much, hurried past, is not clear enough. If you move forward, as early as 2009, Lisa Crispin and Janet Gergory wrote a book, "Agile testing:a practical Guide for testers and agile teams," in 2010 its Chinese version [4], in the 1th chapter, we discuss the definition of Agile test, highlight the agile test from the agile form of the test and the practice of agile test, and analyze the difference between agile test and traditional test (although the authors confine the traditional test to the waterfall model, which is obviously wrong), Let's see some of the features of the agile test, as shown in Figure 1. But the authors also admit that "agile testing means different things to different people".
Fig. 1 Traditional test and agile test [4]
So, "agile testing" is not a new concept, but why do many people still do not understand what agile testing? Now and then occasionally see some articles or microblogging posts are still discussing what is agile testing, but it seems foggy, unintelligible, feeling that "agile testing" in many people's mind is still relatively vague. It is estimated that the previous articles, including my article, did not say "agile test" thoroughly, so there is the idea of writing an article again, as far as possible to the "agile test" this connotation to give you clear. Later, there is a chance to discuss the traditional Test team how to change, the Agile culture Test team how to build and so on.
First, it is clear that agile testing is neither a method (such as a black box method, a White-box method, etc.) nor a way (such as exploratory testing). Because of the various methods available in the agile test, including the white box method, the Black box method, the exploratory test (exploratory test) can also be used in agile, and the script based test (scripted test) can be used. What's the agile test? Agile testing should be a set of solutions, a framework for testing operations and management, a set of practices, or a specific test process consisting of a sequence of test activities. Like scrum, scrum can be understood as a framework for the specific implementation of an agile approach, a set of practices, or a specific solution. Simply put, agile testing is a series of test practices that conform to the agile development approach and strive to achieve quality and efficiency balance. Let's take a look at how Wikipedia describes agile testing:
Agile testing is a software testing practice that follows the principles of Agile software development. Agile testing involves all members of the A Cross-functional Agile team, with special expertise contributed by testers, to Ens Ure delivering the business value desired by the customer in frequent intervals, working at a sustainable pace.
It emphasizes that agile testing is a software testing practice that adheres to the principles of agile development methodologies, involving all personnel across functional agile teams (including testers with special contributions to their expertise) to ensure sustained, fast business value delivery. So to understand agile testing, we have to go back and look at the 12 principles behind the Agile manifesto. I believe that everyone is familiar with the Agile manifesto, if not familiar with, you can carefully read the following complete Agile manifesto, not only those four words.
1. Methodologies for Agile testing
Start with the methodology level of agile development to discuss what agile testing is, or what the specific features of agile testing are, or what the main practices are, and then discuss agile testing (or scrum testing) in scrum with the current very hot agile concrete framework scrum. First look at the 12 principles behind the Agile Manifesto [5]:
1 Our most important goal is to make our customers satisfied by delivering valuable software on a continuous and early delivery.
2 be willing to face changes in demand, even in the late development. Agile processes control change for the customer's competitive advantage.
3 regularly deliver working software, which is a few weeks or a couple of months apart, and tends to take a shorter cycle.
4 Business people and developers must cooperate with each other, every day of the project is no exception.
5 Inspire individual morale and build the project with them as the core. Provide the necessary environment and support, supplemented by trust, to achieve the goal.
6 The best way to deliver information, both inside and outside the team, is face-to-face conversation.
7 working software is the primary measure of progress.
8 Agile processes advocate sustainable development. The responsible person, the developer and the user should be able to maintain the stable and continuous pace.
9 The pursuit of technical excellence and good design, agile ability to enhance this.
10 to be concise, it is the art of trying hard to reduce unnecessary workload.
11 The best architecture, requirements and design comes from self-organizing teams.
12 the team regularly reflect on how they can improve their performance and adjust their behavior accordingly.