SlideShare a Scribd company logo
Why can’t developers be testers?
Dave Longman | Headforwards | @dlongman
Software Delivery is Changing
Software Delivery has changed
We are releasing more often
2017 State of DevOps Report
Code bases have grown
Version 1.0.1
128K
Version CS6
4.5M
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
1990 2012
LinesofCode
Thousands
Year of Release
Number of lines of code for Photoshop over time
Teams have changed
2000’S
ProjectTeam
Development
Department
Data Department
Design &
Architecture
Testing
Department
PMO
NOW
Product
Team
Developer
Developer
Developer
Tester
Scrum
Master
Product
Owner
There’s more testing than ever!
Device Testing
Security
Performance Profiling
Accessibility
Usability
Safari
MacOS
Microservices
Cloud
Continuous Delivery
Firefox
Chrome
Security
Internet Explorer
Network Topology
Connectivity
A/B Testing
Automation
Selenium
iOS
AndroidAPI
REST
SOAP
JSON
YAML
Configuration
UX
Internationalisation
Feature Toggles
Monitoring
Regression Testing
Zero downtime deployments
Test in Production
Compliance Testing
Guerrilla Testing
Virtual/Augmented Reality
Voice as an interface
Artificial Intelligence
Finding defects later is expensive
$5 $50
$500
$5,000
$-
$1,000
$2,000
$3,000
$4,000
$5,000
$6,000
TDD Build Test Integration Test System Test
Cost
Testing Stage
Cost of defects at Google
Mark Striebeck presentation at XPDay 2009 Developer testing, from the dark ages to the age of enlightenment
Automation
Testers need to understand more
oE2E
oService/API
oIntegration
oUnit
Test code bases are big!
[CELLRANGE]
[CELLRANGE]
[CELLRANGE]
0
5
10
15
20
25
Application Unit/Integration Tests BDD Tests
LinesofCode
Thousands
Modern testing requires
more development skills
Can testers become developers?
Coding Skills Coding Skills
Web Development
•HTML
•CSS
•JavaScript
Automated Testing
•Selenium
•Gherkin/Cucumber
•Unit, Integration, API
testing
Security
•OWASP
•SSL
•Networking
•OAuth
Cloud
•Azure
•AWS
•GCP
•Continuous
Deployment
Languages
•Python
•C#
•Java
•Ruby
•SQL
Design &
Architecture
•SOLID principles
•Clean Code
That’s a lot to learn!
Can developers become testers?
Traits of a
Good
Tester
Testing Traits
Domain
Expertise
Analytical and
Logical Thinking
“Test to Break”
Approach
Great
Communication
Skills
Awareness of
Business Impact
Takes Customer
Perspective
Traits of a
Good
Developer
Developer Traits?
Domain
Expertise
Analytical and
Logical Thinking
“Test to Break”
Approach
Great
Communication
Skills
Awareness of
Business Impact
Takes Customer
Perspective
Testing SkillsTesting Skills
Risk
Management
Test
Approach
and Design
Ad-Hoc and
Exploratory
Testing
Black and
White Box
Testing
Capacity and
Load Testing
Usability
testing
Good skills for developers…
How can we improve a teams’ testing?
Improve developer
awareness of tests
01
Improve tester awareness
of development
Improve developer
awareness of exploratory
testing
02
Improve developers
exploratory testing skills
Move to fully automated
testing pipeline
03
Step 1
Testers focus
on working
through test
scenarios with
dev team at
start of sprint
During sprint,
primarily
exploratory
testing
Developers
agree with
tester whether
test scenarios
will be unit,
integration or
end to end
tests
Developers
implement
agreed
scenarios
Improve developer
awareness of tests
Step 2
Tester pairs with
developers on
exploratory testing
• Upskills developers to
think more like a tester
• Adds more ‘testers’ to
team
Developers pair
with testers on
automation testing
• Improves testers’
coding skills
• Peer review of
automated test
coverage
Testers focus more
on other areas
• Coding
• UX
• Complex testing:
security, performance,
etc
Improve tester awareness of
development
Improve developer awareness
of exploratory testing
Step 3
Developer on Test
•DoTing
Remove full-time
testers from team
•Frequent review of testing
•Mentoring role for
developers
Focus on automating
everything
•Enables more rapid
releases
•Shortens feedback cycle
•Prevents team forgetting
to do something
Improve developers
exploratory testing skills
Move to fully automated
testing pipeline
What happens to the testing role?
Treated more like Scrum
Master role
• The better you are the less the team
needs you
01
Treated more like consultant
role
• Provides short-term upskilling on
specialised skills to team
02
What happens to the testers?
Change team role
• Product Owner/Manager
• Scrum Master
• UX Designer
• Developer
01
Become more specialised
• Performance
• Security
• Automation
• Accessibility
02
Does it work?
Step 2
Tester pairs with
developers on
exploratory testing
• Upskills developers to
think more like a tester
• Adds more ‘testers’ to
team
Developers pair
with testers on
automation testing
• Improves testers’
coding skills
• Peer review of
automated test
coverage
Testers focus more
on other areas
• Coding
• UX
• Complex testing:
security, performance,
etc
Improve tester awareness of
development
Improve developer awareness
of exploratory testing
Thoughts?
Dave Longman | Headforwards | @dlongman

More Related Content

PDF
Continuous Integration at T3CON08
PDF
Continuous Integration 101
PDF
Continuous Integration
PPTX
Continuous Delivery
PDF
Funny stories and anti-patterns from DevOps landscape
ZIP
Introduction To Continuous Integration
PDF
Continuous Integration (CI) - An effective development practice
PDF
An Introduction to Dependency Injection
Continuous Integration at T3CON08
Continuous Integration 101
Continuous Integration
Continuous Delivery
Funny stories and anti-patterns from DevOps landscape
Introduction To Continuous Integration
Continuous Integration (CI) - An effective development practice
An Introduction to Dependency Injection

What's hot (20)

PPTX
Testing in DevOps world
PDF
Continuous Integration, Continuous Quality, Continuous Delivery
PDF
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
PPTX
#speakgell - Continuous Integration in iconnect360
PPTX
Topic production code
PPT
Continous Integration: A Case Study
PPTX
Agile Evolution
PDF
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
PDF
Introduction to Automated Testing
PPTX
Continuous integration with Jenkins
PPTX
A Brief Introduction to Test-Driven Development
PPSX
Continuous Integration - Oracle Database Objects
ZIP
Continuous Integration, Build Pipelines and Continuous Deployment
PDF
Continuous integration
PDF
Jenkins Test Automation with codeBeamer ALM
PPTX
Testing JavaScript Applications
KEY
Continuous Integration, the minimum viable product
PPT
Continuous Integration and Builds
PDF
Jenkins CI
PPT
Continuous integration
Testing in DevOps world
Continuous Integration, Continuous Quality, Continuous Delivery
Introduction to DevOps Tools | DevOps Training | DevOps Tutorial for Beginner...
#speakgell - Continuous Integration in iconnect360
Topic production code
Continous Integration: A Case Study
Agile Evolution
What is Continuous Integration? | Continuous Integration with Jenkins | DevOp...
Introduction to Automated Testing
Continuous integration with Jenkins
A Brief Introduction to Test-Driven Development
Continuous Integration - Oracle Database Objects
Continuous Integration, Build Pipelines and Continuous Deployment
Continuous integration
Jenkins Test Automation with codeBeamer ALM
Testing JavaScript Applications
Continuous Integration, the minimum viable product
Continuous Integration and Builds
Jenkins CI
Continuous integration
Ad

Similar to Why can't developers be testers discussion (20)

PPTX
Turning Developers into Testers
PPTX
How to Fit Performance Testing into a DevOps Environment
PDF
Continuous delivery its not about the technology, its about the people. @pipe...
PPTX
Agile & DevOps - It's all about project success
PDF
Dev ops concept
PDF
Continuous delivery @wcap 5-09-2013
PPTX
Software presentation
PDF
5 Steps to Jump Start Your Test Automation
PPTX
Continuous Testing 2016
PPTX
Continuous Testing
PDF
Microservice Teams - How the cloud changes the way we work
PDF
Continuous Testing - What QA means for DevOps
PDF
How Agile Are you
PDF
Agile testing
PPT
Test Driven Development - Overview and Adoption
PPTX
Cross functional peer review preso 10-01-2013
PDF
DevTestOps
PPTX
The Evolution of Test Automation for DevOps
PPTX
An introduction to DevOps
PPTX
Test team dynamics, Антон Мужайло
Turning Developers into Testers
How to Fit Performance Testing into a DevOps Environment
Continuous delivery its not about the technology, its about the people. @pipe...
Agile & DevOps - It's all about project success
Dev ops concept
Continuous delivery @wcap 5-09-2013
Software presentation
5 Steps to Jump Start Your Test Automation
Continuous Testing 2016
Continuous Testing
Microservice Teams - How the cloud changes the way we work
Continuous Testing - What QA means for DevOps
How Agile Are you
Agile testing
Test Driven Development - Overview and Adoption
Cross functional peer review preso 10-01-2013
DevTestOps
The Evolution of Test Automation for DevOps
An introduction to DevOps
Test team dynamics, Антон Мужайло
Ad

Recently uploaded (20)

PPTX
MYSQL Presentation for SQL database connectivity
PDF
Empathic Computing: Creating Shared Understanding
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Spectroscopy.pptx food analysis technology
PPT
Teaching material agriculture food technology
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
A Presentation on Artificial Intelligence
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Cloud computing and distributed systems.
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
MYSQL Presentation for SQL database connectivity
Empathic Computing: Creating Shared Understanding
Building Integrated photovoltaic BIPV_UPV.pdf
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Review of recent advances in non-invasive hemoglobin estimation
Spectroscopy.pptx food analysis technology
Teaching material agriculture food technology
Programs and apps: productivity, graphics, security and other tools
Unlocking AI with Model Context Protocol (MCP)
Mobile App Security Testing_ A Comprehensive Guide.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
The AUB Centre for AI in Media Proposal.docx
Diabetes mellitus diagnosis method based random forest with bat algorithm
A Presentation on Artificial Intelligence
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
Cloud computing and distributed systems.
“AI and Expert System Decision Support & Business Intelligence Systems”

Why can't developers be testers discussion

  • 1. Why can’t developers be testers? Dave Longman | Headforwards | @dlongman
  • 4. We are releasing more often 2017 State of DevOps Report
  • 5. Code bases have grown Version 1.0.1 128K Version CS6 4.5M 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 1990 2012 LinesofCode Thousands Year of Release Number of lines of code for Photoshop over time
  • 6. Teams have changed 2000’S ProjectTeam Development Department Data Department Design & Architecture Testing Department PMO NOW Product Team Developer Developer Developer Tester Scrum Master Product Owner
  • 8. Device Testing Security Performance Profiling Accessibility Usability Safari MacOS Microservices Cloud Continuous Delivery Firefox Chrome Security Internet Explorer Network Topology Connectivity A/B Testing Automation Selenium iOS AndroidAPI REST SOAP JSON YAML Configuration UX Internationalisation Feature Toggles Monitoring Regression Testing Zero downtime deployments Test in Production Compliance Testing Guerrilla Testing
  • 10. Voice as an interface
  • 12. Finding defects later is expensive $5 $50 $500 $5,000 $- $1,000 $2,000 $3,000 $4,000 $5,000 $6,000 TDD Build Test Integration Test System Test Cost Testing Stage Cost of defects at Google Mark Striebeck presentation at XPDay 2009 Developer testing, from the dark ages to the age of enlightenment
  • 14. Testers need to understand more oE2E oService/API oIntegration oUnit
  • 15. Test code bases are big! [CELLRANGE] [CELLRANGE] [CELLRANGE] 0 5 10 15 20 25 Application Unit/Integration Tests BDD Tests LinesofCode Thousands
  • 16. Modern testing requires more development skills
  • 17. Can testers become developers?
  • 18. Coding Skills Coding Skills Web Development •HTML •CSS •JavaScript Automated Testing •Selenium •Gherkin/Cucumber •Unit, Integration, API testing Security •OWASP •SSL •Networking •OAuth Cloud •Azure •AWS •GCP •Continuous Deployment Languages •Python •C# •Java •Ruby •SQL Design & Architecture •SOLID principles •Clean Code
  • 19. That’s a lot to learn!
  • 21. Traits of a Good Tester Testing Traits Domain Expertise Analytical and Logical Thinking “Test to Break” Approach Great Communication Skills Awareness of Business Impact Takes Customer Perspective
  • 22. Traits of a Good Developer Developer Traits? Domain Expertise Analytical and Logical Thinking “Test to Break” Approach Great Communication Skills Awareness of Business Impact Takes Customer Perspective
  • 23. Testing SkillsTesting Skills Risk Management Test Approach and Design Ad-Hoc and Exploratory Testing Black and White Box Testing Capacity and Load Testing Usability testing
  • 24. Good skills for developers…
  • 25. How can we improve a teams’ testing? Improve developer awareness of tests 01 Improve tester awareness of development Improve developer awareness of exploratory testing 02 Improve developers exploratory testing skills Move to fully automated testing pipeline 03
  • 26. Step 1 Testers focus on working through test scenarios with dev team at start of sprint During sprint, primarily exploratory testing Developers agree with tester whether test scenarios will be unit, integration or end to end tests Developers implement agreed scenarios Improve developer awareness of tests
  • 27. Step 2 Tester pairs with developers on exploratory testing • Upskills developers to think more like a tester • Adds more ‘testers’ to team Developers pair with testers on automation testing • Improves testers’ coding skills • Peer review of automated test coverage Testers focus more on other areas • Coding • UX • Complex testing: security, performance, etc Improve tester awareness of development Improve developer awareness of exploratory testing
  • 28. Step 3 Developer on Test •DoTing Remove full-time testers from team •Frequent review of testing •Mentoring role for developers Focus on automating everything •Enables more rapid releases •Shortens feedback cycle •Prevents team forgetting to do something Improve developers exploratory testing skills Move to fully automated testing pipeline
  • 29. What happens to the testing role? Treated more like Scrum Master role • The better you are the less the team needs you 01 Treated more like consultant role • Provides short-term upskilling on specialised skills to team 02
  • 30. What happens to the testers? Change team role • Product Owner/Manager • Scrum Master • UX Designer • Developer 01 Become more specialised • Performance • Security • Automation • Accessibility 02
  • 32. Step 2 Tester pairs with developers on exploratory testing • Upskills developers to think more like a tester • Adds more ‘testers’ to team Developers pair with testers on automation testing • Improves testers’ coding skills • Peer review of automated test coverage Testers focus more on other areas • Coding • UX • Complex testing: security, performance, etc Improve tester awareness of development Improve developer awareness of exploratory testing
  • 34. Dave Longman | Headforwards | @dlongman

Editor's Notes

  • #2: Thank you all for coming along. I am super excited about this discussion, I think this will be a hot topic that will hopefully lead to a productive conversation. I am talking about how we can support the increased volume of testing needed for modern software delivery without recruiting 100’s more testers
  • #3: Software delivery is changing…. Actually I think in fact…
  • #4: Software delivery has already changed!
  • #5: We are releasing more frequently than ever. Latest State of DevOps report still shows a split between the best performers (orange) and the worst performers (black) But even the worse performers are significantly reducing their lead times for getting production changes released The best performers are deploying 1000’s of times a year. This is a problem for the traditional ways we have tested
  • #6: Added to this code bases have grown massively. Looking at Photoshop – a world class image manipulation product In 1990 it was only 128K lines of code (a mixture of Pascal and assembler) 22 years later the code base had grown to 4.5M lines of code This is a massive change! How many more issues are likely to be in 4.5M lines of code compared to 128K?
  • #7: The ways we work together have also changed In the early 2000’s we tended to be organised into areas of speciality or functional excellence and project teams were created by pulling individuals together for a defined period of time Now more and more companies are set-up with long lived product teams that ‘live’ throughout the lifetime of an application.
  • #8: Added to all these changes, we are focusing on more things to test
  • #9: A few examples of things we care about. Let’s focus on a few of them Device Testing – everyone is starting to expect even line of business apps work on their tablet or phone, often using poor internet connections API Testing – a lot of companies are now starting to consider their application API as a core product – this means this needs to be included as a key test area rather than just a way to test without using the UI UX – I blame the iPhone but now users care about ease of use more than ever. The days of delivering an internal system that had a mediocre UI are gone Monitoring – with the increase in release cadence and the rise of DevOps, the ability to monitor what the application is doing in production is becoming a key feature that needs to be tested Feature Toggles – again linked to faster releases, we are starting to release more incomplete work into production, hidden behind a feature toggle – this means we are starting to have to test the app with and without the toggle enabled – this massively increases the amount of test scenarios we need to consider. AND this is just the common stuff available now – what about….
  • #12: How can we expect to be able to test these types of applications with our current test approaches? Let’s go back a bit…. We know finding issues later is more expensive
  • #13: This is some old data from Google – how have we as an industry changed to deal with this and to help us release more often? Mark Striebeck from Google opened XPDay 2009 today with a talk titled Developer testing, from the dark ages to the age of enlightenment.  Google spends $100M per year on test automation, and wanted an answer whether they are actually getting a good return on that investment. They estimated that a bug found during TDD costs $5 to fix, which surges to $50 for tests during a full build and $500 during an integration test. It goes to $5000 during a system test. Fixing bugs earlier would save them an estimated $160M per year.
  • #14: AUTOMATION This is great – it allows teams to identify issues earlier than ever and enables us to release more frequently without shipping flaky code BUT it has a cost
  • #15: What challenges have people had getting testers to understand unit test coverage? “The test triangle” – no talk about testing is ready without one of these! In order to leverage low level tests like unit tests as part of your test approach we need to have the testers understand what they do This is a pretty big learning curve for a lot of developers who don’t have a coding background
  • #16: Is this normal? I don’t know – Have any of you captured this type of data for your products? In addition, automated test packs have a lot of code! An example from a recent team – 18 months, about 5 devs. This is not a best practice example! Just an example… 30% of the lines of code are feature code!!!! 70% of the code we wrote is specifically there to check the 30%
  • #17: I suggest that Modern Testing requires Development skills. Over the past 5 or so years the Testing community have been realising this and one suggestion is for testers to learn to code. Is this feasible? Let’s look at what this means
  • #19: A selection of the skills/knowledge needed for a tester to become a good developer – even just focusing on automated testing
  • #20: Who has had success transitioning testers to development? Is this feasible for someone to pick up without a proper training programme? How about taking the opposite approach?
  • #21: Let’s look at the skills a tester brings to the team Initially let’s focus on the general softer skills
  • #22: Things to look for in a tester – probably not complete  I suggest that these are also traits that you find in the best software developers
  • #23: Let’s look at some more testing skills
  • #24: Again not a complete list
  • #25: Has anyone tried getting developers better at testing? I suggest these are also things that a lot of great developers are able to do Perhaps focusing on getting developers better at testing is more effective than trying to get testers better at coding? This is one thing I have been working on over the past 5 years with some of my teams Let’s look at how…
  • #26: 3 general steps Let’s look at each in more detail
  • #27: Objective to get developers to pay more attention to what testers do – and feel more ownership with the test pack Get the testers to own the test scenarios BUT get the developers to IMPLEMENT the tests Easy win – devs like coding, we all like automated tests, devs are lazy  Testers are great at finding bugs and the best way to do this is to do exploratory testing
  • #28: Once the devs are comfortable writing automated tests we need to up the ante Get the testers to pair with the devs to get the devs better at doing exploratory testing Help the testers improve their knowledge – pair with devs on automated testing – this helps build ONE TEAM
  • #29: What skills do testers bring that cannot be easily taught to developers? What challenges are there to get developers performing exploratory testing? The holy grail – developers are actually doing proper testing, properly We need to get to the point that the testers actually believe that the developers are as good as testers!!!
  • #30: OK so what about the current team? Split into the role and the people
  • #32: The big question…. For some it does work – look at Atlassian For me……
  • #33: Well I am stuck at Step 2 And the issue is probably not primarily the developers – it’s more the testers – I have not done a good job convincing them that they will still have a job 