applying testing mindset to software development

33
December 11, 2014 Applying Tester’s Mindset to Software Development Andrii Dzynia Software Quality Engineer @adzynia

Upload: andrii-dzynia

Post on 15-Jun-2015

1.135 views

Category:

Software


0 download

DESCRIPTION

Software Development is a creative activity that requires focus. During coding session you as a programmer tends to make so many decision that sometimes force you to neglect 'unimportant details' that might sounds like specific use cases, unclear statements or somethings that won't gonna happen. In most cases the system even so complex that is not that easy to step out and see the whole picture, even from user's point of view. Historically software developers used to trust other people called testers to verify those 'details' from user's perspective before deploying into production. In order to have proper alignment inside the team dedicated 'QA step' added to the process. That obvious solution have some quick-wins with outcome of found bugs before releasing the software. But there are some tradeoffs, such as: slower delivery cycle, extra test documentation and GUI automated tests that are not that easy to maintain. During my talk I would like to share some insight and lessons we learned @ Spotify that helps us improving team's development productivity without losing quality of the product. Hopefully that will help your team as well or at least show one of the directions you might want to follow. Spotify Engineering Culture: https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/ https://labs.spotify.com/2014/09/20/spotify-engineering-culture-part-2/

TRANSCRIPT

Page 1: Applying Testing Mindset to Software Development

December 11, 2014

Applying Tester’s Mindset to Software Development

Andrii Dzynia

Software Quality Engineer

@adzynia

Page 2: Applying Testing Mindset to Software Development

Spotify brings you the right music for

every moment!

Started in 2006 (in Sweden) Now 1500+ employees, 500+ engineers Over 30 million songs available Over 20,000 songs added every day 5 development centres across the globe

Page 3: Applying Testing Mindset to Software Development

3

Page 4: Applying Testing Mindset to Software Development

Organic Structure

4

Scaled Agile @ Spotify@joakimsunden

Page 5: Applying Testing Mindset to Software Development

5

How we are minimizing development cycle and

delivering value faster!

Page 6: Applying Testing Mindset to Software Development

6

Is a Programmer Enjoying learning new things Passioned about technologies

PETER

Page 7: Applying Testing Mindset to Software Development

ONE DAY OF PETER’S LIFE

WAKE UP THINKING ABOUT PROBLEM WAS NOT ABLE

TO SOLVE YESTERDAY COMMUTE TO THE OFFICE SYNC MEETING WITH A TEAM FINISHED CODING ON THE PROBLEM WENT ON MEETING GOT NEW TASK TO WORK ON STARTED READING DESCRIPTION

7

Page 8: Applying Testing Mindset to Software Development

ONE DAY OF PETER’S LIFE

Started implementing the simples snippet Went on meeting Went home

8

Page 9: Applying Testing Mindset to Software Development

WHERE IS THE PROBLEM?

9

@visbeek

Page 10: Applying Testing Mindset to Software Development

Here…

10

Expectations

Reality

Page 11: Applying Testing Mindset to Software Development

How that reflects on users and software?

11

@wiseacre

Bugs

Bugs

Bugs

BugsBugs

Bugs

Bugs

Bugs

Bugs

Page 12: Applying Testing Mindset to Software Development

You might say.

12

Hire testers!

Page 13: Applying Testing Mindset to Software Development

Consequences

Additional ‘QA’ or ‘Testing’ column in a process

Slower delivery

The bigger system the more testers to hire Hiring test automators to minimise the cost

Project become more expensive and harder to maintain

Less, but still have bugs Users less, but still frustrated

13

Page 14: Applying Testing Mindset to Software Development

14

Problem at Scale

Page 15: Applying Testing Mindset to Software Development

15

The earlier you share results

@rocketdogphotography

The lower risk of failure!

Page 16: Applying Testing Mindset to Software Development

Testing as a Mindset 16

Page 17: Applying Testing Mindset to Software Development

Testing during meetings17

challenge ideas and solutions via healthy discussions

prove hypnotises via end users collaboration

Page 18: Applying Testing Mindset to Software Development

Acceptance Scenarios - User Journeys

Given Peter ready for workout When Peter unlock the phone screen Then Spotify client starts playing kick-ass track

18

Page 19: Applying Testing Mindset to Software Development

Testing during implementation

19

write tests during implementation

rise your opinion during pair discussion

peer review before merging to master

Page 20: Applying Testing Mindset to Software Development

20

Code Review &

Human Testing on

Pull Request

Page 21: Applying Testing Mindset to Software Development

Testing during release process

21

Checking stages Gradual Rollouts Monitoring A/B test different solutions Feature flags

Page 22: Applying Testing Mindset to Software Development

Delivery Pipeline22

Page 23: Applying Testing Mindset to Software Development

23Monitoring

Page 24: Applying Testing Mindset to Software Development

Best reward - people satisfaction 24

Page 25: Applying Testing Mindset to Software Development

25

Promote quality awareness

Page 26: Applying Testing Mindset to Software Development

Invest in your testers

Technical Test Engineer != Test automator Technical Test Engineer ~ Software Engineer in Test Work as a software developer Advocate testability of the product/system

Test Engineer != Manual Tester Test Engineer ~ Context Driven Tester Know business domain Free to explore the product

26

Page 27: Applying Testing Mindset to Software Development

Invest in your developers

Unit testing Acceptance testing TDD Continuous Integration Continuous Deployment Pair Programming Peer Reviews Refactoring

27

Extreme Programming Practices

Internal Hackathons

Page 28: Applying Testing Mindset to Software Development

Invest in your users28

User Support Interviews A/B testing

Page 29: Applying Testing Mindset to Software Development

Create a self-learning environment29

Educate everyone to work in collaboration!

Page 30: Applying Testing Mindset to Software Development

30

(c) Elisabeth Hendrickson

Page 31: Applying Testing Mindset to Software Development

31‘Test’ is a verbDo not just talk about testing, do

Testing Encourage discussions about

testing and quality Ask a question ‘How would we

test this?’ Make testing visible for everyone Celebrate achievements and

share resultsKeep looking further improvements.

You should never end :)

Page 33: Applying Testing Mindset to Software Development

It does not mean no testers

That means just enough “formal” testers

Check out http://www.spotify.com/jobs or @Spotifyjobs for more information

Want to join the band?