Turning developers into testers Dave Longman Headforwards dlongman

  • Slides: 45
Download presentation
Turning developers into testers Dave Longman | Headforwards | @dlongman

Turning developers into testers Dave Longman | Headforwards | @dlongman

Software Delivery is Changing

Software Delivery is Changing

Software Delivery has changed

Software Delivery has changed

We are releasing more often 2017 State of Dev. Ops Report

We are releasing more often 2017 State of Dev. Ops Report

Code bases have grown Lines of Code Thousands Number of lines of code for

Code bases have grown Lines of Code Thousands Number of lines of code for Photoshop over time 5000 4500 4000 3500 3000 2500 2000 1500 1000 500 0 Version CS 6 4. 5 M Version 1. 0. 1 128 K 1990 Year of Release 2012

Teams have changed NOW Project Team 2000’S Development Department Data Department Developer Product Owner

Teams have changed NOW Project Team 2000’S Development Department Data Department Developer Product Owner Design & Architecture Testing Department PMO Developer Product Team Scrum Master Developer Tester

There’s more testing than ever!

There’s more testing than ever!

Compliance Testing Firefox Zero downtime deployments UX Selenium Device Testing Performance Profiling SOAP Automation

Compliance Testing Firefox Zero downtime deployments UX Selenium Device Testing Performance Profiling SOAP Automation Network Topology Safari Security Mac. OS Internationalisation Guerrilla Testing JSON REST Usability Accessibility Internet Explorer API Android Feature Toggles Chrome Cloud Continuous Delivery Connectivity Security i. OS Monitoring YAML Regression Testing Configuration Microservices Test in Production A/B Testing

Virtual/Augmented Reality

Virtual/Augmented Reality

Voice as an interface

Voice as an interface

Artificial Intelligence

Artificial Intelligence

Finding defects later is expensive Cost of defects at Google $ 6, 000 $

Finding defects later is expensive Cost of defects at Google $ 6, 000 $ 5, 000 Cost $ 4, 000 $ 3, 000 $ 2, 000 $ 1, 000 $- $5 $ 50 TDD Build Test $ 500 Integration Testing Stage System Test Mark Striebeck presentation at XPDay 2009 Developer testing, from the dark ages to the age of enlightenment

Automation

Automation

Testers need to understand more E 2 E Service/API Integration Unit

Testers need to understand more E 2 E Service/API Integration Unit

Lines of Code Thousands Test code bases are big! 25 20 15 10 5

Lines of Code Thousands Test code bases are big! 25 20 15 10 5 0 Application Unit/Integration Tests E 2 E Tests

Modern testing requires more development skills

Modern testing requires more development skills

Can testers become developers?

Can testers become developers?

Web Development • HTML • CSS • Java. Script Automated Testing Design & Architecture

Web Development • HTML • CSS • Java. Script Automated Testing Design & Architecture • Selenium • Gherkin/Cucumber • Unit, Integration, API testing • SOLID principles • Clean Code Coding Skills Languages • Python • C# • Java • Ruby • SQL Security • OWASP • SSL • Networking • OAuth Cloud • Azure • AWS • GCP • Continuous Deployment

That’s a lot to learn!

That’s a lot to learn!

Can developers become testers?

Can developers become testers?

Domain Expertise Traits of a Good Tester Takes Customer Perspective Analytical and Logical Thinking

Domain Expertise Traits of a Good Tester Takes Customer Perspective Analytical and Logical Thinking Testing Traits “Test to Break” Approach Awareness of Business Impact Great Communication Skills

Domain Expertise Traits of a Good Developer Takes Customer Perspective Analytical and Logical Thinking

Domain Expertise Traits of a Good Developer Takes Customer Perspective Analytical and Logical Thinking Developer Traits? “Test to Break” Approach Awareness of Business Impact Great Communication Skills

Risk Management Test Approach and Design Usability testing Testing Skills Ad-Hoc and Exploratory Testing

Risk Management Test Approach and Design Usability testing Testing Skills Ad-Hoc and Exploratory Testing Capacity and Load Testing Black and White Box Testing Skills

Good skills for developers…

Good skills for developers…

How can we improve a teams testing? 01 02 03 Improve developer awareness of

How can we improve a teams testing? 01 02 03 Improve developer awareness of tests Improve tester awareness of development Improve developer awareness of exploratory testing Improve developers exploratory testing skills Move to fully automated testing pipeline

Developers agree with tester whether test scenarios will be unit, integration or end to

Developers agree with tester whether test scenarios will be unit, integration or end to end tests Testers focus on working through test scenarios with dev team at start of sprint Step 1 Improve developer awareness of tests During sprint, primarily exploratory testing Developers implement agreed scenarios

Tester pairs with developers on exploratory testing Testers focus more on other areas •

Tester pairs with developers on exploratory testing Testers focus more on other areas • Coding • UX • Complex testing: security, performance, etc • Upskills developers to think more like a tester • Adds more ‘testers’ to team Step 2 Improve tester awareness of development Improve developer awareness of exploratory testing Developers pair with testers on automation testing • Improves testers’ coding skills • Peer review of automated test coverage

Focus on automating everything • Enables more rapid releases • Shortens feedback cycle •

Focus on automating everything • Enables more rapid releases • Shortens feedback cycle • Prevents team forgetting to do something Developer on Test • Do. Ting Step 3 Improve developers exploratory testing skills Move to fully automated testing pipeline Remove full-time testers from team • Frequent review of testing • Mentoring role for developers

But…

But…

What happens to the tester role? 01 02 Treated more like Scrum Master role

What happens to the tester role? 01 02 Treated more like Scrum Master role Treated more like consultant role • The better you are the less the team needs you • Provides short-term upskilling on specialised skills to team

What happens to the testers? 01 02 Change team role Become more specialised •

What happens to the testers? 01 02 Change team role Become more specialised • • Product Owner/Manager Scrum Master UX Designer Developer Performance Security Automation Accessibility

What’s in it for the developers? 01 02 03 Less Bug Fixing Better Quality

What’s in it for the developers? 01 02 03 Less Bug Fixing Better Quality Code More Autonomy • Understanding test scenarios better prevents defects • Designing code to make testing easier leads to more maintainable code • Can make educated decisions about the “right” place to test the functionality

Does it work?

Does it work?

Tester pairs with developers on exploratory testing Testers focus more on other areas •

Tester pairs with developers on exploratory testing Testers focus more on other areas • Coding • UX • Complex testing: security, performance, etc • Upskills developers to think more like a tester • Adds more ‘testers’ to team Step 2 Improve tester awareness of development Improve developer awareness of exploratory testing Developers pair with testers on automation testing • Improves testers’ coding skills • Peer review of automated test coverage

Summary

Summary

Developers are capable of becoming effective testers

Developers are capable of becoming effective testers

We need to be conscious of the impact of change to the testers

We need to be conscious of the impact of change to the testers

Moving away from dedicated testers allows us to scale better

Moving away from dedicated testers allows us to scale better

Dave Longman | Headforwards | @dlongman

Dave Longman | Headforwards | @dlongman