Agile Acceptance Testing Closing the communication gap in software projects Gojko Adzic

Slides:



Advertisements
Similar presentations
(nothing to see here). First thing you need to learn is that sysadmin is about people, not technology If youre a sysadmin so you dont have to deal with.
Advertisements

Iteration Planning.
Test process essentials Riitta Viitamäki,
Acceptance Testing.
Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Conquering Data Conversion Projects. Who is that furry guy anyway? Austin Zellner = presenter 15+ years Information Technology Multiple large data migration.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
A little Software Engineering: Agile Software Development C Sc 335 Rick Mercer.
Evaluating Requirements. Outline Brief Review Stakeholder Review Requirements Analysis Summary Activity 1.
Alternate Software Development Methodologies
 What is FitNesse / Slim? (10’)  Setting up FitNesse – demo (10’)  Introduction to Snacks-R-Us (10’)  Iteration 1 (35’)  Iteration 2 (35’)  Integration.
IS 214 Needs Assessment and Evaluation of Information Systems Managing Usability © Copyright 2001 Kevin McBride.
Review: Agile Software Testing in Large-Scale Project Talha Majeed COMP 587 Spring 2011.
Computer Engineering 203 R Smith Requirements Management 6/ Requirements IEEE Standard Glossary A condition or capability needed by a user to solve.
SE 555 Software Requirements & Specification Requirements Validation.
CSC 395 – Software Engineering Lecture 9: Testing -or- How I Stopped Worrying and Learned to Love the Bug.
Agile Development from a Product Management Perspective Scott Cressman Technical Product Manager, Sophos.
» Teaching an online class, what takes up most of your time?
 What is Software Testing  Terminologies used in Software testing  Types of Testing  What is Manual Testing  Types of Manual Testing  Process that.
OHT 4.1 Galin, SQA from theory to implementation © Pearson Education Limited 2004 Software Quality assurance (SQA) SWE 333 Dr Khalid Alnafjan
 Communicating with friends is now easier than ever, for example on Facebook you can connect with all your friends and chat to them very easily and instantly.
Effectively applying ISO9001:2000 clauses 5 and 8
S/W Project Management
FINAL DEMO Apollo Crew, group 3 T SW Development Project.
Agile Acceptance Testing Software development by example Gojko Adzic
CompSci 230 Software Design and Construction
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Managing A Self- Advocacy Organization Part 1. Intro  Hello!  Julia Bascom  Director of Programs for ASAN.
Scrum’s Product Owner Role Jeff Patton Agile Product Design
Agile Adoption GMAS Product / Practice Teams PMO Meeting – May 2014.
Agile and XP Development Dan Fleck 2008 Dan Fleck 2008.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 6 Slide 1 Requirements Engineering Processes l Processes used to discover, analyse and.
Testing Challenges in an Agile Environment Biraj Nakarja Sogeti UK 28 th October 2009.
Writing Quality Requirements Karl E. Wiegers Presented by: Ricardo Carlos.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
More on “The Huddersfield Method” A lightweight, pattern-driven method based on SSM, Domain Driven Design and Naked Objects.
VCU Information Systems Institute Advanced Delivery Methodology Courtesy of Data Management That Works.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
R Requirements Analysis Part I Copyright © 2001 Patrick McDermott University of California Berkeley Extension The most critical phase.
Michel Grootjans Pascal Mestdach.  Michel Grootjans ◦ Enterprise Architect ◦
Michel Grootjans Pascal Mestdach.  Michel Grootjans ◦ Enterprise Architect ◦
Moving Around in Scratch The Basics… -You do want to have Scratch open as you will be creating a program. -Follow the instructions and if you have questions.
CS 350, slide set 5 M. Overstreet Old Dominion University Spring 2005.
Software Construction Lecture 18 Software Testing.
Requirements Validation CSCI 5801: Software Engineering.
Requirements Engineering Southern Methodist University CSE 7316 – Chapter 3.
TM Copyright © 2009 NMQA Ltd. Behaviour Driven Testing with.
The Software Development Process
Software Engineering Project.  Why User involvement?  Requirements Gathering statistics.  Ways of Gathering user requirements.  One-on-One Interviews.
ATDD, BDD, Story Testing, & Specification By Example
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Requirements Engineering Processes. Syllabus l Definition of Requirement engineering process (REP) l Phases of Requirements Engineering Process: Requirements.
Evaluating Requirements
Get the New Agile Attitude: Quality First! Object Mentor, Inc. Copyright  by Object Mentor, Inc All Rights Reserved
Michel Grootjans Pascal Mestdach.  Michel Grootjans ◦ Enterprise Architect ◦
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
T Iteration Demo MapGuide based Web Edit Interface I2 Iteration
Copyright 2015, Robert W. Hasker. Classic Model Gathering Requirements Specification Scenarios Sequences Design Architecture Class, state models Implementation.
Successful Software Practice How to successfully work as a team to create software Chris Mendes, Chief Technology Officer Sirca Limited March 2012.
User Stories- 2 Advanced Software Engineering Dr Nuha El-Khalili.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
System Development Life Cycle (SDLC). Activities Common to Software Projects Planning : Principles Principle #1. Understand the scope of the project.
Testing under the Agile Method CSCI 521 Software Project Management based on the book Testing Extreme Programming by Lisa Crispin and Tip House.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Coming up: What is Agile? XP Development Dan Fleck 2010 Dan Fleck 2010.
Gojko Adzic Agile Acceptance Testing Closing the communication gap in software projects Gojko.
Lecture # 3 Software Development Project Management
Development Lifecycle
Coming up: What is Agile?
Test Cases, Test Suites and Test Case management systems
Presentation transcript:

Agile Acceptance Testing Closing the communication gap in software projects Gojko Adzic

Why should you care (PM/BA)? Developers will actually read the specifications They will understood the stuff correctly They will not skip parts of the specs You can track the development progress Save time on acceptance/smoke testing

Why should you care (dev)? Requirements will be unambiguous and without functional gaps Business analysts will really understand those special cases you mentioned You will have automated tests to guide development It will be easier to take-over and hand-over code

Why should you care (QA)‏ Finally stop those guys from making the same mistakes over and over Avoid doing the same stuff all the time Build quality in from the start Vefify business rules by a click on a button

An experiment with four active battalions in US Army Commander expectations matched actions in only 34% of the cases L.G.Shattuck,

Traditional process is like the Telephone game!

How many points are there?

A “small” misunderstanding can cost lots of money!

Pay ₤2 for a 1000 clicks what about 2500 clicks? what about 500 clicks? what about 999 clicks? what about 1000 clicks over 2 days?

One of the most effective ways of testing requirements is with test cases very much like those for testing the completed system Donald Gause and Gerald Weinberg Exploring Requirements !

As formality increases, tests and requirements become indistinguishable. Robert C. Martin and Grigori Melnik Tests and Requirements, Requirements and Tests: a Mobius Strip IEEE Software January/February Issue 2008

Key practices Discuss real-world examples to build a shared understanding of the domain Use those examples as an acceptance criteria Automate acceptance tests Focus the development on those tests Use the tests as a live specification to facilitate change

It is not UAT! It is not even “testing” in the QA sense. Customers, developers, business analysts involved as well as QA.

Better names “Acceptance testing” is misleading! Behaviours Executable specifications Examples

Although it is called “testing”, it is not really about QA It is about improving the communication and providing guidance for development

Jim Shore: “Describe- Demonstrate- Develop” A very useful way to think about acceptance tests in practice

Step 1: Building a shared understanding of the domain

The Example-Writing workshop Business people, developers and QA in the same room Transfer the knowledge Ensure that we all understand the same thing

How do we verify that this thing we are going to write is implemented completely and correctly? Can you give us a few examples?

Pretend it is magic… …and we deliver this software. How would you test it?

Inconsistencies and gaps are easy to spot when you write the rules down!

Real-world examples help flush out incorrect assumed rules find real business rules!

People have think at a more detailed level and can't brush questions off…

People approach the same problem from different perspectives, so this avoids groupthink!

Step 2: Select a formal set of acceptance tests and automate them

The Toyota Way 1.Check at the source 2.Inexpensive Verifications 3.Test to prevent defects, not to discover them

Save time on manually (acceptance/smoke) testing Verify business rules with the click of a button

Automate tests, but still keep them human-readable And you can add pictures as well….

This is a specification:

It is also a test

This as well

And this

Given a stock of prices 0.5,1.0 When the stock is traded at 2.0 Then the alert status should be OFF When the stock is traded at 5.0 Then the alert status should be OFF When the stock is traded at 11.0 Then the alert status should be OFF

The only technical slide...

Step 3: Providing focus for development No just-in-case code

Developers will have to code exactly what was specified … not just the rules they see

Automated test reports show where we are… When all the tests are green, the job is done

Tests promote a consistent use of the DDD ubiquitous language!

Iteration flow (just a suggestion)‏

Step 4: Keeping in touch with changes

Previous examples help you ensure to discuss all important edge cases.

Automated tests show straight away when something is obsolete or broken

[tests became a] “significant and valuable business resource” Rick Mugridge, Doubling the Value of Automated Tests, Google Tech Talks 09/2006

Common Excuses for not using Agile Acceptance Testing

“It’s extra work and I don’t have time” Save time by not writing those big requirements docs that nobody reads…

“But they will only look at the tests and not read the requirements…” Tests ARE Specifications

“What if I leave something out? If they are using tests as the scope, and we do not specify some tests, what happens then?“

“That’s cheating! We give the developers exactly what we are going to test, and they develop the software only to pass those tests…”

“I won’t understand user stories and tests, I’m used to use cases” Story tests still contain triggers, steps, exceptions…

“It’s impossible to describe UI layouts as FIT tests” So use something else – share the knowledge when you discuss tests

“Rules are too scattered, there is no big picture” Communicate intent when writing stories, clean up tests to isolate rules, add some general docs…

“We don't want to give way control over testing” If anything, you are getting more people to participate in testing...

Recap (PM/BA)‏ Developers will have to read the specifications to implement tests Discussion makes sure that everyone understood the stuff correctly To make all the tests green, they cannot skip parts of the specs You can track the development progress Save time on acceptance testing with automated verifications

Recap (dev)‏ Discuss and suggest examples until the gaps and inconsistencies are flushed out Make sure that business analysts understood special cases by suggesting them as examples and discussing them Acceptance tests are a live specification/documentation for the code

Recap (QA)‏ Suggest examples and discuss them to cover mistakes that people make over and over Automated tests help you avoid doing the same stuff all the time Build quality in from the start by suggesting tests that prevent problems Verify business rules by a click on a button

Questions?