a serverless architecture • A simple three-state Step Functions workflow (all Lambda) • Unit tests exist per state, but end-to-end state machine testing is manual with visual I/O verification. Context- Click-Through, Not Scripted
a serverless architecture • A simple three-state Step Functions workflow (all Lambda) • Unit tests exist per state, but end-to-end state machine testing is manual with visual I/O verification. Context- Click-Through, Not Scripted Wait—now I really want this automated.(^◇^;)
via AWS SAM • Workflow: 3 states in a straight line, all built as Lambda • Tests: for each state, assert that inputs/outputs contain the expected values, etc. • CI: self-contained in GitHub Actions (no deploy to AWS) Try - Workflow Tests with SFN Local
Functions on your machine.Integrations can hit mock responses, local endpoints, or real AWS. Try - Workflow Tests with SFN Local Source:DevelopersIO https://dev.classmethod.jp/articles/step-functions-local-tried/
data out ◦ Low ops fidelity (IAM, CloudWatch etc.) • Prod use → LocalStack ◦ Recreates many AWS services—including Step Functions—in one local environment ◦ Easy to plug into CI ▪ →note that some features aren’t available for free. However… Try - Workflow Tests with SFN Local
behavior ◦ →Tests are tools for understanding • Build Trust through Reproducibility & Explainability • Grasp the Risks ◦ →If we can quantify the risk, can devise countermeasures Trust. Predict. Observe. The better the path, the more risk becomes visible and manageable. Reflections - Rethinking from a testing perspective https://www.amazon.co.jp/dp/B074BQQ96X?ref =ppx_yo2ov_dt_b_fed_digi_asin_title_351
◦ Logic, contracts, connections, workflows, and user paths—each has its own test. • Boundaries ◦ Cut at observable units; the system explains itself ◦ Hard to test → Responsibility is piled up Reflections - Rethinking from a testing perspective
(concentrated responsibility, fuzzy boundaries, scattered side effects) • Enable fearless refactoring with an automated safety net • Shorten cycle time ◦ change small → get fast certainty → ship Reflections - Rethinking from a testing perspective
(concentrated responsibility, fuzzy boundaries, scattered side effects) • Enable fearless refactoring with an automated safety net • Shorten cycle time ◦ change small → get fast certainty → ship High testability leads to better design —and faster delivery. Reflections - Rethinking from a testing perspective
• Ship, learn, iterate. • Continuously reassess what “user value” means. →Testing and serverless are means to deliver “user value” Reflections - Rethinking from a testing perspective