Agile Software Testing--the initial

Source: Internet
Author: User

Ext.: http://www.cnblogs.com/fnng/archive/2013/02/03/2891246.html

Quick and sensitive reaction.

In the field of agile software development, more attention is focused on people as the core, iterative, progressive development method. Compared to traditional development methods, this method can be developed faster, on-line, feedback, adjustment, iteration. To develop products in an agile posture.

The difference between agile and traditional development

There is a very interesting game that can help you understand the differences between agile and traditional development. The game has two characters, one is "Boss", the other is "employee", in 2 minutes, "employees" need to "Boss" under the full command, namely "step forward, step backward, stop, left, step right", complete the 60-step move task. "Employees" need to execute every instruction of the "Boss", and do not allow a violation of the action. "Boss" is not involved in the action, only issued instructions to command the "staff" activities. As we experience this game, 60% of the participants on the spot successfully completed the task, roughly estimating that our productivity is 50%*60%=30%. After the game, participants were asked how they felt about the behavior, both "employees" and "bosses" were very dissatisfied.

Then, we did another set of games. In 2 minutes, participants are required to complete 60-step mobile tasks independently and autonomously, in this game, all participants have the same task, and you can decide and adjust their pace direction at any time according to your own judgment. Finally, we found that all participants did not only get the job done on time without discount, but also worked 100%*100%=100%, and everyone had a great interest in the new way of working.

The comparison between agile development and traditional development

The comparison between the two interesting games and the comparison of the value statements reflects the contrast between the traditional development and the agile development, which is self-evident.

Agile development

Agile Manifesto:

Agile Method Classification:

In addition to the methods in the legend are Crystal, Lean software development, Feature driven Development, Xbreed, RUP, and so on.

common features of agile methods:

Although the names of the various agile methods, the desired environment, and the appropriate teams vary greatly, they have the following major features:

* Embrace change

"The only constant is change" Therefore, the demand change is essential, each time the decision and the demand adjustment all is pushes the product development to the more correct direction. While accepting changes, we should be positive feedback to show possible design flaws and errors exposed in the activity.

* Customer participation

End users, internal users, customer representatives, business partners can all be our customers. The participation of our customers will enable us to make products that our customers really need.

* Fewer documents

Traditionally developed documents are still very much used in agile, but we can streamline the original document. In the Agile Chinese document is not the best way to communicate, encourage smooth traffic and communication, and communication efficiency is much higher than the document.

* Maximized Productivity

Agile development model to maximize the efficiency of the team. Whether you rely on pruning redundant documentation or providing a democratic, unobstructed communication platform, you can help your team focus on limited effort.

* Test-driven development

is to have the developer design and write the unit test code before writing the functional code, based on the understanding of the requirements. Think about how to validate the functionality that will be implemented, and then consider the implementation of the feature. Then iterate to add new functionality to the unit test and function code until the full functionality of the development is completed.

* Automated Redundancy work

Freeing team members from redundant labor, whether automated testing or automated tooling development, is the goal of agile development and agile testing as long as cost savings are achieved.

* A Democratic team

The agile team is a Democratic team, the team is parallel, each team member can participate in the discussion and decision-making equally. Traditionally developed vertical bureaucracies have become obsolete in agile development.

Agile Testing

Isn't that the agile test? How does it look like the test is not a dime of agility? People are agile, but also to test what to do?

In the agile development process, testing is no longer a part of the Waterfall trial development process, but is involved throughout the entire development process. In a variety of ways to ensure the quality of the product, whether the principle of "frequent delivery," or "Working software" measurement, or agile development practice in the "test-driven development", "behavior-driven development", are inseparable from the test support. Of course, agile testing puts a higher demand on testers and is a new challenge for testers.

Definition of Agile Testers

Professional testers, adapt to change, collaborate well with technicians and business people, and understand the idea of using testing to record requirements and drive development.

Agile testers often have excellent technical skills, know how to work with others for automated testing, and are good at exploratory testing, and they want to understand what their customers are doing to better understand their software needs.

The idea of agile testing

For an agile team, you need to keep an eye on how best to work and release the best products. Based on our experience, this requires a lot of training, learning, time, experimentation, and teamwork.

For an agile tester, he or she will be happy to collect and share information, work with customers or product owners to help them fully demonstrate their needs, get the functionality they need, and provide feedback on project progress to everyone.

The basic requirement is that agile testers, like other Agile team members, are willing to learn new skills and face new challenges, not just to test the problem. This is not just a feature of testers, all Agile team members should have. Agile testers help developers and client groups solve any problems that may arise. Testers provide information to help the team review and understand which scenarios are valid and which are not.

Testers may have special skills and experience in the field of testing, but a good tester is not afraid to participate in a design discussion, providing a test-or better-structured proposal. The idea of agile testing is a result-oriented, technical, collaborative, willing to learn, the courage to constantly produce business value.

10 Rules for Testers

10 Rules for Agile Testers:

    • Provide continuous feedback
    • Create value for customers
    • Engage in face-to-head communication
    • Courage
    • Simplistic
    • Continuous improvement
    • Response change
    • Self-organization
    • Focus on people
    • Enjoy the fun

Provide continuous feedback

Since it is a test-driven agile project, it is clear that feedback plays an important role in agile teams. Since it is a test-driven agile project, it is clear that feedback plays an important role in agile teams.

Create value for customers

Agile development is the ability to deliver the most pressing needs of the customer at a lower release. This usually means a limited scope. We often meet the needs of cooler features in our customer teams. Anyone can question these things, but testers will judge their impact on the story because they need to consider the consequences of the test.

Engage in face-to-head communication

A team is hard to collaborate if it doesn't communicate well. Today, many teams are distributed across multiple geographies, and communication becomes more important and challenging. Agile testers should do their best to promote communication. This is a key factor in getting the job done.

Courage

Courage is the core value of extreme programming, which allows teams to practice this value in ways similar to test automation and continuous integration. Testers cling to their own fields and do not engage in any discussions with other business stakeholders and technical teams. While you're looking for a collaborative agile environment, you may not be accustomed to finding a customer for an instance or finding a developer to help with automated testing or asking a question at a daily meeting.

When you first join an Agile team or the current team starts transitioning to an Agile development model, you usually get a sense of fear, and there are a lot of questions that need answers. How in the world can we complete the test task for each user story in such a short time? How does testing keep up with the rhythm of development? How do I determine how many tests are required? Or maybe you're a functional test manager or a quality process manager, but you don't know how to position your role in an agile team, and no one knows the answer. Agile testers need the courage to find answers to these questions, but the reason for courage is not limited to that.

Simplistic

The challenge for Agile testers and their teams is not only to produce the simplest and most effective software, but also to take an easy approach to ensure that the software meets the customer's needs. This does not mean that the team should not spend time analyzing topics and stories, thinking about the right architecture and design. Instead, when the needs of the business sector are complex, the team may need to return the solution to them, and a simpler solution would have the same value.

Simplicity doesn't mean it's easy. For testers, this means using the most lightweight tools and techniques that can be found to test them just right. Tools can be as simple as just a spreadsheet or a list. Automated regression testing is required, but they should be broken down to the lowest level for quick feedback. Even simple smoke tests can meet business-oriented test automation.

Continuous improvement

Finding ways to do a better job is something that agile testers should keep in mind.

Agile testers and their teams are always looking for tools, skills or practices to help them add more value or get a better return on their clients ' investments. Short iterations of agile development make it easier to experiment with new things to verify that they are worth the long term adoption.

Learning new skills and improving the level of professional skills are important to agile testers. You can use a variety of free resources to improve your professional skills.

Response change

Responding to change is an important value of agile practice, but we find this to be one of the hardest concepts for testers. Testers crave stability, so they say, "I've already tested it and the task is done." The constant demand change is a nightmare for testers. But, as an agile tester, we have to embrace change. In Wednesday, we may expect to start stories A and B, next Friday do story C. But by Friday, customers have reset their priorities and now need stories a, x, and Y. As long as we continue to communicate with our customers, we can deal with these changes because we are in sync with other members of the team.

Self-organization

Agile testers are part of a self-organizing agile team. Team culture is implemented in agile testing concepts. As developers, system administrators, analysts, database experts, and customer teams continue to focus on testing and testing automation, testers gain a new perspective. Automated testing is difficult, but it is much easier when the entire team is working on it. Any test problem is easier to solve when you have multiple skills and a multi-layered perspective.

When an agile team faces a serious problem, such as a progress hurdle or a build failure, the problem will be everyone's problem. The highest priority issues need to be addressed by the entire team. The team should immediately discuss and decide on the solution and the relevant participants.

Focus on people

Only a good employee can work well and the project will succeed. The purpose of agile values and guidelines is to ensure individual and team success. Agile team members should have a sense of security. Don't worry about being blamed for mistakes or losing your job. Agile team members respect each other and recognize individual accomplishments. Everyone in an agile team should have the opportunity to improve and develop their skills. Agile teams move at a sustainable pace, enabling them to follow rigorous practices and maintain a new perspective. As the Agile manifesto says, we value individuals and cooperation over processes and tools.

Enjoy the fun

In our opinion, the ideal team for testers is: all members collaborate, from the start of the project to the end, the stakeholders work with the development team, the entire team is responsible for quality and testing. Many people believe that everyone should find fun at work. Agile development values The passion of agile testers for their work.

The work of the agile testers is particularly satisfying, because our perspectives and skills have real value for the team.

What should agile testers do?

Having seen so much, you must ask:

What skills should testers have in an agile team?

What specific tasks do testers perform in an agile team?

Testing in the Agile software development process can be called Agile software testing. Therefore, agile software testing is not a division of the same level of agile software development, but rather a part of agile software development, unlike traditional testing, agile software testing is not an independent process, but instead, it is intertwined with other activities throughout the agile development, and can be seen in its shadow everywhere. Since agile software testing does not tend to be a separate process definition, I think it is expounded from the comparison of agile software testing with traditional test viewpoints, the methods used in agile software testing, and the work of test engineers in the process of agile software testing.

The answer is vague, and the individual believes that the agile testers should have two main faces.

First, embrace and understand the core values of agility (communication, simplicity, feedback, courage, respect, learning, sharing).

Second, testers should have the basic skills to test, and of course, be good at a certain area, such as exploratory testing, unit testing. Good at learning and sharing, to learn the way to constantly improve themselves to adapt to the needs of the team.

What I'm trying to say is, whether it's transferring from a traditional development model to an agile test or a re-organization of an Agile Test team. is not a matter of overnight, need long-term learning, exploration and improvement. Of course, the premise is to take the agile values as the guiding ideology.

-------------------------------------------------------------

This article refers to the material:

Dening "What is agile software testing"

Best practices for IBM Agile Testing

Agile Software Testing: A hands-on guide for testers and agile teams

Agile Software Testing--the initial

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.