+ All Categories
Home > Documents > Atd agile automation

Atd agile automation

Date post: 24-Apr-2015
Category:
Upload: lisacrispin
View: 1,052 times
Download: 6 times
Share this document with a friend
Description:
 
85

Click here to load reader

Transcript
Page 1: Atd agile automation

1

Making Test Automation Work in

Agile Projects

Agile Testing Days 2012

Lisa Crispin With Material from Janet Gregory

Page 2: Atd agile automation

2

Introductions: Experience, Goals § Form groups:

§ New to automation § One to two years experience w/ automation § More than two years experience

§ Talk with at least two other people § Tell each other your learning goals for today § Note the most interesting one you hear

Page 3: Atd agile automation

Copyright 2012: Lisa Crispin 3

About me… Programmer, tester, agile team member

Ever-evolving views on automation

Page 4: Atd agile automation

Copyright 2012: Lisa Crispin 4

Introduction - You

Page 5: Atd agile automation

Copyright 2012: Lisa Crispin 5

Takeaways

Successful test automation is an innovation! •  Let go of traditional roles, reach across them •  Visualize how tests should look •  Be smart about when to automate •  Experiment to overcome obstacles •  Find/build the right tools We won’t do any hands-on automation, but will demo

some examples

Page 6: Atd agile automation

6

Exercise: Your Learning Goals

§ Write one interesting learning goal you heard from another participant at the start of the class on a sticky note.

§ Write your number one learning goal for today on a sticky note.

§ Put the sticky notes on your table group “learning goals” sheet

§ Group similar ones together

Page 7: Atd agile automation

Copyright 2012: Lisa Crispin 7

Let’s start by defining “agile”

Agile teams: q  Deliver business value

frequently q  at a sustainable pace q  while adapting to the changing

needs of the business Source: Elisabeth Hendrickson

Page 8: Atd agile automation

Copyright 2012: Lisa Crispin 8

The key is “sustainable pace”

Technical debt slows us down

Page 9: Atd agile automation

The Death Spiral

Page 10: Atd agile automation

Copyright 2012: Lisa Crispin

High technical debt + insufficient automation = even less time

Page 11: Atd agile automation

Copyright 2012: Lisa Crispin 11

Barriers to Test Automation What’s holding you back?

Page 12: Atd agile automation

Copyright 2012: Lisa Crispin 12

Exercise: Your barriers Individually and silently – write one barrier

hindering your team per sticky note Put these on the “impediments” wall chart

for your table group Work with your group to identify patterns,

group similar items

Page 13: Atd agile automation

Copyright 2012: Lisa Crispin 13

Questions?

Page 14: Atd agile automation

Copyright 2012: Lisa Crispin 14

The Whole-Team Approach §  Automated tests are code §  Respecting the tests §  Collaborating §  Commitment to quality §  Return on investment

Page 15: Atd agile automation

Copyright 2012: Lisa Crispin 15

Automated tests are code public class CalculatorFixture extends

ColumnFixture { public String startDate; public String endDate; public double startBalance; public double endBalance; public String irrTarget; private Calculator calculator = new

Calculator(); private Double irr;

Page 16: Atd agile automation

Source: Gojko Adzic, StarEast 2011 keynote

Page 17: Atd agile automation

Source: Gojko Adzic, StarEast 2011 keynote

Page 18: Atd agile automation

Copyright 2012: Lisa Crispin 18

Testers are especially good at… § Eliciting examples § Turning them into tests § Ensuring the right testing gets done § Exploratory testing

Page 19: Atd agile automation

19

Give testers time to do what we do best

How?

Page 20: Atd agile automation

20 The Whole-Team Approach

Page 21: Atd agile automation

Copyright 2012: Lisa Crispin 21

Experiment: Iteration 1 §  Pair up: one will be tester, one programmer §  Sit back to back so you face away from each other §  Tester: You have a drawing which you need to

instruct your developer to draw §  Programmer: Remain silent while working, only do

what you’re instructed. §  No talking! §  No peeking!

When “done”: §  Programmer – pass your drawing to the tester §  Tester – note problems on separate card/paperWill

the customer be happy?

Page 22: Atd agile automation

Copyright 2012: Lisa Crispin 22

Experiment: Iteration 2 §  Now, turn to face each other. §  Tester:

§  Still don’t show your picture! §  Tell the programmer what to draw, but - §  Watch what the programmer draws, and point

out any mistakes immediately §  Programmer:

§  Still no peeking! §  Ask questions, ask for feedback, make

corrections immediately

Thanks to the members of the agile-games group and Kane Mar for ideas & pictures for this game

Page 23: Atd agile automation

Copyright 2012: Lisa Crispin 23

Ways to collaborate

Pair: Tester-Coder Tester-Tester Any role – any role

Page 24: Atd agile automation

Copyright 2012: Lisa Crispin 24

Team responsibility

Automate all regression tests

Page 25: Atd agile automation

Copyright 2012: Lisa Crispin 25

Page 26: Atd agile automation

Copyright 2012: Lisa Crispin 26

Commitment to quality What’s your team’s commitment? The best possible software product?

Page 27: Atd agile automation

Copyright 2012: Lisa Crispin 27

Learn

Experiment

Meaningful Commitment

Page 28: Atd agile automation

Copyright 2012: Lisa Crispin

Under-commit

Plan less work than you think you can do Including all test automation

Page 29: Atd agile automation

Copyright 2012: Lisa Crispin 29

Learn to write maintainable tests §  Get over the “hump of pain”

From Gerard Meszaros’ XUnit Test Patterns

Page 30: Atd agile automation

Whole-team software development

30

Create a user story

Write Customer (Q2) Tests

Start thinking how to code

Expand tests – Story Tests

Automate Q2 Tests

Exploratory testing

TDD

Customer User Acceptance

Product owner Product owner/ Tester Tester Tester/Programmer Programmer

Pair, “Show Me”

Page 31: Atd agile automation

Copyright 2012: Lisa Crispin

Exercise

• Think of an experiment to get your whole team engaged in automating tests • Share with your table group • Pick two to share with the class

Page 32: Atd agile automation

Copyright 2012: Lisa Crispin 32

Getting Over the Hump §  The test automation pyramid §  The agile testing quadrants §  What should be automated §  What shouldn't §  Difficult areas

Page 33: Atd agile automation

Copyright 2012: Lisa Crispin 33

Test Automation Pyramid

Page 34: Atd agile automation

Copyright 2012: Lisa Crispin

Test Automation Volcano

From Matt Barcomb

Page 35: Atd agile automation

Copyright 2012: Lisa Crispin 35

Agile Testing Quadrants

Page 36: Atd agile automation

Copyright 2012: Lisa Crispin 36

Shared Understanding § Start with tests § Collaborate

Page 37: Atd agile automation

Copyright 2012: Lisa Crispin 37

What Should We Automate? §  Quadrant 1 tests

§  Unit, component, TDD §  Quadrant 2 tests

§  API, service-level §  Quadrant 4 tests

§  Load, performance, stress §  Quadrant 3 tests?

§  Leverage automation where useful

Page 38: Atd agile automation

Copyright 2012: Lisa Crispin 38

What Shouldn’t We Automate?

§  Quadrant 2 tests §  Wizard of Oz, prototyping

§  Quadrant 3 tests §  Usability, UAT, ET

§  Tests that will never fail? §  Assess risk

§  ROI not enough §  One-off tests

Page 39: Atd agile automation

Copyright 2012: Lisa Crispin 39

Where Should We Be Careful?

§  GUI tests §  Watch ROI

§  End-to-End tests §  Push testing down to lowest level

§  Remember the Pyramid

Page 40: Atd agile automation

Copyright 2012: Lisa Crispin 40

Hard to Automate?

§  Legacy code §  Hard to automate, or just lack of skill? §  “Working Effectively with Legacy Code” –

Feathers §  “Strangling” – Fowler, Thomas

Page 41: Atd agile automation

Copyright 2012: Lisa Crispin 41

Exercise: Low-Hanging Fruit

Any “easy wins”?

Page 42: Atd agile automation

Copyright 2012: Lisa Crispin 42

Agile Automation Strategy

§  What hurts the most §  Layered approach §  Applying agile principles

§  Small chunks/thin slices §  Smart test design

§  Choosing the right tools

Page 43: Atd agile automation

Copyright 2012: Lisa Crispin 43

What Hurts the Most §  Use retrospectives §  Keep an impediment backlog

Page 44: Atd agile automation

Copyright 2012: Lisa Crispin 44

Multi-Layered Approach Example:

§  Learn TDD at unit level §  Automate GUI smoke tests

Page 45: Atd agile automation

Copyright 2012: Lisa Crispin 45

Simplicity

§  Address one or two needs at a time §  Understand the problem first §  Try simplest approach first §  Work in small chunks, thin slices §  Incremental & iterative

Page 46: Atd agile automation

Copyright 2012: Lisa Crispin 46

Automate a Slice at a Time

Example: 4-step UI to validate, upload profit sharing contribution data

•  Thread 1: All four pages with navigation •  Thread 2: Select year, enter description on page

1, display on page 2, browse and upload file on page 2

•  Thread 3: Validate data in file, display on page 3 •  Thread 4: Persist data, display ‘success’

message on page 4

Page 47: Atd agile automation

Copyright 2012: Lisa Crispin 47

Thin Slice Example Thin Slice Example

Page 48: Atd agile automation

Copyright 2012: Lisa Crispin 48

Exercise: Thin Slices

Here’s our user story (or theme): As an internet shopper, I want to create an account so that I do not have to enter my address and billing information each time I make a purchase Draw a mind map for this feature on a big sheet of paper Identify a basic end-to-end slice of functionality that can be coded, tested, and automated. If you have time, identify additional slices.

Page 49: Atd agile automation

49

Test Design Patterns/Principles §  Code design patterns §  One clear purpose §  Don’t Repeat Yourself

Page 50: Atd agile automation

Copyright 2012: Lisa Crispin 50

Page Object Pattern A “page object” is a test object that holds the details of all the elements on a web page that might be involved in an automated test.

Page 51: Atd agile automation

Copyright 2012: Lisa Crispin 51

More on the Page Object Pattern http://www.beer30.org/?p=54

Page 52: Atd agile automation

Copyright 2012: Lisa Crispin 52

Demo: semi-automating exploratory tests

Page 53: Atd agile automation

Copyright 2012: Lisa Crispin 53

Iterative Feedback

§  Spike two different approaches §  Pick one to try for N # of iterations §  Use retrospectives to evaluate

Page 54: Atd agile automation

Copyright 2012: Lisa Crispin 54

Learn by Doing §  Courage – don’t be afraid to fail §  Production code practices for test code §  Incremental, thin slices §  Experiment

Page 55: Atd agile automation

Copyright 2012: Lisa Crispin 55

Questions About Automation Strategy?

Page 56: Atd agile automation

Copyright 2012: Lisa Crispin 56

Choosing Tools, Frameworks, Drivers

§  Team effort §  Time §  Requirements §  Focus on goals, problems, not tools. §  Experiment

Page 57: Atd agile automation

Copyright 2012: Lisa Crispin 57

Understand the Purpose

§  Who’s using the tests? What for? §  What’s being automated? §  Existing tools, environment §  Who’s doing what for automating?

Page 58: Atd agile automation

Copyright 2012: Lisa Crispin 58

What Fits Your Situation •  Existing skills •  Language of application under test •  Collaboration needs •  What’s being automated •  Life span, future use of tests

Page 59: Atd agile automation

Copyright 2012: Lisa Crispin 59

Test Drivers/Frameworks §  Divide into sub-teams and prototype

solutions §  Have a “bake-off” showing each prototype

Page 60: Atd agile automation

Copyright 2012: Lisa Crispin 60

Where To Find Tools

§  www.softwareqatest.com/qattls1.html §  http://bit.ly/AgileTestTools §  www.testingfaqs.org §  www.opensourcetesting.org §  groups.yahoo.com/group/agile-testing §  Grow your own!

Page 61: Atd agile automation

Copyright 2012: Lisa Crispin 61

Example: One Team’s Tool Choices

•  IntelliJ Idea •  Jenkins, ant, Maven •  JUnit •  FitNesse •  Canoo WebTest •  Watir •  Robot Framework •  JMeter •  Selenium 2.0 / WebDriver with Geb framework

Page 62: Atd agile automation

Copyright 2012: Lisa Crispin 62

Exercise: Test Frameworks

What format would work for your team? EG, BDD style? Tables? Assertions? Scenarios? Think of the test format that might work for your team. Write examples on sticky notes. Write down any particular types of test patterns, frameworks and driverss you want to learn more about. and place these sticky notes next to an impediment it might help overcome.. Discuss with group how that tool might help solve the problem.

Page 63: Atd agile automation

Copyright 2012: Lisa Crispin 63

Making Test Automation Work

§  Time to do it right §  Experiments, bake-offs §  Testable architecture §  Test data §  Managing tests

Page 64: Atd agile automation

Copyright 2012: Lisa Crispin 64

Time To Do It Right

§  Limit scope, don’t over-commit §  Write automation task cards §  Plan test code maintenance/ refactoring time §  Quality must be team goal §  Long-term, will let you go faster

Page 65: Atd agile automation

Copyright 2012: Lisa Crispin 65

Bake-offs

§  Have sub-teams/pairs experiment with prototypes

§  Budget lots of time for learning, experimenting

§  Look at pros & cons

Page 66: Atd agile automation

Copyright 2012: Lisa Crispin 66

Testable Architecture •  Layered architecture

•  eg. UI, business logic, data access •  Ports and Adapters pattern

•  App can work without UI or database •  Ports accept outside events •  Adapters convert for human or automated

users

Page 67: Atd agile automation

Copyright 2012: Lisa Crispin 67

Test Data

§  Avoid database access when possible §  Setup/Teardown

§  Independent, rerunnable tests §  Canonical data

§  Refresh before each test run §  Customizable data for ET §  Production-like data

§  Get customers to provide example data

Page 68: Atd agile automation

Copyright 2012: Lisa Crispin 68

Managing Automated Tests

§  Tests as Living Documentation §  Continuous Integration §  Reporting results §  Metrics

Page 69: Atd agile automation

Copyright 2012: Lisa Crispin 69

Tests as Living Documentation §  Understandable §  Who will really use them? §  Once passing, must always pass

Page 70: Atd agile automation

Copyright 2012: Lisa Crispin 70

Any Example Can Become a Test

Page 71: Atd agile automation

Copyright 2012: Lisa Crispin 71

Given/Then/When Example

Scenario: Valid name search returns results GIVEN that Kant is a supervisor with employees AND Kant has an employee named Smith WHEN Kant navigates to the employee name

search page AND enters the value “S” THEN Kant will see a search result that includes

Smith

Page 72: Atd agile automation

Copyright 2012: Lisa Crispin 72

Continuous integration/testing…

…short feedback loop

Page 73: Atd agile automation

Copyright 2012: Lisa Crispin 73

Keep tests passing

Stop the line to fix problems

Page 74: Atd agile automation

Copyright 2012: Lisa Crispin 74

Test Management Tools §  Manage tests, code together §  Some tools have own management §  What problem are you trying to solve?

Page 75: Atd agile automation

Copyright 2012: Lisa Crispin 75

Exercise: Tests as Documentation

Page 76: Atd agile automation

76

Key Success Factors

Whole Team Approach�

Thin Slices�

Short Feedback Loops�

Experiments�

Specification by Example �

Page 77: Atd agile automation

Copyright 2012: Lisa Crispin 77

Exercise: Breaking Barriers

Page 78: Atd agile automation

Copyright 2012: Lisa Crispin 78

Remember §  It’s a team problem! §  Tackle automation problems with diversity §  Try small experiments §  Baby steps – start simple

Page 79: Atd agile automation

Copyright 2012: Lisa Crispin 79

Questions? “Aha” Moments?

Page 80: Atd agile automation

Copyright 2012: Lisa Crispin 80

Agile Testing: A Practical Guide for Testers and Agile Teams

By Lisa Crispin and Janet Gregory www.agiletester.ca

Page 81: Atd agile automation

Copyright 2012: Lisa Crispin 81

Experiences of Test Automation

Dorothy Graham and Mark Fewster

Page 82: Atd agile automation

Copyright 2012: Lisa Crispin 82

Beautiful Testing: Leading Professionals Reveal How They Improve Software

Edited by Tim Riley, Adam Goucher

Includes chapter by yours truly

Page 83: Atd agile automation

Copyright 2012: Lisa Crispin 83

Test Patterns

Xunit Test Patterns: Refactoring Test Code

By Gerard Meszaros

Page 84: Atd agile automation

Copyright 2012: Lisa Crispin Copyright 2008 Janet Gregory, DragonFire

84

Specification by Example How successful teams deliver the right software

Gojko Adzic

Case studies from > 50 teams

Page 85: Atd agile automation

Copyright 2012: Lisa Crispin 85

Agile Test Automation Resources

§ dhemery.com/pdf/writing_maintainable_automated_acceptance_tests.pdf § http://bit.ly/AgileTestTools § lisacrispin.com § janetgregory.ca § gokjo.net § exampler.com § [email protected] § testobsessed.com § testingreflections.com § pairwith.us


Recommended