Serverless Testing Workshop

with Paul Swail

Smarter developer 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.

Dates:
November 2020
Price:
$450 USD (for early access subscribers)
Format:
Live group sessions + self-paced video lessons

Enter your email address to be notified when the workshop goes on sale and lock-in your early access discount now.

    “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 this level of confidence with a serverless architecture without burning hours or days on writing different types of tests?

    The integration-first approach to testing serverless applications

    Traditional testing best practices have advocated a testing strategy made up primarily of unit tests. This made sense when the vast majority of your application code ran in the same process. Unit tests are undoubtedly faster to run (and often also to write). And integrations to external systems were usually limited to a SQL database and maybe one or two third party APIs.

    But when you move to a distributed, service-heavy architecture, this assumption doesn’t hold. Most of your imperative code is now distributed across small Lambda functions. And configuration (or misconfiguration) now plays a much larger role in the cause of defects in your application.

    This is why—while unit tests still have their place—integration tests should be your primary focus to maximise your return on investment.

    What you’ll learn

    The Serverless Testing Workshop will show you how to apply the integration-first testing approach to several common serverless patterns.

    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 Q&A 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: Group Q&A session over Zoom
    • All week: Slack chat with feedback from instructor and other group members on video content or exercises

    The group Q&A session on Thursdays will be at 4pm GMT (11am US Eastern Time) and will last for 90 minutes.

    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 interactive 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.

    Dates:
    November 2020
    Price:
    $450 USD (for early access subscribers)
    Format:
    Live group sessions + self-paced video lessons

    Enter your email address to be notified when the workshop goes on sale and lock-in your early access discount now.

      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. The end-to-end testing will be focused at API endpoints and will not include any browser automation.

      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.