(57)【要約】【課題】ソフトウェア欠陥報告を分類するシステム及び方法を提供すること。【解決手段】ソフトウェア欠陥をカテゴリ化する既存の方式は、教師あり機械学習／半教師あり機械学習技法の使用に基づいており、分類子モデルを訓練するには、各クラスに著しい量の標示訓練データが必要であり、著しい量の人力を費やすことにつながり、この結果、高額なプロセスとなる。本開示の実施形態は、ソフトウェア欠陥報告に対し概念ベースの分類を実施することによって、ソース・コードから得られた標示訓練データ及び特徴に依存する問題を回避するシステム及び方法を提供する。本開示では、欠陥カテゴリ／タイプ標示とソフトウェア欠陥報告（複数可）との間のセマンティック類似度を計算し、１つ又は複数の知識ベースから入手した文書コーパスによって補われる概念空間内に表し、類似度値の分布を得る。これらの類似度値は、動的に生成した閾値と比較され、この比較に基づき、ソフトウェア欠陥報告をソフトウェア欠陥カテゴリに分類する。【選択図】図３
2018181318.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサ実施方法であって、前記方法は、
１つ又は複数のハードウェア・プロセッサによって、入力データを入手するステップであって、前記入力データは、（ａ）１つ又は複数のソフトウェア欠陥報告、（ｂ）１つ又は複数のソフトウェア欠陥カテゴリであって、前記１つ又は複数のソフトウェア欠陥カテゴリからの各ソフトウェア欠陥カテゴリが、クラス標示、及び前記クラス標示に関連するテキスト記述を含む、１つ又は複数のソフトウェア欠陥カテゴリ、並びに（ｃ）文書コーパスを含む、ステップ（３０２）と、
前記１つ又は複数のハードウェア・プロセッサによって、前記１つ又は複数のソフトウェア欠陥報告の入力テキストを、前記入力データに基づき１つ又は複数の区分に区分化するステップであって、前記１つ又は複数の区分のそれぞれは、対応するテキスト内容を含む、ステップ（３０４）と、
文書コーパスから関連文書サブセットを特定するために、１つ又は複数の知識ベースから入手した前記文書コーパスに対し分析を実施するステップ（３０６）と、
特定した前記関連文書サブセットに基づき、概念空間を生成するステップ（３０８）と、
前記１つ又は複数のプロセッサによって、概念空間内に、前記１つ又は複数のソフトウェア欠陥報告の少なくとも１つに関係する前記１つ又は複数の区分のテキスト内容、及び前記１つ又は複数のソフトウェア欠陥カテゴリのテキスト記述を投影し、前記１つ又は複数のソフトウェア欠陥報告及び前記１つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対する概念空間表現を生成するステップ（３１０）と、
前記１つ又は複数のハードウェア・プロセッサによって、前記１つ又は複数のソフトウェア欠陥報告のそれぞれ及び前記１つ又は複数のソフトウェア欠陥カテゴリのそれぞれの前記概念空間表現の間の１つ又は複数の類似度を計算し、分類すべき前記１つ又は複数のソフトウェア欠陥報告に特有の１つ又は複数の類似度値の分布を入手するステップ（３１２）と、
前記１つ又は複数のハードウェア・プロセッサによって、前記１つ又は複数の類似度値の分布と、動的に生成した閾値との比較を実施するステップ（３１４）と、
前記１つ又は複数のハードウェア・プロセッサによって、前記比較に基づき１つ又は複数のソフトウェア欠陥報告を１つ又は複数のソフトウェア欠陥カテゴリに分類するステップ（３１６）と、
を含む方法。
【請求項２】
前記分析を実施する記ステップは、前記関連文書サブセットを特定するために、前記１つ又は複数の知識ベースから入手した前記文書コーパスに対し、１つ又は複数の文書特定技法を適用するステップを含む、請求項１に記載のプロセッサ実施方法。
【請求項３】
前記１つ又は複数の文書特定技法は、１つ又は複数のグラフ理論分析、１つ又は複数のキーワード特定技法、及び１つ又は複数のテキストクラスタ化技法のうち少なくとも１つを含む、請求項２に記載のプロセッサ実施方法。
【請求項４】
前記１つ又は複数の類似度値が動的に生成した前記閾値よりも高い場合、前記１つ又は複数のソフトウェア欠陥報告は、前記１つ又は複数のソフトウェア欠陥カテゴリに分類される、請求項１に記載のプロセッサ実施方法。
【請求項５】
動的に生成した前記閾値は、前記１つ又は複数の類似度値の分布に基づく、請求項１に記載のプロセッサ実施方法。
【請求項６】
システム（１００）であって、
指示及び１つ又は複数のモジュール（１０８）を保存するメモリ（１０２）と、
１つ又は複数の通信インターフェース（１０６）と、
前記１つ又は複数の通信インターフェース（１０６）を介して前記メモリ（１０２）に結合された１つ又は複数のハードウェア・プロセッサ（１０４）と、
を備え、前記１つ又は複数のハードウェア・プロセッサ（１０４）は、前記指示によって前記１つ又は複数のモジュール（１０８）を実行するように構成され、前記１つ又は複数のモジュール（１０８）は、
（ａ）１つ又は複数のソフトウェア欠陥報告、（ｂ）クラス標示、及び前記クラス標示に関連するテキスト記述を含む１つ又は複数のソフトウェア欠陥カテゴリからの各ソフトウェア欠陥カテゴリ、並びに（ｃ）文書コーパスを含む入力データを入手するように構成した入力読取りモジュール（２０２）と、
前記入力データに基づき、前記１つ又は複数のソフトウェア欠陥報告の入力テキストを１つ又は複数の区分に区分化するように構成され、前記１つ又は複数の区分のそれぞれは、テキスト内容を含む、ソフトウェア欠陥報告テキスト区分化モジュール（２０４）と、
文書コーパスから関連文書サブセットを特定するために、１つ又は複数の知識ベースから入手した前記文書コーパスに対し分析を実施し、
特定した前記関連文書サブセットに基づき、概念空間を生成する
ように構成した概念空間生成モジュール（２０６）と、
前記概念空間内に、前記１つ又は複数のソフトウェア欠陥報告の少なくとも１つに関係する前記１つ又は複数の区分のテキスト内容、及び前記１つ又は複数のソフトウェア欠陥カテゴリのテキスト記述を投影し、前記１つ又は複数のソフトウェア欠陥報告及び前記１つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対する概念空間表現を生成するように構成した投影モジュール（２０８）と、
前記１つ又は複数のソフトウェア欠陥報告のそれぞれ及び前記１つ又は複数のソフトウェア欠陥カテゴリのそれぞれの前記概念空間表現の間の１つ又は複数の類似度を計算し、分類すべき前記１つ又は複数のソフトウェア欠陥報告に特有の１つ又は複数の類似度値の分布を入手するように構成した概念空間類似度計算モジュール（２１０）と、
前記１つ又は複数の類似度値の分布と、動的に生成した閾値との比較を実施し、
前記比較に基づき、前記１つ又は複数のソフトウェア欠陥報告を前記１つ又は複数のソフトウェア欠陥カテゴリに分類する
ように構成したソフトウェア欠陥分類モジュール（２１２）と、
を備える、システム（１００）。
【請求項７】
前記概念空間生成モジュール（２０６）は、前記関連文書サブセットを特定するために、前記１つ又は複数の知識ベースから入手した前記文書コーパスに対し１つ又は複数の文書特定技法を適用することによって、分析を実施する、請求項６に記載のシステム。
【請求項８】
前記１つ又は複数の文書特定技法は、１つ又は複数のグラフ理論分析、１つ又は複数のキーワード特定技法、１つ又は複数のテキストクラスタ化技法のうち少なくとも１つを含む、請求項７に記載のシステム。
【請求項９】
前記１つ又は複数の類似度値が動的に生成した前記閾値よりも高い場合、前記ソフトウェア欠陥報告は、前記１つ又は複数のソフトウェア欠陥カテゴリに分類される、請求項６に記載のシステム。
【請求項１０】
動的に生成した前記閾値は、前記１つ又は複数の類似度値の分布に基づく、請求項６に記載のシステム。
【請求項１１】
１つ又は複数の命令を含む１つ又は複数の非一時的機械可読情報記憶媒体であって、１つ又は複数のハードウェア・プロセッサによって前記１つ又は複数の命令を実行すると、
前記１つ又は複数のハードウェア・プロセッサによって、入力データを入手するステップであって、前記入力データは、（ａ）１つ又は複数のソフトウェア欠陥報告、（ｂ）１つ又は複数のソフトウェア欠陥カテゴリであって、前記１つ又は複数のソフトウェア欠陥カテゴリからの各ソフトウェア欠陥カテゴリが、クラス標示、及び前記クラス標示に関連するテキスト記述を含む、１つ又は複数のソフトウェア欠陥カテゴリ、並びに（ｃ）文書コーパスを含む、ステップと、
前記１つ又は複数のハードウェア・プロセッサによって、前記入力データに基づき、前記１つ又は複数のソフトウェア欠陥報告の入力テキストを１つ又は複数の区分に区分化するステップであって、前記１つ又は複数の区分のそれぞれは、テキスト内容を含む、ステップと、
文書コーパスから関連文書サブセットを特定するために、１つ又は複数の知識ベースから入手した前記文書コーパスに対し分析を実施するステップと、
特定した前記関連文書サブセットに基づき、概念空間を生成するステップと、
前記１つ又は複数のプロセッサによって、前記概念空間内に、前記１つ又は複数のソフトウェア欠陥報告の少なくとも１つに関係する前記１つ又は複数の区分のテキスト内容、及び前記１つ又は複数のソフトウェア欠陥カテゴリのテキスト記述を投影し、前記１つ又は複数のソフトウェア欠陥報告及び前記１つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対する概念空間表現を生成するステップと、
前記１つ又は複数のハードウェア・プロセッサによって、前記１つ又は複数のソフトウェア欠陥報告のそれぞれ及び前記１つ又は複数のソフトウェア欠陥カテゴリのそれぞれの前記概念空間表現の間の１つ又は複数の類似度を計算し、分類すべき前記１つ又は複数のソフトウェア欠陥報告に特有の１つ又は複数の類似度値の分布を入手するステップと、
前記１つ又は複数のハードウェア・プロセッサによって、前記１つ又は複数の類似度値の分布と、動的に生成した閾値との比較を実施するステップと、
前記１つ又は複数のハードウェア・プロセッサによって、前記比較に基づき、前記１つ又は複数のソフトウェア欠陥報告を前記１つ又は複数のソフトウェア欠陥カテゴリに分類するステップと、
を生じさせる、１つ又は複数の非一時的機械可読情報記憶媒体。
【請求項１２】
前記分析を実施するステップは、前記関連文書サブセットを特定するために、前記１つ又は複数の知識ベースから入手した前記文書コーパスに対し１つ又は複数の文書特定技法を適用するステップを含む、請求項１１に記載の１つ又は複数の非一時的機械可読情報記憶媒体。
【請求項１３】
前記１つ又は複数の文書特定技法は、１つ又は複数のグラフ理論分析、１つ又は複数のキーワード特定技法、１つ又は複数のテキストクラスタ化技法のうち少なくとも１つを含む、請求項１２に記載の１つ又は複数の非一時的機械可読情報記憶媒体。
【請求項１４】
前記１つ又は複数の類似度値が動的に生成した前記閾値よりも高い場合、前記１つ又は複数のソフトウェア欠陥報告は、前記１つ又は複数のソフトウェア欠陥カテゴリに分類される、請求項１１に記載の１つ又は複数の非一時的機械可読情報記憶媒体。
【請求項１５】
動的に生成した前記閾値は、前記１つ又は複数の類似度値の分布に基づく、請求項１１に記載の１つ又は複数の非一時的機械可読情報記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照及び優先権
本特許出願は、２０１７年４月１９日出願のインド特許出願第（２０１７２１０１３９３５）号の優先権を主張する。
【０００２】
本明細書における開示は、一般に、ソフトウェア欠陥報告分析に関し、より詳細には、ソフトウェア欠陥報告を分類するシステム及び方法に関する。
【背景技術】
【０００３】
多くの重要な情報は、テキスト・データとしてソフトウェア開発ライフ・サイクル（ＳＤＬＣ）内に捕捉される。ソフトウェアの欠陥管理は、ＳＤＬＣの保守及び進展段階の不可欠な部分である。ソフトウェアの検査段階及び実際の使用の間、ソフトウェアの様々な態様に関連する多くの欠陥が報告される。複数の技法、例えば、適切な欠陥分類方式（直交欠陥分類（ＯＤＣ）等）、ＩＥＥＥ規格１０４４等、を使用してこうした欠陥を分類することは、欠陥管理工程を合理化するのに役立ち、欠陥報告のパターンの特定、より迅速な根本原因の分析等、多数の恩恵が得られる。
【０００４】
ソフトウェア欠陥（例えばソフトウェア・バグ）報告のテキスト記述は、欠陥を理解し、続いて所与の分類方式に従って欠陥を分類するために非常に重要である。テキスト欠陥記述から欠陥タイプを自動特定することで、欠陥分析時間及び全体の欠陥管理工程を著しく向上させることができる。このことは、ソフトウェア・リポジトリ・マイニング研究界で認識されており、過去１０年にわたり多数の解決策が提案されている。
【０００５】
教師あり機械学習等、ソフトウェア欠陥タイプを分類するための標準的なデータ駆動方式は、予測モデルの構築に著しい量の標示訓練データを必要とする。この標示データセットは、典型的には、ドメイン知識及び専門的知識を有する人間が作製する。これは明らかに、集中的な取組み及び費用を要求する活動である。更に、ソフトウェア欠陥テキストをカテゴリ化する既存の方式は、教師あり機械学習又は半教師あり機械学習方式の使用に基づく。この教師あり学習において、分類子モデルを訓練するには各クラスに著しい量の標示訓練データが必要である。標示訓練データは、多数の欠陥から構成され、これらの欠陥は、適用可能な分類方式に従って欠陥タイプ分類として人間が注釈を付け、検証している。この訓練データの生成には著しい量の人力が必要となるため、工程が高額になり、更に、利用可能な専門的知識及び資源を非効率的な形で使用することになる。研究界は、この課題を認識しており、ソフトウェア欠陥分類のために、能動学習及び半教師あり学習の使用を提案しており、これにより、必要な標示訓練データの量を低減し、注釈を付けるのに要求される人力を最小化すること目指している。こうした方式は基本的な教師つき学習方式を改善しているとはいえ、必要量の標示訓練データを生成してソフトウェア欠陥分類を実行するには、依然として相応の人力を必要とする。更に、これら及び他の従来の技法は、ソース・コードから導出した特徴、及びバグを修正するコードの事前処理によって入手した特徴も使用する。
【発明の概要】
【０００６】
本開示の実施形態は、本発明者等が認識している、従来のシステムにおける上述の技術的課題の１つ又は複数に対する解決策として技術的改良点を提示するものである。一態様では、ソフトウェア欠陥報告を１つ又は複数のソフトウェア欠陥カテゴリに分類するプロセッサ実施方法を提供し、方法は、１つ又は複数のハードウェア・プロセッサによって、（ａ）１つ又は複数のソフトウェア欠陥報告、（ｂ）１つ又は複数のソフトウェア欠陥カテゴリであって、１つ又は複数のソフトウェア欠陥カテゴリからの各ソフトウェア欠陥カテゴリが、クラス標示、及びクラス標示に関連するテキスト記述を含む、１つ又は複数のソフトウェア欠陥カテゴリ、並びに（ｃ）文書コーパスを含む入力データを入手するステップ、１つ又は複数のハードウェア・プロセッサによって、入力データに基づき１つ又は複数のソフトウェア欠陥報告の入力テキストを１つ又は複数の区分に区分化するステップであって、１つ又は複数の区分のそれぞれは、テキスト内容を含む、区分化するステップ、文書コーパスから関連文書サブセットを特定するために、１つ又は複数の知識ベースから入手した文書コーパスに対する分析を実施するステップ、特定した関連文書サブセットに基づき、概念空間を生成するステップ、１つ又は複数のハードウェア・プロセッサによって、概念空間内に、１つ又は複数のソフトウェア欠陥報告の少なくとも１つに関係する１つ又は複数の区分のテキスト内容、及び１つ又は複数のソフトウェア欠陥カテゴリのテキスト記述を投影し、１つ又は複数のソフトウェア欠陥報告及び１つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対し概念空間表現を生成するステップ、１つ又は複数のハードウェア・プロセッサによって、１つ又は複数のソフトウェア欠陥報告のそれぞれ及び１つ又は複数のソフトウェア欠陥カテゴリのそれぞれの概念空間表示の間で１つ又は複数の類似度を計算し、分類すべき１つ又は複数のソフトウェア欠陥報告に特有の１つ又は複数の類似度値の分布を入手するステップ、１つ又は複数のハードウェア・プロセッサによって、１つ又は複数の類似度値の分布と動的に生成した閾値との比較を実施するステップ、並びに１つ又は複数のハードウェア・プロセッサによって、比較に基づき１つ又は複数のソフトウェア欠陥報告を１つ又は複数のソフトウェア欠陥カテゴリに分類するステップを含む。一実施形態では、１つ又は複数の類似度値が動的に生成した閾値よりも高い場合、１つ又は複数のソフトウェア欠陥は、１つ又は複数のソフトウェア欠陥カテゴリに分類される。一実施形態では、動的に生成した閾値は、１つ又は複数の類似度値の分布に基づく。
【０００７】
一実施形態では、分析を実施するステップは、関連文書サブセットを特定するために、１つ又は複数の知識ベースから入手した文書コーパスに対し１つ又は複数の文書特定技法を適用するステップを含むことができる。一実施形態では、１つ又は複数の文書特定技法は、１つ又は複数のグラフ理論分析、１つ又は複数のキーワード特定技法、１つ又は複数のテキストクラスタ化技法のうち少なくとも１つを含む。
【０００８】
別の態様では、ソフトウェア欠陥報告を１つ又は複数のソフトウェア欠陥カテゴリに分類するシステムを提供し、システムは、指示及び１つ又は複数のモジュールを保存するメモリ、１つ又は複数の通信インターフェース、並びに１つ又は複数の通信インターフェースを介してメモリに結合された１つ又は複数のハードウェア・プロセッサを備え、１つ又は複数のハードウェア・プロセッサは、指示によって１つ又は複数のモジュールを実行するように構成され、１つ又は複数のモジュールは、（ａ）１つ又は複数のソフトウェア欠陥報告、（ｂ）１つ又は複数のソフトウェア欠陥カテゴリであって、１つ又は複数のソフトウェア欠陥カテゴリからの各ソフトウェア欠陥カテゴリが、クラス標示、及びクラス標示に関連するテキスト記述を含む、１つ又は複数のソフトウェア欠陥カテゴリ、並びに（ｃ）文書コーパスを含む入力データを入手するように構成した入力読取りモジュール、入力データに基づき、１つ又は複数のソフトウェア欠陥報告の入力テキストを１つ又は複数の区分に区分化するように構成され、１つ又は複数の区分のそれぞれは、テキスト内容を含む、ソフトウェア欠陥報告テキスト区分化モジュール、文書コーパスから関連文書サブセットを特定するために、１つ又は複数の知識ベースから入手した文書コーパスに対し分析を実施し、特定した関連文書サブセットに基づき、概念空間を生成するように構成した概念空間生成モジュール、前記概念空間内に、１つ又は複数のソフトウェア欠陥報告の少なくとも１つに関係する１つ又は複数の区分のテキスト内容、及び１つ又は複数のソフトウェア欠陥カテゴリのテキスト記述を投影し、１つ又は複数のソフトウェア欠陥報告及び１つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対する概念空間表現を生成するように構成した投影モジュール、１つ又は複数のソフトウェア欠陥報告のそれぞれ及び１つ又は複数のソフトウェア欠陥カテゴリのそれぞれの概念空間表現の間の１つ又は複数の類似度を計算し、分類すべき１つ又は複数のソフトウェア欠陥報告に特有の１つ又は複数の類似度値の分布を入手するように構成した概念空間類似度計算モジュール、並びに１つ又は複数の類似度値の分布と、動的に生成した閾値との比較を実施し、比較に基づき、１つ又は複数のソフトウェア欠陥報告を１つ又は複数のソフトウェア欠陥カテゴリに分類するように構成したソフトウェア欠陥分類モジュールを備える。一実施形態では、１つ又は複数の類似度値が動的に生成した閾値よりも高い場合、１つ又は複数のソフトウェア欠陥は、１つ又は複数のソフトウェア欠陥カテゴリに分類される。一実施形態では、動的に生成した閾値は、１つ又は複数の類似度値の分布に基づく。
【０００９】
一実施形態では、概念空間生成モジュールは、関連文書サブセットを特定するために、１つ又は複数の知識ベース及び文書コーパスに対し１つ又は複数の文書特定技法を適用するステップによって、分析を実施する。一実施形態では、１つ又は複数の文書特定技法は、１つ又は複数のグラフ理論分析、１つ又は複数のキーワード特定技法、１つ又は複数のテキストクラスタ化技法のうち少なくとも１つを含む。
【００１０】
更に別の態様では、１つ又は複数の命令を含む１つ又は複数の非一時的機械可読情報記憶媒体を提供し、１つ又は複数のハードウェア・プロセッサによって１つ又は複数の命令を実行すると、１つ又は複数のハードウェア・プロセッサを介して、入力データを入手するステップであって、入力データは、（ａ）１つ又は複数のソフトウェア欠陥報告、（ｂ）１つ又は複数のソフトウェア欠陥カテゴリであって、１つ又は複数のソフトウェア欠陥カテゴリからの各ソフトウェア欠陥カテゴリが、クラス標示、及びクラス標示に関連するテキスト記述を含む、１つ又は複数のソフトウェア欠陥カテゴリ、並びに（ｃ）文書コーパスを含む、入手するステップ、入力データに基づき、１つ又は複数のソフトウェア欠陥報告の入力テキストを１つ又は複数の区分に区分化するステップであって、１つ又は複数の区分のそれぞれは、テキスト内容を含む、区分化するステップ、文書コーパスから関連文書サブセットを特定するために、１つ又は複数の知識ベースから入手した文書コーパスに対し分析を実施するステップ、特定した関連文書サブセットに基づき、概念空間を生成するステップ、概念空間内に、１つ又は複数のソフトウェア欠陥報告の少なくとも１つに関係する１つ又は複数の区分のテキスト内容、及び１つ又は複数のソフトウェア欠陥カテゴリのテキスト記述を投影し、１つ又は複数のソフトウェア欠陥報告及び１つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対する概念空間表現を生成するステップ、１つ又は複数のソフトウェア欠陥報告のそれぞれ及び１つ又は複数のソフトウェア欠陥カテゴリのそれぞれの概念空間表現の間の１つ又は複数の類似度を計算し、分類すべき１つ又は複数のソフトウェア欠陥報告に特有の１つ又は複数の類似度値の分布を入手するステップ、１つ又は複数の類似度値の分布と、動的に生成した閾値との比較を実施するステップ、並びに比較に基づき、１つ又は複数のソフトウェア欠陥報告を１つ又は複数のソフトウェア欠陥カテゴリに分類するステップを生じさせる。一実施形態では、１つ又は複数の類似度値が動的に生成した閾値よりも高い場合、１つ又は複数のソフトウェア欠陥は、１つ又は複数のソフトウェア欠陥カテゴリに分類される。一実施形態では、動的に生成した閾値は、１つ又は複数の類似度値の分布に基づく。
【００１１】
一実施形態では、分析を実施するステップは、関連文書サブセットを特定するために、１つ又は複数の知識ベースから入手した文書コーパスに対し１つ又は複数の文書特定技法を適用するステップを含むことができる。一実施形態では、１つ又は複数の文書特定技法は、１つ又は複数のグラフ理論分析、１つ又は複数のキーワード特定技法、１つ又は複数のテキストクラスタ化技法のうち少なくとも１つを含む。
【００１２】
上記の一般的な説明及び以下の詳細な説明は、例示的且つ説明的なものにすぎず、特許請求されている本発明の範囲の限定ではないことを理解されたい。
【００１３】
本開示に組み込まれ、本開示の一部を構成する添付の図面は、例示的実施形態を示し、説明と共に、開示する原理を説明する役割を果たす。
【図面の簡単な説明】
【００１４】
【図１】本開示の一実施形態による、ソフトウェア欠陥報告を分類するシステムの例示的ブロック図である。
【図２】本開示の一実施形態による、図１のシステムのメモリ内に保存した様々なモジュールのブロック図である。
【図３】本開示の一実施形態による、図１のシステムを使用して、ソフトウェア欠陥報告を分類する方法を示す例示的流れ図である。
【図４】本開示の一実施形態による、考慮中のソフトウェア欠陥報告の各ソフトウェア欠陥カテゴリに対し計算した類似度値の分布を示すグラフ図である。
【発明を実施するための形態】
【００１５】
添付の図面を参照しながら例示的実施形態を説明する。図面において、参照番号の最も左の桁（複数可）は、その参照番号が最初に出現する図を特定する。好都合である場合は常に、同じ又は同様の部品を指すために、図面全体を通じて同じ参照番号を使用する。開示する原理の例及び特徴を本明細書で説明するが、開示する実施形態の趣旨及び範囲から逸脱することなく、修正形態、適合形態及び他の実装形態が可能である。以下の詳細な説明は、例示的なものにすぎず、真の範囲及び趣旨は、以下の特許請求の範囲によって示すことを意図する。
【００１６】
本開示の一実施形態では、ソフトウェア欠陥報告を分類するシステム及び方法を開示する。上述のように、既存のシステム及び方法は、教師あり機械学習等の標準的なデータ駆動方式に依存してソフトウェア欠陥タイプを分類するものであり、この方式は、予測モデルの構築に著しい量の標示訓練データを必要とする。この標示データセットは、典型的には、ドメイン知識及び専門的知識を有する人間が作製する。これは明らかに、集中的な取組み及び費用を要求する活動である。更に、ソフトウェア欠陥テキストをカテゴリ化する既存の方式は、教師あり機械学習又は半教師あり機械学習方式の使用に基づく。この教師あり学習において、分類子モデルを訓練するには各クラスに著しい量の標示訓練データが必要である。標示訓練データは、多数の欠陥から構成され、これらの欠陥は、欠陥タイプ分類のために、適用可能な分類方式に従って人間が注釈を付け、検証している。この訓練データの生成には、著しい量の人力が必要となるため、工程が高額になり、更に、利用可能な専門的知識及び資源を非効率的な形で使用することになる。研究界は、この課題を認識しており、ソフトウェア欠陥分類のために能動学習及び半教師あり学習の使用を提案しており、これにより、必要な標示訓練データの量を低減し、次に、注釈を付けるのに要求される人力を最小化することを目指している。こうした方式は、基本的な教師つき学習方式を改善しているとはいえ、必要量の標示訓練データを生成してソフトウェア欠陥分類を実行するには、依然として相応の人力を必要とする。
【００１７】
本開示の実施形態は、ソフトウェア欠陥報告を分類するシステム及び方法を提供し、それにより、標示訓練データの使用を回避し、標示記述に固有の「セマンティック」情報を使用してソフトウェア欠陥の自動分類を達成する。本開示の実施形態は、欠陥分類方式（ＯＤＣ等）において欠陥標示のテキスト記述からのキーワードを使用して、ソフトウェア欠陥報告を分類するシステム及び方法を提供し、特徴として知識ベース項目を使用して標示を表す。実施形態は、各知識ベース項目が人間解釈可能概念に対応し、ベクトル空間は、概念空間としての知識ベース内で全ての知識ベース項目に及ぶことを仮定する。本開示の実施形態は、システム及び方法が、１つ又は複数の技法、例えば概念空間表現を適用し、この概念空間内に欠陥標示及び個別欠陥記述を投影することを更に可能にする。したがって、伝統的な単語の袋（ｂａｇ−ｏｆ−ｗｏｒｄｓ）特徴を使用する従来又は伝統的なシステム及び方法とは異なり、本開示の実施形態は、この概念の袋（ｂａｇ−ｏｆ−ｃｏｎｃｅｐｔｓ）特徴表現を使用して分類標示及び個別欠陥を表すものである。更に、本開示のシステムは、知識ベース概念空間における欠陥標示と欠陥記述との間の類似度を計算し、次に、類似度値の分布、様々な欠陥標示にわたる類似度の相対強度、及び欠陥標示の概念空間表現と欠陥報告記述の概念空間表現との間の共通概念の数に応じて、１つ又は複数の欠陥標示を割り当てる。この方式は、標示訓練データへの依存問題を回避するのに役立つ。
【００１８】
次に、同様の参照文字が図面全体を通じて一貫して対応する特徴を示す図面、より詳細には図１から図４を参照する。好ましい実施形態を示しており、これらの実施形態を、以下の例示的システム及び／又は方法の背景において説明する。
【００１９】
図１は、本開示の一実施形態による、ソフトウェア欠陥報告を分類するシステム１００の例示的ブロック図を示す。システム１００は、以下、分類システムと呼ぶこともある。一実施形態では、システム１００は、１つ若しくは複数のプロセッサ１０４、通信インターフェース・デバイス（複数可）又は入出力（Ｉ／Ｏ）インターフェース（複数可）１０６、及び１つ若しくは複数のプロセッサ１０４に動作可能に結合された１つ若しくは複数のデータ保存デバイス又はメモリ１０２を含む。メモリ１０２は、１つ又は複数のモジュール１０８及びデータベース１１０を備える。ハードウェア・プロセッサである１つ又は複数のプロセッサ１０４は、１つ又は複数のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央処理ユニット、状態機械、論理回路、及び／又は動作指示に基づき信号を操作する任意のデバイスとして実装することができる。プロセッサ（複数可）は、他の機能の中でも特に、メモリ内に保存したコンピュータ可読命令を取り出し、実行するように構成されている。一実施形態では、システム１００は、ラップトップ・コンピュータ、ノートブック、ハンドヘルド・デバイス、ワークステーション、汎用コンピュータ、サーバ、ネットワーク・クラウド等、様々なコンピューティング・システム内に実装することができる。
【００２０】
Ｉ／Ｏインターフェース・デバイス（複数可）１０６は、様々なソフトウェア・インターフェース及びハードウェア・インターフェース、例えば、ウェブ・インターフェース、グラフィカル・ユーザ・インターフェース等を含むことができ、多種多様なネットワークＮ／Ｗ及びプロトコル・タイプ内で多数の通信を促進することができ、これらには、例えばＬＡＮ、ケーブル等の有線ネットワーク、及びＷＬＡＮ、セルラー又は衛星等のワイヤレス・ネットワークを含む。一実施形態では、Ｉ／Ｏインターフェース・デバイス（複数可）は、いくつかのデバイスを互いに接続するか又は別のサーバに接続する１つ又は複数のポートを含むことができる。
【００２１】
メモリ１０２は、当技術分野で公知の任意のコンピュータ可読媒体を含むことができ、これらには、例えば、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）及びダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）等の揮発性メモリ、並びに／又は読取り専用メモリ（ＲＯＭ）、消去可能プログラマブルＲＯＭ、フラッシュ・メモリ、ハードディスク、光ディスク及び磁気テープ等の不揮発性メモリを含む。
【００２２】
図１に関する図２は、本開示の一実施形態による、図１のシステム１００のメモリ１０２内に保存した様々なモジュール１０８のブロック図である。本開示の一実施形態では、メモリ１０２は、入力読取りモジュール２０２、ソフトウェア欠陥報告テキスト区分化モジュール２０４、概念空間生成モジュール２０６、投影モジュール２０８、概念空間類似度計算モジュール２１０、ソフトウェア欠陥分類モジュール２１２及びデータベース１１０を備える。本開示の一実施形態では、入力読取りモジュール２０２、ソフトウェア欠陥報告テキスト区分化モジュール２０４、概念空間生成モジュール２０６、投影モジュール２０８、概念空間類似度計算モジュール２１０、ソフトウェア欠陥分類モジュール２１２は、ソフトウェア・プログラムの論理的自己完結部分、自己完結型ハードウェア構成要素、及び／又はソフトウェア・プログラムの論理的自己完結部分をハードウェア構成要素のそれぞれに組み込みんだ自己完結型ハードウェア構成要素の少なくとも１つとして実装され、ソフトウェア・プログラムを実行すると、本明細書に記載の上記の方法を実施する。
【００２３】
図１〜図２に関する図３は、本開示の一実施形態による、図１のシステム１００を使用してソフトウェア欠陥報告を分類する方法を示す例示的流れ図である。一実施形態では、システム１００は、１つ又は複数のハードウェア・プロセッサ１０４に動作可能に結合された１つ又は複数のデータ保存デバイス又はメモリ１０２を備え、１つ又は複数のプロセッサ１０４によって方法ステップを実行する指示を保存するように構成されている。次に、図１〜図２に示すシステム１００及びモジュール２０２〜２１２の構成要素並びに流れ図を参照しながら本開示の方法ステップを説明する。本開示の一実施形態では、ステップ３０２で、１つ又は複数のハードウェア・プロセッサ１０４によって入力読取りモジュール２０２を実行すると、入力読取りモジュール２０２は、入力データを入手し、入力データは、（ａ）分類すべき１つ又は複数のソフトウェア欠陥報告、（ｂ）１つ又は複数のソフトウェア欠陥カテゴリであって、１つ又は複数のソフトウェア欠陥カテゴリからの各ソフトウェア欠陥カテゴリが、クラス標示、及びクラス標示に関連するテキスト記述を含む、１つ又は複数のソフトウェア欠陥カテゴリ、並びに（ｃ）文書コーパスを含む。一実施形態では、文書コーパスは、１つ又は複数の知識ベース（例えばウィキペディア（登録商標）等）から入手することができる。本開示の一実施形態では、１つ又は複数のクラス標示は、１つ又は複数のソフトウェア欠陥カテゴリのテキスト記述と共に、各カテゴリを簡単に説明するキーワード（複数可）又は句（複数可）を含む。一実施形態では、１つ又は複数のソフトウェア欠陥カテゴリは、直交欠陥分類（ＯＤＣ）方式、ＩＥＥＥ１０４４欠陥分類方式等の既存の欠陥分類方式、又は特注の欠陥分類方式から入手することができる。本開示の一実施形態では、文書コーパスは、人間の認識に基づく概念に対応し得る文書を含む。一実施形態では、分類すべき１つ又は複数のソフトウェア欠陥報告、１つ又は複数のクラス標示は、１つ又は複数のソフトウェア欠陥カテゴリのテキスト記述と共に、データベース１１０内に保存することができる。知識ベースから入手した文書コーパスも、データベース１１０内に保存する（含める）ことができる。
【００２４】
本開示の一実施形態では、ステップ３０４で、１つ又は複数のハードウェア・プロセッサ１０４によってソフトウェア欠陥報告テキスト区分化モジュール２０４を実行すると、ソフトウェア欠陥報告テキスト区分化モジュール２０４は、１つ又は複数のソフトウェア欠陥報告の入力テキストを、ステップ３０２で受信した入力データに基づき１つ又は複数の区分に区分化し、１つ又は複数の区分のそれぞれは、対応するテキスト内容を含む。一実施形態では、ソフトウェア欠陥報告は、ソフトウェア欠陥の発生についての詳細を提供するテキスト記述を含む。多くのソフトウェア欠陥報告では、テキスト記述は、「ソフトウェアのバージョン」、「ソフトウェア検査者の名前」、「オペレーティング・システムのバージョン」、「ソフトウェア欠陥の概要」、「欠陥を再現するステップ」、「予期される結果」、「実際の結果」、「ソフトウェア欠陥の詳細な説明」等の詳細、及びソフトウェア欠陥についての更なる詳細を含む。ソフトウェア欠陥報告がこの形式で利用可能な詳細を伴って構成されている場合、ソフトウェア欠陥報告テキスト区分化モジュール２０４は、ソフトウェア欠陥の入力テキストを、上記で概説した異なるフィールド（例えば、「ソフトウェアのバージョン」、「ソフトウェア検査者の名前」、「オペレーティング・システムのバージョン」、「ソフトウェア欠陥の概要」、「再現ステップ」、「予期される結果」、「実際の結果」、「ソフトウェア欠陥の詳細な説明」等）に区分化する。本開示のソフトウェア欠陥報告分類の実施形態をより良好に理解するために、システム１００は、分類という目的においてより重要であるとみなしたこれらの区分の一部のみ、例えば、「ソフトウェア欠陥の概要」、「再現ステップ」、「予期される結果」、「実際の結果」及び「ソフトウェア欠陥の詳細な説明」、からテキスト内容を入手することができる。そのような区分に明確な境界がない場合、１つ又は複数のソフトウェア欠陥報告のテキスト内容全体を単一の「ソフトウェア欠陥の詳細な説明」区分としてシステム１００によって考慮することができる。
【００２５】
本開示の一実施形態では、ステップ３０６で、１つ又は複数のハードウェア・プロセッサ１０４によって概念空間生成モジュール２０６を実行すると、概念空間生成モジュール２０６は、文書コーパスから関連文書サブセットを特定するために、１つ又は複数の知識ベースから入手した文書コーパスに対する分析を実施する。一実施形態では、分析を実施するステップは、関連文書サブセットを特定するために、１つ又は複数の知識ベースから入手した文書コーパスに対し１つ又は複数の文書特定技法を適用することを含む。本開示のソフトウェア欠陥報告分類に関する実施形態をより良好に理解するために、システム１００又は概念空間生成モジュール２０６は、少なくとも１つの文書サブセットが、ソフトウェア開発ライフ・サイクル、ソフトウェア開発及び検査技術の少なくとも１つからの概念、並びにソフトウェア・アプリケーションを開発する分野に関連する概念及び情報に関連することを保証する。本開示の一実施形態では、システムは、ウィキペディア（登録商標）等の汎用百科事典知識ベースを利用することができる。というのは、こうした汎用百科事典知識ベースは、ソフトウェア開発ライフ・サイクル、ソフトウェア技術及び他の多くの分野についての情報項目を収容しているためである。汎用知識ベースは、ソフトウェア欠陥分類の目的とは無関係である可能性がある文書部分を大量に収容する傾向もあることに留意されたい。したがって、概念空間生成モジュール２０６は、ソフトウェア欠陥分類の目的で関連する可能性がより高い文書コーパスから文書サブセット（例えば、少なくとも１つの文書サブセット又は関連文書サブセット）を特定、選択し、残りの文書をこのコーパスから除外する。少なくとも１つの文書サブセットを特定、選択するために、概念空間生成モジュール２０６のシステム１００は、１つ又は複数の知識ベース及び文書コーパスに対し１つ又は複数の文書特定技法を適用し、関連文書サブセットを特定する。例えば、１つ又は複数の文書特定技法は、１つ又は複数のグラフ理論分析、１つ又は複数のキーワード特定技法、１つ又は複数のテキストクラスタ化技法、それらの組合せの少なくとも１つを含み、これらは、（入力として供給された）知識ベース又は文書コーパスに対し適用される。１つ又は複数のグラフ理論分析、１つ又は複数のキーワード特定技法、１つ又は複数のテキストクラスタ化技法等は、メモリ１０２内に保存し、関連文書サブセットの特定を実行するために照会することができる。これらの特定及び／又は選択された文書サブセットは事前に処理され、１つ又は複数の知識ベースから入手した文書コーパスの少なくとも１つからの少なくとも１つの関連文書サブセットに対しｎグラム（長さ「ｎ」のトークン・シーケンス）をマッピングすることによって、概念空間が生成される。本開示の一実施形態では、ｎグラムの「ｎ」は、１からユーザ指定の最大値（例えば最大値３）までの値を取ることができるユーザ指定のパラメータとすることができる。
【００２６】
本開示の一実施形態では、ステップ３０８で、１つ又は複数のハードウェア・プロセッサ１０４によって概念空間生成モジュール２０６を実行すると、概念空間生成モジュール２０６は、ステップ３０６で特定した関連文書サブセットに基づき、概念空間を生成する。
【００２７】
本開示の一実施形態では、ステップ３１０で、１つ又は複数のハードウェア・プロセッサ１０４によって投影モジュール２０８を実行すると、投影モジュール２０８は、概念空間（又は生成した概念空間）内に、１つ又は複数のソフトウェア欠陥報告の少なくとも１つに関係する１つ又は複数の区分のテキスト内容、及び１つ又は複数のソフトウェア欠陥カテゴリのテキスト記述を投影し、概念空間表現を生成する。言い換えれば、１つ又は複数のソフトウェア欠陥報告の少なくとも１つに特有の１つ又は複数の区分に関係するテキスト内容、及び１つ又は複数のソフトウェア欠陥カテゴリのテキスト記述は、１つ又は複数のソフトウェア欠陥報告及び１つ又は複数のソフトウェア欠陥カテゴリのそれぞれに関して（ステップ３０８で生成した）概念空間内に投影される。例えば、投影モジュール２０８は、ソフトウェア欠陥報告テキスト区分化モジュール２０４から入手した「ソフトウェア欠陥の概要」、「再現ステップ」、「予期される結果」、「実際の結果」及び「ソフトウェア欠陥の詳細な説明」等の１つ又は複数のソフトウェア欠陥報告に関係する１つ又は複数の区分のテキスト・データ（又はテキスト内容）、並びに１つ又は複数のソフトウェア欠陥カテゴリのテキスト記述を、概念空間生成モジュール２０６が生成した概念空間内に投影し、ソフトウェア欠陥報告（複数可）の概念空間表現及びソフトウェア欠陥カテゴリを生成する。
【００２８】
本開示の一実施形態では、ステップ３１２で、１つ又は複数のハードウェア・プロセッサ１０４によって概念空間類似度計算モジュール２１０を実行すると、概念空間類似度計算モジュール２１０は、１つ又は複数のソフトウェア欠陥報告のそれぞれ及び１つ又は複数のソフトウェア欠陥カテゴリのそれぞれの概念空間表現の間の１つ又は複数の類似度を計算し、分類すべき１つ又は複数のソフトウェア欠陥報告に特有の１つ又は複数の類似度値の分布を入手する。
【００２９】
本開示の一実施形態では、ステップ３１４で、１つ又は複数のハードウェア・プロセッサ１０４によって分類モジュール２１０を実行すると、分類モジュール２１０は、１つ又は複数の類似度値の分布と閾値との比較を実施し、ステップ３１６で、比較に基づき１つ又は複数のソフトウェア欠陥報告を１つ又は複数のソフトウェア欠陥カテゴリに分類する。本開示の一実施形態では、閾値は、事前に定義するか又は動的に生成する。動的に生成する場合の閾値は、１つ又は複数の類似度値の分布に基づく（又は基づくことができる）。更に、一例示的実施形態では、閾値は、１つ又は複数のソフトウェア欠陥報告及び１つ又は複数のソフトウェア欠陥カテゴリのそれぞれの概念空間表現において、共通概念の最小数についての制約条件を前提とすることができる。本開示の一実施形態では、分類モジュール２１２は、入力として計算した１つ又は複数の類似度値の分布を取り、次に、１つ又は複数類似度値のこの分布を選別して類似度閾値を特定する。本開示の一実施形態では、１つ又は複数の類似度値がこの閾値よりも高い（又はこの閾値と等しい）場合、１つ又は複数のソフトウェア欠陥報告は、１つ又は複数のソフトウェア欠陥カテゴリ（例えば、ソフトウェア欠陥カテゴリの第１のセット）に分類される。言い換えれば、１つ又は複数の類似度値がこの閾値よりも高い（又はこの閾値と等しい）場合、ソフトウェア欠陥報告からの１つ又は複数のソフトウェア欠陥は、ソフトウェア欠陥カテゴリの第１のセットに分類される。同様に、１つ又は複数の類似度値が閾値よりも小さい場合、クラス標示（又は１つ又は複数のソフトウェア欠陥カテゴリ）は、１つ又は複数のソフトウェア欠陥報告に割り当てられない。言い換えれば、対応する類似度値が閾値未満であるこれらのソフトウェア欠陥カテゴリは、ソフトウェア欠陥報告（複数可）に割り当てられない。一実施形態では、表示「クラス標示」、「欠陥タイプ」、「欠陥タイプ標示」及び「欠陥標示」は、以下、互換的に使用することができる。
【００３０】
概念空間は、知識ベース（例えばウィキペディア（登録商標））内の項目（又は文書コーパス）によって補われる。概念空間表現内の概念ｃｊは、知識ベース項目（例えばウィキペディア（登録商標）の項目）に対応し、当該項目内でＴＦ−ＩＤＦのような単語重み付けベクトルを使用して表される。逆索引を作成すると、１つ又は複数の単語を、その単語が出現する概念リストにマッピングするのに役立つ。逆索引における単語と概念との結合は、ＴＦ−ＩＤＦのような単語重み付け方式（例えばＢＭ２５重み付け方式）によって重み付けされる。この逆索引において、比較的低い重みの入力は、ノイズとして除外される。ソフトウェア欠陥報告Ｄを仮定すると、最初に、ＴＦ−ＩＤＦのような単語重み付け方式（例えばＢＭ２５重み付け方式）によって重み付けした単語の袋（例えば全ての単語が一次元である）方式／空間を使用する単語ベクトルとして表される。逆索引を使用すると、各単語に対する概念ベクトルｗｄ∈Ｄは、併合され、所与のソフトウェア欠陥報告Ｄを表す概念の重み付けベクトルを形成する。
【００３１】
以下は、一例としての本開示の実施形態の例示的実装形態である。
【００３２】
以下は、本開示の実施形態によって実施する技法（複数可）又は方法（複数可）を説明するための例示的表記法である：
Ｄ＝｛ｗｄ｝ソフトウェア欠陥報告の入力テキスト・データ内の単語セット。
Ｌ＝｛ｗｉ｝欠陥標示（又はソフトウェア欠陥カテゴリ）の入力テキスト・データ内の単語セット。
Ｎ＝概念空間表現内で使用される知識ベース概念の数（結合強度の減少に基づく順序）。
【００３３】
【数１】
2018181318.tif 000003
が、欠陥報告Ｄの長さＮの概念空間表現ベクトルを示すと仮定する、即ち、
【００３４】
【数２】
2018181318.tif 000004
である。
【００３５】
【数３】
2018181318.tif 000005
の入力ｐｊは、Ｄの概念空間表現における対応する概念ｃｊの重みを示す。入力ｐｊは以下のように計算される：
【００３６】
【数４】
2018181318.tif 000006
式中、ｖｉは、ＤのＴＦ−ＩＤＦのような重み付けベクトル表現における単語ｗｉのＢＭ２５の重みであり、ＢＭ２５とは、ＴＦ−ＩＤＦ単語重み付け方式の高度な変種である（参考文献：Ｓｔｅｐｈｅｎ  Ｒｏｂｅｒｔｓｏｎ  ＆  Ｈｕｇｏ  Ｚａｒａｇｏｚａ（２００９年）。「Ｔｈｅ  Ｐｒｏｂａｂｉｌｉｓｔｉｃ  Ｒｅｌｅｖａｎｃｅ  Ｆｒａｍｅｗｏｒｋ：ＢＭ２５  ａｎｄ  Ｂｅｙｏｎｄ」。３（４）。Ｆｏｕｎｄ．Ｔｒｅｎｄｓ  Ｉｎｆ．Ｒｅｔｒ．：３３３〜３８９。ＤＯＩ：１０．１５６１／１５００００００１９）、及び
ｋｉｊは、逆索引内で単語ｗｉと知識ベース概念ｃｊとの結合強度を定量化したものである。
同様に、
【００３７】
【数５】
2018181318.tif 000007
が、欠陥タイプ標示Ｌの長さＮの概念空間表現ベクトルを示すと仮定する、即ち、
【００３８】
【数６】
2018181318.tif 000008
である。
【００３９】
【数７】
2018181318.tif 000009
の入力ｑｊは、Ｌの概念空間表現内の対応する概念ｃｊの重みを示す。入力ｑｊは、以下のように計算される：
【００４０】
【数８】
2018181318.tif 000010
式中、ｖｉは、ＬのＴＦ−ＩＤＦのような重み付けベクトル表現における単語ｗｉのＢＭ２５の重みであり、
ｋｉｊは、逆索引内で単語ｗｉと知識ベース概念ｃｊとの結合強度を定量化したものである。
【００４１】
ソフトウェア欠陥報告Ｄは、知識ベース（例えばウィキペディア（登録商標））の項目のベクトル
【００４２】
【数９】
2018181318.tif 000011
を使用して表される。各欠陥タイプ標示（又はソフトウェア欠陥カテゴリ）も、対応する概念空間表現ベクトル
【００４３】
【数１０】
2018181318.tif 000012
を使用して表される。
【００４４】
【数１１】
2018181318.tif 000013
（同様に、
【００４５】
【数１２】
2018181318.tif 000014
）の入力は、対応する概念の、入力ソフトウェア欠陥報告Ｄ（同様にＬ）に対する関連性を反映する。欠陥タイプ標示Ｌ及びソフトウェア欠陥報告Ｄのセマンティック関連度を計算するために、これらの概念空間表現ベクトルは、以下で例として提供するコサイン基準を使用して比較される：
【００４６】
【数１３】
2018181318.tif 000015
【００４７】
最後の分類のために、ソフトウェア欠陥報告は、類似度値の分布、様々な欠陥標示にわたる類似度の相対強度、及び欠陥標示の概念空間表現と欠陥報告記述の概念空間表現との間の共通概念の数に応じて、１つ又は複数の欠陥標示を割り当てる。
【００４８】
本開示の実施形態、及び本開示の実施形態に関連するシステム及び方法は、以下に例として示す、ソフトウェア欠陥報告の１つ又は複数のカテゴリへの例示的分類を提供する。
【００４９】
上述のように、ステップ３０２で、システム１００は、ソフトウェア欠陥報告（複数可）、それぞれがクラス標示、及びクラス標示に関連するテキスト記述を含む１つ又は複数のソフトウェア欠陥カテゴリ、以下に示す１つ又は複数の知識ベースから入手した文書コーパスを含む入力を受信する。本開示の実施形態を簡潔にし、より良好に理解するために、３つの欠陥タイプから構成されるサンプル欠陥分類方式を、各欠陥タイプのテキスト記述と共に以下に提供する。
【００５０】
制御／データ・フロー欠陥タイプ：この欠陥タイプは、アルゴリズム；変数割当て又は初期化によるエラー又は例外；条件文及びｆｏｒ／ｗｈｉｌｅループの確認；マルチスレッド・システム又はマルチプロセス・システム等におけるタイミング、シリアル化又は同期化に関連するソフトウェア欠陥に適用可能である。
【００５１】
構造欠陥タイプ：このタイプは、ソフトウェア・モジュール又は構成要素間のインターフェース、アプリケーション・プログラム・インターフェース（ＡＰＩ）、クラス、オブジェクトを含むオブジェクト指向設計；プロシージャ、データベース・スキーマ、エンティティ関係図（複数可）等の間の関係の欠陥に適用可能である。
【００５２】
非コード欠陥タイプ：このタイプは、マニュアル、ユーザ・ガイド、ｊａｖａｄｏｃ等のソフトウェア文書；ソフトウェア構築プロセス；ソフトウェア構成及びインストール；ソフトウェア構成及び変更管理プロセス；ソフトウェア・グラフィカル・ユーザ・インターフェース又はナビゲーション等の欠陥に適用可能である。
【００５３】
上記の欠陥タイプでは、制御／データ・フロー欠陥タイプ、構造欠陥タイプ及び非コード欠陥タイプがクラス標示であり、「この欠陥タイプは、アルゴリズム；変数割当て又は初期化によるエラー又は例外；条件文及びｆｏｒ／ｗｈｉｌｅループの確認；マルチスレッド・システム又はマルチプロセス・システム等におけるタイミング、シリアル化又は同期化に関連するソフトウェア欠陥に適用可能である」を含むテキストが、ソフトウェア欠陥カテゴリのサンプルのテキスト記述である。同様に、クラス標示、構造欠陥タイプ及び非コード欠陥タイプの残りは、上記で示したテキスト記述を含む。
【００５４】
更に、以下のサンプルのソフトウェア欠陥報告を考慮する：
バグ名称：ＦＰ木ノードが積和演算されている（木の中で兄弟になっている）
バグ詳細：２０１１年１１月１４日作成
バージョン：０．６
優先度：大
報告者：Ａｂｃ  Ｘｙｚ
ＯＳ：Ｌｉｎｕｘ（登録商標）
ＦＰＧｒｏｗｔｈ＃ｔｒａｖｅｒｓｅＡｎｄＢｕｉｌｄＣｏｎｄｉｔｉｏｎａｌＦＰＴｒｅｅＤａｔａにおいて、条件付きＦＰ木を作成する際にノードが同じノードの子として積和演算されることがあり、条件付き木の中で兄弟になっている。
【００５５】
一例示的実施形態では、ステップ３０４で述べたように、システム１００は、ソフトウェア欠陥報告テキスト区分化モジュール２０４を介して、上記サンプル欠陥報告の区分化を実施し、正規表現を使用して異なる区分にし、各区分の部分を抽出する。以下で示すのは、システム１００によって区分化工程から入手した１つ又は複数の区分の一例であり、例示的表１によって示す：
【００５６】
【表１】
2018181318.tif 000016
【００５７】
区分化ステップが完了すると、システム１００は、欠陥分類の目的で、欠陥区分のテキスト内容：「欠陥名称」、「再現ステップ」、「予想される結果」、「実際の結果」及び「欠陥の詳細な説明」を考慮する。他の欠陥報告区分の内容は、欠陥分類の目的では無視することができる。
【００５８】
欠陥区分のテキスト内容、「欠陥名称」、「再現ステップ」、「予想される結果」、「実際の結果」及び「欠陥の詳細な説明」は、「分類用＿欠陥＿テキスト」と示す単一のテキスト文字列に組み合わせられ、次に、このテキスト文字列を概念空間内に投影する。進行中の例では、「分類用＿欠陥＿テキスト」は、以下の区分出力として得られる。
【００５９】
「ＦＰ木ノードが積和演算されている（木の中で兄弟になっている）。ＦＰＧｒｏｗｔｈ＃ｔｒａｖｅｒｓｅＡｎｄＢｕｉｌｄＣｏｎｄｉｔｉｏｎａｌＦＰＴｒｅｅＤａｔａにおいて、条件付きＦＰ木を作成する際にノードが同じノードの子として積和演算されることがあり、条件付き木の中で兄弟になっている。」
【００６０】
次のステップとして、システム１００は、１つ又は複数の知識ベースから入手した文書コーパスに対し（１つの）分析を実施し、文書コーパスから関連文書サブセットを特定する。知識ベースを分析し、関連文書サブセットを特定するステップは、ソフトウェア欠陥報告分類タスクのため考慮中のソフトウェア欠陥報告の全てについて繰り返さなくてもよいことは、当業者であれば理解されよう。更に、一例示的実施形態では、このことは、典型的には、事前処理動作であってもよく、所与のセットのソフトウェア欠陥報告を分類する実際のタスクの前に実行することができる。ここで、ステップ３０６を具体的に説明する。
【００６１】
概念空間の生成に適切な関連文書セットの特定：
【００６２】
システム１００は、例えば、知識ベースに対応する文書コーパスとして英語版ウィキペディア（登録商標）を利用する。ウィキペディア（登録商標）は、約３５０万の文書を有する。ウィキペディア（登録商標）は、汎用コーパスであるため、ソフトウェア欠陥分類タスクのためにウィキペディア（登録商標）全体を使用して概念空間生成を生成するステップは、多くの無関係な文書を含む傾向がある。したがって、実施形態は、本開示で提案する、ウィキペディア（登録商標）文書サブセットを特定する方法（複数可）を採用し、このウィキペディア（登録商標）文書サブセットとは、（本開示の目的である）ソフトウェア欠陥分類タスクで関連する可能性がより高い文書サブセットである。様々なウィキペディア（登録商標）文書を接続しているハイパー・リンクを使用して、ウィキペディア（登録商標）文書のグラフ（図示せず）を生成する。ソフトウェア欠陥報告分類タスクのための種文書として、ウィキペディア（登録商標）文書（小）セットを使用する。これらの種文書は、ソフトウェア欠陥報告分類タスクのために構成可能なパラメータである。ユーザ（複数可）は、提案するソフトウェア欠陥分類システム及び／又は方法を、既存の種文書セットには含まれていない新たなアプリケーション、新たな技術又は新たな分野に適合させたい場合にのみ、種文書を更新することができる。システム１００は、一例示的実施形態では、これらの「種文書」から「ｘ」ホップ（例えば本実験シナリオでは３ホップ）以内で到達可能であるウィキペディア（登録商標）文書のサブセットを特定する。このウィキペディア（登録商標）文書サブセットを特定するために、システム１００は、ハイパーリンクを使用して構成したウィキペディア（登録商標）グラフに対し幅優先探索（ＢＦＳ）を実行する。幅優先探索とは、グラフ理論分析の一種であり、一例示的実施形態では３ホップ以内で到達可能な文書の関連セットを特定するために、システム１００によって実施、実行される。一実施形態では、第１のホップは、種ノード（又は種文書）の１つ又は複数の近隣（例えば第１の近隣セット）と呼ばれ、第２のホップは、第１の近隣セットの１つ又は複数の近隣（例えば第２の近隣セット）と呼ばれ、第３のホップは、第２の近隣セットの１つ又は複数の近隣（例えば第３の近隣セット）と呼ばれる。
【００６３】
現在の例では、簡潔にするために、「ソフトウェア・バグ」を唯一の種文書として使用し、この種文書から３ホップ以内で到達可能なウィキペディア（登録商標）文書のみを関連文書セット（又は文書サブセットと呼ぶ）として特定し、現在の例に含める。この文書サブセットを使用して、ソフトウェア欠陥の概念ベースの分類に必要な概念空間を生成する。概念空間は、工程内で多量の文書セットが特定されるため、図示しない。しかし、関連文書セットを特定し、ソフトウェア欠陥報告を分類するために、（上記で実施した）３ホップを実施することは、本開示の範囲の限定として解釈すべきではないことは当業者であれば理解されよう。
【００６４】
ステップ３０８で述べたように関連文書セットを特定した後、特定された関連文書セットに基づき、概念空間を生成する（多量の文書コーパスを含む概念空間生成に関する制約のために図示しない）。
【００６５】
更に、ソフトウェア欠陥報告（例えば上記の作業例で示したバグ・レポート）及び１つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対する概念空間表現は、図３のステップ３１０に従って入手／生成される。ソフトウェア欠陥報告及び１つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対する概念空間表現は、例として提供する。
【００６６】
ステップ３０４（例えば区分化）で出力として示される、検討中のソフトウェア欠陥報告に関する例示的概念空間表現（例えば「分類用＿欠陥＿テキスト」）を以下の表２に示す。
【００６７】
【表２】
2018181318.tif 000017
【００６８】
上記からわかるように、簡潔にするために、２５の概念のみを示す。しかし、考慮中のソフトウェア欠陥報告のために図示した２５の概念は、本発明の範囲の限定として解釈されるものではないことは当業者であれば理解されよう。
【００６９】
同様に、ステップ３０２における入力（例えばクラス標示及びテキスト記述）として示す、考慮中の１つ又は複数のソフトウェア欠陥カテゴリ（又は対応するクラス標示）の例示的概念空間表現（例えば「制御／データ・フロー」）を以下の表３に示す。
【００７０】
【表３】
2018181318.tif 000018
【００７１】
上記からわかるように、簡潔にするために、２５の概念のみを示す。しかし、考慮中のソフトウェア欠陥カテゴリ（又は複数のソフトウェア欠陥カテゴリ）のために図示した２５の概念は、本発明の範囲の限定として解釈されるものではないことは当業者であれば理解されよう。
【００７２】
ステップ３１２で、ソフトウェア欠陥報告及びソフトウェア欠陥カテゴリのそれぞれに対し概念空間表現を生成した後、システム１００は、欠陥報告と欠陥標示（及び／又はソフトウェア欠陥カテゴリ）のそれぞれとの間の共通概念の数及び類似度を計算する。欠陥標示（以下、１つ又は複数のソフトウェア欠陥カテゴリのクラス標示とも呼ぶ）を割り当てるために、システム１００は、概念空間表現で使用される概念数の少なくとも１０％が、ソフトウェア欠陥報告と欠陥標示（又はソフトウェア欠陥カテゴリ）との間で共通であるはずであるという制約条件を前提として、（図４に示すような）様々な欠陥タイプにわたる類似度値の分布、類似度の相対強度を考慮に入れる。システム１００は、１つ又は複数のソフトウェア欠陥報告の概念空間表現と共通している概念の数の１０％未満を有する欠陥標示（又はソフトウェア欠陥カテゴリ）に対応する類似度値の平均及び標準偏差を計算する。本開示の一実施形態では、類似度値の標準偏差は、当技術分野で公知の標準偏差式を使用して計算される。次に、システム１００は、１０％未満の共通概念を有する欠陥標示（又はソフトウェア欠陥カテゴリ）に対応する類似度値セットの上記で計算した平均と、上記で計算した標準偏差の「ｎ」倍（例えば本例では「ｎ」は３である）との和として閾値を計算（生成）する。システム１００は、概念空間表現が少なくとも１０％のソフトウェア欠陥報告の概念空間表現との共通概念を有し、類似度値が、計算した（生成した）閾値よりも高い（閾値を超える）（又は閾値と等しい）１つ又は複数の欠陥標示（又はソフトウェア欠陥カテゴリ）を割り当てる。
【００７３】
欠陥標示（又はソフトウェア欠陥カテゴリ）であって、その欠陥標示（又はソフトウェア欠陥カテゴリ）の概念空間表現がソフトウェア欠陥報告の概念空間表現との共通概念を１０％未満有する、欠陥標示（又はソフトウェア欠陥カテゴリ）がただ１つである場合、システム１００は、閾値をただ１つの欠陥標示に対応する類似度値の「ｐ」倍（例えば本例では「ｐ」は例えば２である）として計算する。
【００７４】
欠陥標示（又はソフトウェア欠陥カテゴリ）であって、その欠陥標示（又はソフトウェア欠陥カテゴリ）の概念空間表現が、ソフトウェア欠陥報告の概念空間表現と共通する概念を１０％未満有する欠陥標示（又はソフトウェア欠陥カテゴリ）がない場合（即ち、全ての欠陥標示（又はソフトウェア欠陥カテゴリ）が、ソフトウェア欠陥報告の概念空間表現と共通する概念を少なくとも１０％有する場合）、システム１００は、全ての欠陥標示に対応する類似度値の標準偏差及び平均に基づき、閾値を計算する。例えば、システム１００は、全ての欠陥標示に対応する類似度値の標準偏差の「ｍ」倍（例えば本例では「ｍ」は例えば３である）を、全ての欠陥表示に対応する類似度知の平均から減算することによって、閾値を計算する。
【００７５】
以下は、ソフトウェア欠陥報告（例えば考慮中のソフトウェア欠陥報告−「分類用＿欠陥＿テキスト」）及びソフトウェア欠陥カテゴリ（例えば制御／データ・フロー、構造及び非コード）のそれぞれに関係する類似度値の計算及びその分布を示す例示的な表（例えば表４）である。進行中の例に関し、類似度値の分布、相対強度及び共通概念の数を以下の表４に示す。
【００７６】
【表４】
2018181318.tif 000019
【００７７】
明らかであるように、各ソフトウェア欠陥カテゴリに対する考慮中の欠陥報告（例えば分類用＿欠陥＿テキスト）に対し、第２列は、類似度値を示す。これらの類似度値は、上記式（１）を使用して計算する。一例示的実装形態では、類似度値０．１７８６を、ソフトウェア欠陥カテゴリ・タイプ「制御／データ・フロー」のために計算した。同様に、類似度値０．０１５７を、ソフトウェア欠陥カテゴリ・タイプ「構造」のために計算し、類似度値０．０１７４を、ソフトウェア欠陥カテゴリ・タイプ「非コード」のために計算した。第３列は、様々な欠陥カテゴリ（又はタイプ）の中での類似度の相対強度を表し、第２列からの値のうち、最小の値は、各ソフトウェア欠陥カテゴリの相対強度を決定するため、異なっている。例示的シナリオでは、０．０１５７は、特定された最小類似度値であり、類似度値０．１７８６を分割し、ソフトウェア欠陥カテゴリ・タイプ「制御／データ・フロー」の類似度の相対強度を計算するために使用され、この場合、１１．３７６となる。同様に、０．０１５７は、特定された最小類似度値であり、類似度値０．０１５７を分割し、ソフトウェア欠陥カテゴリ・タイプ「構造」の類似度の相対強度を計算するために使用され、この場合、上記表４からわかるように、１となる。同様に、０．０１５７は、特定された最小類似度値であり、類似度値０．０１７４を分割し、ソフトウェア欠陥カテゴリ・タイプ「非コード」の類似度の相対強度を計算するために使用され、この場合、１．１０８となる。実施した実験結果では、現実には、考慮中のソフトウェア欠陥報告及び１つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対し考慮した概念は、５００であった。第４列は、考慮中のソフトウェア欠陥報告（例えば分類用＿欠陥＿テキスト）と、カテゴリ（例えば制御／データ・フロー、構造及び非コード）との間の共通概念の数を表す。上記表４からわかるように、考慮中のソフトウェア欠陥報告に関係する概念−分類用＿欠陥＿テキストと、制御／データ・フロー欠陥カテゴリとの間に７９の共通概念が発見された。同様に、考慮中のソフトウェア欠陥報告−分類用＿欠陥＿テキストと、構造欠陥カテゴリとの間に１０の共通概念があった。同様に、考慮中のソフトウェア欠陥報告−分類用＿欠陥＿テキストと、非コード欠陥カテゴリとの間に１０の共通概念があった。上記表４に基づき、図１から図３に関する図４は、本開示の一実施形態による、考慮中のソフトウェア欠陥報告に関する各ソフトウェア欠陥カテゴリに対し計算した類似度値の分布を示すグラフ図を示す。より詳細には、グラフ図は、システム１００によって生成され、左側のＹ軸は、式（１）を使用して計算した「類似度値」を示し、右側のＹ軸は、様々な欠陥タイプにわたる相対強度を示す（図４では点線で示す）。
【００７８】
実験の実施により、システム１００については、カテゴリのそれぞれに対し類似度値を計算するために、少なくとも５０の概念が、考慮中のソフトウェア欠陥報告（例えば分類用＿欠陥＿テキスト）の概念空間表現と、カテゴリ（例えば制御／データ・フロー、構造及び非コード）との間で共通である必要があることに気付いた。５００のうち５０の共通概念とは、少なくとも１０％であり、このシナリオでは制約条件である。システム１００は、平均（例えば、平均は、ソフトウェア欠陥報告（複数可）表現の共通概念の１０％未満を有するソフトウェア欠陥カテゴリの類似度値で計算される）、及び標準偏差の「ｎ」倍（この場合、「ｎ」は３である）に基づき閾値を計算する。したがって、閾値は、以下の例示的式により計算される：
平均＝０．０１６５５＝（（０．０１５７＋０．０１７４）／２）
標準偏差（又はｓｔｄｅｖ）＝０．００１２０２０８２
閾値＝平均＋３×ｓｔｄｅｖ＝０．０１６５５＋３×０．００１２０２０８２
＝０．０２０１５６２４５
次に、いずれかの第２列からの値のそれぞれを、この動的に生成した類似度閾値と比較し、この場合、類似度閾値は０．０２０１５６２４５である。
【００７９】
例示的実装形態では、ソフトウェア欠陥カテゴリ「制御／データ・フロー」に関係する類似度値（例えば０．１７８６）を０．０２０１５６２４５と比較した。同様に、ソフトウェア欠陥カテゴリ「構造」に関係する類似度値（例えば０．０１５７）を０．０２０１５６２４５と比較した。同様に、ソフトウェア欠陥カテゴリ「非コード」に関係する類似度値（例えば０．０１７４）を０．０２０１５６２４５と比較した。明らかであるとおり、ソフトウェア欠陥カテゴリ「制御／データ・フロー」に関係する類似度値（例えば０．１７８６）は、動的に生成した類似度閾値（例えば０．０２０１５６２４５）よりも高い（又はこれを超える）。したがって、考慮中のソフトウェア欠陥報告は、ステップ３１６で示すように、「制御／データ・フロー」ソフトウェア欠陥カテゴリ下（又は「制御／データ・フロー」ソフトウェア欠陥カテゴリ内）に分類されている。
【００８０】
本明細書は、当業者が実施形態を製作し、使用することが可能になるように主題を説明するものである。主題の実施形態の範囲は、特許請求の範囲によって定義され、当業者が想到する他の修正形態を含むことができる。そのような他の修正形態は、特許請求の範囲の文字通りの文言とは異ならない同様の要素を有する場合、又は特許請求の範囲の文字通りの文言と比べて実質的でない差異を有する等価要素を含む場合、特許請求の範囲内にあることを意図する。
【００８１】
しかし、保護の範囲は、特許請求の範囲のメッセージを有するプログラム及び更にはプログラムコンピュータ可読記憶手段まで拡大され、そのようなコンピュータ可読記憶手段は、プログラムをサーバ又はモバイル・デバイス又は任意の適切なプログラム可能デバイス上で稼働させる際に、方法の１つ又は複数のステップを実施するプログラム・コード手段を含むことは理解されよう。ハードウェア・デバイスは、プログラム可能なあらゆる種類のデバイスとすることができ、例えば、サーバ若しくはパーソナル・コンピュータ等のようなあらゆる種類のコンピュータ、又はそれらの組合せを含む。デバイスは、手段も含むことができ、例えばハードウェア手段、例えば、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又はハードウェア手段とソフトウェア手段との組合せ、例えば、ＡＳＩＣ及びＦＰＧＡ、又は少なくとも１つのマイクロプロセッサ、及びデバイスの中に位置するソフトウェア・モジュールを有する少なくとも１つのメモリとすることができる。したがって、手段は、ハードウェア手段及びソフトウェア手段の両方を含むことができる。本明細書で説明する方法の実施形態は、ハードウェア及びソフトウェア内に実装することができる。デバイスは、ソフトウェア手段も含むことができる。代替的に、実施形態は、例えば複数のＣＰＵを使用して様々なハードウェア・デバイス上に実装することができる。
【００８２】
本明細書の実施形態は、ハードウェア要素及びソフトウェア要素を備えることができる。ソフトウェア内に実装する実施形態は、限定はしないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含む。本明細書で記載する様々なモジュールによって実施する機能は、他のモジュール又は他のモジュールの組合せにおいて実施することができる。この説明の目的で、コンピュータ使用可能媒体又はコンピュータ可読媒体は、指示実行システム、装置又はデバイスが使用するか又はこれらに関連するプログラムを備え、保存、通信、伝搬又は移送するあらゆる装置とすることができる。
【００８３】
例示するステップは、図示の例示的実施形態を説明するために示し、進行中の技術開発により、特定の機能を実施する様式が変更されることは予期されるはずである。こうした例は、例示のために本明細書で提示するものであり、限定するものではない。更に、機能的な基本構成要素の境界は、説明の便宜上、本明細書において任意に定義されている。特定の機能及び機能関係が適切に実施されるかぎり、代替的な境界を定義することができる。代替形態（本明細書に記載するものの等価物、拡張形態、変形形態、変形体等を含む）は、本明細書に含まれる教示に基づき、当業者には明らかであろう。そのような代替形態は、開示する実施形態の趣旨及び範囲内にある。また、語「備える」、「有する」、「含有する」及び「含む」並びに他の同様の形態は、意味が同等であり、これらの語のいずれか１つに続く１つ若しくは複数の項目がそのような１つ若しくは複数の項目の網羅的なリストではないという点で無制限であることを意図する、又は列挙した１つ若しくは複数の項目のみに限定されないことを意味する。本明細書及び添付の特許請求の範囲で使用する単数形「１つの（ａ、ａｎ及びｔｈｅ）」は、文脈が別段に明確に規定しない限り、複数の言及を含むことにも留意されたい。
【００８４】
更に、１つ又は複数のコンピュータ可読記憶媒体は、本開示に一致する実装形態において利用することができる。コンピュータ可読記憶媒体は、プロセッサが読取り可能な情報又はデータを保存することができる任意のタイプの物理メモリを指す。したがって、コンピュータ可読記憶媒体は、本明細書に記載の実施形態に一致するステップ又は段階をプロセッサ（複数可）に実施させる指示を含め、１つ又は複数のプロセッサを実行させる指示を保存することができる。用語「コンピュータ可読媒体」は、有形物品を含み、搬送波及び過渡信号を除外する、即ち、非一時的であることは理解されよう。例は、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、揮発性メモリ、不揮発性メモリ、ハード・ドライブ、ＣＤ  ＲＯＭ、ＤＶＤ、フラッシュ・ドライブ、ディスク、及びあらゆるほかの公知の物理的記憶媒体を含む。
【００８５】
本開示及び例は、例と見なされるにすぎず、真の範囲及び趣旨は、以下の特許請求の範囲によって示すことを意図する。
【図１】
2018181318.tif 000020
【図２】
2018181318.tif 000021
【図３】
2018181318.tif 000022
【図４】
2018181318.tif 000023
【外国語明細書】
2018181318000001.pdf