Ministry of Testing 

A developer's journey in testing

 

Colin Graham

Who the fuck is this clown?

What am I going to prattle on about?

  • We're going to take a whistle stop tour through a career in software development in Ireland
  • How these projects were tested, both by myself and .....
  • The testers I had the pleasure or fucking joy of working with

Lets start with college

  • They honestly tried, there was just no context
  • Exposed to unit tests
  • Learned selenium

An online bank

  • A fat front end in modern terms, JSF
  • Spring webflow mid end and a monster mainframe out back somewhere

We were rebuilding the bank from scratch

 

The old version of the bank was in a heap

 

 

How did we automate tesing

  • Unit tests from day one
  • Into the project we included selenium tests as End-to-end tests
  • No TDD
  • No ATDD / BDD

How did we test manually

  • After a piece of work had passed automated testing we'd hand it over to a tester
  • The tester wrote test scripts (not the automated sort) 
  • Any deviation from the script was a bug
  • Test scripts and specifications from a Business Analyst were not necessarily related

How do I test while I'm actively developing something?

  • Stage 1 : Actively trying to make it work
    • Pick a path (mostly happy) and don't change it
  • Stage 2 : How well does it work
    • Try other paths

How did we communicate with our testers

We meet our first tester

L

Our system tester

L

  • Mean and scary
  • Sat in the office next door
  • Only interacted via Bugzilla

L

  • An absolute pleasure to work with
  • Was able to explain in detail how the system was supposed to work

When the offices were reschuffled

L

"Can I ask you a question"

Best quote

Why is co-location of developers and testers important?

Our second tester

S

Our UAT Tester

S

  • Worked in a different building miles away 
  • Hated the fucker
  • Only interacted via Bugzilla

S

Best quote

Didnt have one!!!

Developers look at what they've build as their code baby

It can be easy to hurt their feelings 

Greenfield event trading WS

  • Jersey, Spring, Hibernate
  • jUnit, jMeter and later jBehave 
  • High levels of unit test coverage from day one
  • We had improved on what we had learned up to that point, but our work was still exceedingly buggy

Because what we were building was wrong

  • We were building off a spec that was thrown at us from another dept
  • We'd complete work, only to have it kicked back
  • Doing what you're told isn't always a good thing
  • We hadn't yet learned to question everything

Tester 3

SG

Our BA, who was also a tester ..... sort of

SG

  • Even meaner and a lot scarier than L
  • Knew our business domain inside and out

SG

"What the fuck is this shit??"

Best quote

New message distribution system

We were rebuilding a massive part of our infrastructure 

 

 

We got Testers

We got our hands on 4 genius testers

... and we learned to question everything

We put ATDD at the forefront of our development strategy

All work was agreed and specified in Given-When-Then format before development began

Developers weren't allowed throw cards over a wall at testers

An actual agile tester

M

Not leaving out G, MC and D

M

  • M was confusing when we first met
  • She asked questions about everything
  • ...... figuratively everything
  • M became a port of call when you wanted to know how something worked

Lets talk about a developer

J

Junior Java Developer

J

  • Arrogant, could do no wrong
  • "Do we really need to test this"
  • "That's not automatable"
  • Had to be constantly brought into line with the rest of the team
  • When the environment changed, his negative behaviour resurfaced

We automated everything .....

  • Unit test coverage
  • Acceptance tests defined by our business
  • Static analysis
  • Security analysis
  • Mutation Testing

Automation puts a focus on quality

  • If unit test coverage fails a build, more must be written
  • Criteria agreed at the outset of work must be implemented. Anything outside this criteria isnt a bug, its a change
  • If sonar complains about code, theres not much room for debate
  • .... no one likes security analysers, as necessary as they may be
  • I've never seen a developer win an argument against a mutation test

Developers weren't trying to make it

 

Testers weren't trying to break it

 

Everyone was in the same quality focused boat

M

"We have a bug in UAT!!!!"

Best quote

... and then we tried to do front end work

We had to learn how to test again

We wrote our own testing framework

How can I help developers to be better testers?

  • Get em early
  • Automate everything, make a system the bad guy
  • Much of it comes down to team culture
  • Its difficult to hate a tester you have a personal relationship with
  • You cant expect developers to develop features they haven't been asked to
  • The process has to make developers accountable

Testing

By harmingcola

Testing

  • 482