why can't developers be testers discussion

34
Why can’t developers be testers? Dave Longman | Headforwards | @dlongman

Upload: dave-longman

Post on 23-Jan-2018

74 views

Category:

Technology


2 download

TRANSCRIPT

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.1128K

Version CS64.5M

0

500

1000

1500

2000

2500

3000

3500

4000

4500

5000

1990 2012

Lin

es o

f C

od

e Tho

usa

nd

s

Year of Release

Number of lines of code for Photoshop over time

Teams have changed

2000’SPr

oje

ct T

eam

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

AccessibilityUsability

SafariMacOS

Microservices

CloudContinuous Delivery

Firefox

Chrome

Security

Internet Explorer

Network Topology

Connectivity

A/B Testing

AutomationSelenium

iOS

AndroidAPI

REST

SOAP

JSON

YAMLConfiguration

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

Co

st

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

Lin

es o

f C

od

e

Tho

usa

nd

s

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

TesterTesting 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

DeveloperDeveloper 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

01Improve tester awareness of development

Improve developer awareness of exploratory testing

02Improve 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

01Treated 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

01Become 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