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
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
24
生成AIで仕事をどうにかして怠ける話
kitsunecat
0
55
update_columnsについて無知だった話
kitsunecat
0
54
懺悔LT
kitsunecat
0
44
rake taskでメソッド定義したらテストが不安定になった
kitsunecat
0
110
ツクリンクで実践している 画像処理
kitsunecat
0
16
ツクリンクで実践している画像処理(フロー部分)
kitsunecat
0
230
Other Decks in Technology
See All in Technology
暗号化?某ファイルストレージはどうなるの!? 3rd Partyとうまく付き合う秘密度ラベル設計
kasada
0
120
ガバメント AI 源内を地方自治体は活用できるのか可能性と課題、期待について
takeda_h
2
460
コーチングの奥義 何もしないテクニック
jinwatanabe
0
140
ソフトウェアサプライチェーンの構造的リスクとコンテナ環境の保護
kyohmizu
5
780
Kiro Crew入門 - 常駐エージェントの仕組みと使いどころ / Intro to Kiro Crew
k_adachi_01
1
740
도구에서 동료까지: 10년차 AI 스타트업의 AI 적응기
inureyes
PRO
1
320
LLM・AIエージェントシステムベストプラクティス
shibuiwilliam
6
1.6k
MIXIで活躍できるエンジニアを 若手社員目線で考えてみる
mixi_engineers
PRO
0
120
FORENSIA: ローカルLLMフォレンジックハーネス
sumeshi
2
440
What's new in Go 1.27?
ciarana
0
300
DDDのエッセンスを取り入れたAIでの開発
ak2ie
0
200
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
240
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
Making Projects Easy
brettharned
120
6.7k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Ethics towards AI in product and experience design
skipperchong
2
350
Balancing Empowerment & Direction
lara
6
1.2k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
440
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
480
WCS-LA-2024
lcolladotor
0
800
Odyssey Design
rkendrick25
PRO
2
770
Faster Mobile Websites
deanohume
310
32k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
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 … - ちがう技法・手法を採用すべきだった キレイなコードを保証するものではない。あくまで条件と動作の整理 便利なテスト設計のツールがあっても、設計スキルは必要 それでも実装に進む前に設計したほうがいいよ、 と同じくらいには成果に差がでると思います。
ありがとうございました