1 開催概要
2017年1月21日 NaITE#19「数学を学ぼう ~数学の知識を利用したソフトウェアテスト~」を開催しました。
概要は次の通りです。
開催日時 | 2017/1/21(土)
14:00 〜 16:10 |
||
開催場所 | ミューザ川崎シンフォニーホール(第3会議室) (JR 川崎駅 徒歩2分) | ||
メインテーマ | 数学を学ぼう ~数学の知識を利用したソフトウェアテスト~ | ||
キーワード・タグ | 数学 ソフトウェアテスト | ||
プログラム | 14:00~14:10 | オープニング「開会のご挨拶」 | NaITE運営スタッフ |
14:10〜15:20 | セッション「数学入門〜数式とソフトウェアテスト〜」 | 岡野 麻子 氏 | |
15:30〜16:00 | セッション「数学をツールとして使ってみる 〜ディスカッション〜」 | 参加者 | |
16:00〜16:10 | クロージング | NaITE運営スタッフ |
2 勉強会の様子
今回は「数学を学ぼう ~数学の知識を利用したソフトウェアテスト~」というタイトルで勉強会を行いました。
今回は「探針テスト」を題材に、ソフトウェアテストに利用されている数学知識とその知識利用の背景を理解することを目的として開催されました。岡野氏より、統計数学の基礎知識から探針テストの中で使われている「区間推定」の考え方までを大まかに解説いただいた後、ソフトウェアテスト及び開発の現場でどのように数学の知識が応用されているか参加者を交えてディスカッションを行いました。
数学と聞くと苦手意識を持ってしまう方も多い中、実際に手を動かして解答する演習問題もあり、丁寧な解説の中で理解を深められた様子でした。
2.1 オープニング
オープニングではNaITEスタッフから本イベントの注意事項、NaITEについての紹介、当日のプログラムについて説明をいたしました。その他現在活動中のSIG、活動を完了したSIGについての案内も実施いたしました。
2.2 セッション「数学入門〜数式とソフトウェアテスト〜」
岡野 麻子氏より、「数学入門〜数式とソフトウェアテスト〜」と題して統計数学の基礎と探針テストの概要、及びその中で用いられている背景知識について解説いただきました。
奈良隆正氏の資料によると、探針テストとは製品検査に先立って、デバッグ・テスト段階における品質を検査担当部門が実際に測定・評価するものであるとし、基本的には検査項目をサンプリングし、その結果から全体の母不良率を求め残バグ件数を推定する方法であると説明されました。実際に探針テストを導入している現場では、探針テストの結果を不具合分析や品質向上の指針を与えるのに役立てているとのことでした。本勉強会では、たくさんのテストケースからランダムに選択したテストケースを実施するサンプリングテストの考え方を取り上げ、その中で用いられている統計的手法について学習すると説明されました。
統計数学の基礎的な考え方として、初めに母集団と標本の関係について説明されました。母集団(対象とする全体)から一つの標本を抽出することはすなわち「母集団の正規分布に従う確率変数がという値をとること」に相当すると説明されました。標本から母集団を規定する母平均や母分散を推定することは、つまりサンプリングした標本の中で測定されたものから、テストケース全体を推定することを意味します。
平均、分散、標準偏差については、それぞれ以下のような定義と説明されました。
平均
n 回試行した時の値の合計を試行回数で割ったもの。
分散(標準偏差の二乗)
確率変数 に対しては、
恒等式 が成り立つため、変数
の自由度は n から n-1 に減少する。
したがって、分散は n-1 で割って
となる。
標準偏差
平均からのズレのこと。分散を V として、
と表される。
なお、ここで標準偏差は得られたデータ(標本)のばらつきの度合いを示すのに対し、標準誤差は母集団の平均値の区間推定に用いられます。そのため、ここでは標準誤差の計算方法について説明されました。
標準誤差
ある実験で n 個のデータをとり、平均値
を計算する。引き続き同じ実験を N 回繰り返し、平均値
を算出する。
同じ条件で実施しても、これらの平均値は の周りにばらつく。このばらつきを示す指標が標準誤差である。
標準誤差の計算方法について説明した後、探針テストで行う区間推定に必要な考え方として信頼区間、二項分布について説明されました。
信頼区間
信頼区間について、以下の式が成り立つ。
信頼区間 = ±t × 標本標準誤差
二項分布
結果が成功か失敗のいずれかである n 回の独立した試行を行った時の成功率で表される離散確率分布である。サンプリングテストにおいては、サンプリングしたテストケース一つ一つについて「バグが出る」「バグが出ない」という二通りの結果を想定した独立したテストを実施するという意味となる。
- 期待値
- 分散
- 標準誤差
上記を用いて
- 標準誤差
となる。
※ なお、ここで探針テストではサンプリング回数が1回であるため、期待値は p となっている。複数回サンプリングを実施する時は i をかけることとなる。
その後、二項分布及び信頼区間の考え方を用いて、探針テストにおける上限値(上限不良率)の計算方法について解説されました。導出過程については当日の発表資料をご参照ください。
参加者にとって、勉強会の時間内で数式の意味を完全に理解するのは難しかったようですが、勉強会後の懇親会でも統計数学に関する疑問点などを議論し合い、ソフトウェアテストに使われている数学を理解するための呼び水となる大変有意義なセッションとなりました。
2.3 セッション「数学をツールとして使ってみる 〜ディスカッション〜」
岡野氏より、「ソフトウェアテスト及び開発の現場で、どのような統計的手法が扱われているか?」という議題が提供され、参加者を交えてディスカッションを行いました。参加者からは様々な意見が寄せられ、開発規模や工数の見積もりをはじめテストの終了判断など、様々な箇所で利用されていることが改めて理解できました。
また、本勉強会で扱った「探針テスト」についても議論されました。「探針テストはバグを見つけるために実施する手法ではなく、手法適用の初めに層別を行う部分やサンプリングを実施するところにこそ技術が集約されている」との意見が挙がりました。
- まとめ
本勉強会のまとめとして、統計は分布の種類やその利用される意図、背景を踏まえて基本を理解することで様々な分野に応用できること、期待値や平均、分散や区間推定を使いこなすことでメトリクスの評価に応用できると説明されました。特に探針テストの中では二項分布が用いられており、改めて二項分布の定義や背景についても学んでみるとよいとのことでした。
最後に、「統計は使えばいいというものではない。必ず意味があって使われているため、その意図や背景をしっかり理解することが大切」ということで会を締めくくられました。この機会に統計数学について学習してみることで、普段利用しているツールや考え方がより深く理解できるのではないかと感じました。
3 参考情報・リンク等
当日の発表資料等は以下をご参照ください。
- オープニング資料
http://www.slideshare.net/asakoyanuki/na-ite-19op
- 数学を学ぼう 〜数学の知識を利用したソフトウェアテスト
http://www.slideshare.net/asakoyanuki/distribution-naite19
4 次回の予定等
次回は4月8日(土)「CMMI流深イイ話(仮)」と題して,川崎市周辺にて開催予定です。
以上
ーーーーーーーーーー
2017年2月10日 作成
報告者:藤沢 耕助(NaITE運営スタッフ)