ソフトウェアテスト [13] バグ予測とテスト計予測とテスト計とテスト計テスト計 画 Software Testing [13] Bug Prediction and Test Plan あまん ひろひさ ひろひさ 阿萬 裕久 裕久( AMAN Hirohisa ) aman@ehime-u.ac.jp (C) 2007-2022 Hirohisa AMAN Fault-Prone モジュール分析分析 バグ予測とテスト計のことテスト計をソフトウェア工学ではソフトウェア工学ではではフォー ル分析ト ( fault )とテスト計呼ぶことも多いぶことテスト計も多い多いい プログ予測とテスト計ラマのの誤りり( error )により,プログプログ予測とテスト計 ラム中に中ににフォール分析トが作り込まれる.結果,作り込まれる.結果,り込まれる.結果,まれる.結果,結果,プログ プログ予測とテスト計ラム中にの実行中にに障害,プログ故障,プログ不具合( f ailure )が作り込まれる.結果,発生する.する.結果, メトリクスによりフォール分析トが作り込まれる.結果,ありそうな ( Fault-Prone )モジュール分析の特徴を見つをソフトウェア工学では見つつ ける (C) 2016-2022 Hirohisa AMAN Fault-Prone モジュール分析分析の意義 ソフトウェア品質保証に必要な活動:に必要な活動:な活動: テスト レビュー これらの活動の計画に役立てる:てる: フォール分析ト( fault )が作り込まれる.結果,どの部分にありそ うか特定特定する ※ 直感的には「事故が起こりやすい交差点はどこか?」という考え方には「事故が起こりやすい交差点はどこか?」という考え方事故が作り込まれる.結果,起こりやすい交差点はどこか?」という考え方こりやすい交差点はどこか?」という考え方はどこか特定?」とテスト計いう考え方え方方 (C) 2016-2022 Hirohisa AMAN フォール分析ト(バグ予測とテスト計)の分布に着目に着目 フォール分析ト(バグ予測とテスト計)は人間によって誤ってによって誤りって 作り込まれる.結果,られている 1つ1つのバグ予測とテスト計だけに注目しても多いそれぞれ原 因が違うが作り込まれる.結果,違ううので,プログそれだけでは解析が作り込まれる.結果,難しいしい 全体の傾向をとらえる目的での傾向をとらえる目的でをソフトウェア工学ではとテスト計らえ方る目的には「事故が起こりやすい交差点はどこか?」という考え方で統計学では的には「事故が起こりやすい交差点はどこか?」という考え方アプ ローチが作り込まれる.結果,重要な活動:になる フォール分析ト(バグ予測とテスト計)が作り込まれる.結果,,プログこれまでにどう いった分布になっていたのか分布に着目になっていた分布になっていたのかのか特定をソフトウェア工学では見つてみる (C) 2016-2022 Hirohisa AMAN (再び登場)び登場)登場) パレートの原理 バグ予測とテスト計の約 80% は,プログ約 20% のモジュール分析 に存在 一様に分散に分散 一部に ではなく 集中に (C) 2016-2022 Hirohisa AMAN Rstudio をソフトウェア工学では起こりやすい交差点はどこか?」という考え方動しなさい これか特定ら Rstudio をソフトウェア工学では使ったデータ分析をった分布になっていたのかデータ分析を分析をソフトウェア工学では 行います Teams か特定ら Rscript13.R とテスト計 data1 3.csv をソフトウェア工学ではダウロードしなさいしなさい Rscript13.R をソフトウェア工学では Rstuio で開きなさいきなさい (C) 2016-2022 Hirohisa AMAN 前回と同じメトリクスのデータを使とテスト計同じメトリクスのデータを使じメトリクスのデータを使メトリクスのデータ分析ををソフトウェア工学では使ったデータ分析を う まずは前回と同じメトリクスのデータを使とテスト計同じメトリクスのデータを使じメトリクスのデータを使 NASA 公開きなさいのデータ分析ををソフトウェア工学では 使ったデータ分析をう データ分析をファイル分析名 data13.csv この内容を をソフトウェア工学では data とテスト計いう名前のデータ分析をフレー ム中にとテスト計して読み込みますみ込まれる.結果,みます data = read.csv( file.choose( )) (C) 2016-2022 Hirohisa AMAN まずは簡単な分析をな分析をソフトウェア工学では モジュール分析集合をソフトウェア工学では「事故が起こりやすい交差点はどこか?」という考え方バグ予測とテスト計無しし」とテスト計「事故が起こりやすい交差点はどこか?」という考え方バグ予測とテスト計有 り」の2種類に分割し,種類に分割し,に分割し,し,プログ サイクロマのティック数の違いの違ういをソフトウェア工学では見つる バグ予測とテスト計予測とテスト計のた分布になっていたのかめに(サイクロマのティック数の違いの)閾値 をソフトウェア工学では見つつける バグ予測とテスト計無しし 比較 11 バグ予測とテスト計有り 14 20 12 (C) 2016-2022 Hirohisa AMAN 箱ひげ図ひげ図図 列名 列名 データ分析をフレーム中に boxplot(CC~BUG, data=data) 大まかであるがまか特定であるが作り込まれる.結果, 分布に着目の違ういが作り込まれる.結果, 見つてとテスト計れる 縦軸:サイクロマのティック数の違い 横軸:バグ予測とテスト計の有無し ( = なし,プログ = あり) (C) 2016-2022 Hirohisa AMAN 要な活動:約統計量でも比較でも多い比較 バグ予測とテスト計無ししとテスト計バグ予測とテスト計有りでサイクロマのティック 数の違いをソフトウェア工学では分けて summary 関数の違いでチェック cc0 = data$CC[data$BUG==0] cc1 = data$CC[data$BUG==1] summary(cc0) summary(cc1) Min 1st Qu Max 1.000 1.000 96.000 Median 2.000 Mean 3rd Qu 4.705 5.000 (C) 2016-2022 Hirohisa AMAN Min 1st Qu Median Mean 3rd Qu Max 10