Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Distribution naite19

1,049 views

Published on

Distribution

Published in: Data & Analytics
  • Be the first to comment

Distribution naite19

  1. 1. 岡野 麻子(NaITE) ©NaITE 1 NaITE #19 数学を学ぼう ~数学の知識を利用した ソフトウェアテスト~ 2017/1/21
  2. 2. 自己紹介 • 岡野 麻子(おかのあさこ) • 経歴 • 自社では、SEPGに所属(2010~)。 • 主に、CMMIによるプロセス改善に従事。「定量的プロジェクト管理」の推進を しています。統計分析(プロセス実績ベースラインやプロセス実績モデルの構 築)、ツールの管理、プロジェクト推進、・・・なんでも屋さんです。 • その前はQAをやっていました(2004~2010)。 • 所属しているコミュニティなど • NaITE(長崎IT技術者会) スタッフ • PM学会 PDA研究会 • JFPUG FP活用研究会 など • Twitter:@acha_821 (あさこ) ©NaITE 22017/1/21
  3. 3. 参考資料 • 統計学入門 東京大学教養学部統計学教室 (編集) • 数学ガールの秘密ノート/やさしい統計 結城 浩 著 • ソフトウェアメトリクス統計分析入門 ―現場エンジニアによる直観的解説と実践ドリル 小池 利和 著 ©NaITE 32017/1/21
  4. 4. 本セッションの目的(ゴール) • 一番大事なゴール:ツールとして、数学を少しでも身につけて頂 くこと • 探針テストで用いられている基礎知識を理解 • 探針テストの理解や使い方を学ぶことが目的ではなく、使われている数学知識とそ の知識利用の背景を理解することを目的とする。 • ディスカッションをしてみよう! • 本日の内容がどんな場面で用いられているか、どういう応用が出来るかなどをはな しあってみよう。 ©NaITE 42017/1/21
  5. 5. だいじなこと • 探針テスト自身の理解や使い方を学ぶことが目的ではなく、使われてい る考え方の理解を目的とする。 • NaITE14勉強会でもお伝えしましたが・・・再掲! • データの「見る切り口」「料理の仕方」は「手段」。 • データの意味をちゃんと理解してから料理しましょう。 • 目的が「データ分析」にならないように気をつけましょう! →目の前にあるデータが、今の事実すべてだと思ってしまう現場によくある。 あくまでも、「全体の一部」であることを念頭においてください。 「母集団」の中の、ひとつの「標本」にすぎないのです。 ©NaITE 52017/1/21
  6. 6. 本セッションの全体像 • 探針テストの中で使われている「区間推定」をざっくり理解 • 区間推定の中の、信頼区間が使われている • 区間推定・信頼区間は、正規分布を理解する必要がある • 正規分布には、分散・平均・標準偏差・標準誤差などの基礎知識が出てくる ということで、基礎知識から区間推定ま でを1時間で駆け抜けてご紹介しま すっ! ©NaITE 62017/1/21
  7. 7. イメージでつかもう 2017/1/21 7©NaITE
  8. 8. 2017/1/21©NaITE 8 ※ 画像引用元:wikipedia σ が既知の場合 σ は標準偏差 σ2 は分散 イメージでつかもう
  9. 9. 2017/1/21©NaITE 9 ※ 画像引用元:wikipedia σが未知の場合 この考えを用いて 区間推定を行う ⇒探針テストで利用されている イメージでつかもう
  10. 10. ということで、はじめます! 2017/1/21 10©NaITE
  11. 11. アジェンダ 1. 事例:探針テスト i. 探針テストの意味と目的 ii. 探針テストの使用事例(リリカルくんより) iii. サンプリングテスト iv. 推定? 2. 統計学 i. 母集団と標本、その関係 ii. 統計学の目的 iii. 平均・分散・標準偏差 iv. 正規分布(イメージ) 3. 区間推定 i. 信頼区間とは? ii. 標準誤差 iii. 信頼区間 iv. 実際に導いてみよう! 4. まとめ! 2017/1/21 11©NaITE
  12. 12. アジェンダ 1. 事例:探針テスト i. 探針テストの意味と目的 ii. 探針テストの使用事例(リリカルくんより) iii. サンプリングテスト iv. 推定? 2. 統計学 i. 母集団と標本、その関係 ii. 統計学の目的 iii. 平均・分散・標準偏差 iv. 正規分布(イメージ) 3. 区間推定 i. 信頼区間とは? ii. 標準誤差 iii. 信頼区間 iv. 実際に導いてみよう! 4. まとめ! 2017/1/21 12©NaITE
  13. 13. 1.事例:探針テスト 2017/1/21 13©NaITE
  14. 14. 探針テスト • 製品検査に先立って、デバッグ・テスト段階における品質を検 査が実際に測定・評価するもの • 基本的には検査項目をサンプリングし、その結果から全体の母 不良率を求め残バグ件数を推定する方法 奈良隆正氏の資料(※)より • バグ件数を統計的手法で推定するため 使用する目的 ©NaITE 142017/1/21 ※ http://www.sea.jp/SPIN/Reports/SPIN040226-Nara-handout3d.pdf
  15. 15. サンプリングテスト •たくさんのテストケースから、ランダムに選択したテストケースを実行するこ と サンプリングテストとは(HAYST法紹介ページより(※)) •全テストケースのうちの10~20%をサンプリングしてテストをする。そこで検 出されるバグ数をカウントしていく。 実施の例 •残りのバグ数を予測する 目的 ©NaITE 152017/1/21 ※ http://www.hayst.com/Pages/qptest.aspx
  16. 16. 探針テスト 実務での使用方法を紹介。 ~某社 QA部門での事例~ 2017/1/21 16©NaITE
  17. 17. 推定? • 全バグ件数 何を推定? • 確率を利用してバグの分布状況を把握し、全体の件数を推定する 統計的? • 統計的手法・・つまり・・正規分布を利用して推定する 手法は? ©NaITE 172017/1/21
  18. 18. アジェンダ 1. 事例:探針テスト i. 探針テストの意味と目的 ii. 探針テストの使用事例(リリカルくんより) iii. サンプリングテスト iv. 推定? 2. 統計学 i. 母集団と標本、その関係 ii. 統計学の目的 iii. 平均・分散・標準偏差 iv. 正規分布(イメージ) 3. 区間推定 i. 信頼区間とは? ii. 標準誤差 iii. 信頼区間 iv. 実際に導いてみよう! 4. まとめ! 2017/1/21 18©NaITE
  19. 19. 2.統計学 2017/1/21 19©NaITE
  20. 20. 母集団と標本 母集団 • 調査の対象となる全体 • 事例のケースでは、テストケー ス全体 標本 • 母集団の中から選んだもの • 事例のケースではサンプリング されたテストケース 2017/1/21©NaITE 20
  21. 21. 母集団と標本の関係 2017/1/21©NaITE 21 母集団 テストケース 全体 𝑥 標本 X 母集団 X 𝑥1 𝑥2 𝑥3 … 毎回、標本の値は異なる 母集団(対象となる全体)から一つの標本を抽出する。 これは母集団の正規分布に従う確率変数 𝑿 が 𝒙 という 値をとることに相当 𝑥 サンプリング
  22. 22. 統計学の目的 2017/1/21©NaITE 22 母集団 𝑥 標本 X 母集団 X 𝑥1 𝑥2 𝑥3 … 毎回、標本の値は異なる 標本から母集団を規定する母平均や母分散を推定すること =>サンプリングした標本の中で測定された ものから、テストケース全体を推定する
  23. 23. 平均・分散・標準偏差 平均 • 𝑛 回試行したときの値の合計を試行回数 𝑛で 割ったもの • ҧ𝑥 = 1 𝑛 σ𝑖=1 𝑛 𝑥𝑖 分散 (標準偏差の二乗) 標準偏差:平均からのズレ • 確率変数 𝑋1 − ത𝑋, 𝑋2 − ത𝑋, ⋯ , 𝑋 𝑛 − ത𝑋 に対 しては,恒等式 𝑋1 − ത𝑋 + 𝑋2 − ത𝑋 + ⋯ + 𝑋 𝑛 − ത𝑋 ≡ 0が成り立つため,変数 𝑋𝑖 − ത𝑋 の自由度は 𝑛 から 𝑛 − 1 に減少する.した がって,分散は 𝑛 − 1 で割って • 𝑆2 = 1 𝑛−1 σ𝑖=1 𝑛 𝑋𝑖 − ത𝑋 2 2017/1/21©NaITE 23
  24. 24. 考えてみよう: 自由度とは? n? n-1? 2017/1/21 24©NaITE
  25. 25. 解いてみよう(10分): ҧ𝑥 = 1 𝑛 σ𝑖=1 𝑛 𝑥𝑖 をもちいて、 𝑋1 − ത𝑋 + 𝑋2 − ത𝑋 + ⋯ + 𝑋 𝑛 − ത𝑋 ≡ 0 2017/1/21 25©NaITE
  26. 26. 2017/1/21©NaITE 26 ※ 画像引用元:wikipedia σが未知の場合 この考えを用いて 区間推定を行う ⇒探針テストで利用されている 正規分布
  27. 27. アジェンダ 1. 事例:探針テスト i. 探針テストの意味と目的 ii. 探針テストの使用事例(リリカルくんより) iii. サンプリングテスト iv. 推定? 2. 統計学 i. 母集団と標本、その関係 ii. 統計学の目的 iii. 平均・分散・標準偏差 iv. 正規分布(イメージ) 3. 区間推定 i. 信頼区間とは? ii. 標準誤差 iii. 信頼区間 iv. 実際に導いてみよう! 4. まとめ! 2017/1/21 27©NaITE
  28. 28. 3.区間推定 2017/1/21©NaITE 28
  29. 29. 信頼区間って? • 母集団から標本を取ってきて、その平 均から95%信頼区間を求める、という 作業を100回やったときに、95回はそ の区間の中に母平均が含まれる 考え方(95%信頼区間?) 2017/1/21©NaITE 29
  30. 30. 標準誤差 •ある実験で 𝑛 個のデータ {𝑥1 (1) , 𝑥2 (1) , ⋯ , 𝑥 𝑛 (1) } をとり,平均値 ҧ𝑥(1) = σ𝑖 𝑥𝑖 (1) /𝑛 を計算する. •引き続き同じ実験を 𝑁 回繰り返し,平均値 ҧ𝑥(2) , ⋯ , ҧ𝑥(𝑁) を算出する. •同じ条件で実験をしても,これらの平均値 は 𝒎 ≡ (ഥ𝒙(𝟏) + ⋯ + ഥ𝒙(𝑵) )/𝑵のまわりにばらつく. •このばらつきを表す指標が標準誤差 概念 • 実験で標本平均 ҧ𝑥 = σ𝑖=1 𝑛 𝑥𝑖 /𝑛 と標本分散 𝑠2 = σ𝑖=1 𝑛 𝑥𝑖 − ҧ𝑥 2 /(𝑛 − 1)が得られているとする. • 母平均 𝜇 の推定値は 𝐸 ത𝑋 = 𝜇 より 𝜇 = ҧ𝑥 • その推定精度である標準誤差は 𝑉 ഥX = 𝜎2 /𝑛 と 𝐸 𝑆2 = 𝜎2 より 𝑆𝐸 ≃ 𝜎/ 𝑛 ≃ 𝑠/ 𝑛 • 𝑆𝐸 ≃ 𝑠 𝑛 = σ 𝑖=1 𝑛 𝑥 𝑖− ҧ𝑥 2 𝑛(𝑛−1) 成り立つ式 2017/1/21©NaITE 30
  31. 31. 信頼区間・t分布・二項分布 • 信頼区間=標本平均 ± t × 標本標準誤差 成り立つ式 • 結果が成功か失敗のいずれかである n 回の独立な試行を行ったときの成功数で表される離散確 率分布である(wikipediaより) • サンプリングしたテストケースにおいて、「バグがでる」「バグが出ない」という結果を想定 した独立なテストを実施 二項分布 • 連続確率分布の一つであり、正規分布する母集団の平均と分散が未知で標本サイズが小さい場 合に平均を推定する問題に利用される(wikipediaより) t 分布 2017/1/21©NaITE 31
  32. 32. 実際に導く:探針テスト • 探針テスト 引用先の頁(※)(※:http://www.hayst.com/Pages/qptest.aspx) に記載されている内容: 上限値(上限不良率)の式は、 Pu = p + u(α) √(p(1-p)/n) どういうこと?? 2017/1/21 32©NaITE
  33. 33. 実際に導く:信頼区間 関係式の導出 Pu = p + u(α) √(p(p-1)/n) を出す! ⇒二項分布を利用する • 上限信頼区間=標本平均 + t × 標本標準誤差 =𝑝 + 𝑢 α × 𝑝(1−𝑝) 𝑛 このとき、標本平均(標本不良率) = p , t = u(α) tは、二項確率紙を参照 2017/1/21 33©NaITE
  34. 34. 導いてみよう(二項分布) • 期待値 𝐸 𝑋 = 𝑖𝑝 • 分散 𝑉 𝑋 = 𝑖𝑝 1 − 𝑝 =σ2 • 標準誤差 𝑆𝐸 = 𝑉 𝑋 ≃ σ 𝑛 上記をもちいて、 標準誤差= 𝑖𝑝(1−𝑝) 𝑛 となる。 注:探針テスト(※)では、サンプリング1回により、期待値はpとなってい る。数回実施するときは 𝑖 をかけること。 (※:http://www.hayst.com/Pages/qptest.aspx) 2017/1/21 34©NaITE
  35. 35. まとめ 2017/1/21©NaITE 35
  36. 36. まとめ 1.統計といえば確率!分布種類・その意図・背景を踏まえて基本を覚え てしまうとさまざまな場所で応用ができる 2.期待値・平均・分散・区間推定(信頼区間)を使いこなせば、様々な テスト(取得できるメトリクス)の評価ができる 3.探針テストは、全ケースをテストするという前提の上で、サンプリン グを行い、そのサンプルケースの中でどの程度「バグがでるか」という独 立な試行を行ってバグの出方を推定する。そのため、二項分布が使われて いる。改めて二項分布の定義・背景を学んでみよう。 4.統計は使えばいいってものじゃない。意味があって使われています。 2017/1/21 36©NaITE
  37. 37. ≪第2部≫ ~ディスカッションた~いむっ~ 2017/1/21 37©NaITE
  38. 38. 議論しましょう! •5人一班になってください! •統計的にデータを扱っていますか? •ソフトウエアテスト実施時にこのような“統計 的手法”を使っていますか? •探針テストのような区間推定を使ったバグ予 測は、どのように応用できるでしょうか? 2017/1/21©NaITE 38
  39. 39. 議論結果(抜粋) • 見積もり • 規模(kstep,fp)とテスト項目⇒テスト密度 • 規模と工数 • 最大値、最小値 • 探索的テストをやめる判断←信頼度成長曲線、信頼区間 • センサの精度、実測と計画の差 • モジュールごとの難易度 • バグ予測、テストケース見積もり • ほかにも必要なメトリクスがあるのでは。 ⇒複雑度、難易度・・・ドメイン、関連技術を示すようなもの・・・ • こういった判断基準になるようなものをツール化し、やり方を書いたドキュメントとともに提供しても、やらない人は やらない。。。。。 • 探針テストはバグを見つけるために実施されるのではない。最初の層別やサンプリングするとことに技術が集約されて いる!! 2017/1/21©NaITE 39
  40. 40. Thank you! 実務にて、是非活用して下さい! 2017/1/21©NaITE 40

×