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
書きながら考えないRSpec
Search
Tetsu Nishimura
January 24, 2025
Technology
140
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
書きながら考えないRSpec
Tetsu Nishimura
January 24, 2025
More Decks by Tetsu Nishimura
See All by Tetsu Nishimura
Railsフロントエンド移行効率化 ためAエージェント利用方法
kitsunecat
0
32
生成AIで仕事をどうにかして怠ける話
kitsunecat
0
64
update_columnsについて無知だった話
kitsunecat
0
63
懺悔LT
kitsunecat
0
47
rake taskでメソッド定義したらテストが不安定になった
kitsunecat
0
120
ツクリンクで実践している 画像処理
kitsunecat
0
21
ツクリンクで実践している画像処理(フロー部分)
kitsunecat
0
240
Other Decks in Technology
See All in Technology
AI コーディングと人間の認知スループット / CTO Night & Day 2026 Morning Session / AI Coding and Human Cognitive Throughput
prog893
4
1.1k
Persisting Massive Data with Rails ~Designing for 60 billion rows, and fighting the bottlenecks~ Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
0
730
夫婦で子育てするための育児標準化
codmoninc
PRO
0
340
ストレスなくAIと付き合いたい!こんなときどうしてる?
namiki64
3
510
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
150
実体験から学ぶ分析エージェントの開発と運⽤
recruitengineers
PRO
8
2.4k
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.7k
NDIでApple Vision Proにリアルタイム映像送信
jyouryuusui
0
120
hackers_champloo_2026_tidb
makocchi
0
160
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
940
re:Invent初参加で変わったこと、2回目にやってみたいこと(JAWS-UG彩の国埼玉 #12)
mhrtech
2
220
自作バイナリを動かす「入口」8選
puhitaku
2
1.3k
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.7k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
How GitHub (no longer) Works
holman
316
150k
GitHub's CSS Performance
jonrohan
1033
470k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
560
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
First, design no harm
axbom
PRO
2
1.3k
Faster Mobile Websites
deanohume
310
32k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Transcript
© Tsukulink Inc. 書きながら考えないRSpec
自己紹介 なまへ:にしむらてつ 趣味:スノーボード、クライミング、スキューバダイビング すんでるとこ:長野県 おしごと:Webエンジニア(ツクリンクでは非機能面の改善を担当) 好きな言語・技術:Rust, TypeScript, TCP/IP(Routing, Swiching,
QoS)
リリース テスト テストコードはいつ書きはじめてますか? 実装 設計 要件定義
リリース テスト テストコードはいつ書きはじめてますか? 実装 設計 要件定義 さすがに早すぎ かけそう?
TDD 多そう 🔥🔥🔥
リリース テスト テストコードはいつ書きはじめてますか? 実装 設計 要件定義 さすがに早すぎ どっすか?
TDD 多そう 🔥🔥🔥
テスト設計やってみませんか
テスト項目書いてみよう あなたは「りんご銀行」ATMのテスト担当者です。 「りんご銀行」に口座を持っているお客様のATM引き出し手数料(以下、「手数料」)の条件は下記のとおりです。 • 平日の0:00~8:44は手数料が110円です。 •
平日の8:45~17:59は手数料が0円です。 • 平日の18:00~23:59は手数料が110円です。 • 土日祝日は終日手数料が110円です。 • 特別会員 のお客様は曜日や時間に限らず手数料が0円です。 手数料の出力を保証するために、どのようなテストケースが必要? ※「ソフトウェアテスト技法練習帳 ~知識を経験に変える40問~」 より抜粋
None
テスト技法
テスト技法どうですか テスト技法:ソフトウェアテストのテストケースを作成するための技法 1. テスト漏れを防げる • テスト技法を使うことで、条件や組み合わせを網羅的に洗い出せる 2. 曖昧な要件が明確になる
• テストケースを設計する過程で、どの条件でどの結果になるべきかを明示的に考える必要がある ため、要件が整理される 3. テストの信頼性が向上する • 系統立ったアプローチでテストケースを設計するため、手探りで作ったテストよりも一貫性と正確性 が高くなる
テスト技法のひとつ:デシジョンテーブルをためしてみる デシジョンテーブル 条件とそれに対応するアクションを整理・網羅的にテストケースにする手法。 条件とその組み合わせを表形式で表します。 無料で使えるツール • デシジョンテーブル作成支援ツール(β版) ◦
https://testcase-tool.vercel.app/decision_table • GIHOZ ◦ https://gihoz.com/ 参考「デシジョンテーブルテスト」テスト技法解説 https://www.veriserve.co.jp/helloqualityworld/media/20240125002/
あなたは「りんご銀行」ATMのテスト担当者です。 「りんご銀 行」に口座を持っているお客様のATM引き出し手数料(以下、 「手数料」)の条件は下記のとおりです。 • 平日の0:00~8:44は手数料が110円です。 • 平日の8:45~17:59は手数料が0円です。
• 平日の18:00~23:59は手数料が110円です。 • 土日祝日は終日手数料が110円です。 • 特別会員のお客様は曜日や時間に限らず手数料が0 円です。 デシジョンテーブルの条件を整理
デシジョンテーブル作成
デシジョンテーブル作成
デシジョンテーブルからテストケース一覧を出力
RSpecのコードにおとすとこうなる • セルフチェック漏れできる ◦ ここで適当なspecファイルにしてcommitもあり ◦ itの中身を { expect(true).to eq
false }にして failsさせるなど
RSpecのコードにおとすとこうなる だいたいcontext → ビジネスロジックの最小単位 であることがおおいのでコードにも落としやすい、かも。
あらためて... • 要件定義 • 設計 ◦ context単位はここで書いたほうがよくないすか •
実装 • テスト • リリース
他のテスト技法 • ペアワイズ法 • 状態遷移図 • 境界値分析と同値分割 参考になりますよ ソフトウェアテスト技法練習帳
~知識を経験に変える 40問~
もちろん万能ではない - デシジョンテーブルは記載した条件の妥当性までは確認できない - 要件が不明確なまま取り掛かると十分に発揮できない - あくまでテストケースの網羅であり、どの種類のRSpecにするかはタッチしない
Request spec or Model spec, View spec … - ちがう技法・手法を採用すべきだった キレイなコードを保証するものではない。あくまで条件と動作の整理 便利なテスト設計のツールがあっても、設計スキルは必要 それでも実装に進む前に設計したほうがいいよ、 と同じくらいには成果に差がでると思います。
ありがとうございました