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
134 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
Optimize For Remote Execution
In A World Of Record And Play, Where Does Playwright Fit In?
How to Identify Risk in a Large Code Base
Testing Ask Me Anything - Whole Team Testing
Organizing Your Very Own Testing Meetup
Practicalities of Building Communities at Scale - Lindsay Strydom & Gareth Waterhouse
Ask Me Anything - Test Management
Exploring Exploratory Testing - Michael Bolton
Shift Left, Shift Right and improve the Centre - A strategy for testers in continuous delivery context - Gus Evangelisti
With a combination of SAST, SCA, and QA, we help developers identify vulnerabilities in applications and remediate them rapidly. Get your free trial today!
Explore MoT
TestBash Brighton 2024
Thu, 12 Sep 2024, 9:00 AM
Weโ€™re shaking things up and bringing TestBash back to Brighton on September 12th and 13th, 2024.
Introduction To HTTP
Learn the fundamental rules that make up HTTP requests and responses