test automation - 10 (sometimes painful) lessons learned

20
Test Automation 10 (sometimes painful) Lessons learned Michael Palotas & Dominik Dary Quality Engineering Team Europe eBay International April 2012

Upload: dominik-dary

Post on 28-Nov-2014

3.606 views

Category:

Technology


0 download

DESCRIPTION

eBay’s European quality engineering team has broad experience implementing end-to-end test automation in different software development environments (agile, waterfall, co located , outsourced, distributed). This presentation illustrates the key lessons learned from a technical and business perspective:1. Flip the testing triangle2. Everyone knows what’s automated3. A tool is not a strategy4. Write the right tests5. Instant Feedback is essential6. Automation is software development itself7. Maintainability is king8. Speak the same language as the developers9. Invest into the test Infrastructure10. Manual Testing is still very important

TRANSCRIPT

Page 1: Test Automation - 10 (sometimes painful) lessons learned

Test Automation – 10 (sometimes painful) Lessons learned

Michael Palotas & Dominik Dary Quality Engineering Team Europe

eBay International

April 2012

Page 2: Test Automation - 10 (sometimes painful) lessons learned

Founded in 1995

Based in San Jose, California

27770 Employees worldwide

eBay Inc. Facts

Page 3: Test Automation - 10 (sometimes painful) lessons learned

104 million active buyers and sellers worldwide

68 Billion USD transaction volume 2011

2000 USD

transaction volume every second

Platform Facts

Page 4: Test Automation - 10 (sometimes painful) lessons learned

9 petabytes of data In our Hadoop and Teradata clusters

2 billion page views each day

75 billion database calls each day

Data Facts

Page 5: Test Automation - 10 (sometimes painful) lessons learned

70,000,000 times eBay Inc’s apps have been downloaded

5 billion USD transacted 2011 on mobile devices

1 million items are listed with using mobile apps every week

Mobile Facts

Page 6: Test Automation - 10 (sometimes painful) lessons learned

Who we are

Michael Palotas Head of Quality Engineering Europe

E-mail: [email protected]

Dominik Dary Staff Software Engineer in Test

E-mail: [email protected]

Page 7: Test Automation - 10 (sometimes painful) lessons learned

Inspiration: http://patrickwilsonwelsh.com/?p=32

Lesson 1: Flip the testing triangle

Unit

Tests

E2E Automation

Tests

Manual Tests

Unit Tests

E2E

Tests

Manual

Tests

Integration Tests

Page 8: Test Automation - 10 (sometimes painful) lessons learned

**Swiss Testing Day Presentation 2010: “Mit Testaspekten früh, intelligent und redundanzfrei testen” Melanie Späth

Image Source: http://www.masternewmedia.org/images/social_software_impact_individual_organizations.jpg

Lesson 2: Everyone needs to know what is

automated

Use Test Aspects**

• Test aspects briefly describe

“why” and “what” has to be

tested, without describing

“how”

• Enables for early testing

because tests can be written at

the same time the user story is

created

• Test aspects are structurally

derived

Advantages

• Clear overview for all team

members about test coverage

• Simplicity helps you to do

quick reviews and

walkthroughs with your product

owner

• Enables you to identify manual

and automated test duplicates

• Traceability between test

cases and specification

Page 9: Test Automation - 10 (sometimes painful) lessons learned

A test tool/testing framework won't

teach your testers how to test

A clear testing process is mandatory

for test automation

Test Aspects and modeling of the

Biz-Domain layer is the key success

factor for your test strategy

Lesson 3: A Tool is not a Strategy

Page 10: Test Automation - 10 (sometimes painful) lessons learned

Lesson 4: Write the right tests

Source: http://farm1.static.flickr.com/119/269335955_03a0ff4b67_o.jpg

Page 11: Test Automation - 10 (sometimes painful) lessons learned

Automate the business critical use

cases of your customer

Focus on end-to-end testing rather

than UI component tests

Design testability into your

product

Lesson 4: Write the right tests

Page 12: Test Automation - 10 (sometimes painful) lessons learned

Lesson 5: Instant Feedback is essential

D T D T D T D T D T D T D T D T

Development Test

Page 13: Test Automation - 10 (sometimes painful) lessons learned

Lesson 6: Automation is software development

Skillset & Knowledge

• You need people with software

development skills and an

appetite for testing

• Automation mindset is essential

• Good understanding of the

architecture of the application

under test is required

Engineering practice

• Task oriented development

helps you to get things done

• Follow the basic rules like lean

development principles

• Design the test before coding it

• Do code reviews

• Your developers can give you

very good feedback about your

code quality

Page 14: Test Automation - 10 (sometimes painful) lessons learned

Lesson 7: Maintainability is king

Sourc

e:

htt

p:/

/geekandpoke.t

ypepad.c

om

/.a/6

a00d

83

41

d3

df5

53

ef0

134

86

02

ac19

97

0c-p

i

Page 15: Test Automation - 10 (sometimes painful) lessons learned

Definition of Done

Reviews

Document the essentials

Don’t build a framework

Long Leash

Lean Test Automation • Eliminate Waste

• Build Quality In

• Create Knowledge

• Defer Commitment

• Deliver Fast

• Respect People

• Optimize the Whole

Lesson 7: Maintainability is king

Technical Debt • Activities that result in

technical debt include

• Postponing

documentation and

writing tests

• attending to TODO

comments and

• tackling compiler and

static code analysis

warnings

• Knowledge that isn't

shared around the

organization

• Code that is too confusing

to be modified easily

Page 16: Test Automation - 10 (sometimes painful) lessons learned

Use the same programming

language as development

Developers can write or maintain

tests if needed

Enables for a cross functional team

where everyone can work on nearly

every task

Lesson 8: Speak the same language as the

developers

Page 17: Test Automation - 10 (sometimes painful) lessons learned

Lesson 9: Invest into the test infrastructure

Speed up and simplify

the creation of test

data

Offer and use web

services

Web based test data

creation tools can be

used in test auto-

mation and manual

testing

Page 18: Test Automation - 10 (sometimes painful) lessons learned

Automated tests only do what you have implemented:

at the same speed, same order, with exactly the same

mouse clicks

Manual testing allows you to go off the beaten path

Test automation in combination with exploratory

testing combine the best of both worlds

Lesson 10: Manual testing is still very important

Quality = Manual + Automated Testing

Page 19: Test Automation - 10 (sometimes painful) lessons learned

Conclusion of our ten lessons learned

1. Flip the testing triangle

2. A tool is not a strategy

3. Everyone knows

what’s automated

4. Write the right tests

5. Instant Feedback is

essential

6. Automation is software

development itself

7. Maintainability is king

8. Speak the same

language as the

developers

9. Invest into the test

Infrastructure

10.Manual testing is still

very important

Page 20: Test Automation - 10 (sometimes painful) lessons learned

Thank You! Questions or Comments?