Slide 1

Slide 1 text

クラウド事業本部 コンサルティング部 桑野 翔 Step Functionsから始める ローカルテスト戦略 〜TestState API の機能強化(2025年11⽉)〜

Slide 2

Slide 2 text

◯名前 ◯好きなAWSサービス ◯re:Invent参加歴 桑野 翔 くわ の かける API Gateway WebSocket API なし来年は⾏きたい... ⾃⼰紹介

Slide 3

Slide 3 text

Q. Step Functionsのテスト やってますか?

Slide 4

Slide 4 text

「デプロイして動くかどうか確認すればいいんちゃう?」 「テストやってる暇があるなら機能開発優先やってや」 「テストってそもそも必要なん?」 よくある反応

Slide 5

Slide 5 text

本当にそれで⼤丈夫やろか?

Slide 6

Slide 6 text

Step Functionsはこんなサービス! ‧AWSサービスという「関数」を組み合わせた処理を実現 ‧複雑なエラーハンドリングの組み込み ‧条件分岐‧状態遷移の管理ができる ‧データ変換の仕組みを搭載

Slide 7

Slide 7 text

こんな多機能なサービス... テストするしかないやん!

Slide 8

Slide 8 text

TestState APIの歴史 ‧個別ステートのテスト ‧DEBUG / TRACE による検査 ◯2023年 re:Invent 専⽤APIから依存リソースを含む結合テストが可能に!

Slide 9

Slide 9 text

TestState APIの歴史(続き) ◯2023年 re:Invent ×制約がいくつかありました ‧依存リソースのデプロイが必要 ‧Lambda関数やS3など ‧それらを実⾏するためのIAMロール ‧実⾏コストが発⽣(費⽤‧時間)

Slide 10

Slide 10 text

TestState APIの歴史(続き) ‧Mock機能のサポートが追加 ◯2025年11⽉ pre re:Invent 専⽤APIから依存リソースが必要ない単体テストが可能に!

Slide 11

Slide 11 text

アップデート内容を紹介!! 1. Mockサポート ‧依存リソースなしでテストができる ‧roleArnがいらなくなる ※TestState APIを実⾏する権限だけは必要です

Slide 12

Slide 12 text

アップデート内容を紹介!!(続き) 2. ステートの全パターン検証 ‧Map(配列反復処理)やParallel(並列実⾏) 3. エラーパターンの検証 ‧Retry(試⾏回数の境界値テスト)やCatch(例外種別)

Slide 13

Slide 13 text

結局何が変わったん?

Slide 14

Slide 14 text

そもそもStep Functionsで確認したいこと ◎意図したデータ変換がされているか ◎エラーハンドリングが機能するか ◎条件分岐が正しいか

Slide 15

Slide 15 text

アップデートがもたらす変化 ◯Before(2023年 re:Invent) ‧テストするのに依存リソースのデプロイが必要 ‧テスト時にリソースにアクセス&実⾏してしまう ‧狙って条件分岐‧エラーを再現するのが困難 ‧テストにお⾦がかかる&時間もかかる

Slide 16

Slide 16 text

アップデートがもたらす変化(続き) ◯After(2025年11⽉ pre re:Invent) ‧テストに依存リソースのデプロイが不要 ‧テスト時にリソースにアクセス&実⾏しない ‧狙って条件分岐‧エラーを再現するのが簡単 ‧テストにお⾦がかからない&時間も削減

Slide 17

Slide 17 text

関⼼の分離が実現した! ⼀⾔で表すなら... 以上を踏まえてテスト戦略を考えてみる

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Step Functionsのテスト戦略 ◯テストピラミッドに当てはめることができる ‧単体テスト:MockありTestState API  →ステートのロジックを検証する ‧結合テスト:MockなしTestState API  →他のAWSリソースとの統合を検証する ‧E2Eテスト:デプロイ済みワークフローを実⾏  →実環境のワークフロー全体を検証する

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

これが意味すること ◎通常のコードと同じようにテスト ◎⾼速なデプロイフィードバック ◎コードレビュー段階で品質担保 ◎コスト削減 単体テスト感覚で簡単に検証ができる デプロイしなくても即座に検証ができる プルリクマージ前にテストを実施できる サービス実⾏料⾦が不要になり、開発時間も削減できる

Slide 22

Slide 22 text

Step Functionsの開発体験が 劇的に変わります!

Slide 23

Slide 23 text

まとめ(TestState APIアップデートで実現できること) ◎Mockによるローカルテストの実⾏ ◎ステート定義のロジック検証 ◎CI / CD統合の難易度低下 ◎⾼速なフィードバックループの実現 デプロイが不要でコストがかからない データ変換、エラーハンドリング、状態遷移を簡単に再現できる リソース依存がなく、最⼩権限で実⾏できる 開発時間が約40%ほど短縮できる...らしい

Slide 24

Slide 24 text

参考 ‧AWS Update Blog ‧AWS Docs https://aws.amazon.com/jp/about-aws/whats-new/2025/11/aws-step-functions-local-t esting-teststate-api/ docs.aws.amazon.com/step-functions/latest/dg/test-state-isolation.html

Slide 25

Slide 25 text

No content