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
書きながら考えないRSpec
Search
Tetsu Nishimura
January 24, 2025
Technology
0
130
書きながら考えないRSpec
Tetsu Nishimura
January 24, 2025
Tweet
Share
More Decks by Tetsu Nishimura
See All by Tetsu Nishimura
Railsフロントエンド移行効率化 ためAエージェント利用方法
kitsunecat
0
14
生成AIで仕事をどうにかして怠ける話
kitsunecat
0
44
update_columnsについて無知だった話
kitsunecat
0
41
懺悔LT
kitsunecat
0
35
rake taskでメソッド定義したらテストが不安定になった
kitsunecat
0
78
ツクリンクで実践している 画像処理
kitsunecat
0
12
ツクリンクで実践している画像処理(フロー部分)
kitsunecat
0
180
Other Decks in Technology
See All in Technology
Astro Islandsの 内部実装を 「日本で一番わかりやすく」 ざっくり解説!
knj
0
130
スケールアップ企業でQA組織が機能し続けるための組織設計と仕組み〜ボトムアップとトップダウンを両輪としたアプローチ〜
tarappo
3
300
「コントロールの三分法」で考える「コト」への向き合い方 / phperkaigi2026
blue_goheimochi
0
120
Visional 28新卒プロダクト職(エンジニア/デザイナー)向け 会社説明資料 / Visional Company Briefing for Newgrads 28
visional_engineering_and_design
1
110
Phase12_総括_自走化
overflowinc
0
580
Kiro Meetup #7 Kiro アップデート (2025/12/15〜2026/3/20)
katzueno
1
160
生成AI活用でQAエンジニアにどのような仕事が生まれるか/Support Required of QA Engineers for Generative AI
goyoki
1
350
ReactのdangerouslySetInnerHTMLは“dangerously”だから危険 / Security.any #09 卒業したいセキュリティLT
flatt_security
0
420
OpenClaw を Amazon Lightsail で動かす理由
uechishingo
0
250
【Λ(らむだ)】最近のアプデ情報 / RPALT20260318
lambda
0
140
「通るまでRe-run」から卒業!落ちないテストを書く勘所
asumikam
2
440
スピンアウト講座01_GitHub管理
overflowinc
0
540
Featured
See All Featured
Exploring anti-patterns in Rails
aemeredith
2
290
Technical Leadership for Architectural Decision Making
baasie
3
300
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
52k
The Spectacular Lies of Maps
axbom
PRO
1
640
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Between Models and Reality
mayunak
2
240
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
75
Making the Leap to Tech Lead
cromwellryan
135
9.8k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.4k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
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 … - ちがう技法・手法を採用すべきだった キレイなコードを保証するものではない。あくまで条件と動作の整理 便利なテスト設計のツールがあっても、設計スキルは必要 それでも実装に進む前に設計したほうがいいよ、 と同じくらいには成果に差がでると思います。
ありがとうございました