Testing in Agile Projects: Where Things Stand Today Brian Marick Copyright © 02004 by Brian Marick. Permission granted to reproduce.

Slides:



Advertisements
Similar presentations
More and Better Test Ideas Rikard Edgren TIBCO Spotfire EuroSTAR share one-liner test ideas.
Advertisements

Acceptance Testing.
Agile Testing and/or Agility in Testing? Juha Itkonen SoberIT Teknillinen Korkeakoulu Test Summit, , Savonlinna.
Interoperability. What is testing? Where have we come from? Where are we now? Why is nFocus at MSAIC? Overview.
Diane Pozefsky. Extreme Programming Flowchart
Agile Development and Data With Scrum and TDD Andy Leonard VSTeamSystemCentral.com With thanks to Brian Knight, SQL Server MVP SQLServerCentral.com.
Scrum (software development)
Non-Coding Activities a Development Team Needs a.k.a ”I don’t code, am I no longer useful?” Maaret Pyhäjärvi| | Twitter: maaretp Test Granlund.
Agile development By Sam Chamberlain. First a bit of history..
© ThoughtWorks, 2008 Improving Productivity and Quality With Agile Patrick Kua.
1 March Extreme programming. Presentations Tuesday Campus Tour Sami Says Hawks Thursday Read2Me UNCSET Oral Lab NetVis If helpful, invite your client.
Agile Methods and Extreme Programming CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 23, 2007.
Team System and Microsoft Solutions Framework Team collaboration tools Process authoring Process Guidance MSF-Agile & MSF-CMMI Software Factories Future.
My experience with managing chaos in a large project By Daniil Kigelman.
Agile Software Development
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Coming up: The Manifesto for Agile Software Development 1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development Software Engineering:
Agile Principles Suradet Jitprapaikulsarn 1. What is Agility? Effective (rapid and adaptive) response to change Effective communication among all stakeholders.
The Agile Alliance By Mark Rucker. The Agile Alliance What is the Agile Alliance? History of the Agile Alliance What is the Agile Alliance today? The.
An Agile View of Process
Living Requirements using Behavior Driven Development
1 Testing – Part 2 Agile Testing In which we talk about nothing, because having unit tests solves all problems forever. Really. It’s not a subtitle balance.
QWise software engineering – refactored! Testing, testing A first-look at the new testing capabilities in Visual Studio 2010 Mathias Olausson.
Software Engineering Modern Approaches
Agile Web Development C. Daniel Chase University of Colorado at Boulder.
Developed by Reneta Barneva, SUNY Fredonia Agile Development.
Chapter 4 Agile Development 1. The Manifesto for Agile Software Development 2 “We are uncovering better ways of developing software by doing it and helping.
"The thinking it took to get us into this mess is not the same thinking that is going to get us out of it."
IMPROVING SOFTWARE QUALITY FOR THE MODERN WEB EUAN GARDEN MICROSOFT
Describing Methodologies PART II Rapid Application Development* Systems Analysis and Design II.
Embracing change with Extreme Programming Method Engineering Erik ten Brinke
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Coming up: The Manifesto for Agile Software Development 1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development Software Engineering:
A Practical Guide To Unit Testing John E. Boal TestDrivenDeveloper.com.
1 The Manifesto for Agile Software Development “We are uncovering better ways of developing software by doing it and helping others do it. Through this.
TM Copyright © 2009 NMQA Ltd. Behaviour Driven Testing with.
Copyright © 2015 Curt Hill Software Development Paradigms What do you need to know?
AP-1 4. Agile Processes. AP-2 Agile Processes Focus on creating a working system Different attitude on measuring progress XP Scrum.
Chapter 3 Agile Development
January 24, 2009 Agile Product Management Making Things Happen Walter Bodwell Planigle.
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Assignment 1 due tomorrow, 7pm. RAD due next Friday in your Wiki. Presentations week 6. Tomorrow’s lecture.
AGILE XP AND SCRUM © University of LiverpoolCOMP 319slide 1.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Why Johnny Can’t Test and Can Test-Driven Development Help: A People-Centered Analysis of Testing Orit Hazzan [Based on an invited talk at IBM, ]
MAY 19 th 2016 Jovan Poljački
Extreme programming (XP) Advanced Software Engineering Dr Nuha El-Khalili.
By: Isuru Abeysekera AGILE DEVELOPMENT. WHAT IS AGILE DEVELOPMENT? Broad term used to describe several methods for a development process Introduced in.
Industrial Software Development Process Bashar Ahmad RISC Software GmbH.
Team Contracts We can work together! Copyright © Texas Education Agency, All rights reserved. 1.
Agile Gintarė Bernotaitytė © 2013.
Introduction to Software Engineering
Embedded Systems Software Engineering
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Forget about Agile for a second!
Manifesto for Agile Software Development
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Software Engineering: A Practitioner’s Approach, 7/e Chapter 3 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Agile MDA Stephen J. Mellor
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
The Current Conversation in Agile Software Development Aug-2002
Chapter 5 Agile Development
Introduction to Software Engineering
Agile Software Development Paradigms
Teaching slides Chapter 1.
Agile Development Agile Development Damian Gordon Damian Gordon.
Testing in Agile Projects: Where Things Stand Today
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
Chapter 3: Agile Software Processes
Software Engineering: A Practitioner’s Approach, 6/e Chapter 4 Agile Development copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc. For University.
The Manifesto for Agile Software Development
Presentation transcript:

Testing in Agile Projects: Where Things Stand Today Brian Marick Copyright © by Brian Marick. Permission granted to reproduce verbatim. Some images copyright

What Are Agile Projects? An attitude toward change An attitude toward software Some attitudes toward people The Manifesto for Agile Software Development,

Changing Requirements Are Swell Oh! Let’s add this! Sure! Now that I see my feature, I don’t like it. How should we change it?

Software Can Be Soft Programs can become better, cleaner, and more capable They become changeable by being successfully changed –not mainly by planning for change Frequent new requirements “train” the code and the coders “Agile methods, the Emersonian worldview, and the dance of agency”

People Written documentation is a poor substitute for continuous conversation Generalists trump specialists Teams can self-organize Trust –“… if you ask for help, someone has to help you” - Lisa Crispin

Agile Methodologies Extreme Programming Scrum DSDM Evolutionary delivery and staged delivery share many characteristics See “Reading” slides at the end

The Import Kaner, Bach, and Pettichord, Lessons Learned in Software Testing These attitudes toward change, software, and people are the context for testing in Agile projects

Four Types of Testing Geoffrey Moore, Crossing the Chasm, p. 19

Programmer Testing I need an object that records each time segment Test-driven design Unit testing

Programmer Testing The test comes first

Programmer Testing Code is written to pass the test

Programmer Testing Not done? Write another test…

Programmer Testing And the code to pass it. All earlier tests continue to pass

Programmer Testing Code awkward? Fix it now. Tests continue to pass (Refactoring) Martin Fowler, Refactoring

Programmer Testing Eventually, the jelly is cooked, nailed down, and ready for further change

Status

Why was this decision made? I need an object that records each time segment

Because of a Customer Representative …I want to scribble notes about what I’m doing…

FIT Tests Makes sense to the customer representative Reminder, not requirement Easy to run fit.c2.com

Test Results Browser- Friendly Tests First

Tests Make Change Smooth small change Has anything broken?

Tests Inform Programmers There are no explicit requirements or specifications –so tests cannot check code against them Tests serve same goal as requirements or specifications –they provoke programmers to write the right program No way!

Requirements for Test Notation Provoking the right code Improving product conversation –tests are something to talk about –ground conversation in the concrete –forging a common vocabulary Making possibilities more noticeable –explaining to someone else supplements trying out working software –concreteness sparks ideas

The Tester As Participant How can we best be concrete? What “goes without saying”? What should the product not do? Who’s being overlooked? What bugs seem likely?

“Tester” As Job Title How can we best be concrete? What “goes without saying”? What should the product not do? Who’s being overlooked? What bugs seem likely?

Status acceptance tests, customer tests, whole-product tests, business-facing tests…

Mid-Course Observation Business Facing Technology Facing These tests primarily support programming (as well as the whole team’s understanding)

Is This Really Testing? Checked examples –for discussion –for confident implementation –where are the bugs? Change detectors –for confident implementation –where are the bugs?

What About When the Examples Are Bad Examples? (incomplete, misleading)

Extending the Model Examples that use business terminology Examples that use interior terminology Business Facing Technology Facing Support Programming

Extending the Model Examples that use business terminology Examples that use interior terminology ? ? Business Facing Technology Facing Support Programming Critique Product

Critiquing the Product What resource do we newly have? –the working product, including new code Exploratory testing –“simultaneous learning, test design, and test execution” - James Bach Doing what? –diverse users and their scenarios –imaginative end-to-end testing –some opportunistic feature testing

Exploratory Bug Finding

A Quadrant Entry Examples that use business terminology Examples that use interior terminology User-centered bug reports ? Business Facing Technology Facing Support Programming Critique Product

Status

Still Not Addressed What about security bugs, configuration bugs, performance problems, bugs revealed under load, usability problems (like suitability for color-blind people), etc. etc. etc.? –difficult to specify by example –whole-product, but not central to domain

These Are Technology Issues Understanding of implementation more important than understanding of a particular domain Examples that use business terminology Examples that use interior terminology User-centered bug reports ? Business Facing Technology Facing Support Programming Critique Product

The Good News

My Take on the State of the Practice Examples that use business terminology Examples that use interior terminology User-centered bug reports “ility” bug reports Business Facing Technology Facing Support Programming Critique Product

Summary: Testing in Agile Projects

Reading (1) Agile development in general – –Agile Software Development, Alistair Cockburn –“Agile methods, the Emersonian worldview, and the dance of agency”, Brian Marick, Extreme Programming –Extreme Programming Explained, Kent Beck – Scrum –Agile Software Development with Scrum, Schwaber and Beedle – DSDM –DSDM: Business Focused Development, DSDM Consortium –

Reading (2) Agile from a tester’s point of view – –Testing eXtreme Programming, Lisa Crispin and Tip House – Programmer testing –Test-Driven Design by Example, Kent Beck –Test-Driven Development: A Practical Guide, Dave Astels –Pragmatic Unit Testing, Hunt and Thomas

Reading (3) Exploratory testing – – Context-driven testing –Lessons Learned in Software Testing, Kaner, Bach, and Pettichord – Miscellaneous –FIT: fit.c2.com (see also fitnesse.org) –Crossing the Chasm, Geoffrey Moore –Refactoring, Martin Fowler (et. al.)