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

デブサミ2023 / テストを学びたい開発者のためのソフトウェアテスト読書マップ / Software Testing Reading Map for Developers

デブサミ2023 / テストを学びたい開発者のためのソフトウェアテスト読書マップ / Software Testing Reading Map for Developers

Developers Summit 2023での発表資料です。
ソフトウェアテストを専門としない人が、どんな本で、どんな順番にソフトウェアテストを勉強すればいいのかについて、主観のみで語っています。

Kazuhiro SUZUKI

February 09, 2023
Tweet

More Decks by Kazuhiro SUZUKI

Other Decks in Technology

Transcript

  1. 1
    / 53
    テストを学んでみたい開発者のための
    ソフトウェアテスト読書マップ
    Feb. 9th, 2023
    Developers Summit 2023
    鈴木 一裕 @ kz_suzuki
    Image: "First sunset | Emmet's Adventures" by chris.alcoran is licensed under CC BY-NC-ND 2.0.

    View full-size slide

  2. 2
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    ◼ 参加書籍
    自己紹介
    ◼ 鈴木 一裕(*1)
    ◼ 職業: QAエンジニア
    ◼ Twitter: @kz_suzuki
    ◼ ブログ: ソフトウェアの品質を学びまくる(*2)
    ◼ コミュニティ
    ⚫ ISO/IEC/IEEE JTC1/SC7/WG26(*3)委員 など
    ◼ 最近の社外発表
    ⚫ 2022年3月 @JaSST’22 Tokyo(*4)
    - 『実践ソフトウェアエンジニアリング』 第3部 超概説
    ⚫ 2022年8月 @JaSST nano vol.15
    - 殺虫剤のパラドックスの真実
    ⚫ 2022年12月 @JaSST nano vol.19
    - AIシステムのブラックボックステスト
    (*1) デブサミに向けてこの「ろくろアイコン」を作るためにひっそり自撮り100枚くらい撮ったので称えてください。
    (*2) 実際のところ、そんなに学びまくっていない。 (*3) ソフトウェアテストに関する規格などを作っている
    (*4) JaSST: ソフトウェアテストシンポジウム(Japan Symposium on Software Testing)
    システムテスト自動化標準ガイド
    翔泳社・2014年
    監訳・共訳 (1章分だけ)
    ソフトウェア品質知識体系ガイド(第3版)
    オーム社・2020年
    共著 (超一部)
    実践ソフトウェアエンジニアリング(第9版)
    オーム社・2021年
    共訳 (3章分だけ)
    テスト・QA界隈にのみ出没 周りの人の力で成果をレバレッジ

    View full-size slide

  3. 3
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    目的とおことわり
    ◼ この発表が終わる頃どうなっていたいか
    ⚫ 「ソフトウェアテストの知識って、何がうれしいのか」がわかる。
    ⚫ 「ソフトウェアテストを、どこから勉強すればいいのか」がわかる。
    ◼ おことわり
    ⚫ 主観がめっちゃ入ってます。
    ⚫ いわゆる「QAテスト」と呼ばれる範囲が中心になります。
    ⚫ ツイートは歓迎です。怖くないやつでお願いします。#devsumiB

    View full-size slide

  4. 4
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    話の流れ
    1. はじめに
    2. テストの勉強は役に立つのか?
    3. テストいろいろありすぎ問題
    4. ソフトウェアテスト読書マップって何?
    5. テストプロセスとテスト設計
    6. おわりに

    View full-size slide

  5. 5
    / 53
    テストの勉強は
    役に立つのか?
    Image: "I'm studying" by rabbitneverlies is licensed under CC BY-SA 2.0.

    View full-size slide

  6. 6
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    ソフトウェアテストに興味をもつ
    開発者が増えている
    との噂がある。

    View full-size slide

  7. 7
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    一方で、テストについての言葉や概念が
    無数にあって、よくわからんとも言われる。

    View full-size slide

  8. 8
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    QAエンジニアでなくても、テストを学んでおくといい理由
    ◼ QAエンジニアの活動に対する解像度が上がる
    ⚫ テストに関する概念は雑多にみえるが、ある程度体系的に整理されている。
    ⚫ テストの用語や考え方を知るだけで、テストや品質についての視界がクリアになることがある。
    ◼ テストで用いる思考を、開発の早期から取り入れられる
    ⚫ QAは日ごろ、プロダクトの情報を整理したりモデル化したりを繰り返している。
    これは、設計の段階から一緒にやっていくと効率がいい。
    ⚫ QAのエキスパートには、尖った部分を生かしてもらうのがハッピー。
    - プラクティスの導入経験、バグの知識、「こうしたらどうなる?」の発想力、異常に対する嗅覚、「神の手」、・・・
    1
    2

    View full-size slide

  9. 9
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    しかし、何から手をつける?

    View full-size slide

  10. 10
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    プログラミング初学者に
    「プログラミングやりたいんだけど、
    どの言語がいい?」
    と聞かれたらら、みなさん何と答えますか?

    View full-size slide

  11. 11
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    「どんなことしたいの?」
    「何を作りたいの?」
    と聞くと思います。

    View full-size slide

  12. 12
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    テストも、何がしたいか、
    何に悩んでいるかによって、
    勉強のしどころが違ってきます。
    広くて深い分野なんです。

    View full-size slide

  13. 13
    / 53
    テストいろいろ
    ありすぎ問題
    Image: "A Messy Milkshake Recipe" by echo0101 is licensed under CC BY-NC-SA 2.0.

    View full-size slide

  14. 14
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    「テスト」と名の付く言葉たち
    システムテスト
    ユニットテスト
    E2Eテスト
    組み合わせ
    テスト
    状態遷移
    テスト
    ユーケース
    テスト
    テスト計画
    テスト実装
    テスト実行
    機能テスト
    性能テスト
    セキュリティ
    テスト
    ユーザビリティ
    テスト
    自動テスト
    探索的テスト
    スモークテスト
    テスト分析
    ビッグバン
    テスト
    デシジョン
    テーブルテスト
    リグレッション
    テスト
    フレイキー
    テスト
    A/Bテスト
    キーワード
    駆動テスト
    同値分割
    テスト
    ペネトレーショ
    ンテスト
    結合テスト
    モンキーテスト

    View full-size slide

  15. 15
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    「テスト」からイメージするものにもいろいろある
    ◼ 機能のテストなのか、性能テストなのか、セキュリティテストなのか、・・・
    ⚫ テストの種類。「テストタイプ」という言葉で表される。
    ◼ Webサービスなのか、組込ソフトウェアなのか、ゲームなのか、・・・
    ⚫ テスト対象の分野。 「ドメイン」という言葉で表される。
    ◼ テストの管理なのか、分析・設計なのか、実行なのか、・・・
    ⚫ テストの活動。 「テストプロセス」という言葉で表される。
    ◼ ユニットテストなのか、システムテストなのか、・・・
    ⚫ テストの粒度。 「テストレベル」 (*1)という言葉で表される。
    いろいろな「テスト」用語があり、切り口がそれぞれ違う。
    ごちゃ混ぜで、どう勉強していいのやら・・・。
    (*1) あらためて「テストピラミッド」を見てみると、一番下のユニットテスト以外はばらつきがあります。最上位はUIだったりシステムテストだったり。

    View full-size slide

  16. 16
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    ある技術分野を勉強し始める場合に直面する困難
    ◼ その技術分野の全体像がわからない
    ◼ 全体のうち、どの部分から手を付けていいかわからない
    ◼ 何を参照すれば、どの部分のどのレベルを学べるかわからない
    → はインターネッツ集合知で解決できるのでは?
    1
    2
    3
    3

    View full-size slide

  17. 17
    / 53
    ソフトウェアテスト
    読書マップって何?
    Image: "Stack of books" by EverydayTrish is licensed under CC BY-NC 2.0.

    View full-size slide

  18. 18
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    テストの本は、たくさん出版されている。
    それだけに、
    「どの本に何が書かれているのか」が
    わかりづらい状況になっている。

    View full-size slide

  19. 19
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    技術書は安くない。
    各書籍がカバーしている範囲を
    俯瞰できるような情報がほしい!
    そこから必要な本の目星をつけたい!

    View full-size slide

  20. 20
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    Twitterでの適当な
    呼びかけに対し、
    ヤバい素晴らしい人たち、
    集まる。

    View full-size slide

  21. 21
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    想定
    とりあえず10冊。
    2か月くらいでがんばって公開!?
    現実
    70冊をカバー、
    1週間くらいで公開・・・
    これがアジリティか・・・
    わたしは1冊しか担当していないが・・・

    View full-size slide

  22. 22
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    ◼ 読書マップの目的
    ソフトウェアテストを学ぶ人が、「どの本に何が書いてあるか」をざっくりつかめるようにすること。
    ソフトウェアテスト読書マップってこんな感じ
    書籍の一般情報 レベル・一言メモ テスト各エリアのカバー範囲
    書籍
    レベルの凡例
    ■入門: 一般の人への概念の導入。
    ■初級: テストの知識や経験が少しあれば読むことができる
    ■中級: ある程度テストの知識・経験を踏まえて読むのが望ましい
    ■上級: テストのベテラン向け
    テストのエリア
    テスト計画、分析、設計、実装、実行など、JSTQBの定義を
    参考に分類
    カバー範囲の凡例
    ■: 具体例ふくめ、詳細な記載がある
    ●: 考え方や概要の記載がある
    ▲: 用語程度の記載がある
    ー: 記載なし
    「どの本が、どのくらいの濃さで、
    どの範囲をカバーしているのか」
    を見える化

    View full-size slide

  23. 23
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    ソフトウェアテスト読書マップの使い方
    ◼ まず、横軸を見る
    ⚫ 一言に「テスト」といっても、いろいろなトピックがあることが、あらためてわかる。
    ⚫ たとえば「テストチーム構築」と「テスト設計」は、まったく違う知識・経験が求められる。
    ◼ 本の傾向を理解する
    ⚫ 「たくさんのセルが緑で塗られている」本は、広く浅くをカバーする辞書的なモノ。
    →テストの概観を学ぶのに合っている。
    ⚫ 「少な目のセルが赤で塗られている」本は、テーマを絞って深く説明したモノ。
    →特定のトピックの専門性を深めるのに合っている。
    ⚫ 「たくさんのセルが赤で塗られている」本は、鈍器。
    ◼ 読む順番を考える
    ⚫ 特定のトピックの理解を深めるため、「色合いが似ていてレベルが違う本」を読んでいく、など。
    1
    2
    3

    View full-size slide

  24. 24
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    お得情報: 読書マップに見るQAエンジニアあるある
    ◼ 散らばった情報があると、テーブルで整理しだす。
    ◼ カバレッジを高めたがる。
    ◼ マトリクスを書くと、縦軸と横軸の要素の妥当性について議論しだす。
    ◼ 「定義」にうるさい。
    1
    2
    3
    4
    自分だけじゃなかった・・・!

    View full-size slide

  25. 25
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    これですべての問題が解決した!
    - 第3部・完(*1) -
    (*1) 往年の少年ジャンプの漫画のネタは、若者に対するハラスメントになりうるので注意が必要です。

    View full-size slide

  26. 26
    / 53
    顧客が本当に
    ほしかったもの・・・?
    Image: "Tree Swing in Winter" by dbnunley is licensed under CC BY-NC-SA 2.0.

    View full-size slide

  27. 27
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    ある技術分野を勉強し始める場合に直面する困難 (再掲)
    ◼ その技術分野の全体像がわからない ✅
    ◼ 全体のうち、どの部分から手を付けていいかわからない
    ◼ どの本が、どの部分のどのレベルをカバーしているかわからない ✅
    → が解決できていない。
    1
    2
    3
    2

    View full-size slide

  28. 28
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    (*1) Rashem Panditさんのチャートの日本語版より引用。Visual guide to best books on Product Managementのリンク集
    (*2) ProductZineの記事『「プロダクトマネージャーこそ、戦略的に読書せよ!」──最短で成果を出すための読書地図』より引用
    顧客が本当にほしいもの、これでは?
    蜂須賀 大貴さん作
    「プロダクトマネージャーのための読書地図」(*2)
    「最初の1冊」から始まって、
    しだいに領域が広がっていく。
    しだいに発展的な内容に
    なっていく。
    Rashem Panditさん作・渡辺 悟史さん訳
    「Visual guide to best books on Product Management」(*1)
    ”世の中にあるあまたの書籍の中から「今の自分には何が必要なのか」。
    そして、「必要な知識が得られる書籍はどれなのか」を見極めるには、コツが
    要ります。少なくとも、表紙や目次を見て想像できるくらいのテーマに対する
    理解度は必要でしょう。
    しかし、初めての領域を学ぶには、これはハードルが高すぎるのです。”

    View full-size slide

  29. 29
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    「最初、何に手を付けるか」
    がわかるようにしてみた。

    View full-size slide

  30. 30
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    テスト計画・管理エリア
    テスト自動化エリア
    モダンなテスト文化エリア
    スルメエリア
    テスト設計エリア
    全体概要エリア
    (*) 書影はすべて、Amazonから引用。各書籍の情報はこのあとのスライドで一覧にします。
    ホワイトボックステストも
    カバーしたい場合
    もっと詳しく具体的な
    内容を知りたい場合
    コスパのよい
    テストを求めて
    演習+勉強会
    で強くなる!
    テストの作り方はわかった
    ので、自動化するぜ!
    アジャイルにおけるテス
    トの位置づけや、先進
    企業のテストを学ぶ
    マネージャーなどがソフトウェア
    テストの全体をより深く押さえる
    名著・古典。ちゃんと
    読めてない・・・
    ツールやドメインに
    あまり依存しない
    一般論を学ぶ
    テストマネージャとしての一歩
    目を学ぶための良書
    ソフトウェアテスト全般について
    比較的平易に書かれた入門書
    テスト設計技法とツール、テスト
    分析について平易に説明
    Webシステムに対する自動テス
    トについてStep by Stepで説明
    アジャイルテスト全般の解説と事
    例紹介
    テストを何周か経験し、悩んだ後に
    読むと得るものが大きい実践書
    ソフトウェアテスト読書マップ
    Another View
    Feb. 9th, 2023 @kz_suzuki
    ⚫ このマップは、鈴木が好きな本を中心に並べたものに対し、マップ作成チーム
    にいただいたコメントを取り込んだものです。
    ⚫ ここにない本に対する否定的な意図はなく、おそらく単にわたしが読めずにい
    るだけです。不勉強でスミマセン。
    ⚫ 開発者テストやテスト分析への言及も薄いです、これも不勉強です・・・。
    「暗黒大陸」へ
    「新世界」へ

    View full-size slide

  31. 31
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    ⚫ 「一冊目」として外せない、さすがのベストセラー。
    ⚫ ソフトウェアテストの役割、手法、計画のやり方など、テスト
    全体について広くカバーしている。
    ⚫ 軽妙な語り口で飽きさせない。硬い本からのスタートが苦
    手な人にもありがたい。逆に、粗さを感じる部分もある。
    ⚫ ソフトウェアエンジニアとして押さえておくべき基本的なテスト
    設計技法をわかりやすく解説している。
    ⚫ わたしが初めてちゃんと読んだテスト本であり、エンジニア人
    生を変えてくれた書籍なので、思い入れが強すぎる。
    ⚫ なのに改訂版を積んでいる、申し訳ありません・・・。
    知識ゼロから学ぶソフトウェアテスト
    著者: 高橋 寿一
    出版社: 翔泳社
    出版年: 2012年
    Amazonリンク
    構成
    1. はじめに
    2. ソフトウェアテストの基本
    3. エンジニアがもっともよく使う手法
    4. 探索的テスト
    5. 非機能要求のテスト
    6. ソフトウェアテスト運用の基本
    7. ソフトウェア品質管理の基本
    8. テストの自動化
    9. それでもテストがうまくいかない人へ
    ソフトウェアテスト技法ドリル
    著者: 秋山 浩一
    出版社: 日科技連
    出版社
    出版年: 2022年
    Amazonリンク
    構成
    1. 点に注意を向ける
    2. 線を意識する
    同値分割、境界値分析、・・
    3. 面で逃さない
    ドメイン分析テスト、デシジョンテーブル、
    クラシフィケーションツリー、CFD法、・・
    4. 立体で捉える
    HAYST法、ペアワイズ、・・
    5. 時間を網羅する
    状態遷移テスト、並列処理テスト、・・
    6. 多次元の品質
    シナリオテスト、受け入れテスト、・・

    View full-size slide

  32. 32
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    紹介書籍一覧(*1)
    (*1) 著者の一部や訳者が、一部省略されております。なお、リンクにアフィリエイトはつけていません!
    一部の本は電子書籍のみ、あるいは残念ながら絶版となっております・・・。
    著者: 大西 建児、佐々木 方規他
    出版社: 翔泳社
    Amazonリンク
    ソフトウェアテスト教科書 JSTQB
    Foundation 第4版 シラバス2018対応
    ソフトウェアテスト入門 押さえておきたい
    <<要点・重点>>
    著者: ソフトウェア・テストPRESS編
    集部
    出版社: 技術評論社
    Amazonリンク
    現場の仕事がバリバリ進む
    ソフトウェアテスト手法
    著者: 高橋 寿一、湯本 剛
    出版社: 技術評論社
    Amazonリンク
    著者: Rick Craig、Stefan P
    Jaskiel
    出版社: 日経BP出版センター
    Amazonリンク
    体系的ソフトウェアテスト入門
    はじめて学ぶソフトウェアのテスト技法
    著者: リー コープランド
    出版社: 日経BP
    Amazonリンク
    ソフトウェアテスト技法練習帳
    ~知識を経験に変える40問~
    著者: 梅津 正洋、竹内 亜未他
    出版社: 技術評論社
    Amazonリンク
    著者: Jonathan Rasmusson
    出版社: オライリージャパン
    Amazonリンク
    初めての自動テスト
    ―Webシステムのための自動テスト基礎
    システムテスト自動化 標準ガイド
    著者: Mark Fewster、Dorothy
    Graham
    出版社: 翔泳社
    Amazonリンク
    Agile Testing Condensed
    著者: Janet Gregory、Lisa
    Crispin
    出版社: -
    Leanpubリンク
    著者: ジェームズ A ウィテカー、
    ジェーソン アーボン、ジェフ キャロー

    出版社: 日経BP
    Amazonリンク
    テストから見えてくる
    グーグルのソフトウェア開発
    ソフトウェアテスト293の鉄則
    著者: セム ケイナー, ジャームズ バッ
    ク他
    出版社: 日経BP
    Amazonリンク
    ソフトウェアテストをカイゼンする
    50のアイデア
    著者: Gojko Adzic, David Evans

    出版社: 翔泳社
    Amazonリンク

    View full-size slide

  33. 33
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    なぜ、概要の次に、テスト設計なのか。
    というか
    「テストプロセス」「テスト設計」とは?

    View full-size slide

  34. 34
    / 53
    テストプロセスと
    テスト設計
    Image: "Architecture #1" by Andrew Dupont is licensed under CC BY-SA 2.0.

    View full-size slide

  35. 35
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    「テストプロセス」という言葉の定義
    ◼ テストプロセス(*1)
    ⚫ 相互に関連する活動のセット。
    ⚫ テスト計画作業、テストモニタリングとコントロール、テスト分析、テスト設計、テスト実装、
    テスト実行、テスト完了といった活動から構成される。
    ◼ 「テスト開発」という考え方
    ⚫ テストの分析・設計・実装という言葉からもわかるように、テスト自体もマクロからミクロへ、
    論理的な順を追って実現されていく「開発物」であると考える。
    - いきなり「テストケース1,000件レビューしてください」と言われても困りますよね。
    - まず「何を実現したいの?」から始める。
    (*1) ISTQB Glossaryから引用。

    View full-size slide

  36. 36
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    テストプロセス(*1)が整えられていく例(*2)
    本当にアドホックな世界 ・・・
    (*1) アジャイル開発をしている人たちの前で「プロセス」という言葉を使うことに、恐怖感を覚えている自分がいます。
    (*2) この順番に必ずプロセスが追加されていくというものではないです。
    (*3) 「学習」という観点では、これが必ずしも悪いわけではないです。これだけだとつらいですが。
    テスト
    実行 できたソフトウェアを、とにかく叩いてみる!(*3)
    テスト
    実行
    テスト
    実装
    実行する内容が不明だと、再現性がない・・・。
    テストケースをちゃんと具体化して書き下そう。
    テスト
    実行
    テスト
    実装
    テスト
    計画
    テスト
    完了
    見積もりとか計画とか、報告・情報整理・次の
    開発へのフィードバックは必要だよね。
    モニタリングとコントロール
    テスト
    実行
    テスト
    実装
    テスト
    計画
    テスト
    完了
    進捗・品質状況を定量的に把握して、必要に応じた
    アクションを取れるようにしよう。
    モニタリングとコントロール
    テスト
    分析
    テスト
    実行
    テスト
    実装
    テスト
    計画
    テスト
    完了
    テスト観点が足りていない。テストケースをいきなり
    作り始めるのではなく、まず観点を列挙・整理しよう。
    モニタリングとコントロール
    テスト
    設計
    テスト
    実行
    テスト
    実装
    テスト
    計画
    テスト
    完了
    ある観点に対して、テストが冗長だったり不足してた
    りする。テストケースをロジカルに導出できない?
    テスト
    分析

    View full-size slide

  37. 37
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    象をテストする場合のテストプロセス
    ◼ この人たちは、「現実の象がいかなるものか」を、
    いろんな「観点」できっちり見ている。
    ⚫ 胴体、しっぽ、牙、・・・ 、特徴ある箇所を確認。
    ⚫ 象のユーザビリティという非機能要件もカバーしている。
    ◼ 象に関する情報を事前に調査したうえで、
    では実際に出てきた象のどこをチェックするかと
    いう観点を特定するのが、テスト分析。
    ◼ それぞれの観点を効果的・効率的にチェック
    する方法を決めるのが、テスト設計。
    ◼ 設計したものを実際に書き下したり、行う
    順番を決めたりするのが、テスト実装。
    ◼ 実際の象チェックを行うのが、テスト実行。
    ◼ 目隠しを外すのは、スクラムマスターの仕事?
    The Blind Men and the Elephant: A Metaphor to Illuminate the Role of Researchers and Reviewers in Social Science - Scientific Figure on ResearchGate. Available from:
    https://www.researchgate.net/figure/The-Blind-Men-and-the-Elephant_fig1_290127733 [accessed 14 Jan, 2023]
    有名なこの
    The Blind Men and the Elephant
    「部分しか見ておらず、全体が見えてない」という
    メタファーで使われがちだけど・・・。

    View full-size slide

  38. 38
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    テストプロセスで、テストの課題を仕分けしてみると・・・
    ◼ テストなんて考えてもみなかったところで本番障害が。。。
    ⚫ テストの「分析」するプロセスの改善が必要かもしれません。
    ◼ AIベースのソフトウェアってどうやってテストすればいいのだろう?
    ⚫ ドメイン特有のテストの「設計」をするための「技法」を学ぶ必要があります。
    ◼ 手動のテストに時間がかかりすぎるので、自動化したい・・・
    ⚫ テストの「実装」というプロセスです(*1)。自動テストツールも関係してきます。
    ◼ アジャイルで人気のある「探索的テスト」をやりたい!
    ⚫ テストの「実行」というプロセス(*2)であり、実行のスタイルを学ぶことになります。
    ◼ 手動テストと自動テストが混在して、進捗が全然わからん。
    ⚫ テストの「管理」というプロセスで、ツール導入も
    含めて考える必要があります。
    (*1) テスト自動化は実装のみが関係するわけではありません。テスト設計など実装以前の活動もとても重要です。また実行も、そのための計画ももちろん大事です。
    (*2) 探索的テストは、テストの実行・学習・設計を短時間で反復・継続していくスタイルなので、「実行」のみではありません。
    このうち、
    なぜテスト設計をオススメするのか?

    View full-size slide

  39. 39
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    「テスト設計」とは何か
    ◼ テスト設計とは
    ⚫ テスト分析において「テストするぞ」と特定した対象を、テストケースに落とし込む作業。
    - これ以外にも、テスト環境の設計やテストデータの検討も、テスト設計プロセスに含まれる。
    ⚫ この作業において使うのが、「テスト技法」。
    ◼ テスト技法とは
    ⚫ テスト条件の定義、テストケースの設計、およびテストデータの明確化をするための手続き。(*1)
    ⚫ 最適なテストケースを導出するために、以下の3つの手段と、対応する技法がある。(*2)
    1. テストケースを合理的に少なくする
    - 同値分割法、組み合わせテスト
    2. 多くの欠陥が見つかるようにする
    - 境界値分析、エラー推測、探索的テスト
    3. テスト対象を漏れなくテストする
    - 制御フローテスト、データフローテスト、デシジョンテーブルテスト、状態遷移テスト、ユースケーステスト
    (*1) ISTQB Glossaryから引用。
    (*2) 『ASTERセミナー標準テキスト』参照。

    View full-size slide

  40. 40
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    「テスト設計」がオススメな理由
    ◼ 効果的と考えられるテストケースをロジカルに導出できるので、気分が良い。
    ◼ テスト設計において利用するモデルは、ソフトウェア設計段階で使える。
    ◼ 最初のプロセスの「計画」の詳細を先に学ぼうとすると、たぶん面白くない。
    ⚫ テスト計画の重要性は、テストを何周か経験してからじゃないと身に沁みない。
    ⚫ テンプレの定義された各種ドキュメントも、ただの儀式文書に思えてしまってやる気を失う。
    1
    2
    3

    View full-size slide

  41. 41
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    テスト設計の具体例

    View full-size slide

  42. 42
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    SNSでこんな機能があったとする
    ◼ 仕様: グループへの参加手順①
    1. ユーザは、そのグループのポータル画面で、「参加を
    希望する」ボタンを押す。
    2. グループの管理者に承認依頼が通知される。
    3. 管理者はそれを「承認」または「却下」する。
    ◼ 仕様の検討: 状態遷移のにおいがする
    ⚫ 状態遷移テストでは、状態遷移モデルを描くことに
    なっている。状態遷移図を描いて(*1)みよう!
    ⚫ モデルから、状態遷移表を生成できる。
    ⚫ 状態遷移テストでは最低限、状態遷移表のすべて
    のセルを網羅することになっているが・・・空欄だらけ。
    仕様が定まっていない可能性があることに気づく。
    (*1) 状態遷移図・状態遷移表は、ベリサーブ社のサービス「GIHOZ」を利用して描いています。
    状態遷移図
    状態遷移表
    ユーザが一度「参加希望ボタン」を押した後、
    承認の前にもう一度ボタンを押したらどうなる?
    何も変わらないという動作なのか?
    そもそも押せない作りにするのか?
    自動生成

    View full-size slide

  43. 43
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    SNSでこんな機能があったとする
    ◼ 仕様追加: グループへの参加手順②
    1. あるグループの管理者は、そのグループの管理画面
    でユーザを指定し、「招待する」ボタンを押す。
    2. そのユーザに招待が通知される。
    3. ユーザはそれを「承認」または「却下」する。
    ◼ 仕様の検討: 状態遷移図の更新
    ⚫ 管理者とユーザを入れ替えた遷移を追加するだけ?
    ⚫ 状態遷移表を描くことで、
    「ユーザ承認待ち かつ 管理者承認待ち」
    という新しい状態が発生しうることに気づく。
    ⚫ ここでも、テスト設計のためのモデルを描くことで、
    「曖昧な仕様」を早く特定することができる。
    状態遷移図
    管理者がユーザの承認を待っている状態で、
    ユーザが「参加希望」ボタンを押すとどうなる?
    「参加状態」にしてしまうか?
    ??

    View full-size slide

  44. 44
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    SNSでこんな機能があったとする
    ◼ テストの検討(*1)
    ⚫ 状態遷移表を描くことで、そこから特定の条件の
    テストケースを生成することができる。
    - 0スイッチテストケース: 状態遷移が1度だけ起こるケース。
    状態遷移表の各セルを網羅することになる。
    - 1スイッチテストケース: 状態遷移が2度起こるケース。
    - この機能のハッピーパス(未参加→承認待ち→参加)や、
    「却下された後に再度申請」というケースも含まれている。
    ⚫ 「状態遷移については、コレコレという条件で網羅性
    100%である」と論理的に説明ができる。
    - 「いろいろランダムにやってみて、問題ありませんでした!」
    だけだと不安ですよね?
    (*1) ここではあくまでも、機能の状態遷移にのみ着目したテストについて述べています。
    状態遷移表
    0スイッチ テストケース
    1スイッチ テストケース
    自動生成

    View full-size slide

  45. 45
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    「テスト設計」がオススメな理由 (再掲)
    ◼ 効果的と考えられるテストケースをロジカルに導出できるので、気分が良い。
    ⚫ 「状態遷移を2回起こすテストは3パターン。3つ実行すればカバレッジ100%」のように
    論理的・定量的にテストを実行・評価することができる。
    ◼ テスト設計において利用するモデルは、ソフトウェア設計段階で使える。
    ⚫ たとえば状態遷移図・表は、そもそもソフトウェア設計で使われる技術である。
    ⚫ モデルを描くことで曖昧さが減り、検討漏れに気づきやすくなるうえに、自動生成までできる。
    テスト設計は、学習のコストパフォーマンスのよい技術です。
    1
    2

    View full-size slide

  46. 46
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    テスト計画・管理エリア
    テスト自動化エリア
    モダンなテスト文化エリア
    スルメエリア
    テスト設計エリア
    全体概要エリア
    (*) 書影はすべて、Amazonから引用。各書籍の情報はこのあとのスライドで一覧にします。
    ホワイトボックステストも
    カバーしたい場合
    もっと詳しく具体的な
    内容を知りたい場合
    コスパのよい
    テストを求めて
    演習+勉強会
    で強くなる!
    テストの作り方はわかった
    ので、自動化するぜ!
    アジャイルにおけるテス
    トの位置づけや、先進
    企業のテストを学ぶ
    マネージャーなどがソフトウェア
    テストの全体をより深く押さえる
    名著・古典。ちゃんと
    読めてない・・・
    ツールやドメインに
    あまり依存しない
    一般論を学ぶ
    テストマネージャとしての一歩
    目を学ぶための良書
    ソフトウェアテスト全般について
    比較的平易に書かれた入門書
    テスト設計技法とツール、テスト
    分析について平易に説明
    Webシステムに対する自動テス
    トについてStep by Stepで説明
    アジャイルテスト全般の解説と事
    例紹介
    テストを何周か経験し、悩んだ後に
    読むと得るものが大きい実践書
    ソフトウェアテスト読書マップ
    Another View
    Feb. 9th, 2023 @kz_suzuki
    ⚫ このマップは、鈴木が好きな本を中心に並べたものに対し、マップ作成チーム
    にいただいたコメントを取り込んだものです。
    ⚫ ここにない本に対する否定的な意図はなく、おそらく単にわたしが読めずにい
    るだけです。不勉強でスミマセン。
    ⚫ 開発者テストやテスト分析への言及も薄いです、これも不勉強です・・・。
    「暗黒大陸」へ
    「新世界」へ

    View full-size slide

  47. 47
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    ところで、
    テストの全体像
    みたいな話をしましたが・・・

    View full-size slide

  48. 48
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    ソフトウェア品質知識体系
    ◼ テストは「品質保証」という技術の一部
    ◼ 『ソフトウェア品質知識体系ガイド』の
    第3版では、こんな構成になっている。
    テストは、ごくごく一部・・・
    ◼ 品質という
    広大な「暗黒大陸」(1)が・・・!
    (*1) 往年の少年ジャンプの漫画のネタは、若者に対するハラスメントになりうるので注意が必要です。
    SQuBOK V3の構造 (樹形図)
    1. ソフトウェア品質の
    基本概念
    2. ソフトウェア品質マネジメント
    3. ソフトウェア品質技

    5. ソフトウェアの応用
    領域
    1.1 品質の概念
    1.2 品質マネジメント
    の概念
    1.3 ソフトウェアの品質
    マネジメントの特徴
    組織レベル
    2.1 ソフトウェア品質マ
    ネジメントシステムの構
    築と運用
    2.2 ライフサイクルプロ
    セスのマネジメント
    2.3 ソフトウェアプロセス
    評価と改善のマネジメ
    ント
    2.4 検査のマネジメン

    2.5 監査のマネジメン

    2.6 教育・育成のマネ
    ジメント
    2.7 法的権利および
    法的責任のマネジメン

    プロジェクトレベル
    (共通)
    2.8 意思決定のマネジ
    メント
    プロジェクトレベル
    (個別)
    2.13 品質計画のマネ
    ジメント
    2.14 要求分析のマネ
    ジメント
    2.15 設計のマネジメン

    2.16 実装のマネジメン

    2.17 レビューのマネジ
    メント
    2.18 テストのマネジメ
    ント
    2.19 品質分析および
    評価のマネジメント
    2.20 リリース可否判

    2.21 運用および保守
    のマネジメント
    4. 専門的なソフトウェ
    ア品質の概念と技術
    工程に共通な技術
    3.1 メトリクス
    3.2 モデル化の技法
    3.3 形式手法
    工程に個別な技術
    3.4 要求分析の技法
    3.5 設計の技法
    3.6 実装の技法
    3.7 レビューの技法
    3.8 テストの技法
    3.9 品質分析および
    評価の技法
    3.10 運用および保守
    の技法
    4.1 ユーザビリティ
    4.2 セーフティ
    4.3 セキュリティ
    4.4 プライバシー
    5.1 人工知能システム
    における品質
    5.2 IoTシステムにおけ
    る品質
    5.3 アジャイル開発と
    DevOpsにおける品質
    5.4 クラウドサービスに
    おける品質
    5.5 オープンソースソフ
    トウェア利活用における
    品質
    2.9 調達のマネジメン

    2.10 リスクマネジメント
    2.11 構成管理
    2.12 プロジェクトマネ
    ジメント

    View full-size slide

  49. 49
    / 53
    まとめ
    Image: "goal!" by dannipenguin is licensed under CC BY-NC-SA 2.0.

    View full-size slide

  50. 50
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    まとめ
    ◼ 「ソフトウェアテストの知識って何がうれしいのか」がわかる。
    → ソフトウェア設計に生かせたり、QAの活動に対する解像度が上がります。
    ◼ 「ソフトウェアテストを、どこから勉強すればいいのか」がわかる。
    → 「テスト設計」は、コスパの高い技術でオススメです。
    書籍を選ぶ際には、「ソフトウェアテスト読書マップ」も参考にしてください。
    → 「テスト、実は面白いのでは?」となったら、QAの世界にきてください!

    View full-size slide

  51. 51
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    テスト・QAイベントや勉強会
    ◼ JaSST (ソフトウェアテストシンポジウム)
    ⚫ 長年続いている「各地開催版」の他、オンライン開催を主導したJaSST Online、
    テストでなくレビューを対象としたJaSST Review、敷居を極限まで下げたJaSST nanoと、
    スピンオフがたくさんある。
    ⚫ JaSST ’23 Tokyoは、2023年3月9日~10日開催です! わたしもしゃべります。
    ◼ WACATE (Workshop for Accelerating CApable Testing Engineers)
    ⚫ 年2回、1泊2日の合宿形式で、セッションやワークショップを通じてテストを学ぶ勉強会。
    ◼ 企業主催のイベント
    ⚫ Ques: ヒューマンクレスト主催。ソフトウェアQAエンジニアの活性化を目的とする。
    ⚫ QA Tech Night: AIQVE ONE主催。ゲームのテストなどを中心に、QAについて語る。
    ⚫ ベリサーブ: テスト技法、管理ツールなどをテーマにしたイベント。
    ⚫ Forkwell Community: grooves主催。TEST Studyというテーマの回がある。

    View full-size slide

  52. 52
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    One more thing …
    キミだけの最強の読書マップを作ってみないか!?
    各技術分野のマップが充実していると、みんな嬉しい!

    View full-size slide

  53. 53
    / 53
    Developers Summit 2023
    Copyright 2023, Kazuhiro SUZUKI
    Happy Testing!!

    View full-size slide