in済みのWeb APIサービス 32 for End user for administrator API service service A End users BASE Staffs • 新規構築ではなくすでに本番稼働していたサービス • アプリケーション開発だけでなくインフラ・CI/CDもすべて自チームのみで運用し ている、意思決定のハードルが低いのでまずここで試した Database RDBMS KVS service B external API
39 Designer Engineer PO Test engineer Business focus Technical Focus • Test engineer • Product Owner • Engineering program manager ...etc Who Why ユーザーストーリーの実装が受け入れ条 件を満たしているのか確かめたい
in アジャイルテスト 64 64 「具体的な例」によって 開発をガイドする 第2象限のテストプラクティス “Example-driven development, whether you use ATDD, BDD, or SBE, is a core practice for agile teams, and it takes work and practice to learn how to do it effectively. “ (『More Agile Testing』) → 「具体的な例による開発のガイド」となる Example-driven development は、アジャイルチームのコアプラクティス
「ストーリー受け入れテスト」とは 68 • Acceptance Test(受け入れテスト)は、様々なイメージで分かれる ◦ ex. ユーザー受け入れテスト(UAT)・運用受け入れテスト...etc • ATDDにおけるAcceptance Testの定義 = ストーリー受け入れテスト ◦ 「各ストーリーが提供しなければならないビジネス意図を記述したテスト」 • 機能テストのみではなく、他の品質特性の要件(セキュリティやアクセシビリ ティ、パフォーマンスなど)もスコープに含む “We define acceptance tests as the tests that describe the business intent each story must deliver. (omit) However, they may also include a broad range of tests that encompass everything except TDD at the unit and component level. They may include quality attributes such as usability and performance, although we prefer to think of those as constraints that apply to all stories.” (『More Agile Testing』 Chapter 11. Getting Examples)
例が駆動する「Example-driven development」 71 “Acceptance Test-Driven Development: Not as Optional as You Think” by Jennitta Andrea https://www.stickyminds.com/article/acceptance-test-driven-development-not-optional-you-think • ストーリー開発前に、要求を具体的な例と期待値として表現する。この際、ビジネス・開発者・テスター等 ステークホルダーによる共同作業を行う • 例(Example)を書いて自動化し開発を進め、自動化されたチェックに合格すると、探索的テスト等他テスト を行う準備ができたとみなす
74 for End user for administrator API service service A End users BASE Staffs Database RDBMS KVS service B external API new service • サービスの管理業務を担う”for admin”とエンドユーザー向けの”for end user” • アプリケーション開発までは自チームだけで完結するがCI/CDやインフラは別チー ムも関わってくる”大きなシステム”
external service external service Frontend engineer Yさん Service A engineer Zさん Test engineer Xさん ※ ウェブアプリケーションの場合 人によって異なる E2Eスコープ 例: Test engineer Xさん: エンドユーザーと同じインターフェースから機能仕様を 満たすかについての関心がつよい Frontend engineer Yさん: 開発業務対象のFrontendシステムに対するテスト、ゆえ にブラウザ操作自動化 = E2E になりがち Service A engineer Zさん: 開発業務対象がAPIサービス、”Service A”の範囲がE2E のスコープ