Upgrade to Pro — share decks privately, control downloads, hide ads and more …

書きながら考えないRSpec

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 書きながら考えないRSpec

Avatar for Tetsu Nishimura

Tetsu Nishimura

January 24, 2025
Tweet

More Decks by Tetsu Nishimura

Other Decks in Technology

Transcript

  1. テスト項目書いてみよう 
 あなたは「りんご銀行」ATMのテスト担当者です。 
 「りんご銀行」に口座を持っているお客様のATM引き出し手数料(以下、「手数料」)の条件は下記のとおりです。 
 • 平日の0:00~8:44は手数料が110円です。 
 •

    平日の8:45~17:59は手数料が0円です。 
 • 平日の18:00~23:59は手数料が110円です。 
 • 土日祝日は終日手数料が110円です。 
 • 特別会員 のお客様は曜日や時間に限らず手数料が0円です。 
 手数料の出力を保証するために、どのようなテストケースが必要?                       
 ※「ソフトウェアテスト技法練習帳 ~知識を経験に変える40問~」 より抜粋 

  2. テスト技法どうですか 
 テスト技法:ソフトウェアテストのテストケースを作成するための技法
 1. テスト漏れを防げる 
 • テスト技法を使うことで、条件や組み合わせを網羅的に洗い出せる
 2. 曖昧な要件が明確になる

    
 • テストケースを設計する過程で、どの条件でどの結果になるべきかを明示的に考える必要がある ため、要件が整理される
 3. テストの信頼性が向上する 
 • 系統立ったアプローチでテストケースを設計するため、手探りで作ったテストよりも一貫性と正確性 が高くなる

  3. あなたは「りんご銀行」ATMのテスト担当者です。 「りんご銀 行」に口座を持っているお客様のATM引き出し手数料(以下、 「手数料」)の条件は下記のとおりです。 
 • 平日の0:00~8:44は手数料が110円です。 
 • 平日の8:45~17:59は手数料が0円です。

    
 • 平日の18:00~23:59は手数料が110円です。 
 • 土日祝日は終日手数料が110円です。 
 • 特別会員のお客様は曜日や時間に限らず手数料が0 円です。
 デシジョンテーブルの条件を整理 
 

  4. もちろん万能ではない 
 - デシジョンテーブルは記載した条件の妥当性までは確認できない 
 - 要件が不明確なまま取り掛かると十分に発揮できない
 - あくまでテストケースの網羅であり、どの種類のRSpecにするかはタッチしない 


    Request spec or Model spec, View spec …
 - ちがう技法・手法を採用すべきだった
 
 キレイなコードを保証するものではない。あくまで条件と動作の整理 
 便利なテスト設計のツールがあっても、設計スキルは必要 
 
 それでも実装に進む前に設計したほうがいいよ、
 と同じくらいには成果に差がでると思います。