Serverless Testing Workshop

with Paul Swail

Productive testing strategies for your serverless applications.

Learn how to build quality into your cloud-native backends on AWS without compromising on development velocity with this hands-on workshop.

Starts:
November 2, 2020
Length:
4 weeks
Price:
$450 USD
Earlybird discount of 25% until October 28, 2020.
Format:
Weekly live group sessions + self-paced video lessons
(No live meetings US Thanksgiving week)
Meeting times:
Thursdays at 4:30pm GMT (11:30am US Eastern) for 90 minutes.

“I need a faster feedback loop.”

You chose serverless so you could move quickly. Not having to manage servers and outsourcing your scaling concerns to AWS frees up a large chunk of your time to focus on delivering real value for your users.

At least that’s the story you were told.

But when it came to building out your first serverless application, you realised that this stuff still needs testing as there’s still a lot that can go wrong. And what’s more, your existing approaches to testing your code are no longer as effective.

You could run local simulators of cloud-native services, but these aren’t like-for-like and many cloud services don’t have a local equivalent.

So you start writing more integration tests against the real cloud services. But this is a slooow process. Having to redeploy your code changes to the cloud every time is a productivity killer.

You can speed things up by mocking out all the cloud service calls and running everything locally. But now you’re missing out on catching the whole category of “configuration error” bugs (IAM permissions, anyone?). And given that most of your code now seems to be simply passing data between cloud services, are these unit tests worth the effort it takes to write them?

Professional engineers move fast while minimising breakages.

It’s hard to beat that warm feeling of assurance you get when pushing a PR for a new API endpoint with a comprehensive set of passing tests against a real cloud environment. When you know the chances of it breaking the CI build or of a frontend developer or real user finding a bug in it are miniscule.

You’re a pragmatist and you understand that it’s impossible to write tests to cover every permutation. But how do you reach a sufficient level of confidence with a serverless architecture without burning hours or days on writing different types of tests?

What you’ll learn

This is where the Serverless Testing Workshop can help you.

In the workshop, you’ll learn a framework for approaching testing of any serverless use cases you will encounter, along with concrete patterns for use with specific AWS services.

After completing the workshop, you’ll understand:

  • How to identify test cases by applying an event-based approach to your feature scenarios
  • Patterns for writing tests for commonly used AWS services such as Lambda, API Gateway, AppSync, DynamoDB, EventBridge, SNS, SQS, Cognito, S3 and more
  • How and when to deploy the different categories of test: unit, integration and end-to-end
  • The typical failure modes that your automated tests should aim to detect
  • How to structure your Lambda functions to make them more testable
  • How to test configured behaviour that’s not defined inside a Lambda function
  • Techniques for setting up and tearing down test data that integration tests rely upon
  • How to manage configuration for your tests to maximise their reusability across developer testing and your deployment pipelines

Workshop format

Each workshop lasts for 4 weeks and provides you with a balance of self-paced learning via pre-recorded lectures along with the personalised help and accountability of a weekly live group session and ongoing Slack access. Your average time commitment will be 4–5 hours per week.

Here’s how each week looks:

  • Previous Friday: pre-recorded lessons made available
  • Monday–Wednesday: Review video & lesson content; implement exercises
  • Thursday: Live group session over Zoom
  • All week: Slack chat with feedback from instructor and other group members on video content or exercises

What you’ll get

  • Lifetime access to the growing body of lesson content—videos, code repositories, documentation—including ongoing updates to every piece of content
  • Private Slack access throughout the workshop
  • Lifetime access to all working session call recordings

What you’ll need

  • A basic knowledge of AWS
  • Your own laptop or desktop computer
  • A code editor/IDE and command line terminal. I will be using VSCode in the lessons, but you can use your preferred editor.
  • Access to an AWS account that you have administrator privileges for (all resources used in the exercises should be covered by the AWS Free Tier)
  • Webcam & microphone for participation in weekly live sessions

Hi, I’m Paul Swail, your instructor for this workshop.

I’m the founder of Serverless First, where I help development teams make the transition to serverless within the AWS ecosystem. I write regularly about serverless and the opportunities and challenges that it brings.

I’ve been a professional software developer/architect for almost 20 years and I've also been running a SaaS business on AWS since 2014.

Starts:
November 2, 2020
Length:
4 weeks
Price:
$450 USD
Earlybird discount of 25% until October 28, 2020.
Format:
Weekly live group sessions + self-paced video lessons
(No live meetings US Thanksgiving week)
Meeting times:
Thursdays at 4:30pm GMT (11:30am US Eastern) for 90 minutes.

100% money back guarantee

If you’re not satisfied with the workshop, you can take it again or ask for your money back within 30 days of completion and I’ll refund your full fee.

FAQs

How much time is this going to take?

Your average time commitment will be 4–5 hours per week. This includes time reviewing the videos, completing exercises and attending the weekly live session.

Will you be covering “testing in production” techniques?

No, this workshop is focused on helping developers write automated tests to detect defects before they get into production. While techniques and practices such as monitoring and chaos engineering can be very valuable to an engineering team, we don’t have the time to cover them in this course. More specialised forms of pre-production testing, such as load testing or penetration testing are also out of scope.

Will you be covering any frontend testing?

No. While some of the testing strategies and tools in the workshop can also be used in frontend development, we will be focusing entirely on backend workloads.

What programming runtime will you be using?

The code examples and exercises all use Node.js, so you will need a basic knowledge of JavaScript to understand these. However the patterns taught can be ported to other runtimes.

Do you offer a volume discount?

Yes. If you have 3 or more students to enrol, you’ll get 15% off. Just email me at paul@serverlessfirst.com to get a discount code.

Do you offer private workshops for an entire team?

Yes. If you wish to enrol 10 or more students from your company, I can arrange to run the workshop privately (and remotely) for them. Just email me at paul@serverlessfirst.com to schedule this.

I have other questions about the workshop...

I’d love to help. Email me at paul@serverlessfirst.com.