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
Satoshi Harada
September 07, 2020
Programming
90
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.5k
アジャイル社内普及ご近所さんマップを作ろう / Let's create an agile neighborhood map
psj59129
1
210
製造業メカアジャイルへの挑戦!社内コミュニティを軸にした巻き込み / 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
6.1k
保育とふりかえりをコネクト! / connect childcare and retrospectives!
psj59129
1
1.4k
Whyから始めよう!スクラムチームが力強く前に進むための「なぜやるのか」を考える
psj59129
1
2.8k
その心理的安全性は間違っている!心理的安全性で陥りやすい間違いとその対策
psj59129
1
1.7k
これからのスクラムマスターのキャリアプランの話をしよう - スクラムマスターの前に広がる世界
psj59129
0
3.3k
ファーストペンギンを志すものに伝えたい - 1人目のアジャイル推進者がたどった成功と失敗
psj59129
0
500
Other Decks in Programming
See All in Programming
Apache Hive: そしてCloud Native Lakehouseへ
okumin
1
200
仕様書を書く前にハーネスを作る - Agent Native開発は「探索を速く、判定を固く」
gotalab555
4
1.5k
Claude Team Plan導入・ガイド
tk3fftk
0
250
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
290
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
170
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
1
470
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
gotok365
3
2.8k
jsmini JavaScript Engine を作ってみた話
yosuke_furukawa
PRO
0
290
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
520
Welcome to the "Parametricity" 🏙️ − Generic だけど Specific な世界 −
guvalif
PRO
1
200
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
550
Claude Opus 4.6以後の受託開発エンジニアの変化(Claude Code開発ノウハウ大公開スペシャルbyクラスメソッド)
iidatakuma
1
970
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
360
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
760
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
160
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
240
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
400
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
280
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
66
57k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
340
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
Agile that works and the tools we love
rasmusluckow
331
22k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
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 ※全員に質問 テストコードを書いたことはありますか? 書いたことがある人は、テストコードを書くと きにどのあたりが難しいと感じましたか? テストコードがあると、ビジネスコードの改善 (リファクタリング)を安全に行うことができ ます。安全に行える理由を説明してください。 また、リファクタリングを行うとどのようなメ リットがありそうでしょうか?