Agile Testing What is it? Can it work?



Similar documents
Agile Testing and Extreme Programming

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

History of Agile Methods

Introduction to Agile

Agile and Secure: Can We Be Both?

Schools of Software Testing

Introduction to Agile Software Development Process. Software Development Life Cycles

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Introduction to Agile Software Development. EECS 690 Agile Software Development

Agile Software Development

Agile Development Overview

Software Development Methodologies

Software processes that are:

Workshop on Agile Test Strategies and Experiences. Fran O'Hara, Insight Test Services, Ireland

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

Testing in an Agile Environment

XP and Design. Paulo Caroli & Sudhindra Rao. ThoughtWorks

Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem

Agile processes. Extreme Programming, an agile software development process

Extreme Programming, an agile software development process

AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson Jyväskylä

Deep Agile Blending Scrum and Extreme Programming. Jeff Sutherland Ron Jeffries

Introduction to extreme Programming (XP)

Testing in Agile methodologies easier or more difficult?

How To Plan A Project

Agile and Secure Can We Be Both? Chicago OWASP. June 20 th, 2007

Agile Software Development Methodologies and Its Quality Assurance

Contents. 3 Agile Modelling Introduction Modelling Misconceptions 31

Agile Testing. Workshop. Tilo Linz, imbus AG

AGILE SOFTWARE DEVELOPMENT. BY Sysop Technology Aurangabad

Lean and Agile in Safety-critical Software Development Research and Practice. Henrik Jonsson

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

SCEA 2010 EST06. Estimating Issues Associated with Agile. Bob Hunt. Galorath Incorporated

The Agile approach Extreme Programming (XP) Implementing XP into a software project Introducing HCI design into agile software development Summary

Extreme Programming, an agile software development process

Génie Logiciel Avancé Cours 6 Extreme Programming

Agile Development and Testing Practices highlighted by the case studies as being particularly valuable from a software quality perspective

Agile Development with C#

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

Methodology: Agile development of safety critical systems Annex D1.1.d to deliverable D1.1

EXIN Agile Scrum Foundation

Introduction to Agile Software Development

Learning and Coaching Agile Methods. Görel Hedin Computer Science Lund University, Sweden

Distributed Agile Development. Bapiraju Nandury Product Development Manager Bangalore Development Centre

EPL603 Topics in Software Engineering

MANAGEMENT S ROLE 1/16/ Copyright 2001, Net Objectives

How to manage agile development? Rose Pruyne Jack Reed

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Java course - IAG0040. Unit testing & Agile Software Development

Comparing Agile Software Processes Based on the Software Development Project Requirements

Agile Methodologies XP and Scrum

XP and TDD. Extreme Programming and Test Driven Development. Bertrand Meyer, Manuel Oriol Andreas Leitner. Chair of Software Engineering ETH Zurich

Agile Scrum Workshop

Agile Software Development in the Large

How To Model In An Agile World

Agile Tester Foundation Course Outline

Laboratório de Desenvolvimento de Software

Preface Agile Testing Review

Development Techniques. CSE301 University of Sunderland Harry R. Erwin, PhD

Software Engineering I (02161)

Agile Project Management

Iteration Planning. also called Iteration Kickoff

SAFETY & RESILIENCE ISSUES IN AUTOMOTIVE SOFTWARE DEVELOPMENT PANEL

Advanced Test-Driven Development

AGILE PRACTICES: A COGNITIVE LEARNING PERSPECTIVE

Agile Testing. What Students Learn

Software Development Life Cycle Models - Process Models. Week 2, Session 1

Design of Acceptance Test Process through Comparative Analysis of the Test Automation Technique

Agile with XP and Scrum

CSE 4415 / SWE 5415 Software Testing 2 Fall 2004 Olin Engineering Building, Room 128 Credits: 3.00

Akhil Kumar 1, Bindu Goel 2

Requirement Gathering for small Projects using Agile Methods

Development Methodologies. Types of Methodologies. Example Methodologies. Dr. James A. Bednar. Dr. David Robertson

Agile software development and its' suitability to distributed project

Agile Practitioner: PMI-ACP and ScrumMaster Aligned

How can I be agile and still satisfy the auditors?

CSE 435 Software Engineering. Sept 16, 2015

AGILE SOFTWARE DEVELOPMENT

AGILE SOFTWARE DEVELOPMENT A TECHNIQUE

Agile In a Nutshell. Note - all images removed to fit 2MB limit Actual presentation has much more content. Jonathan Rasmusson

Outline. Agile Methods. Converse of Conway s Law. The Silver Bullet Fantasy (Brooks, 1986)

Software Development Life Cycle (SDLC)

CMMI - The AGILE Way By Hitesh Sanghavi

JUnit. Introduction to Unit Testing in Java

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

Making Architectural Design Phase Obsolete TDD as a Design Method

A Review of Agile Software Development Methodologies

AGILE BUSINESS SERVICES. Guiding and supporting your business. at any stage of your agile journey

The Agile Manifesto is based on 12 principles:

Scrum a tester s perspective

An Introduction to Extreme Programming

Waterfall to Agile. DFI Case Study By Nick Van, PMP

Agile Planet. A Travel Guide to the Agile Universe Fabian Schiller. This book is for sale at

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

ITSM Agile Intro Feb 5, 2015

What Does Large Mean? Copyright 2003 by N. Josuttis and J. Eckstein 3. Why is Large an Issue?

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Introduction to Software Engineering: Overview and Methodologies

Transcription:

Agile Testing What is it? Can it work? bret@pettichord.com www.pettichord.com November 2002 Copyright 2002 Bret Pettichord. All rights reserved.

The Agile Alliance Values We have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more." www.agilemanifesto.org

What is Agile Testing? 1. Testing practice that follows the agile manifesto, treating development as the customer of testing! In this light the context-driven manifesto provides a set of principles for agile testing. 2. Testing practice for projects using agile methodologies.! What is the role of the tester on an agile project?

Context-Driven Principles 1. The value of any practice depends on its context. 2. There are good practices in context, but there are no best practices. 3. People, working together, are the most important part of any project s context. 4. Projects unfold over time in ways that are often not predictable. 5. The product is a solution. If the problem isn t solved, the product doesn t work. 6. Good software testing is a challenging intellectual process. 7. 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. www.context-driven-testing.com

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

XP Practices Test-First Programming Pair Programming Short Iterations & Releases Refactoring User Stories" Acceptance Testing

The Role of Testing Testing is the headlights of the project! Where are you now? Where do you headed? Testing provides information to the team! This allows the team to make informed decisions A bug is anything that could bug a user! Testers don t make the final call Testing does not assure quality! The team does (or doesn t) Testing is not a game of gotcha! Find ways to set goals, rather than focus on mistakes

Test-First Programming Developers write unit tests before coding.! Motivates coding! Improves design (reducing coupling and improving cohesion)! Supports refactoring Many open-source test tools have been developed to support this! xunit

Refactoring: Improving the Design of Existing Code Changing a software system in such a way that it does not alter the external behavior of the code yet improves its internal structure Make the simplest design that will work. Add complexity only when needed. Refactor as necessary. Refactoring requires unit tests to ensure that design changes (refactorings) don t break existing code.

Acceptance Testing User stories are short descriptions of features that need to be coded. Acceptance tests verify the completion of user stories. Ideally they are written before coding.

Should Testers Go Along with This? Some say XP is an invitation to poor quality and an excuse for hacking. I think XP is exciting and will improve the practice of testing in the industry.! XP developers are writing unit tests and unit testing tools " Kent Beck s new book is Test-Driven Development by Example! XP projects are finding new ways to build in testability and support automated tests. " Ward Cunningham is building a framework for acceptance testing: fit.c2.com Testers Should Embrace Agile Programming http://www.io.com/~wazmo/papers/embrace_agile_programming.html

Concerns for Testers Acceptance testing has not been well adhered to by XP teams Only verifying stories focuses on success rather than risk Clumsy story definition impacts testing more than development Need to iterate testing too

A Practice for Agile Testing Conversational Test Creation Coaching Tests Providing Test Interfaces Exploratory Learning

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

Coaching Tests 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

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

Test Interaction Model Human Testers Manual Testing Test Descriptions Software Product Test Interface Automation Fixtures

Exploratory Learning Plan to explore the product with each iteration. Look for bugs, missing features and opportunities for improvement. We don t understand software until we have used it.

Further Study Lessons Learned in Software Testing! www.testinglessons.com Ward Cunningham s acceptance testing framework! fit.c2.com Agile Testing Papers! www.testing.com/agile! www.pettichord.com

Test Automation Training Attend my workshop on test automation architecture! Jan 28-29, 2003! Bellevue, WA! Reality-Test.com