Evolution of Agile Testing

31
Agile Days China Evolution of Agile Testing (A tester's view) Erik Petersen [email protected] Twitter: erik_petersen Tech talk: http://bit.ly/80-20- rules

Transcript of Evolution of Agile Testing

Page 1: Evolution of Agile Testing

Agile Days China

Evolution of Agile Testing (A tester's view)

Erik [email protected]: erik_petersen

Tech talk: http://bit.ly/80-20-rules

Page 2: Evolution of Agile Testing

Familiar faces?

Page 3: Evolution of Agile Testing

Methodologists meet in the snow

Mid February 2001, 17 people met in the Utah mountains over a weekend

They represented styles of lightweight software development

Only one, Brian Marick, had major interest in testing (a quiet person)

Another tester invitee, James Bach, could not attend (a loud person)

Page 4: Evolution of Agile Testing

Non-light manifesto Individuals & interactions over processes &

tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following plan

Value in all, but items on left more valuable

Page 5: Evolution of Agile Testing

Where's testing? Neither the agile manifesto or supporting

principles mention testing, focussing on ”sponsor, developer, user”

Principles do mention ”architecture, requirements & designs” but no testing or validation activity mentioned explicitly

Page 6: Evolution of Agile Testing

Agile testing V1.0 Strong Extreme Programming slant

Developers do all tests, using TDD for design & automated unit tests, Junit mostly

No need for system tester role, ”all tests automated”

Developers to learn extra testing skills from testers then replace them

Kent Beck tells conference of testers they will all be out of jobs in a few years

Page 7: Evolution of Agile Testing

Agile dev view

Page 8: Evolution of Agile Testing

Agile tester view

Page 9: Evolution of Agile Testing

A week of Ruby dev, test & talk Mid June 2003, a group of agile devs and

exploratory testers spend a week together talking and creating software at ”Agile Fusion” (Erik watches via webcam!)

Early version of Ruby seen as immature by devs (but great language for testing)

Some agile devs understand importance of exploratory testing, e.g Ward Cunningham

Page 10: Evolution of Agile Testing

Agile Testing manifesto?

”It’s very important to understand that we in this Agile Fusion conference did not come to agreement on *any* specifically phrased idea about what agile testing is or isn’t. We tried to discuss it, but it quickly became apparent that

there are important philosophical & terminological differences among us.”

James Bach

Page 11: Evolution of Agile Testing

“Important differences”?

Page 12: Evolution of Agile Testing

Agile testing V2.0 Strong XP Programming slant weakening

Regression testing done by developers, using automated unit tests, now Xunit

Some appreciation for system tester role, e,g Thoughtworks, Mary Poppendieck

Some developers learn more about testing and importance of exploratory testing

Agile testing champions, e.g Elisabeth Hendrickson

Page 13: Evolution of Agile Testing

Tools of the trade

Page 14: Evolution of Agile Testing

Enter the test toolsmith Developer explicitly supporting less

technical testers, or more busy devs

Creating tools to support testability

Automating data creation, configuration table setup, security profiles, UI information fields only visible in test mode or hidden in html, etc

Focussed on manual & automated tests

Testability champion, Brett Pettichord

Page 15: Evolution of Agile Testing

Test tools rule Rapid expansion of free functional tools

Framework for Integrated Test (FIT) 2002, java based implementation of customer examples as tests, lead dev Ward Cunningham

Selenium 2004, web application driver using javascript, lead dev Jason Huggins

Many other less popular tools

Page 16: Evolution of Agile Testing

What does this mean?

Page 17: Evolution of Agile Testing

Dependency Injection 1 What does this mean?

Imagine you run a window washers collective. Each worker has their own basic gear, buckets, sponges, scrapers, and can handle smaller jobs unassisted. Larger jobs need ropes, scaffolding or cherry pickers, so they need to be provided for the workers in those cases. (continued)

Page 18: Evolution of Agile Testing

Dependency Injection 2 Dependency injection provides complicated

material to a worker function to help it do its job. This simplifies the design, and makes it more flexible allowing different types of materials to be provided in different cases. Another advantage is the ability to provide fake materials, when we are only interested in testing the function to check it still works properly.

From www.testingspot.net (Erik's link site)

Page 19: Evolution of Agile Testing

Agile testing V3.0 Flavors Regression testing by developers, using

TDD & automated unit tests, with dependency injection & testability

Testsmiths create custom tools for their teams

Functional automation by developers or technical testers using tools like Selenium

Customer examples linked by dev tester to fixtures create simple tests, like FIT

Page 20: Evolution of Agile Testing

ET in Agile Development Jim Shore & Chromatic write ”Art of Agile

Development”, 2007 with community review of each chapter

Lone voice of tester reviewer in dev cloud (Erik), pushing tester role & viewpoint

Book expanded to include ET Viewpoint: ET needed to find bugs missed by devs (to improve process to find next time!)

Included Exploratory testing chapter written by Elisabeth Hendrickson

Page 21: Evolution of Agile Testing

Different stylistic views• 1) Does a agile team use a issue tracker?

Against: don't document just discuss & fixFor: bug history is valuable for bug clusters, empower user to raise issues or concerns

• 2) Is quality more important than velocity?Against: need to always deliver value over fixesFor: bugs may hide other bugs, more (potential) technical debt

Page 22: Evolution of Agile Testing

Agile testing for testers & team Agile Testing stage at Agile 2009

conference

Exploratory testing sessions at Agile conference, Erik Petersen 2008, 2009, Jon Bach 2010

”Agile Testing” 2009, by Crispin & Gregory gets great reviews across all agile tribes

Strong agile tester community

Bughunts becoming popular in industry

Page 23: Evolution of Agile Testing

Joining the cause

Page 24: Evolution of Agile Testing

The 2nd wave of test tools Cucumber 2009, english-like fixture based

tool dominating functional test automation, lead developer Aslak Hellesoy

Selenium and Selenium Grid almost industry standard

Domain Specific Languages (e.g in Groovy), Robot framework, etc

AA functional test tools group discussing and leveraging tools, also GTAC (Google)

Page 25: Evolution of Agile Testing

Key (system) testing skills Test techniques: e.g. boundary analysis,

equivalence partitioning, test intuition

Test modelling: domain, application, navigation, authorisation, etc.

Test case design and coverage

Defect management

Failure modelling (often innate skill)

Shadow architect & designer/ devils advocate

Page 26: Evolution of Agile Testing

Key skill: Exploratory testing ET Framework: Three main parts

Investigation Wide across app, or deep to feature

Exploration Confirming app & other models, or trying

failure models

Reflection Maintain focus or change to next priority Investigate bug clusters

Attempt to make implicit skill visible

Page 27: Evolution of Agile Testing

Agile testing today Still no agile testing manifesto, just many

flavors (like with agile)

New tools can be adopted quickly worldwide, e.g Cucumber

Many great developer testers but still specialist tester role needed

Risk based exploratory testing preferred technique for rapid testing

TDD ”checks” versus human ET ”tests”

Page 28: Evolution of Agile Testing

Together (mostly)

Page 29: Evolution of Agile Testing

Evolution of Agile Testing (A tester's view)

Erik [email protected]: erik_petersen

Tech talk: http://bit.ly/80-20-rules

Page 30: Evolution of Agile Testing

Selected ReferencesTestability for Automation -Dave Catlett

presentation, 2004

http://www.nwcpp.org/Downloads/2004/ImprovingTestabilityNWCPP.ppt

Includes link to Brett Pettichord paper

AgileAlliance.org

Testingspot.net – Erik’s links site

Star Wars Posters – Cliff Chiang

Vader Portrait – Greg Peltz

Page 31: Evolution of Agile Testing