Step Functions(TestState API)から始めるローカルテスト戦略
by
桑野翔
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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