Improving Your Testing Through Operability

Gain the tools you need to become an operability advocate. Making your testing even more awesome along the way!

    • Ash Winter's profile
  • Intermediate
  • 13
  • 7
131 already enrolled
Introducing Operability
  • Recognise what makes a system operable for whom it matters
  • Understand how a more operable system enhances their testing
Using Runbooks
  • Describe what a runbook is and where to find examples of runbooks
  • Outline what the different sections of a runbook cover
  • Relate how the different sections of a runbook impacts your testing
Application Setup
  • Install the prerequisites for a Node.js HTTP API using MongoDB
  • Retrieve the source code of our application and install it locally
  • Understand the application purpose and architecture
Simple Logging
  • Describe the elements of an effective log entry
  • Understand how logs can be an effective aid to testing
  • Enable simple logging of api request and database information
  • Change the standard log format for an api request
Targeted Logging
  • Describe the http request and response elements available for logging
  • Understand how different roles can leverage targeted logging formats
  • Create a targeted logging format for performance information using request and response elements
  • Create a tracing identifier and add to a targeted logging format
Structured Logging
  • Describe the benefits of machine readability in log files
  • Enhance an existing log format into a structured json format
  • Understand the testing implications of creating and maintaining log files
  • Add log export and rotation policies to an application
Event Logging
  • Describe what characteristics an event has when compared to a log line
  • Enhance our application with diagnostic events
  • Build a simple event lookup within our application
Instrumenting Our App
  • Describe the benefits of instrumentation for an application.
  • Add a library to our application to gather metrics for each API endpoint
  • List the different types of metrics Prometheus offers
  • Explain the function of the /metrics endpoint
Querying Instrumented Data
  • Explain the fundamentals of a time-series database
  • Configure an instance of Prometheus to store and display data generated by an application
  • Describe the concepts of metrics, labels and operators in Prometheus Query Language (PromQL)
  • Apply the concepts of PromQL to create queries for responses by endpoints and time
Implement Alerting
  • Describe what characteristics good alerts have
  • Implement a simple alert using a Prometheus query
  • Compare symptom based and cause based alerts
  • Build more complex alerts for symptoms and causes
Adding Query Hooks
  • Define the benefits of query hooks for testability
  • Explain the concepts of liveness and readiness and the role of hooks
  • Articulate the case for adding hooks to a system
  • Modify your application to add a query hook
Adding Control Hooks
  • Define the different types of action hooks
  • Modify your application to add an action hook
Putting Operability Into Practice
  • Describe the benefits of a balance of testing techniques within your team and how better operability can be an enabler

System reliability, handling failure and quick recovery are important but often neglected. Outages and security failures are big news. Mitigating these through better operability is growing in importance. This has led to DevOps culture and practices growing popularity. Your organisation might be on this journey too.

Operable systems are easy to deploy and test. They provide actionable information about their state and are predictable when problems occur. We can use this focus on operability to make our testing lives better.

In this course, you'll learn how to improve operability in your system and your team. We will put in place effective logging, metrics and alerting within an application. Also, we will learn activities that you can do as a team. Such as improving key collaboration artefacts such as run-books.

The course has been targeted to all skill levels, but these would be great to have:

  • A basic understanding of HTTP API’s
  • Some coding skill in any language
  • Some experience of using the terminal to navigate to and start applications

Resources you will use throughout this course:

  • Visual Studio Code
  • Postman
  • Git
  • Terminal
Getting Started With The Cypress Recorder
How Pro Wrestling Made Me A World Champion Tester - Jenna Charlton
How Admiral Group Automates
Tips to Improve Collaboration Between Testers and Developers
Grow your Career with Tech Communities
How to turn a 403 into a 202 at the API Party - Gwen Diagram & Ash Winter
A Balancing Act: Finding A Place For Exploratory Testing
How to Overcome Common Challenges in Exploratory Testing
To Boldly Go: Taking The Enterprise On A Journey To Structured Exploratory Testing - Aaron Hodder
Explore MoT
Episode One: The Companion
A free monthly virtual software testing community gathering
Automating API Checks With RestSharp
Learn everything you need to start automating API checks using RestSharp