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

テストを学び成長する/Study_Software_Testing_and_Grow

 テストを学び成長する/Study_Software_Testing_and_Grow

JaSST '22 Shikokuの講演のスライドです。
https://www.jasst.jp/symposium/jasst22shikoku/timetable.html#S1

Abstract:
ソフトウェアテストと一口に言っても、その様相は多面的です。実際にテストの世界では様々な側面の要素が、同じテストという用語で語られるため、ミスコミュニケーションが発生することも少なくありません。

自身が成長するにしろ組織を成長させるにしろ、違いを識別して俯瞰した視座からテストを考ることは、ソフトウェアテストに関わるすべての人にとって有益と考えます。

その上で、テストに強みを持った技術者へどう成長するのか、もしくはどう成長してもらうのかについてお話ししたいと思います。

※本講演はJaSST'21 Hokurikuでお話しした内容をベースに、2022年度版としてアップデートしたものです。
http://www.jasst.jp/symposium/jasst21hokuriku/timetable.html#A1

YAMASAKI Takashi

January 22, 2021
Tweet

More Decks by YAMASAKI Takashi

Other Decks in Technology

Transcript

  1. 山﨑 崇 (YAMASAKI Takashi) (株)ベリサーブ ソフトウェア品質コンサルティング部 兼 品質保証部プロジェクト推進課 課長 2001年からセキュリティ対策ベンダーにおいて、さまざまなプロジェクトのソフトウェアテスト

    活動にQAエンジニアとして従事。その傍ら、さまざまなテストコミュニティに参画し、活動の場を 広げる。2015年にベリサーブに入社。現場への技術支援、教育、コンサルテーションなどを担い、 少しでも現場が幸せになるように日々奮闘中。 主な活動 • JaSST東京実行委員会 (’11~) • テスト設計コンテストU-30審査委員 (’16~) • ASTER テストプロセス改善研究会 (’16~) • JSTQB Foundation Level 認定講師 (’12~) • WACATE(’07~’14) など 主な著書・訳書 • 実践ソフトウェアエンジニアリング 第9版 (共訳) • 開発現場で役立つテスト「超」実践講座 第9回 (著) • テスト技術者資格制度Foundation Level Extensionシラバス アジャイルテスト担当者 (共訳) • システム開発ジャーナル Vol. 10 (共著) など 主な講演 • JaSST’21北陸 基調講演「テストを学び成長する」 🔗 • JaSST’17東北 基調講演「テストの極みを目指して」 🔗 • JaSST’15東京 チュートリアル「初心者からの脱出」 🔗 • テスト設計コンテストチュートリアル U-30クラス(’17~’19)ちびこん編(’21 🔗) • SQiP研究会 品質保証の基礎コース 第7回 「ソフトウェアテストの概観を識る」 (’17, ’20~) 🔗 • 第14回SPIトワイライトフォーラム 「テストプロセス改善モデルの最新動向」 🔗 など その他 https://www.linkedin.com/in/yamasaki696/ を参照 Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 2
  2. 質問方法 Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 7

    ZoomのQ&Aから、質問を適宜投稿してください ※チャットではないです ※すべての質問に回答できないかもしれませんが、その際は、公演後にテキストベースになりますが、可能な限り回答できればと思います
  3. 今日のお話 Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 8

    1.テストについて改めて考えてみる 2.テストを俯瞰する3つの軸のお話 3.テストを学ぶこと・育成について
  4. 今日のお話 Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 9

    1.テストについて改めて考えてみる 2.テストを俯瞰する3つの軸のお話 3.テストを学ぶこと・育成について
  5. ソフトウェア 論理的集合体 目に見えない 触れられない 物理化学法則に基づ かないので自由度が 高すぎる ハードウェア 物質的実体 目に見える

    触れられる 物理化学法則に基づ くので自由度は低い Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 11
  6. Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 12 出典:

    テスト技術者資格制度 Foundation Levelシラバス日本語版Version 2018V3.1.J03 P.17 [1.2.3 エラー、欠陥および故障」より 誘因① 納期のプレッシャー 誘因② 人間の誤りを犯しやすい性質 誘因③ プロジェクト参加者の経験不足または技術不足 誘因④ プロジェクト参加者間の誤ったコミュニケーション ※要件や設計の誤ったコミュニケーションを含む 誘因⑤ 複雑さ ※ コード、設計、アーキテクチャ、解決すべき根本的な問題, そして/または使用する技術の複雑さ 誘因⑥ システム内またはシステム間のインターフェースに対する誤解 ※ 特に、関連するシステム数が多い場合 誘因⑦ 新しく不慣れな技術 など
  7. Industry References:3 B. Boehm and V. Basili, "Software Defect Reduction

    Top 10 List" IEEE Computer Society, Vol. 34, No. 1, Jan 2001 リリース後に見つかった欠陥の修正コストは高い Copyright © 2017-2021 Takashi YAMASAKI All right reserved. 14
  8. テストを通じて得られた情報によって製品やサービスの 品 質 に 対 す る 確 信 度

    合 い を 積 み 上 げ て い く 逆説的には、テストをしなくて済むのであれば、誰もがそれをしたくないけれども、ソフトウェアの特性や人の特性やソフトウェア開発 の背景などから、テストという手段を用いてその結果を見ないことには、リリースしても大丈夫であるかどうかを判断する術がない Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 21
  9. そのための手段がテストだが、テストは本質的に完全ではない テストは欠陥があることは示せるが、欠陥がないことは示せない 原則 1 全数テストは不可能 原則 2 早期テストで時間とコストを節約 原則 3

    欠陥の偏在 原則 4 殺虫剤のパラドックスにご用心 原則 5 テストは状況(コンテキスト)次第 原則 6 「バグゼロ」の落とし穴 原則 7 出典:「テスト技術者資格制度 Foundation Levelシラバス日本語版Version 2018V3.1.J03」P.18~19「1.3 テストの7原則」より Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 22
  10. 今日のお話 Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 26

    1.テストについて改めて考えてみる 2.テストを俯瞰する3つの軸のお話 3.テストを学ぶこと・育成について
  11. ユニットテスト 統合テスト システムテスト 結合テスト アルファテスト ベータテスト 機能テスト 非機能テスト 性能テスト 負荷テスト

    受け入れテスト スモークテスト モンキーテスト 探索的テスト ペネトレーションテスト セキュリティテスト コンパチビリティテスト パステスト ステートメントテスト デシジョンテーブルテスト テスト設計 テスト計画 テスト分析 テスト実装 テスト実行 テスト管理 テスト報告 テストケース テストウェア テストベース テストデータ テスト環境 テストツール テスト条件 テスト戦略 テストアプローチ テスト技法 ブラックボックステスト ホワイトボックステスト グレーボックステスト テスト手順 ロードテスト テスト駆動開発 テストフレームワーク でもテストの領域は「••テスト」や「テスト••」だらけ… Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 30
  12. Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 31 「分かることは分けられること」

    「思考・論理・分析 ―「正しく考え、正しく分かること」の論理と実践―」 波頭 亮(著)
  13. テストレベルとは? テストレベルは、系統的にまとめ、マネジメント していくテストの活動のグループである。 “ 具体的にインスタンス化したテストプロセス。 “ ISTQB Glossary https://glossary.istqb.org より

    「テスト技術者資格制度 Foundation Levelシラバス日本語版Version 2018V3.1.J03」 P.31「2.2 テストレベル」より Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 34
  14. DevOpsでの継続的テストのループ 出典:Dan AshbyのContinuous Testing in DevOpsを引用した書籍「A Practical Guide to Testing

    in Dev Ops」に翻訳本 P.xiii Dev PLAN BRANCH CODE MERGE BUILD Ops RELEASE DEPLOY OPERATE MONITOR ここで テスト ここで テスト ここで テスト そして ここでも さらに ここでもテスト ここでテストしないの? もちろんできます! ここでも テスト さらに ここでも テスト そして ここも もちろん… Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 39
  15. テ ス ト レ ベ ル の 本 質 を

    考 え て い く と ソフトウェア開発ライフサイクルに留まらず ソフトウェアライフサイクル全般における テストの全体像を考えていくことに繋がる Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 40
  16. テストタイプとは? コンポーネントやシステムのある特性に対応したテスト の目的を基にテスト活動をまとめたもの。 “ ISTQB Glossary V3.5 https://glossary.istqb.org より テストタイプは、以下に列挙する特定のテストの目的か

    ら見たソフトウェアシステム(あるいはシステムの一部 分)の特性をテストするための活動を束ねたものである。 「テスト技術者資格制度 Foundation Levelシラバス日本語版Version 2018V3.1.J03」P.40「2.3 テストタイプ」より “ Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 42
  17. JSTQBによるテストタイプの分類 テストタイプ 機能テスト 機能の品質特性、例えば完全、正確 および適切であることなどを評価す る。 非機能テスト 非機能の品質特性、例えば信頼性、 性能効率性、セキュリティ、互換性、 使用性などを評価する。

    ホワイトボックステスト コンポーネントまたはシステムの、構造 またはアーキテクチャーが正しく完全 で仕様通りであることを評価する。 変更関連のテスト 欠 陥 が 修 正 さ れ て い る こ と を 確 認 す る な ど の 変 更 に よ る 影 響 を 評 価 し ( 確 認 テ ス ト ) 、 ソ フ ト ウ ェ ア や 環 境 の 変 更 に よ っ て 意 図 し な い 振 る 舞 い の 変 化 が 発 生 し て い な い か を 探す(リグレッションテスト)。 Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 43 各テストレベルの用語定義はISTQB Glossary https://glossary.istqb.orgによる
  18. “製品品質モデル “ from “JIS X 25010:2013” 図4 システム/ソフトウェア製品品質 機能適合性 性能効率性

    互換性 使用性 信頼性 セキュリティ 保守性 移植性 • 機能完全性 • 機能正確性 • 機能適切性 • 時間効率性 • 資源効率性 • 容量満足性 • 共存性 • 相互運用性 • 適切度認識性 • 習得性 • 運用操作性 • ユーザエラー 防止性 • ユーザインター フェース快美性 • アクセシビリ ティ • 成熟性 • 可用性 • 障害許容性 (対故障性) • 回復性 • 機密性 • インテグリティ • 否認防止性 • 責任追跡性 • 真正性 • モジュール性 • 再利用性 • 解析性 • 修正性 • 試験性 • 適用性 • 設置性 • 置換性 ISO/IEC 25010の製品品質モデル Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 44
  19. Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 45 •

    さまざまなテストを考慮するにあたり、品質モデルの各特性をガイドワードとして利用する のは良いですが、テストの中にすべて押し込むのは乱暴で、テストでは測りがたい特性もあ ります(たとえば、保守性とか移植性とか) • 前提として品質モデルはテストのためのモデルではないですし、各品質の特性は相関関係 があります。そして、すべての品質特性をフル天にすれば良いわけでもありません • 各特性が「どうあるべきか」は、本来的には品質要求として定める必要があり、テストではそ の要求を満たしているのかを確認することになります • 例えば、時間効率性(パフォーマンス)として、何msの応答であれば妥当であるかは品質要求次第
  20. 図:品質属性間のプラスとマイナスの相関関係 Karl E.著「ソフトウェア要求 第3版」 P.333より。 ※なお、デザインに手を入れている 可 用 性 効

    率 性 導 入 可 能 性 完 全 性 相 互 接 続 性 修 正 可 能 性 性 能 移 植 性 信 頼 性 再 利 用 性 堅 牢 性 安 全 性 拡 張 性 セ キ ュ リ テ ィ ユ ー ザ ビ リ テ ィ 検 証 可 能 性 可用性 + + 効率性 + - - + - - + - 導入可能性 + + + 完全性 - - - - + + - - 相互接続性 + - - - + + + - - 修正可能性 + + - - + + + + 性能 - - - - - - - 移植性 - + - - + - - + 信頼性 + - + + - + + + + + 再利用性 - - + + - + - + 堅牢性 + - + + + - + + + + + 安全性 - + + - + + - - 拡張性 + + + + + + + セキュリティ + + + - - + + + - - ユーザビリティ - + - - + + + - 検証可能性 + + + + + + + + + + 品質特性間の相関関係の例 Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 46
  21. Product Quality Functional suitability Performance efficiency Compatibility Interaction capability Reliability

    Security Maintainability Flexibility Safety Functional completeness Functional correctness Functional appropriateness Appropriateness recognizability Learnability Operability User error protection User engagement User assistance Self- descriptiveness Time behavior Resource utilization Capacity Co-existence Interoperability Confidentiality Non- repudiation Integrity Accountability Authenticity Resistance Operational constraint Risk identification Failsafe Hazard warning Safe integration Faultlessness Availability Fault tolerance Recoverability Modularity Reusability Analyzability Modifiability Testability Adaptability Scalability Installability Replaceability 製品品質のモデルも、時代と共に改訂を重ねてきており、先のISO/IEC25010:2013も現在絶賛改訂作業中です。 また、製品品質以外にも、SQuaREには利用時の品質、データ品質、サービス品質なども規定されていています。 Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 47 変更 新規追加 既存 凡例 図は、現在策定中(まだリリースされていない、ISO/IEC 25010の新しい製品品質モデルの主特性と副特性の案が出典。 策定中の情報についてはオフィシャルに表にでていませんが、この規格を策定するワーキンググループのコンビーナ(議長)である込山さんの資料を参照してください。 https://speakerdeck.com/washizaki/squareguan-lian-falsebiao-zhun-hua-falsequan-ti-dong-xiang-25010-25019gai-yao-ip-shan-jun-bo
  22. テストプロセスの例(JSTQB) テストプロジェクトのタイムライン テ ス ト 分 析 テ ス ト

    設 計 テ ス ト 実 装 テ ス ト 実 行 テストのモニタリングとコントロール テ ス ト 計 画 テ ス ト 完 了 t Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 51
  23. テスト モデルを 特定する 4つの テスト モデル モデルに 紐づいた テスト観点 テスト

    観点を 詳細化 する 詳細化された テスト観点 (テストパラメータ) 網羅 基準を 設定する 網羅基準 テストケース (テスト値) 基準に 基づいて ケースを 導出する 網羅基準に 紐づいた テスト パラメータ テスト技法 テスト 観点間の 関係性を 見出す テスト フレーム 同じような 意味を持つ テスト観点や テストフレーム をまとめる テスト コンテナ テスト コンテナ間の 関連性を 整理する テスト アーキテクチャ テスト すべきことを 洗い出す テストベース 様々な テスト観点 テスト観点を 構造化する 構造化された テスト観点 (中間状態) ドメイン知識/ ガイドなど リファイン する 最終的に 構造化された テスト観点 さまざまなテストレベルやテストタイプを 実現するためのテストプロセスを設計しよう Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 52
  24. 外部設計 システムテスト 内部設計 コーディング 統合テスト 要件定義 受入れテスト 同上 同上 同上

    テスト完了 テスト実行 テスト実装 テスト設計 テスト分析 モニタリングおよびコントロール テスト 計画 ソフトウェアライフサイクルの中で継続的に行っていく 各 テ ス ト の 特 徴 を 見 据 え た プ ロ セ ス を 設 計 す る Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 53
  25. Deploy Stage Test Build Commit 継続的Delivery(CD) 継続的インテグレーション(CI) 継続的デプロイメント(CD) ラ イ

    フ サ イ ク ル の 中 に パ イ プ ラ イ ン も 構 築 し て い く Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 54
  26. テ ス ト プ ロ セ ス を 突 き

    詰 め て 考 え て い く と テストを実現するためのプロセスだけではなく ソフトウェア開発ライフサイクルやソフトウェアライ フサイクルとの融合やパイプライン化に繋がる Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 55
  27. テストの空間の第1面(テストタイプ×テストレベル) 受け入れテスト システムテスト 統合テスト コンポーネントテスト 機 能 テ ス ト

    セ キ ュ リ テ ィ テ ス ト 相 互 運 用 性 テ ス ト 使 用 性 テ ス ト ・・・ ホ ワ イ ト ボ ッ ク ス テ ス ト 変 更 関 連 の テ ス ト 非機能テスト Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 57
  28. テストの空間の第2面(テストプロセス×テストレベル) 受け入れテスト システムテスト 統合テスト コンポーネントテスト テ ス ト 計 画

    テ ス ト 分 析 テ ス ト 設 計 テ ス ト 実 装 テ ス ト 実 行 テ ス ト 完 了 テ ス ト の M & C Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 58
  29. テストの空間の第3面(テストプロセス×テストタイプ) 機能テスト 非 機 能 テ ス ト セキュリティテスト 相互運用性テスト

    使用性テスト ・・・ ホワイトボックステスト 変更関連のテスト テ ス ト 計 画 テ ス ト 分 析 テ ス ト 設 計 テ ス ト 実 装 テ ス ト 実 行 テ ス ト 完 了 テ ス ト の M & C Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 59
  30. テスト以外のスキルや知識が必要なだけではなく、 テストとテスト以外を如何にして繋げるかが重要 TEST SKILLS DOMAIN KNOWLEDGE SOFT SKILLS IT SKILLS

    Fig. “Tester Skillspace” by Stuart Reid from JaSST Tokyo’14 Session Material (H8-2-2.pdf) Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 60
  31. テストに閉じて学ぶのではなく テ ス ト を 通 じ て ソ フ

    ト ウ ェ ア の 本質に深く深く潜っていこう! Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 61
  32. 今日のお話 Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 62

    1.テストについて改めて考えてみる 2.テストを俯瞰する3つの軸のお話 3.テストを学ぶこと・育成について
  33. そのためにも普段からテストの楽しさや 面 白 さ な ど を 醸 し 出

    し て お こ う Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 66
  34. 本講を切っ掛けにソフトウェアの深淵を覗く 旅 へ の 第 1 歩 を 踏 み

    出 し て く だ さ い 写真素材 Copyright © 2017-2022 Takashi YAMASAKI All right reserved. 71 ご 静 聴 あ り が と う ご ざ い ま し た !