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

ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Un...

ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications

JJUG CCC 2026 Spring ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践

Avatar for SHIMANE, Yoshikazu

SHIMANE, Yoshikazu

May 29, 2026

More Decks by SHIMANE, Yoshikazu

Other Decks in Programming

Transcript

  1. 2 自己紹介 @shimashima35 • リーガルテック企業でQA/SET • Javaエンジニア → QA/SET →

    QA/SET/Javaエンジ ニア • 「エキスパートが教えるSelenium最前線」を共著 • JSTQB-Advanced Level Test Analyst および Test Manager 保有 • 2012年からJaSST Tokyo実行委員 • 2019年 Selenium Conf Tokyo 実行委員 • 2025年からテスト設計コンテスト実行委員
  2. こんな感じのコードがある場合のテストコードを考える。 /** * 引数のスコアの値が、有効な値(0 ~ 100) であること確認する。 * @param score

    スコア * @return 有効な値の場合true */ public boolean isValidScore(int score) { // 実装は省略 } 例題 6
  3. score の値に着目して、以下のようなパターンを考えるのは結構 あるのでは。 1. 0 (true) 2. 100 (true) 3.

    -1 (false) 4. 101 (false) ※ テストエンジニアだと、(-1, 0, 100, 101) とすることが多いかも しれない。 回答例 7
  4. • なぜこの4つで足りているのか? • なぜ 0 ~ 100 を全て試さなくていいのか? ◦ 50

    や 60 はいらない? • なぜ負数は -1 だけでいいのか? 皆さんに質問です 8
  5. • 早い段階で不具合を見つけるほど手戻りが少ない ◦ 古くはBarry Boehmなど。感覚的にもあっているのでは。 • Quality Is Free (Philip

    B. Crosby) ◦ 品質への投資は、それ以上のリターンがある。そのため “実質無料”。 品質の経済学 15
  6. • 「動作」部分に複数の観点を混ぜない。 ◦ ここでは「ログイン可否」だけに絞った。副作用として「アカウントロッ ク」もあるが、それは別に考える。 • 全パターンの組み合わせを行わない。 ◦ あくまでシンプルなロジックで実装した場合を考える。 ◦

    とはいえ、慣れない場合は全パターン書いた上で「あり得ない」組み 合わせを消していく方法でも構わない。 上記2つはテストエンジニアでも気を付けること。 ディシジョンテーブルの注意点 31
  7. UMLにおけるState Machine Diagramと考え方は基本的に一緒。 1. 状態を抽出する。 2. イベントを抽出する。 3. 状態 x

    イベント の遷移後の状態を考える。 状態遷移表と状態遷移図は同じものを別の書き方で書いたも の。仕様漏れを探す場合は表のほうがよい。 Web系だと、「状態」が明示されていない点は注意。 状態遷移図 (表)の書き方 32