You are on page 1of 14

Agile Testing

WHITE PAPER

Table of Contents

Fullinterview.com

Agile Testing

1. Introduction..............................................................................................3 2. Principles behind the Agile Manifesto....................................................4 3. Context-Driven Principles.......................................................................5 4. Agile Development Methodologies..........................................................6 5. A Practice for Agile Testing ........................................................7 ...............................................7 Conversational Test Creation .......................7 Coaching Tests .....8 Providing Test Interfaces.............................................................................8 Test Interaction Model................................................................................9 Exploratory Learning ...................................................................................................................10 6. Advantages of Agile methodology .................................10 Conclusion...................................................................................................13

Fullinterview.com Page 2 of 14

Agile Testing

1. Introduction Agile testing is a software testing practice that follows the statutes of the agile manifesto, treating software development as the customer of testing. In this light the context-driven manifesto provides a set of principles for agile testing. Agile testing involves testing from the customer perspective as early as possible, testing early and often as code becomes available and stable enough from module/unit level testing. Since working increments of the software are released often in agile software development, there is also a need to test often. This is commonly done by using automated acceptance testing to minimize the amount of manual labor involved. Doing only manual testing in agile development may result in either buggy software or slipping schedules because it may not be possible to test the entire build manually before each release.

History:Agile methodology is a conceptual framework for software engineering that promotes development iterations throughout the life-cycle of the project. Agile methods emphasize face-to-face communication over written documents. Most agile teams are located in a single open office sometimes referred to as a bullpen. At a minimum, this includes programmers and their "customers" (customers define the product; they may be product managers, business analysts, or the clients). The office may include testers, interaction designers, technical writers, and managers. Fullinterview.com Page 3 of 14

Agile Testing
Agile methods also emphasize working software as the primary measure of progress. Combined with the preference for face-to-face communication, agile methods produce very little written documentation relative to other methods. This has resulted in criticism of agile methods as being undisciplined.

2. Principles behind the Agile Manifesto

Our highest priority is to satisfy the customer

through early and continuous delivery of valuable software. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.

Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. Business people and developers must work together daily throughout the project. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

Fullinterview.com Page 4 of 14

Agile Testing
The most efficient and effective method of conveying information to and within a development team is face-to-face conversation. Working software is the primary measure of progress. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. Continuous attention to technical excellence and good design enhances agility. Simplicity--the art of maximizing the amount of work not done--is essential. The best architectures, requirements, and designs emerge from self-organizing teams. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly

3. Context-Driven Principles

The value of any practice depends on its context.

There are good practices in context, but there are no best practices People, working together, are the most important part of any projects context. Fullinterview.com Page 5 of 14

Agile Testing
Projects unfold over time in ways that are often not predictable. The product is a solution. If the problem isnt solved, the product doesnt work. Good software testing is a challenging intellectual process. Only through judgment and skill, exercised cooperatively throughout the entire project, are we able to do the right things at the right times to effectively test our products.

4. Agile Development Methodologies

Extreme Programming (XP) Crystal Adaptive Software Development (ASD) Scrum Feature Driven Development (FDD) Dynamic Systems Development Method (DSDM) XBreed

Fullinterview.com Page 6 of 14

Agile Testing
5. A Practice for Agile Testing

Conversational Test Creation Coaching Test Providing Test Interfaces Exploratory Learning

Conversational Test Creation 1. Who should write tests? Customers are often too busy. 2. Defining tests is a key activity that should include programmers and Customer representatives. 3. Don't do it alone.

Fullinterview.com Page 7 of 14

Agile Testing

Coaching Tests 1. 2. 3. A way of thinking about Acceptance Tests. Turn user stories into tests. Tests provide: Goals and guidance Instant feedback Progress measurement Tests are specified in a format: That is clear enough that users/customers can understand That is specific enough that it can be executed Specification by Example

4.

5.

Providing Test Interfaces Developers are responsible for providing the fixtures that automate coaching tests In most cases XP teams are adding test interfaces to their products, rather than using external test tools

Fullinterview.com Page 8 of 14

Agile Testing

Test Interaction Model

Figure1: Illustrates the test interaction model of Agile testing

Fullinterview.com Page 9 of 14

Agile Testing

Exploratory Learning 1. Plan to explore the product with each iteration. 2. Look for bugs, missing features and Opportunities for improvement. 3. We dont understand software until we have used it

6. Advantages of Agile methodology Identify the high severity bugs or show stoppers at early stages Test Early Adaptive Testing Methodology Encouraged Futuristic Thinking - Test from a Customer Point of View Timely Delivery Avoiding waste by automating the cases which are tested frequently

Fullinterview.com Page 10 of 14

Agile Testing
7. Comparison of Agile vs. Other methods

S.No 1 2

Agile Method They are "unplanned" or "undisciplined" methodologies Agile methods exist on the "adaptive" side of this continuum Adaptive methods focus on adapting quickly to changing realities. When the needs of a project change, an adaptive team changes as well An adaptive team can report exactly what tasks are being done next week, but only which features are planned for next month The plan is more vague

Other Methods They are plan-driven" or "disciplined" methodologies Other methods exist on the "Predictive" side of this continuum Predictive methods, in contrast, focus on planning the future in detail. Predictive teams have difficulty changing direction A predictive team can report exactly what features and tasks are planned for the entire length of the development process. The plan is optimized

Fullinterview.com Page 11 of 14

Agile Testing
8. Criticism or Challenges in Agile Testing

Agile development is sometimes criticized as cowboy coding.


Lack of structure and necessary documentation Only works with senior-level developers Incorporates insufficient software design Requires too much cultural change to adopt Can lead to more difficult contractual negotiations Can be very inefficient -- if the requirements for one area of code change through various iterations, the same programming may need to be done several times over. Whereas if a plan was there to be followed, a single area of code is expected to be written once. Impossible to develop realistic estimates of work effort needed to provide a quote, because at the beginning of the project no one knows the entire scope/requirements Drastically increases the chances of scope creep due to the lack of detailed requirements documentation

Fullinterview.com Page 12 of 14

Agile Testing

9. Overcome the challenges in Agile

Effective Documentation Capture the essence, not the details Maintain test scenario sheets Maintain review comments sheet Understanding the business Active and Efficient Communication Regular Feedbacks Implement and increase the usage of defect management tool Effective and adaptive role should be played by an agile tester to cope up with the demands

Conclusion Testing early and testing often are the key factors of agile approach Test Early - The key to agile is iteration: developing, testing, and developing again. To get the most out of an agile process, need to test early. That means that testing not just after the first couple of sprints, but at the very beginning of the development cycle Test Often - A good agile process emphasizes frequent testing. It is looking for defects early in the testing cycle. The longer defects wait in the code, the harder and more expensive they will be to remove

Fullinterview.com Page 13 of 14

Agile Testing

Agile methodology gets in demand for communication, documentation, accountability and verifiably proven results. Agile development is a methodology explored on integrity and professionalism

References http://www.io.com/~wazmo/papers/agile_testing_20021015.pdf http://www.onestoptesting.com http://www.io.com/~wazmo/papers/agile_testing_challenges.pdf

Fullinterview.com Page 14 of 14

You might also like