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

VSTePの解説(個人的解釈)

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

 VSTePの解説(個人的解釈)

某社の社内勉強会のために作った資料です。

Avatar for うきぐも / すずき

うきぐも / すずき

January 25, 2026
Tweet

More Decks by うきぐも / すずき

Other Decks in Technology

Transcript

  1. 注意 • この資料はVSTePの“正解”を提供するものではありません ▪ VSTePは 「我々は顧客にどういった価値を提供すべきなのか?」 「⾃分たちの組織にとっての『品質』とはなんなのか?」 「それらを保証するとはどういう⾏為なのか?」 ということを各社が考え抜くための仕組みである ▪

    提唱者であるにしやすはる⽒も そういった信念に基づいて発信していらっしゃった(と思っている)ので わたくしも⽒への敬意を払う次第です • あくまでszkによるひとつの解釈としてご理解ください 2
  2. テストケースの構成要素はいろいろある • テストケースの構成要素には様々な名前が付いている ▪ e.g. ログインページで[email protected]‧testtesttestと⼊⼒して e.g. ログインボタンをクリックしたらトップページに遷移すること • テスト対象:

    ログインページ • テスト条件: メアドとパスワードの組み合わせが正しい([email protected]‧testtesttest) • テストトリガー: ログインボタンをクリックする • 期待結果: トップページに遷移する ▪ • しかしそれらの定義や解釈には⼈によって若⼲の差異がある ▪ ログインページはテスト対象ではなく 「ログインページを開いている」という事前条件では? ▪ トップページに遷移するのは期待結果ではなく事後条件では? ▪ ブラウザの種類もテスト条件に⼊るのでは? いやそれはテスト環境では?テスト⽬的では?因⼦と⽔準では? 5
  3. テストケースの構成要素はいろいろある • テストケースの構成要素には様々な名前が付いている ▪ e.g. ログインページで[email protected]‧testtesttestと⼊⼒して e.g. ログインボタンをクリックしたらトップページに遷移すること • テスト対象:

    ログインページ • テスト条件: メアドとパスワードの組み合わせが正しい([email protected]‧testtesttest) • テストトリガー: ログインボタンをクリックする • 期待結果: トップページに遷移する ▪ • しかしそれらの定義や解釈には⼈によって若⼲の差異がある ▪ ログインページはテスト対象ではなく 「ログインページを開いている」という事前条件では? ▪ トップページに遷移するのは期待結果ではなく事後条件では? ▪ ブラウザの種類もテスト条件に⼊るのでは? いやそれはテスト環境では?テスト⽬的では?因⼦と⽔準では? 6 うるせえ
  4. 分ける意味が無いなら分けてはいけない • 構成要素で分ける必要が無いとして 「テスト観点」という呼称が採⽤されている ▪ テストケースの構成要素を全部ひっくるめた⾔い⽅ ▪ 分けることが悪いのではなく 実務上で無意味な粒度にまで分けることが悪い という点に注意する

    ▪ • ただし抽象度で「テスト値」とは分ける必要がある ▪ テスト観点: • 「メアド」「パスワード」など • 網羅的に挙げきるもの(なので網羅的に挙げられる抽象度で⽌める) ▪ テスト値: • 「[email protected]」「testtesttest」など • テスト実⾏時に困らない抽象度まで具体化する • テスト技法で適切に絞り込むもの 7
  5. 「テスト観点」は銀の弾丸ではない • 「xxxをどういう構成要素に分けて捉えると良いか?」 に対する最適解はその時々で変わる ▪ e.g. ⼈体をどういう構成要素に分けて捉えると良いか? • 画家とか??: 頭‧胴体‧腕‧脚‧……

    • 整体師とか?: ⽪膚‧筋⾁‧⾻‧内臓‧…… ▪ • テストケースについても同様 ⾃由度低 理解容易性⾼ ▪ ゆもつよメソッド: テストカテゴリ‧機能項⽬ ▪ 固定(3)レイヤー法: ⼤項⽬‧中項⽬‧⼩項⽬ ▪ VSTeP: テスト観点 ⾃由度⾼ 理解容易性低 9
  6. テストケースからテスト観点を抽出する流れ • テスト観点はテストケースの構成要素 ▪ e.g. ログインページで[email protected]‧testtesttestと⼊⼒して e.g. ログインボタンをクリックしたらトップページに遷移すること • テスト観点:

    ログインページ • テスト観点: メアド‧パスワード - [email protected]‧testtesttestはテスト値 - 組み合わせが「正しい」もテスト値 • テスト観点: ログインボタン‧クリック • テスト観点: トップページ‧遷移 10 テストケース テスト値 テスト観点 テストフレーム テスト観点を集めて作った テストケースのひな型が 「テストフレーム」
  7. 「開発」とは? • 開発: ステップを踏んで何かを作ること ▪ e.g. 晩ごはんの開発 1. [要求分析] 今⽇の晩ごはんはがっつり⾷べたいなぁ

    2. [基本設計] がっつり……⾁々しいヤツだな - [制約] 豚ロースの賞味期限が近いんだった 3. [詳細設計] トンカツにするか 4. [実装] 作ろーっと ▪ e.g. 改善施策開発 1. 根本原因分析 2. 改善施策の基本設計(⽅針決め)‧改善施策の詳細設計 3. 改善施策の実装 4. (改善施策の実施) ▪ e.g. ドキュメント開発 1. ドキュメントに対する要求の分析 2. ドキュメントの基本設計(セクション⽴て) 3. ドキュメントの詳細設計(サブセクション⽴て) 4. ドキュメントの実装(執筆) 14
  8. テストも開発する • e.g. ウォーターフォール的なテスト開発プロセス 1. テスト要求分析 • テスト要求モデルを作って何をテストするか決める 2. テスト基本設計/テストアーキテクチャ設計

    • どういう流れで何のテストをするか決める 3. テスト詳細設計 • どうやってテストをするのか決める • テスト値にまで具体化し テスト技法を使って (テストステップまで含めた)テストケースを作る 4. テスト実装 • テストを実⾏できる形にする - ⼿動テストの場合: テスト⼿順(テストケースの実⾏順)を決めてテストスイートを作る - ⾃動テストの場合: テストスクリプトを書く 5. (テスト実施) 15
  9. これがVSTePだ • VSTeP(テスト観点に基づくテスト開発⽅法論) ▪ テスト要求分析 • テスト要求モデルとしてテスト観点図を作って 何をテストするか決める ▪ テスト基本設計/テストアーキテクチャ設計

    • テストアーキテクチャモデルとしてテストコンテナを作って どういう流れでどのテスト観点のテストをするか決める ▪ テスト詳細設計 • どうやってテストをするのか決める • テスト値にまで具体化し テスト技法を使って (テストステップまで含めた)テストケースを作る ▪ テスト実装 • テストを実⾏できる形にする - ⼿動テストの場合: テスト⼿順(テストケースの実⾏順)を決める - ⾃動テストの場合: テストスクリプトを書く ▪ テスト実施 18
  10. szkがVSTeP的にテストケースを作るとき 1. 仕様を眺めてテストケースを想起する 2. テスト値→テスト観点に抽象化し、テスト観点図にそのテスト観点を書く 3. テスト観点図内のテスト観点を充実させる 4. 「もう思い付かね」 5.

    次の仕様を⾒て、1. に戻る 6. テスト観点出尽くしたなーと思ったら、組み合わせてテストフレームを作る 7. テストフレームを間引く ▪ 機能を確認するテストのフレームにはテスト観点「ブラウザの種類」は付けなくていいや UIを確認するテストには付けよう 8. テスト値に具体化し、テストケースを作る 9. テストステップを作ったり作らなかったりする 10. 順番を並べ替える 11. テストする 12. ヨシ!リリース! 13. ⾒逃してたバグが⾒つかり、テスト観点図をアプデ ▪ モデルは育てる前提 19
  11. テストを空間探索として捉える • ソフトウェアテスティングを、ソフトウェアという空間を探索する⾏為だとする • テスト観点→テストフレーム→テスト値に具体化→実⾏順に整えてテストスイート の順序でテストを開発するが、これは 座標軸→⾯とか体とか→点→線 の順序で探索計画を作成する⾏為に相当する ▪ テスト観点は座標軸

    • 従ってソフトウェア空間は多次元空間 • テスト観点の親⼦関係は、空間を観測する視点がマクロかミクロかで、空間の座標軸の⾒え⽅が変わ ることを意味する - 「北の⽅」という親観点(親軸)ををミクロに⾒ると「北北⻄」「真北」「北北東」という⼦観点(⼦軸)がある、という具合 ▪ テストフレームは探索する⾯や体 • テストフレームとして結びつかない、禁則的な組み合わせが存在する これはソフトウェア空間に空いている「⽳」。つまりソフトウェアは⾍⾷い状態の多次元空間 ▪ テスト値は各テスト観点(座標軸)上の値 ▪ テストケースはソフトウェア空間内の点 ▪ テストケースたちの実⾏順序を整えたテストスイートは探索する線 20
  12. 参考資料 • VSTeP ▪ VSTePの概要: https://qualab.jp/materials/VSTeP.130403.bw.pdf ▪ VSTePによるソフトウェアテストの開発: https://jasst.jp/symposium/jasst16tohoku/pdf/S1.pdf •

    テスト観点 ▪ テスト条件とテスト観点: https://posfie.com/@nemorine/p/Ka0oH8i ▪ 「テスト観点はふんわりね」: https://qualab.jp/fundamentals_of_viewpoint/ ▪ 「テスト観点が...」って⾔われたときはどうするか?: https://note.com/yumotsuyo/n/n0d661da5b906 • テスト開発 ▪ 第三世代に突⼊したソフトウェアテスト: https://www.jasst.jp/archives/jasst10t/pdf/s1.pdf ▪ テスト設計チュートリアル テスコン編 ’25: https://youtu.be/QjASgnMCSas?si=8FgFeVt5CFptOaDA • その他関連トピック ▪ モデリングのそだてかた: https://speakerdeck.com/mizunori/how-to-learn-modeling ▪ 空間構築または空間探索として、ソフトウェアテスティング‧プロダクト開発‧創作活動を捉 えてみる: https://hansuoi.hatenablog.com/entry/2025/05/15/080020 21