Step Functions(TestState API)から始めるローカルテスト戦略
by
桑野翔
×
Copy
Open
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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