Today the SMEx Digital team of Mary-Anne, Pavithra, Sowmya and myself attended the Testing Days Australia conference in Melbourne where SMEx Digital is a Silver Partner.
It was an interesting day all about the trends and direction of Quality Assurance and Testing; how they fit in at different scales from small projects to large projects and how we fit QA into agile methodologies.
OK to use OKRs
The day kicked off with Jennie Naylor talking about Using OKRs (Objectives and Key Results) to Grow Quality Ownership.
It was a very interesting talk about:
- Ensuring quality as a team
- Thinking in terms of outcomes rather than tasks (setting a “North Star” for the team)
- Measuring progress towards the outcome
- Assigning ownership to the OKR to someone who has the authority to drive it
Jenny also gave an interesting screenshot of Uber’s Growth Plan OKR written on a napkin
I can see this being used in conjunction with Agile and Scrum where the OKR is defined at the product level, maybe in conjunction with a release goal or milestone. You can then use the Sprint Review and Retrospectives to measure/review how you are tracking against the OKR and make the necessary adjustments for the next sprint.
One area to target is code quality, and with tools like SonarQube, it makes it easy to track if you are reaching the goal or not.
As an example, here are a few OKRs that we can set up:
- Improve Bug quality gate from “D” to “B”
- Increase Unit Test code coverage from 0.8% to 10%
- Keep vulnerabilities at “B” or above
To review this, we could just bring up the SonarQube report at each sprint review to see how we are tracking to these objectives.
Microservices – Contract Testing
The next interesting talk was from Scott Miles on “Testing Microservices through Contract Testing” where he showed how to solve the problem where different services can still fail in production even though each of the component and unit tests for each microservice pass.
The idea is that we don’t want to have to increase the amount of integration tests that we have to do because integration tests are heavy. It would be more effective to write more tests at a lower level. So, Scott introduces the concept of Contract testing as a new layer in the Testing Pyramid between integration and component.
Basically, the premise is to have a defined contract that both the producer and consumer of the API use as the agreement as to how the API should function. Each individual service can then write unit tests against the contract and ensure any mock services used to simulate the API also adheres to the contract.
The two tools shown were Swagger and Pact.
All in all, it was a very informative day. Maybe next time we will do some presentations ourselves!