Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
アジャイル・スクラム勉強会_スクラム開発のテスト
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Satoshi Harada
September 07, 2020
Programming
89
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
アジャイル・スクラム勉強会_スクラム開発のテスト
Satoshi Harada
September 07, 2020
More Decks by Satoshi Harada
See All by Satoshi Harada
心理学を学び活用することで偉大なスクラムマスターを目指す − 大学とコミュニティを組み合わせた学びの循環 / Becoming a great Scrum Master by learning and using psychology
psj59129
1
2.4k
アジャイル社内普及ご近所さんマップを作ろう / Let's create an agile neighborhood map
psj59129
1
200
製造業メカアジャイルへの挑戦!社内コミュニティを軸にした巻き込み / The challenge of mecha-agile manufacturing
psj59129
1
210
保育士チームが実践している連続的な観察と多面的な観察を共有するための振り返り / Reflection to share “continuous and multifaceted observations” as practiced by a team of childcare professionals
psj59129
1
6k
保育とふりかえりをコネクト! / connect childcare and retrospectives!
psj59129
1
1.4k
Whyから始めよう!スクラムチームが力強く前に進むための「なぜやるのか」を考える
psj59129
1
2.8k
その心理的安全性は間違っている!心理的安全性で陥りやすい間違いとその対策
psj59129
1
1.7k
これからのスクラムマスターのキャリアプランの話をしよう - スクラムマスターの前に広がる世界
psj59129
0
3.2k
ファーストペンギンを志すものに伝えたい - 1人目のアジャイル推進者がたどった成功と失敗
psj59129
0
500
Other Decks in Programming
See All in Programming
コーディングルールの鮮度を保ちたい for SRE NEXT 2026 / keep-fresh-go-internal-conventions-sre-next-2026
handlename
0
140
SREの積み重ねがAI駆動開発のガードレールになった ― 7つの実践/SRE Guardrails The 7
tomoyakitaura
8
4k
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.4k
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
310
フィードバックで育てるAI開発
kotaminato
1
110
LLMによるContent Moderationの本番運用の裏側と品質担保への挑戦
suikabar
3
840
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
17
8.9k
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
240
AIキャラアプリkaiwaの低遅延音声通話基盤をどう作ったか - AWS Gravitonで支える低遅延・低コストAI Agent基盤
mogamit
0
170
AIエージェントで 変わるAndroid開発環境
takahirom
2
550
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
AIを活用したE2Eテスト実装効率化のあゆみ / ebisu-mobile-14-kotetu
kotetuco
0
170
Featured
See All Featured
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
970
Prompt Engineering for Job Search
mfonobong
0
370
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
190
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
220
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.5k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
150
How to train your dragon (web standard)
notwaldorf
97
6.7k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Transcript
スクラム開発入門 スクラム開発のテスト アジャイル・スクラム勉強会 Satoshi Harada
WF開発のテストをおさらい • WF開発の設計は工程毎に区切って順番に進める • テストは、各設計工程に対応する内容でこちらも順番に 進める • 設計同様に、テストも前工程に戻ることは良しとしない ► つまり各テストは1回だけ行う想定となっている
※図の出典 https://webrage.jp/techblog/v_shaped_mode/
スクラム開発のテストは? • スクラム開発はスプリントという単位で繰り返し機能を 開発する ► 1つのスプリント内で機能に対する要件定義・設計・実装 ・テストまで行い、機能を完成させる ► 1つのスプリント内で単体テスト・結合テスト・システム テスト・受け入れテストを行う
► スクラムはスプリントの最終日にスプリントレビューを行 うので、これが受け入れテストとなる ※図の出典 https://webrage.jp/techblog/v_shaped_mode/
WFとスクラムで何が異なるのか • テストの回数が異なる ► WFでは、単体テスト・結合テスト・システムテスト・受け入れテストをそ れぞれ1回だけ行う ► スクラムでは、1スプリントで最低1回はテストを行うので、4スプリント あれば最低4回はテストを行う •
テストにかけられる時間が異なる ► WFでは、テスト工程という比較的長期の期間を確保してテストを行う ► スクラムでは、テストのためだけの期間を確保せず、スプリントという限ら れた時間の中でテストを行う必要がある • リグレッションテストの頻度が異なる ► 過去に完成させた機能について、新たに追加した機能で意図しない影響が及 んでいないか確認する必要がある ► WFでも変更があればリグレッションテストは行うが、スクラム開発ではス プリント毎にリグレッションテストを行うためテスト項目数が増えていく これらの理由から、スクラム開発(アジャイル開発)では頻 繁に・短時間で・大量のテスト項目を実施できるしくみを整 える必要がある。
テストの実施方法 手動テスト 自動テスト テストの 実施方法 テストケースの実施手順に 沿って手動で実施 テストコードに沿って自動 で実施 テスト結果の
確認方法 テストケースの確認手順に 沿って目視で結果の正しさ を確認 テストコード内で結果の正 しさが自動で検証されるの で、成功・失敗の結果サマ リーを確認 テスト実施・結果 確認の所要時間 長時間 短時間 テストの正確さ テスターに依存 正確 テストの成果物 • テスト観点 • テストケース • エビデンス • テスト観点 • テストケース • テストコード テストの実施方法は手動テストと自動テストがある。 テストコードが既にある状態であれば、自動テストが断然効率的。 まだテストコードが無い状態だと、まずはテストコード作成に時間 と人的リソースを投資する必要がある。
全てのテストを自動化する? • フロントエンド(HTML, CSS, JavaScriptなど) ► 見栄えに関するコード(HTMLやCSS)は、変更の頻度が多くI/Oで検証でき ないためテスト自動化は難しい ✔ テスト自動化による工数削減よりも、テストコードのメンテナンスコストのほう
が大きくなる場合が多い ✔ デザインが確定したタイミングでUIのスナップショットを作成し、E2Eテストと スナップショットテストを組み合わせてデザインを壊していないか確認するのは 有用 ► ロジックに関するコード(JavaScript)は、UIほど変更頻度が多くなくI/O で検証できるためテスト自動化を進める • バックエンド(Java, C#, PHPなど) ► I/Oで検証ができるため、テスト自動化を進める ✔ DB操作やファイル操作を伴うテストは難易度が上がるが、モックやスタブを駆使 してテスト自動化を進める 自動テストは全パターンのテストケース網羅(テストカバレッジ100%)を目 指すことが目的ではない。 壊れやすい箇所や、壊れたらヤバい箇所を頻繁に・短時間で検証できるよう にすることが目的。そのため、必要だと思う箇所を優先して自動テストを作 成し、必要ではないところには自動テストを作成しないという判断もアリ。
最初からテストコードを書く? • 最初からテストコードを書くのがベストではある ► 併せて、TDD(テスト駆動開発)でテストコードを書きな がら設計を行い、設計完了=テストコードの作成完了であ れば更に良い • 最初は手動テストとし、後からテストコードを追加する のでも良い
► プロジェクト序盤は時間的制約やスキルの問題でテスト コードまで手が回らないことはよくある ► テストコードが無いよりは、後出しでも良いのであったほ うが良い ✔ スプリントが進む毎にリグレッションテストの範囲が増えるの で、手動テストは確実に辛くなる ✔ リファクタリングをしようとしたときに手動テストでしか機能 を壊していないことを確認できないと、怖い&壊していないか どうかの検証が面倒なので手が出せない
テストエンジニアの役割 テストエンジニアというロールが開発チームに参加する場合、テスト エンジニアの役割はWFとスクラムで異なる。 • テストケースの検討やテストコード作成は開発エンジニアが行う ► 理想的には、TDD(テスト駆動開発)でテストコードを書くので、テ ストケースを考えたりテストコードを書くのは開発エンジニアの仕事 • では、テストエンジニアの役割とは?
► テストのルールや観点を考える ✔ どの範囲まではテストコードを書くべきで、どの範囲は手動テストで行う か取り纏める ✔ 単体テスト・結合テスト・システムテスト・受け入れテストではそれぞ れ、どのようなレベルのテストを行うかについて観点として取り纏める ► テスト自動化を推進する ✔ テスト自動化の重要性をチームメンバーに説く ✔ テスト自動化の下地を作る ✔ テストフレームワークの選定 ✔ テストコードの書き方を教育 ✔ アサーションの書き方の例を作る ✔ モックやスタブを使うちょっとむずかしいテストの書き方の例を作る などなど
質問Time ※全員に質問 テストコードを書いたことはありますか? 書いたことがある人は、テストコードを書くと きにどのあたりが難しいと感じましたか? テストコードがあると、ビジネスコードの改善 (リファクタリング)を安全に行うことができ ます。安全に行える理由を説明してください。 また、リファクタリングを行うとどのようなメ リットがありそうでしょうか?