Identifying the Critical Paths A critical path is typically a user experience that is critical to the operation of your business. Examples of user requests that follow critical paths include ordering a taco, making a payment for your child’s Christmas present, donating to a charitable cause,or tracking a parcel. If these requests go wrong or […]
Category: Testing integration configuration
When Things Go Wrong – Operating Serverless
When Things Go Wrong The sheer volume of variables and emergent complexity in the operation of a produc‐ tion serverless workload mean things will go wrong. This does not mean you should be complacent and resist trying to minimize the number of things that could go wrong, of course. You should optimize your development practices, […]
Avoiding Single Points of Failure – Operating Serverless
Avoiding Single Points of Failure Single points of failure can occur at integration points in your system, such as your public API and authorization layer, workflows that depend on a third-party API, or centralized resources like event buses and databases. While certain single points of failure are very difficult to avoid, your aim should always […]
Noncritical paths – Testing Serverless Applications
Noncritical paths The noncritical paths in your application will usually be background processes. These will not be time-sensitive and will be fully recoverable in the event of performance degradation or outages resulting from transient bugs or persistent errors, or following a code fix or rollback. The operational quality of noncritical paths should be primarily supported […]
Just-in-time testing – Testing Serverless Applications
Just-in-time testing To efficiently test and deliver your serverless applications, it is not enough to limit your test coverage; you must also limit the number of times those tests are run. Serverless and infrastructure as code make it possible and inexpensive to replicate your production environment. However, if a test passes in one non-production envi‐ […]
Upholding Standards with a Definition of Done – Testing Serverless Applications
Upholding Standards with a Definition of Done You may have encountered different forms of a “definition of done” or seen various implementations of such a document. The Scrum.org Scrum Glossary defines this as: A formal description of the state of the Increment when it meets the quality measures required for the product. The moment a […]
Environments – Testing Serverless Applications
Environments The traditional approach to software testing involves the use of multiple pre-production, or staging, environments. A snapshot of the application is deployed to the first environment in the chain and then promoted to the next environment as soon as all the tests pass, until this version of the application finally reaches production. The common […]
Integration points testing checklist – Testing Serverless Applications
Integration points testing checklist For each integration point you should capture the failure modes for the categories listed in Table 7-1 and decide whether to cover them with tests. Table 7-1. Integration points testing checklist Remember not to couple decoupled components in your tests. Whenever possible, test the source and target of an integration point […]
Testing integration payloads – Testing Serverless Applications
Testing integration payloads In the example architecture, you can test the payload sent to EventBridge by the event producer Lambda function by verifying it against a schema definition of the event. In JavaScript, you could use a JSON schema validation library, such as Ajv: import Ajv from “ajv”; import { generateOrder } from “./producer”; import […]
Promoting Serverless Observability – Operating Serverless
Promoting Serverless Observability The primary goal of observability is to provide engineers with maximum visibility of their software. Observability is all about optimizing your software engineering practice with a view toward building observable systems—that is, systems that can be inspected and analyzed to understand their behavior, performance, and health. For a deep dive into observability, […]