Case study: UpGuard

About UpGuard
UpGuard is a cybersecurity company whose products help hundreds of security, risk and vendor management teams take control of cyber risk and move faster with confidence.

The whole team is extremely happy with this way of working. They get new functionality to their customers quickly and regularly, and always with a high level of quality.

– Daniel Bradbury, Chief Product Officer at UpGuard

Goals
UpGuard was primarily based in the US and had recently set up a development centre in Sydney. UpGuard’s aim was to get into a cycle of successful weekly releases. To achieve this, a highly automated approach to testing was required, and UpGuard engaged Trish Khoo to help set this up.

Deliverables
In just 10 days, Trish delivered the following through a combination of on-site and remote work.

Resources created:

  • UpGuard Testing Strategy for Sydney team
  • UpGuard environments and release strategy
  • A developer’s guide to testing
  • Unit test review for UpGuard Sydney
  • Test cases as acceptance criteria example
  • Testing cheat sheet
  • Postmortem incident template
  • How to break down larger tests into smaller tests

Training given:

  • In-person workshops
  • Acceptance criteria writing
  • Exploratory testing
  • Automated testing (unit, integration testing, e2e)
  • Presentations
  • Test and release strategy overview (Sydney, MTV management team, QA team)
  • A developer’s guide to testing
  • Hiring for a test / infrastructure role

Trish also sourced two candidates for an infrastructure engineer role in Sydney.

Result
The development team in Sydney has been using the testing approach developed by Trish for well over a year now. After adopting basically all of Trish’s recommendations, they’ve successfully completed over 50 production releases. They have no dedicated QA staff, and have instead instilled a philosophy in the team whereby “everyone is responsible for quality”. They automate almost all testing. For everything else, they hold a “team testing” event at the end of every sprint, in which engineers test each other’s work. The whole team is extremely happy with this way of working. They get new functionality to their customers quickly and regularly, and always with a high level of quality.