Agile Testing and Extreme Programming



Similar documents
Schools of Software Testing

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

History of Agile Methods

Introduction to Agile Software Development. EECS 690 Agile Software Development

Agile and Secure: Can We Be Both?

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT

Introduction to extreme Programming (XP)

Agile Software Development

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

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

Introduction to Agile Software Development Process. Software Development Life Cycles

Agile Development Overview

Introduction to Agile

An Introduction to Extreme Programming

Testing in Agile methodologies easier or more difficult?

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

Agile QA s Revolutionary Impact on Project Management

Software Development Methodologies

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

Quality Assurance and Testing in Agile Projects. QA and Testing in Agile Projects

Comparing Agile Software Processes Based on the Software Development Project Requirements

Agile processes. Extreme Programming, an agile software development process

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

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

Software Development with Agile Methods

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

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

Extreme Programming, an agile software development process

AGILE SOFTWARE DEVELOPMENT. BY Sysop Technology Aurangabad

Agile with XP and Scrum

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

SAFETY & RESILIENCE ISSUES IN AUTOMOTIVE SOFTWARE DEVELOPMENT PANEL

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

Agile Software Development Methodologies and Its Quality Assurance

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

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

Quality Assurance on Agile Processes

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

Four Schools of Software Testing.

JUnit. Introduction to Unit Testing in Java

XP and Design. Paulo Caroli & Sudhindra Rao. ThoughtWorks

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

Vragen. Software development model. Software development model. Software development model

Test Driven Development with Continuous Integration: A Literature Review

Testing in an Agile Environment

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

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

Agile Project Management

Introduction. Motivational Principles. An Introduction to extreme Programming. Jonathan I. Maletic, Ph.D.

Software processes that are:

Iteration Planning. also called Iteration Kickoff

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

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

Génie Logiciel Avancé Cours 6 Extreme Programming

How To Model In An Agile World

Java course - IAG0040. Unit testing & Agile Software Development

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

Preface Agile Testing Review

Introduction to Agile Software Development

Agile in Financial Services A Framework in Focus

Agile Testing Overview

Extreme Programming, an agile software development process

Adopting Agile Testing

Test-Driven Development

An Overview of Quality Assurance Practices in Agile Methodologies

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

Agile So)ware Development

Agile Software Development in the Large

How To Plan A Project

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

D25-2. Agile and Scrum Introduction

Test Driven Development Part III: Continuous Integration Venkat Subramaniam

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

EPL603 Topics in Software Engineering

Agile Development with C#

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

TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes

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

Introduction and Agenda

INF5120 Modellbasert Systemutvikling

Laboratório de Desenvolvimento de Software

PMP vs. Scrum Master

Agile software development and its' suitability to distributed project

Scrum and Agile methods The real world

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

Creating a High Maturity Agile Implementation

A Review of Agile Software Development Methodologies

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

Software Engineering Process Economy & Quality

SPECIFICATION BY EXAMPLE. Gojko Adzic. How successful teams deliver the right software. MANNING Shelter Island

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

Akhil Kumar 1, Bindu Goel 2

Issues in Internet Design and Development

Agile Software Development Approaches and Their History. Volkan Günal

Agile Development with Agile Business Suite

Scrum for Managers, Zurich March 2010

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

Extreme Programming: Strengths and Weaknesses

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

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

Transcription:

Agile Testing and Extreme Programming bret@pettichord.com www.pettichord.com March 2003 Copyright 2003 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

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

Context-driven testing is an agile approach to testing regardless of whether development is agile. www.context-driven-testing.com Context-Driven Testing Principles 1. The value of a practice depends on context. 2. Practices may be good 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 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.

The Role of Testing Testing is the headlights of the project! Where are you now? Where are 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

Extreme Programming Practices Test-Driven Development Pair Programming Short Iterations & Releases Refactoring User Stories" Acceptance Testing Team Code Ownership

Test-Driven Development 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! Quickly make a test pass! Bad design (duplication, etc) is OK! Refactor to improve the design. Run tests to ensure that refactoring didn t break anything.

Acceptance Tests User stories are short descriptions of features that need to be coded. Acceptance tests verify the completion of user stories. Also need to be written before coding!

Should Testers Go Along with This? Some say XP is an excuse for hacking and an invitation to poor quality. I think XP is exciting and will improve the practice of testing in the industry.! Unit testing is now very popular.! Open source frameworks for acceptance testing are having a major impact.

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

How Testers Can Prove Their Value Demonstrate a helpful perspective in defining software expectations. Provide information. Don t act like a gatekeeper. Adapt to changing project goals. Work with what you have, ask for what you need to know, document what you can.

4 Practices for Agile Testing Conversational Test Creation Coaching Tests Providing Test Interfaces Exploratory Learning Jointly developed with Brian Marick

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. Testers facilitate the conversation.

Coaching Tests Use acceptance tests to drive development Tests provide:! Goals and guidance! Instant feedback! Progress measurement Tests are specified in a format:! Clear so any one can understand! Specific so it can be executed Testers help analyze the business

Coaching Tests Specification By Example Defining requirements is difficult! Often ambiguous! Often harder to specify requirements than design! Easy to become out of date Defining them by example is incremental, and easier! Concrete! Run them to see if they are current Examples! Ground concepts! Define expectations! Demonstrate progress & conformance

FIT tests Scrape tests from HTML docs Keep requirements & tests together Check automatically Browse results online Understandable by everyone

Providing Test Interfaces Programmers provide fixtures that automate coaching tests 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.

Lessons for All Test automation is easiest with close collaboration between testers and programmers. Agile testers are valuable to any project.

Further Study Lessons Learned in Software Testing! www.testinglessons.com Agile Testing Papers! www.testing.com/agile! Testers Should Embrace Agile Programming, www.io.com/~wazmo/papers/embrace_agile_programming.html! Where are the Testers in XP? www.stickyminds.com/s.asp?f=s6217_col_2 Test-Driven Development! Test-Driven Development: by Example, Kent Beck! Refactoring, Martin Fowler! Test Infected, Beck and Gamma! Learning to Love Unit Testing, Thomas and Hunt Fit! fit.c2.com