59
1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

1

Making Test Automation Work in

Agile Projects

StarEast 2009

Lisa CrispinWith Material from Janet Gregory

Page 2: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

2

Introduction - Me

Programming background Test automation from mid-90s Agile from 2000

Many new automation possibilities!

Page 3: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

3

Introduction - You

Main role on team? Programming, automation experience? Using agile approach? Current level of automation? (Test,

CI,deployment, IDEs, SCCS...)

Page 4: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

4

Takeaways

When you leave, you’ll know ways to: Use automation to “keep up” Succeed with the “whole team” approach Use automation to enhance ET Evaluate and implement tools Do these things on a non-agile team

Page 5: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

5

Why Automate? Free up time for most important work Repeatable Safety net Quick feedback Help drive coding Tests provide documentation

Page 6: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

6

Barriers to Test AutomationWhat’s holding you back?

Page 7: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

7

Pain and Fear• Programmers don’t feel manual test pain • Testers treated as safety net• Fear

• Programmers lack testing skills• Testers lack programming skills

Page 8: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

Initial Investment• Hump of pain• Legacy code, changing code• Tools, infrastructure, time

Time

Effo

rt

Page 9: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

9

It’s Worth It• ROI – explain to management• “Present value” of automated tests• Acknowledge hump of pain

Page 10: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

10

Exercise• Write obstacles hindering your team on

small Post-Its.• Post those on the big flip chart in the

appropriate category – or start a new category.

• Are we seeing any patterns?

Page 11: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

11

Questions?

Page 12: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

12

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

Page 13: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

13

Test Automation Pyramid

Page 14: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

14

Agile Testing Quadrants

Page 15: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

15

What Should We Automate? Quadrant 1 tests

Unit, component, TDD Quadrant 2 tests

Behind GUI, API, web services Quadrant 4 tests

Load, performance, stress Quadrant 3 tests?

Leverage automation where useful

Page 16: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

16

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 17: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

17

Where Should We Be Careful?

GUI tests Need to test the GUI Watch ROI

End-to-End tests Push testing down to lowest level Robust lower-level tests = better ROI

Remember the Pyramid

Page 18: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

18

Hard to Automate?

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

Feathers “Strangling” – Fowler, Thomas

Page 19: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

19

Discussion

Where should you start? Is there low-hanging fruit? What’s the best ROI?

Page 20: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

20

Agile Automation Strategy

What hurts the most Layered approach Applying agile principles

Whole team approach Small chunks/thin slices

Choosing the right tools

Page 21: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

21

What Hurts the Most

Keep an impediment backlog What’s biggest obstacle?

• Time• Tools• Code design• ...

Page 22: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

22

Multi-Layered Approach

Example:• Developers address unit tests• While testers write GUI smoke tests

Page 23: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

23

Whole-Team Approach

• Team responsible for testing, quality• Team responsible for testing activities

• Automation• Whole team has all the skills needed• Team designs for ease of test automation

Page 24: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

24

Specialists Needed?

• Performance, load, security, usability• May bring in shared or outside resources• Still, dev team responsible for completing all

tests• Multiple viewpoints provide synergy

Page 25: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

25

Discussion

• What skills would help your team overcome automation barriers?

• What skills are missing from your team? Where could you get them?

Page 26: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

26

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 27: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

27

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 28: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

28

Thin Slice Example

Thin Slice Exercise

Page 29: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

29

Group Exercise

Break the following story down into thin slices or threads whose tests can be automated.

As an Internet shopper, I want to select shipping options for my items during checkout and see the shipping cost. Assumptions: User has already entered shipping

address. User will be able to choose different options for different items. The options are USPS, Ground, 2 day and Overnight. PO Boxes are USPS only. Items > 20 lbs are Ground only. API to cost calculator available, takes postal code and weight

Page 30: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

30

Iterative Feedback

• Commit to trying new tool/framework for N iterations

• Plan automation tasks for each iteration• Use retrospective to evaluate

Page 31: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

31

Learn by Doing• Courage – don’t be afraid to fail• Use agile coding practices for automation

• Simple design• Pairing• Refactoring• Object-oriented, libraries, modules• Test-first if scripts have logic

Page 32: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

32

Questions?

Page 33: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

33

Choosing Tools

• Must be team decision• Find time for evaluating

• Story for tool evaluation• Iteration for development team

• Determine requirements• Do some basic research, compile list• Try each tool

Page 34: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

34

Understand the Purpose

• What’s being automated?• eg. Ajax, SSL support; load; embedded s/w• Speeding up exploratory testing, test data

• Existing tools, environment• eg., integration with build process• Reporting needs

• Who’s writing, maintaining the tests?• Who’s using the tests? What for?

Page 35: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

35

What Fits Your Situation

• Existing skills on team• Language of application under test• Collaboration needs• Utilities (automating tedious tasks) vs. Testing• Life span, future use of tests

Page 36: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

36

Vendor Tools - Pros

• Existing expertise• Some built on open-source libraries• Fast ramp-up for non-programmers• Perceived as safe choice• Training, support• Part of existing tool set• May have robust features

Page 37: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

37

Vendor Tools - Cons• Tend to be heavyweight• Tend to be programmer-unfriendly• Scripts may be brittle, high-maintenance

• Capture-playback problematic• Not designed for long-term maintainability

• Can be pricey

Page 38: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

38

Open-Source Tools - Pros

• Designed by test-infected programmers• Designed for agile environments• Designed for maintainability• Programmer-friendly• May have excellent support, tutorials, doc• Easily customized• Low up-front cost

Page 39: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

39

Open-Source Tools - Cons

• May be difficult for non-programmers• Depends on the tool/framework

• Future enhancements may be uncertain• Training, support can be an issue• Be sure to look for active development

community

Page 40: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

40

Home-Brewed - Pros

• Programmer-friendly• Integration with app, IDEs

• Development framework may support• Rails, Ruby, Groovy

• Can build on top of existing framework• Fit, Slim, Watir, RSpec

• Specifically tailored to needs• Someone’s there to address problems

Page 41: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

41

Home-Brewed - Cons

• Team needs enough bandwidth, expertise• Reporting framework• Allow test specification by non-programmers

• Could be harder sell to management

Page 42: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

42

Where To Find Tools

http://www.softwareqatest.com/qattls1.htmlhttp://www.testingfaqs.orghttp://www.opensourcetesting.orghttp://awta.wikispaces.com/2009ToolsListgroups.yahoo.com/group/agile-testing

Page 43: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

43

Example: My Team’s Tool Choices

• IntelliJ Idea, Eclipse for IDEs• CruiseControl, Hudson for CI• JUnit for TDD, unit, component• FitNesse for functional, behind GUI• Canoo WebTest for GUI regression smoke tests• Watir to aid exploratory testing• JMeter for load, performance testing• Perl scripts for comparing files, making files

human-readable• Java programs for concatenating forms, cover

letters

Page 44: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

44

Discussion

Any tool selection success stories to share?

Page 45: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

45

Making Test Automation Work

• Time to learn, implement, design• Testable architecture• Test data• Managing tests

Page 46: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

46

Time To Do It Right

• Limit scope• Write automation task cards• Quality must be goal• Long-term, will let you go faster

Page 47: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

47

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 48: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

48

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 49: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

49

Managing Automated Tests

• Documenting tests• Tests as documentation• Finding what you need

• Reporting results• Analyze failures

• Test coverage

Page 50: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

50

Example: My Team’s Tool Choices

Page 51: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

51

Test Management Tools

• Tool may include management framework• FitNesse

• Wiki – documentation + executable tests• Hierarchy

• Rasta – spreadsheets to organize tests• Twist – uses Eclipse IDE

• What problem are you trying to solve?• Simplest approach• Use SCCS for tests

Page 52: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

52

Exercise

• Look at the barriers from the first exercise.• What’s one thing you can do when you get back

to the office to overcome a barrier to automation? Write it on a post-it and put it next to the barrier on the flip chart paper.

Page 53: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

53

Key Success Factors

• Don’t try to find perfect solution• Start simple• Budget time to evaluate, implement• Use feedback, retrospectives• Apply agile principles, practices• Budget time to refactor, try new alternatives

Page 54: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

54

Remember

• It’s a team problem!• Build foundation of core agile practices• Experiment• Baby steps

Page 55: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

55

Questions? “Aha” Moments?

Page 56: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin 56

Now Available

Agile Testing: A Practical Guide for Testers and Agile Teams

By Lisa Crispin and Janet Gregory www.agiletester.ca

Page 57: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin 57

Test Patterns

Xunit Test Patterns: Refactoring Test Code

By Gerard Meszaros

Page 58: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

58

Some Agile Testing Resourceslisacrispin.comjanetgregory.caagilealliance.orgexampler.comagile-testing@yahoogroups.comtestobsessed.comtestingreflections.com

Page 59: Making Test Automation Work in Agile Projects · 1 Making Test Automation Work in Agile Projects StarEast 2009 Lisa Crispin With Material from Janet Gregory

Copyright 2009: Lisa Crispin

59

Some Agile Testing Tool Resources awta.wikispaces.com/2009ToolsList softwareqatest.com/qattls1.html opensourcetesting.org nunit.org/index.php webtest.canoo.com testingfaqs.org junit.org wtr.rubyforge.org fit.c2.com gojko.net/fitnesse/dbfit fitnesse.org selenium.openqa.org jameleon.sourceforge.net