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