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
110
書きながら考えないRSpec
Tetsu Nishimura
January 24, 2025
Tweet
Share
More Decks by Tetsu Nishimura
See All by Tetsu Nishimura
生成AIで仕事をどうにかして怠ける話
kitsunecat
0
26
update_columnsについて無知だった話
kitsunecat
0
28
懺悔LT
kitsunecat
0
28
rake taskでメソッド定義したらテストが不安定になった
kitsunecat
0
48
ツクリンクで実践している 画像処理
kitsunecat
0
10
ツクリンクで実践している画像処理(フロー部分)
kitsunecat
0
150
Other Decks in Technology
See All in Technology
Webアプリケーションにオブザーバビリティを実装するRust入門ガイド
nwiizo
7
870
要件定義・デザインフェーズでもAIを活用して、コミュニケーションの密度を高める
kazukihayase
0
120
エンジニアリングマネージャーの成長の道筋とキャリア / Developers Summit 2025 KANSAI
daiksy
2
580
S3アクセス制御の設計ポイント
tommy0124
3
200
Evolución del razonamiento matemático de GPT-4.1 a GPT-5 - Data Aventura Summit 2025 & VSCode DevDays
lauchacarro
0
210
「その開発、認知負荷高すぎませんか?」Platform Engineeringで始める開発者体験カイゼン術
sansantech
PRO
2
190
AIのグローバルトレンド2025 #scrummikawa / global ai trend
kyonmm
PRO
1
310
未経験者・初心者に贈る!40分でわかるAndroidアプリ開発の今と大事なポイント
operando
5
730
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
4
10k
いま注目のAIエージェントを作ってみよう
supermarimobros
0
340
バイブスに「型」を!Kent Beckに学ぶ、AI時代のテスト駆動開発
amixedcolor
2
580
大「個人開発サービス」時代に僕たちはどう生きるか
sotarok
20
10k
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.7k
Writing Fast Ruby
sferik
628
62k
Typedesign – Prime Four
hannesfritz
42
2.8k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
Scaling GitHub
holman
463
140k
Being A Developer After 40
akosma
90
590k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
Automating Front-end Workflow
addyosmani
1370
200k
The Cult of Friendly URLs
andyhume
79
6.6k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
810
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.9k
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 … - ちがう技法・手法を採用すべきだった キレイなコードを保証するものではない。あくまで条件と動作の整理 便利なテスト設計のツールがあっても、設計スキルは必要 それでも実装に進む前に設計したほうがいいよ、 と同じくらいには成果に差がでると思います。
ありがとうございました