Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
アジャイル・スクラム勉強会_スクラム開発のテスト
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Satoshi Harada
September 07, 2020
Programming
95
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.7k
アジャイル社内普及ご近所さんマップを作ろう / 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.3k
保育とふりかえりをコネクト! / connect childcare and retrospectives!
psj59129
1
1.5k
Whyから始めよう!スクラムチームが力強く前に進むための「なぜやるのか」を考える
psj59129
1
2.8k
その心理的安全性は間違っている!心理的安全性で陥りやすい間違いとその対策
psj59129
1
1.7k
これからのスクラムマスターのキャリアプランの話をしよう - スクラムマスターの前に広がる世界
psj59129
0
3.3k
ファーストペンギンを志すものに伝えたい - 1人目のアジャイル推進者がたどった成功と失敗
psj59129
0
520
Other Decks in Programming
See All in Programming
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
150
手動確認はもう限界 〜XCUITestでCustom URL Schemeの遷移を起動種別ごとに自動テストする〜 / Testing Custom URL Schemes with XCUITest
otouto
0
110
業務時間外もAIに働いてもらう話
colorful12
3
10k
AI駆動開発にグラフDBを重ねてみた
satoshi256kbyte
2
790
信頼性の目標を誰も求めてない
shubox
0
510
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
530
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
310
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
530
一参加者から『中の人』へ 〜全通PHPerがブースに立って学んだ、カンファレンスを100倍楽しむコツ〜
wp_daisuke
0
140
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
210
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
370
Featured
See All Featured
Documentation Writing (for coders)
carmenintech
77
5.5k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
490
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
500
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
270
Skip the Path - Find Your Career Trail
mkilby
1
230
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Odyssey Design
rkendrick25
PRO
2
800
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
900
ラッコキーワード サービス紹介資料
rakko
1
4.8M
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
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 ※全員に質問 テストコードを書いたことはありますか? 書いたことがある人は、テストコードを書くと きにどのあたりが難しいと感じましたか? テストコードがあると、ビジネスコードの改善 (リファクタリング)を安全に行うことができ ます。安全に行える理由を説明してください。 また、リファクタリングを行うとどのようなメ リットがありそうでしょうか?