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

書きながら考えないRSpec

 書きながら考えないRSpec

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