JP2018181318A - ソフトウェア欠陥報告を分類するシステム及び方法 - Google Patents

ソフトウェア欠陥報告を分類するシステム及び方法 Download PDF

Info

Publication number
JP2018181318A
JP2018181318A JP2018050499A JP2018050499A JP2018181318A JP 2018181318 A JP2018181318 A JP 2018181318A JP 2018050499 A JP2018050499 A JP 2018050499A JP 2018050499 A JP2018050499 A JP 2018050499A JP 2018181318 A JP2018181318 A JP 2018181318A
Authority
JP
Japan
Prior art keywords
software defect
software
document
reports
categories
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018050499A
Other languages
English (en)
Other versions
JP6567114B2 (ja
Inventor
サンガメシュワール スリャカント パティル
Suryakant Patil Sangameshwar
サンガメシュワール スリャカント パティル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tata Consultancy Services Ltd
Original Assignee
Tata Consultancy Services Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tata Consultancy Services Ltd filed Critical Tata Consultancy Services Ltd
Publication of JP2018181318A publication Critical patent/JP2018181318A/ja
Application granted granted Critical
Publication of JP6567114B2 publication Critical patent/JP6567114B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/355Class or cluster creation or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2323Non-hierarchical techniques based on graph theory, e.g. minimum spanning trees [MST] or graph cuts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/2431Multiple classes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/414Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Business, Economics & Management (AREA)
  • Business, Economics & Management (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Discrete Mathematics (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】ソフトウェア欠陥報告を分類するシステム及び方法を提供すること。【解決手段】ソフトウェア欠陥をカテゴリ化する既存の方式は、教師あり機械学習/半教師あり機械学習技法の使用に基づいており、分類子モデルを訓練するには、各クラスに著しい量の標示訓練データが必要であり、著しい量の人力を費やすことにつながり、この結果、高額なプロセスとなる。本開示の実施形態は、ソフトウェア欠陥報告に対し概念ベースの分類を実施することによって、ソース・コードから得られた標示訓練データ及び特徴に依存する問題を回避するシステム及び方法を提供する。本開示では、欠陥カテゴリ/タイプ標示とソフトウェア欠陥報告(複数可)との間のセマンティック類似度を計算し、1つ又は複数の知識ベースから入手した文書コーパスによって補われる概念空間内に表し、類似度値の分布を得る。これらの類似度値は、動的に生成した閾値と比較され、この比較に基づき、ソフトウェア欠陥報告をソフトウェア欠陥カテゴリに分類する。【選択図】図3

Description

関連出願の相互参照及び優先権
本特許出願は、2017年4月19日出願のインド特許出願第(201721013935)号の優先権を主張する。
本明細書における開示は、一般に、ソフトウェア欠陥報告分析に関し、より詳細には、ソフトウェア欠陥報告を分類するシステム及び方法に関する。
多くの重要な情報は、テキスト・データとしてソフトウェア開発ライフ・サイクル(SDLC)内に捕捉される。ソフトウェアの欠陥管理は、SDLCの保守及び進展段階の不可欠な部分である。ソフトウェアの検査段階及び実際の使用の間、ソフトウェアの様々な態様に関連する多くの欠陥が報告される。複数の技法、例えば、適切な欠陥分類方式(直交欠陥分類(ODC)等)、IEEE規格1044等、を使用してこうした欠陥を分類することは、欠陥管理工程を合理化するのに役立ち、欠陥報告のパターンの特定、より迅速な根本原因の分析等、多数の恩恵が得られる。
ソフトウェア欠陥(例えばソフトウェア・バグ)報告のテキスト記述は、欠陥を理解し、続いて所与の分類方式に従って欠陥を分類するために非常に重要である。テキスト欠陥記述から欠陥タイプを自動特定することで、欠陥分析時間及び全体の欠陥管理工程を著しく向上させることができる。このことは、ソフトウェア・リポジトリ・マイニング研究界で認識されており、過去10年にわたり多数の解決策が提案されている。
教師あり機械学習等、ソフトウェア欠陥タイプを分類するための標準的なデータ駆動方式は、予測モデルの構築に著しい量の標示訓練データを必要とする。この標示データセットは、典型的には、ドメイン知識及び専門的知識を有する人間が作製する。これは明らかに、集中的な取組み及び費用を要求する活動である。更に、ソフトウェア欠陥テキストをカテゴリ化する既存の方式は、教師あり機械学習又は半教師あり機械学習方式の使用に基づく。この教師あり学習において、分類子モデルを訓練するには各クラスに著しい量の標示訓練データが必要である。標示訓練データは、多数の欠陥から構成され、これらの欠陥は、適用可能な分類方式に従って欠陥タイプ分類として人間が注釈を付け、検証している。この訓練データの生成には著しい量の人力が必要となるため、工程が高額になり、更に、利用可能な専門的知識及び資源を非効率的な形で使用することになる。研究界は、この課題を認識しており、ソフトウェア欠陥分類のために、能動学習及び半教師あり学習の使用を提案しており、これにより、必要な標示訓練データの量を低減し、注釈を付けるのに要求される人力を最小化すること目指している。こうした方式は基本的な教師つき学習方式を改善しているとはいえ、必要量の標示訓練データを生成してソフトウェア欠陥分類を実行するには、依然として相応の人力を必要とする。更に、これら及び他の従来の技法は、ソース・コードから導出した特徴、及びバグを修正するコードの事前処理によって入手した特徴も使用する。
本開示の実施形態は、本発明者等が認識している、従来のシステムにおける上述の技術的課題の1つ又は複数に対する解決策として技術的改良点を提示するものである。一態様では、ソフトウェア欠陥報告を1つ又は複数のソフトウェア欠陥カテゴリに分類するプロセッサ実施方法を提供し、方法は、1つ又は複数のハードウェア・プロセッサによって、(a)1つ又は複数のソフトウェア欠陥報告、(b)1つ又は複数のソフトウェア欠陥カテゴリであって、1つ又は複数のソフトウェア欠陥カテゴリからの各ソフトウェア欠陥カテゴリが、クラス標示、及びクラス標示に関連するテキスト記述を含む、1つ又は複数のソフトウェア欠陥カテゴリ、並びに(c)文書コーパスを含む入力データを入手するステップ、1つ又は複数のハードウェア・プロセッサによって、入力データに基づき1つ又は複数のソフトウェア欠陥報告の入力テキストを1つ又は複数の区分に区分化するステップであって、1つ又は複数の区分のそれぞれは、テキスト内容を含む、区分化するステップ、文書コーパスから関連文書サブセットを特定するために、1つ又は複数の知識ベースから入手した文書コーパスに対する分析を実施するステップ、特定した関連文書サブセットに基づき、概念空間を生成するステップ、1つ又は複数のハードウェア・プロセッサによって、概念空間内に、1つ又は複数のソフトウェア欠陥報告の少なくとも1つに関係する1つ又は複数の区分のテキスト内容、及び1つ又は複数のソフトウェア欠陥カテゴリのテキスト記述を投影し、1つ又は複数のソフトウェア欠陥報告及び1つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対し概念空間表現を生成するステップ、1つ又は複数のハードウェア・プロセッサによって、1つ又は複数のソフトウェア欠陥報告のそれぞれ及び1つ又は複数のソフトウェア欠陥カテゴリのそれぞれの概念空間表示の間で1つ又は複数の類似度を計算し、分類すべき1つ又は複数のソフトウェア欠陥報告に特有の1つ又は複数の類似度値の分布を入手するステップ、1つ又は複数のハードウェア・プロセッサによって、1つ又は複数の類似度値の分布と動的に生成した閾値との比較を実施するステップ、並びに1つ又は複数のハードウェア・プロセッサによって、比較に基づき1つ又は複数のソフトウェア欠陥報告を1つ又は複数のソフトウェア欠陥カテゴリに分類するステップを含む。一実施形態では、1つ又は複数の類似度値が動的に生成した閾値よりも高い場合、1つ又は複数のソフトウェア欠陥は、1つ又は複数のソフトウェア欠陥カテゴリに分類される。一実施形態では、動的に生成した閾値は、1つ又は複数の類似度値の分布に基づく。
一実施形態では、分析を実施するステップは、関連文書サブセットを特定するために、1つ又は複数の知識ベースから入手した文書コーパスに対し1つ又は複数の文書特定技法を適用するステップを含むことができる。一実施形態では、1つ又は複数の文書特定技法は、1つ又は複数のグラフ理論分析、1つ又は複数のキーワード特定技法、1つ又は複数のテキストクラスタ化技法のうち少なくとも1つを含む。
別の態様では、ソフトウェア欠陥報告を1つ又は複数のソフトウェア欠陥カテゴリに分類するシステムを提供し、システムは、指示及び1つ又は複数のモジュールを保存するメモリ、1つ又は複数の通信インターフェース、並びに1つ又は複数の通信インターフェースを介してメモリに結合された1つ又は複数のハードウェア・プロセッサを備え、1つ又は複数のハードウェア・プロセッサは、指示によって1つ又は複数のモジュールを実行するように構成され、1つ又は複数のモジュールは、(a)1つ又は複数のソフトウェア欠陥報告、(b)1つ又は複数のソフトウェア欠陥カテゴリであって、1つ又は複数のソフトウェア欠陥カテゴリからの各ソフトウェア欠陥カテゴリが、クラス標示、及びクラス標示に関連するテキスト記述を含む、1つ又は複数のソフトウェア欠陥カテゴリ、並びに(c)文書コーパスを含む入力データを入手するように構成した入力読取りモジュール、入力データに基づき、1つ又は複数のソフトウェア欠陥報告の入力テキストを1つ又は複数の区分に区分化するように構成され、1つ又は複数の区分のそれぞれは、テキスト内容を含む、ソフトウェア欠陥報告テキスト区分化モジュール、文書コーパスから関連文書サブセットを特定するために、1つ又は複数の知識ベースから入手した文書コーパスに対し分析を実施し、特定した関連文書サブセットに基づき、概念空間を生成するように構成した概念空間生成モジュール、前記概念空間内に、1つ又は複数のソフトウェア欠陥報告の少なくとも1つに関係する1つ又は複数の区分のテキスト内容、及び1つ又は複数のソフトウェア欠陥カテゴリのテキスト記述を投影し、1つ又は複数のソフトウェア欠陥報告及び1つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対する概念空間表現を生成するように構成した投影モジュール、1つ又は複数のソフトウェア欠陥報告のそれぞれ及び1つ又は複数のソフトウェア欠陥カテゴリのそれぞれの概念空間表現の間の1つ又は複数の類似度を計算し、分類すべき1つ又は複数のソフトウェア欠陥報告に特有の1つ又は複数の類似度値の分布を入手するように構成した概念空間類似度計算モジュール、並びに1つ又は複数の類似度値の分布と、動的に生成した閾値との比較を実施し、比較に基づき、1つ又は複数のソフトウェア欠陥報告を1つ又は複数のソフトウェア欠陥カテゴリに分類するように構成したソフトウェア欠陥分類モジュールを備える。一実施形態では、1つ又は複数の類似度値が動的に生成した閾値よりも高い場合、1つ又は複数のソフトウェア欠陥は、1つ又は複数のソフトウェア欠陥カテゴリに分類される。一実施形態では、動的に生成した閾値は、1つ又は複数の類似度値の分布に基づく。
一実施形態では、概念空間生成モジュールは、関連文書サブセットを特定するために、1つ又は複数の知識ベース及び文書コーパスに対し1つ又は複数の文書特定技法を適用するステップによって、分析を実施する。一実施形態では、1つ又は複数の文書特定技法は、1つ又は複数のグラフ理論分析、1つ又は複数のキーワード特定技法、1つ又は複数のテキストクラスタ化技法のうち少なくとも1つを含む。
更に別の態様では、1つ又は複数の命令を含む1つ又は複数の非一時的機械可読情報記憶媒体を提供し、1つ又は複数のハードウェア・プロセッサによって1つ又は複数の命令を実行すると、1つ又は複数のハードウェア・プロセッサを介して、入力データを入手するステップであって、入力データは、(a)1つ又は複数のソフトウェア欠陥報告、(b)1つ又は複数のソフトウェア欠陥カテゴリであって、1つ又は複数のソフトウェア欠陥カテゴリからの各ソフトウェア欠陥カテゴリが、クラス標示、及びクラス標示に関連するテキスト記述を含む、1つ又は複数のソフトウェア欠陥カテゴリ、並びに(c)文書コーパスを含む、入手するステップ、入力データに基づき、1つ又は複数のソフトウェア欠陥報告の入力テキストを1つ又は複数の区分に区分化するステップであって、1つ又は複数の区分のそれぞれは、テキスト内容を含む、区分化するステップ、文書コーパスから関連文書サブセットを特定するために、1つ又は複数の知識ベースから入手した文書コーパスに対し分析を実施するステップ、特定した関連文書サブセットに基づき、概念空間を生成するステップ、概念空間内に、1つ又は複数のソフトウェア欠陥報告の少なくとも1つに関係する1つ又は複数の区分のテキスト内容、及び1つ又は複数のソフトウェア欠陥カテゴリのテキスト記述を投影し、1つ又は複数のソフトウェア欠陥報告及び1つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対する概念空間表現を生成するステップ、1つ又は複数のソフトウェア欠陥報告のそれぞれ及び1つ又は複数のソフトウェア欠陥カテゴリのそれぞれの概念空間表現の間の1つ又は複数の類似度を計算し、分類すべき1つ又は複数のソフトウェア欠陥報告に特有の1つ又は複数の類似度値の分布を入手するステップ、1つ又は複数の類似度値の分布と、動的に生成した閾値との比較を実施するステップ、並びに比較に基づき、1つ又は複数のソフトウェア欠陥報告を1つ又は複数のソフトウェア欠陥カテゴリに分類するステップを生じさせる。一実施形態では、1つ又は複数の類似度値が動的に生成した閾値よりも高い場合、1つ又は複数のソフトウェア欠陥は、1つ又は複数のソフトウェア欠陥カテゴリに分類される。一実施形態では、動的に生成した閾値は、1つ又は複数の類似度値の分布に基づく。
一実施形態では、分析を実施するステップは、関連文書サブセットを特定するために、1つ又は複数の知識ベースから入手した文書コーパスに対し1つ又は複数の文書特定技法を適用するステップを含むことができる。一実施形態では、1つ又は複数の文書特定技法は、1つ又は複数のグラフ理論分析、1つ又は複数のキーワード特定技法、1つ又は複数のテキストクラスタ化技法のうち少なくとも1つを含む。
上記の一般的な説明及び以下の詳細な説明は、例示的且つ説明的なものにすぎず、特許請求されている本発明の範囲の限定ではないことを理解されたい。
本開示に組み込まれ、本開示の一部を構成する添付の図面は、例示的実施形態を示し、説明と共に、開示する原理を説明する役割を果たす。
本開示の一実施形態による、ソフトウェア欠陥報告を分類するシステムの例示的ブロック図である。 本開示の一実施形態による、図1のシステムのメモリ内に保存した様々なモジュールのブロック図である。 本開示の一実施形態による、図1のシステムを使用して、ソフトウェア欠陥報告を分類する方法を示す例示的流れ図である。 本開示の一実施形態による、考慮中のソフトウェア欠陥報告の各ソフトウェア欠陥カテゴリに対し計算した類似度値の分布を示すグラフ図である。
添付の図面を参照しながら例示的実施形態を説明する。図面において、参照番号の最も左の桁(複数可)は、その参照番号が最初に出現する図を特定する。好都合である場合は常に、同じ又は同様の部品を指すために、図面全体を通じて同じ参照番号を使用する。開示する原理の例及び特徴を本明細書で説明するが、開示する実施形態の趣旨及び範囲から逸脱することなく、修正形態、適合形態及び他の実装形態が可能である。以下の詳細な説明は、例示的なものにすぎず、真の範囲及び趣旨は、以下の特許請求の範囲によって示すことを意図する。
本開示の一実施形態では、ソフトウェア欠陥報告を分類するシステム及び方法を開示する。上述のように、既存のシステム及び方法は、教師あり機械学習等の標準的なデータ駆動方式に依存してソフトウェア欠陥タイプを分類するものであり、この方式は、予測モデルの構築に著しい量の標示訓練データを必要とする。この標示データセットは、典型的には、ドメイン知識及び専門的知識を有する人間が作製する。これは明らかに、集中的な取組み及び費用を要求する活動である。更に、ソフトウェア欠陥テキストをカテゴリ化する既存の方式は、教師あり機械学習又は半教師あり機械学習方式の使用に基づく。この教師あり学習において、分類子モデルを訓練するには各クラスに著しい量の標示訓練データが必要である。標示訓練データは、多数の欠陥から構成され、これらの欠陥は、欠陥タイプ分類のために、適用可能な分類方式に従って人間が注釈を付け、検証している。この訓練データの生成には、著しい量の人力が必要となるため、工程が高額になり、更に、利用可能な専門的知識及び資源を非効率的な形で使用することになる。研究界は、この課題を認識しており、ソフトウェア欠陥分類のために能動学習及び半教師あり学習の使用を提案しており、これにより、必要な標示訓練データの量を低減し、次に、注釈を付けるのに要求される人力を最小化することを目指している。こうした方式は、基本的な教師つき学習方式を改善しているとはいえ、必要量の標示訓練データを生成してソフトウェア欠陥分類を実行するには、依然として相応の人力を必要とする。
本開示の実施形態は、ソフトウェア欠陥報告を分類するシステム及び方法を提供し、それにより、標示訓練データの使用を回避し、標示記述に固有の「セマンティック」情報を使用してソフトウェア欠陥の自動分類を達成する。本開示の実施形態は、欠陥分類方式(ODC等)において欠陥標示のテキスト記述からのキーワードを使用して、ソフトウェア欠陥報告を分類するシステム及び方法を提供し、特徴として知識ベース項目を使用して標示を表す。実施形態は、各知識ベース項目が人間解釈可能概念に対応し、ベクトル空間は、概念空間としての知識ベース内で全ての知識ベース項目に及ぶことを仮定する。本開示の実施形態は、システム及び方法が、1つ又は複数の技法、例えば概念空間表現を適用し、この概念空間内に欠陥標示及び個別欠陥記述を投影することを更に可能にする。したがって、伝統的な単語の袋(bag−of−words)特徴を使用する従来又は伝統的なシステム及び方法とは異なり、本開示の実施形態は、この概念の袋(bag−of−concepts)特徴表現を使用して分類標示及び個別欠陥を表すものである。更に、本開示のシステムは、知識ベース概念空間における欠陥標示と欠陥記述との間の類似度を計算し、次に、類似度値の分布、様々な欠陥標示にわたる類似度の相対強度、及び欠陥標示の概念空間表現と欠陥報告記述の概念空間表現との間の共通概念の数に応じて、1つ又は複数の欠陥標示を割り当てる。この方式は、標示訓練データへの依存問題を回避するのに役立つ。
次に、同様の参照文字が図面全体を通じて一貫して対応する特徴を示す図面、より詳細には図1から図4を参照する。好ましい実施形態を示しており、これらの実施形態を、以下の例示的システム及び/又は方法の背景において説明する。
図1は、本開示の一実施形態による、ソフトウェア欠陥報告を分類するシステム100の例示的ブロック図を示す。システム100は、以下、分類システムと呼ぶこともある。一実施形態では、システム100は、1つ若しくは複数のプロセッサ104、通信インターフェース・デバイス(複数可)又は入出力(I/O)インターフェース(複数可)106、及び1つ若しくは複数のプロセッサ104に動作可能に結合された1つ若しくは複数のデータ保存デバイス又はメモリ102を含む。メモリ102は、1つ又は複数のモジュール108及びデータベース110を備える。ハードウェア・プロセッサである1つ又は複数のプロセッサ104は、1つ又は複数のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央処理ユニット、状態機械、論理回路、及び/又は動作指示に基づき信号を操作する任意のデバイスとして実装することができる。プロセッサ(複数可)は、他の機能の中でも特に、メモリ内に保存したコンピュータ可読命令を取り出し、実行するように構成されている。一実施形態では、システム100は、ラップトップ・コンピュータ、ノートブック、ハンドヘルド・デバイス、ワークステーション、汎用コンピュータ、サーバ、ネットワーク・クラウド等、様々なコンピューティング・システム内に実装することができる。
I/Oインターフェース・デバイス(複数可)106は、様々なソフトウェア・インターフェース及びハードウェア・インターフェース、例えば、ウェブ・インターフェース、グラフィカル・ユーザ・インターフェース等を含むことができ、多種多様なネットワークN/W及びプロトコル・タイプ内で多数の通信を促進することができ、これらには、例えばLAN、ケーブル等の有線ネットワーク、及びWLAN、セルラー又は衛星等のワイヤレス・ネットワークを含む。一実施形態では、I/Oインターフェース・デバイス(複数可)は、いくつかのデバイスを互いに接続するか又は別のサーバに接続する1つ又は複数のポートを含むことができる。
メモリ102は、当技術分野で公知の任意のコンピュータ可読媒体を含むことができ、これらには、例えば、スタティック・ランダム・アクセス・メモリ(SRAM)及びダイナミック・ランダム・アクセス・メモリ(DRAM)等の揮発性メモリ、並びに/又は読取り専用メモリ(ROM)、消去可能プログラマブルROM、フラッシュ・メモリ、ハードディスク、光ディスク及び磁気テープ等の不揮発性メモリを含む。
図1に関する図2は、本開示の一実施形態による、図1のシステム100のメモリ102内に保存した様々なモジュール108のブロック図である。本開示の一実施形態では、メモリ102は、入力読取りモジュール202、ソフトウェア欠陥報告テキスト区分化モジュール204、概念空間生成モジュール206、投影モジュール208、概念空間類似度計算モジュール210、ソフトウェア欠陥分類モジュール212及びデータベース110を備える。本開示の一実施形態では、入力読取りモジュール202、ソフトウェア欠陥報告テキスト区分化モジュール204、概念空間生成モジュール206、投影モジュール208、概念空間類似度計算モジュール210、ソフトウェア欠陥分類モジュール212は、ソフトウェア・プログラムの論理的自己完結部分、自己完結型ハードウェア構成要素、及び/又はソフトウェア・プログラムの論理的自己完結部分をハードウェア構成要素のそれぞれに組み込みんだ自己完結型ハードウェア構成要素の少なくとも1つとして実装され、ソフトウェア・プログラムを実行すると、本明細書に記載の上記の方法を実施する。
図1〜図2に関する図3は、本開示の一実施形態による、図1のシステム100を使用してソフトウェア欠陥報告を分類する方法を示す例示的流れ図である。一実施形態では、システム100は、1つ又は複数のハードウェア・プロセッサ104に動作可能に結合された1つ又は複数のデータ保存デバイス又はメモリ102を備え、1つ又は複数のプロセッサ104によって方法ステップを実行する指示を保存するように構成されている。次に、図1〜図2に示すシステム100及びモジュール202〜212の構成要素並びに流れ図を参照しながら本開示の方法ステップを説明する。本開示の一実施形態では、ステップ302で、1つ又は複数のハードウェア・プロセッサ104によって入力読取りモジュール202を実行すると、入力読取りモジュール202は、入力データを入手し、入力データは、(a)分類すべき1つ又は複数のソフトウェア欠陥報告、(b)1つ又は複数のソフトウェア欠陥カテゴリであって、1つ又は複数のソフトウェア欠陥カテゴリからの各ソフトウェア欠陥カテゴリが、クラス標示、及びクラス標示に関連するテキスト記述を含む、1つ又は複数のソフトウェア欠陥カテゴリ、並びに(c)文書コーパスを含む。一実施形態では、文書コーパスは、1つ又は複数の知識ベース(例えばウィキペディア(登録商標)等)から入手することができる。本開示の一実施形態では、1つ又は複数のクラス標示は、1つ又は複数のソフトウェア欠陥カテゴリのテキスト記述と共に、各カテゴリを簡単に説明するキーワード(複数可)又は句(複数可)を含む。一実施形態では、1つ又は複数のソフトウェア欠陥カテゴリは、直交欠陥分類(ODC)方式、IEEE1044欠陥分類方式等の既存の欠陥分類方式、又は特注の欠陥分類方式から入手することができる。本開示の一実施形態では、文書コーパスは、人間の認識に基づく概念に対応し得る文書を含む。一実施形態では、分類すべき1つ又は複数のソフトウェア欠陥報告、1つ又は複数のクラス標示は、1つ又は複数のソフトウェア欠陥カテゴリのテキスト記述と共に、データベース110内に保存することができる。知識ベースから入手した文書コーパスも、データベース110内に保存する(含める)ことができる。
本開示の一実施形態では、ステップ304で、1つ又は複数のハードウェア・プロセッサ104によってソフトウェア欠陥報告テキスト区分化モジュール204を実行すると、ソフトウェア欠陥報告テキスト区分化モジュール204は、1つ又は複数のソフトウェア欠陥報告の入力テキストを、ステップ302で受信した入力データに基づき1つ又は複数の区分に区分化し、1つ又は複数の区分のそれぞれは、対応するテキスト内容を含む。一実施形態では、ソフトウェア欠陥報告は、ソフトウェア欠陥の発生についての詳細を提供するテキスト記述を含む。多くのソフトウェア欠陥報告では、テキスト記述は、「ソフトウェアのバージョン」、「ソフトウェア検査者の名前」、「オペレーティング・システムのバージョン」、「ソフトウェア欠陥の概要」、「欠陥を再現するステップ」、「予期される結果」、「実際の結果」、「ソフトウェア欠陥の詳細な説明」等の詳細、及びソフトウェア欠陥についての更なる詳細を含む。ソフトウェア欠陥報告がこの形式で利用可能な詳細を伴って構成されている場合、ソフトウェア欠陥報告テキスト区分化モジュール204は、ソフトウェア欠陥の入力テキストを、上記で概説した異なるフィールド(例えば、「ソフトウェアのバージョン」、「ソフトウェア検査者の名前」、「オペレーティング・システムのバージョン」、「ソフトウェア欠陥の概要」、「再現ステップ」、「予期される結果」、「実際の結果」、「ソフトウェア欠陥の詳細な説明」等)に区分化する。本開示のソフトウェア欠陥報告分類の実施形態をより良好に理解するために、システム100は、分類という目的においてより重要であるとみなしたこれらの区分の一部のみ、例えば、「ソフトウェア欠陥の概要」、「再現ステップ」、「予期される結果」、「実際の結果」及び「ソフトウェア欠陥の詳細な説明」、からテキスト内容を入手することができる。そのような区分に明確な境界がない場合、1つ又は複数のソフトウェア欠陥報告のテキスト内容全体を単一の「ソフトウェア欠陥の詳細な説明」区分としてシステム100によって考慮することができる。
本開示の一実施形態では、ステップ306で、1つ又は複数のハードウェア・プロセッサ104によって概念空間生成モジュール206を実行すると、概念空間生成モジュール206は、文書コーパスから関連文書サブセットを特定するために、1つ又は複数の知識ベースから入手した文書コーパスに対する分析を実施する。一実施形態では、分析を実施するステップは、関連文書サブセットを特定するために、1つ又は複数の知識ベースから入手した文書コーパスに対し1つ又は複数の文書特定技法を適用することを含む。本開示のソフトウェア欠陥報告分類に関する実施形態をより良好に理解するために、システム100又は概念空間生成モジュール206は、少なくとも1つの文書サブセットが、ソフトウェア開発ライフ・サイクル、ソフトウェア開発及び検査技術の少なくとも1つからの概念、並びにソフトウェア・アプリケーションを開発する分野に関連する概念及び情報に関連することを保証する。本開示の一実施形態では、システムは、ウィキペディア(登録商標)等の汎用百科事典知識ベースを利用することができる。というのは、こうした汎用百科事典知識ベースは、ソフトウェア開発ライフ・サイクル、ソフトウェア技術及び他の多くの分野についての情報項目を収容しているためである。汎用知識ベースは、ソフトウェア欠陥分類の目的とは無関係である可能性がある文書部分を大量に収容する傾向もあることに留意されたい。したがって、概念空間生成モジュール206は、ソフトウェア欠陥分類の目的で関連する可能性がより高い文書コーパスから文書サブセット(例えば、少なくとも1つの文書サブセット又は関連文書サブセット)を特定、選択し、残りの文書をこのコーパスから除外する。少なくとも1つの文書サブセットを特定、選択するために、概念空間生成モジュール206のシステム100は、1つ又は複数の知識ベース及び文書コーパスに対し1つ又は複数の文書特定技法を適用し、関連文書サブセットを特定する。例えば、1つ又は複数の文書特定技法は、1つ又は複数のグラフ理論分析、1つ又は複数のキーワード特定技法、1つ又は複数のテキストクラスタ化技法、それらの組合せの少なくとも1つを含み、これらは、(入力として供給された)知識ベース又は文書コーパスに対し適用される。1つ又は複数のグラフ理論分析、1つ又は複数のキーワード特定技法、1つ又は複数のテキストクラスタ化技法等は、メモリ102内に保存し、関連文書サブセットの特定を実行するために照会することができる。これらの特定及び/又は選択された文書サブセットは事前に処理され、1つ又は複数の知識ベースから入手した文書コーパスの少なくとも1つからの少なくとも1つの関連文書サブセットに対しnグラム(長さ「n」のトークン・シーケンス)をマッピングすることによって、概念空間が生成される。本開示の一実施形態では、nグラムの「n」は、1からユーザ指定の最大値(例えば最大値3)までの値を取ることができるユーザ指定のパラメータとすることができる。
本開示の一実施形態では、ステップ308で、1つ又は複数のハードウェア・プロセッサ104によって概念空間生成モジュール206を実行すると、概念空間生成モジュール206は、ステップ306で特定した関連文書サブセットに基づき、概念空間を生成する。
本開示の一実施形態では、ステップ310で、1つ又は複数のハードウェア・プロセッサ104によって投影モジュール208を実行すると、投影モジュール208は、概念空間(又は生成した概念空間)内に、1つ又は複数のソフトウェア欠陥報告の少なくとも1つに関係する1つ又は複数の区分のテキスト内容、及び1つ又は複数のソフトウェア欠陥カテゴリのテキスト記述を投影し、概念空間表現を生成する。言い換えれば、1つ又は複数のソフトウェア欠陥報告の少なくとも1つに特有の1つ又は複数の区分に関係するテキスト内容、及び1つ又は複数のソフトウェア欠陥カテゴリのテキスト記述は、1つ又は複数のソフトウェア欠陥報告及び1つ又は複数のソフトウェア欠陥カテゴリのそれぞれに関して(ステップ308で生成した)概念空間内に投影される。例えば、投影モジュール208は、ソフトウェア欠陥報告テキスト区分化モジュール204から入手した「ソフトウェア欠陥の概要」、「再現ステップ」、「予期される結果」、「実際の結果」及び「ソフトウェア欠陥の詳細な説明」等の1つ又は複数のソフトウェア欠陥報告に関係する1つ又は複数の区分のテキスト・データ(又はテキスト内容)、並びに1つ又は複数のソフトウェア欠陥カテゴリのテキスト記述を、概念空間生成モジュール206が生成した概念空間内に投影し、ソフトウェア欠陥報告(複数可)の概念空間表現及びソフトウェア欠陥カテゴリを生成する。
本開示の一実施形態では、ステップ312で、1つ又は複数のハードウェア・プロセッサ104によって概念空間類似度計算モジュール210を実行すると、概念空間類似度計算モジュール210は、1つ又は複数のソフトウェア欠陥報告のそれぞれ及び1つ又は複数のソフトウェア欠陥カテゴリのそれぞれの概念空間表現の間の1つ又は複数の類似度を計算し、分類すべき1つ又は複数のソフトウェア欠陥報告に特有の1つ又は複数の類似度値の分布を入手する。
本開示の一実施形態では、ステップ314で、1つ又は複数のハードウェア・プロセッサ104によって分類モジュール210を実行すると、分類モジュール210は、1つ又は複数の類似度値の分布と閾値との比較を実施し、ステップ316で、比較に基づき1つ又は複数のソフトウェア欠陥報告を1つ又は複数のソフトウェア欠陥カテゴリに分類する。本開示の一実施形態では、閾値は、事前に定義するか又は動的に生成する。動的に生成する場合の閾値は、1つ又は複数の類似度値の分布に基づく(又は基づくことができる)。更に、一例示的実施形態では、閾値は、1つ又は複数のソフトウェア欠陥報告及び1つ又は複数のソフトウェア欠陥カテゴリのそれぞれの概念空間表現において、共通概念の最小数についての制約条件を前提とすることができる。本開示の一実施形態では、分類モジュール212は、入力として計算した1つ又は複数の類似度値の分布を取り、次に、1つ又は複数類似度値のこの分布を選別して類似度閾値を特定する。本開示の一実施形態では、1つ又は複数の類似度値がこの閾値よりも高い(又はこの閾値と等しい)場合、1つ又は複数のソフトウェア欠陥報告は、1つ又は複数のソフトウェア欠陥カテゴリ(例えば、ソフトウェア欠陥カテゴリの第1のセット)に分類される。言い換えれば、1つ又は複数の類似度値がこの閾値よりも高い(又はこの閾値と等しい)場合、ソフトウェア欠陥報告からの1つ又は複数のソフトウェア欠陥は、ソフトウェア欠陥カテゴリの第1のセットに分類される。同様に、1つ又は複数の類似度値が閾値よりも小さい場合、クラス標示(又は1つ又は複数のソフトウェア欠陥カテゴリ)は、1つ又は複数のソフトウェア欠陥報告に割り当てられない。言い換えれば、対応する類似度値が閾値未満であるこれらのソフトウェア欠陥カテゴリは、ソフトウェア欠陥報告(複数可)に割り当てられない。一実施形態では、表示「クラス標示」、「欠陥タイプ」、「欠陥タイプ標示」及び「欠陥標示」は、以下、互換的に使用することができる。
概念空間は、知識ベース(例えばウィキペディア(登録商標))内の項目(又は文書コーパス)によって補われる。概念空間表現内の概念cは、知識ベース項目(例えばウィキペディア(登録商標)の項目)に対応し、当該項目内でTF−IDFのような単語重み付けベクトルを使用して表される。逆索引を作成すると、1つ又は複数の単語を、その単語が出現する概念リストにマッピングするのに役立つ。逆索引における単語と概念との結合は、TF−IDFのような単語重み付け方式(例えばBM25重み付け方式)によって重み付けされる。この逆索引において、比較的低い重みの入力は、ノイズとして除外される。ソフトウェア欠陥報告Dを仮定すると、最初に、TF−IDFのような単語重み付け方式(例えばBM25重み付け方式)によって重み付けした単語の袋(例えば全ての単語が一次元である)方式/空間を使用する単語ベクトルとして表される。逆索引を使用すると、各単語に対する概念ベクトルw∈Dは、併合され、所与のソフトウェア欠陥報告Dを表す概念の重み付けベクトルを形成する。
以下は、一例としての本開示の実施形態の例示的実装形態である。
以下は、本開示の実施形態によって実施する技法(複数可)又は方法(複数可)を説明するための例示的表記法である:
D={w}ソフトウェア欠陥報告の入力テキスト・データ内の単語セット。
L={w}欠陥標示(又はソフトウェア欠陥カテゴリ)の入力テキスト・データ内の単語セット。
N=概念空間表現内で使用される知識ベース概念の数(結合強度の減少に基づく順序)。
が、欠陥報告Dの長さNの概念空間表現ベクトルを示すと仮定する、即ち、
である。
の入力pは、Dの概念空間表現における対応する概念cの重みを示す。入力pは以下のように計算される:
式中、vは、DのTF−IDFのような重み付けベクトル表現における単語wのBM25の重みであり、BM25とは、TF−IDF単語重み付け方式の高度な変種である(参考文献:Stephen Robertson & Hugo Zaragoza(2009年)。「The Probabilistic Relevance Framework:BM25 and Beyond」。3(4)。Found.Trends Inf.Retr.:333〜389。DOI:10.1561/1500000019)、及び
ijは、逆索引内で単語wと知識ベース概念cとの結合強度を定量化したものである。
同様に、
が、欠陥タイプ標示Lの長さNの概念空間表現ベクトルを示すと仮定する、即ち、
である。
の入力qは、Lの概念空間表現内の対応する概念cの重みを示す。入力qは、以下のように計算される:
式中、vは、LのTF−IDFのような重み付けベクトル表現における単語wのBM25の重みであり、
ijは、逆索引内で単語wと知識ベース概念cとの結合強度を定量化したものである。
ソフトウェア欠陥報告Dは、知識ベース(例えばウィキペディア(登録商標))の項目のベクトル
を使用して表される。各欠陥タイプ標示(又はソフトウェア欠陥カテゴリ)も、対応する概念空間表現ベクトル
を使用して表される。
(同様に、
)の入力は、対応する概念の、入力ソフトウェア欠陥報告D(同様にL)に対する関連性を反映する。欠陥タイプ標示L及びソフトウェア欠陥報告Dのセマンティック関連度を計算するために、これらの概念空間表現ベクトルは、以下で例として提供するコサイン基準を使用して比較される:
最後の分類のために、ソフトウェア欠陥報告は、類似度値の分布、様々な欠陥標示にわたる類似度の相対強度、及び欠陥標示の概念空間表現と欠陥報告記述の概念空間表現との間の共通概念の数に応じて、1つ又は複数の欠陥標示を割り当てる。
本開示の実施形態、及び本開示の実施形態に関連するシステム及び方法は、以下に例として示す、ソフトウェア欠陥報告の1つ又は複数のカテゴリへの例示的分類を提供する。
上述のように、ステップ302で、システム100は、ソフトウェア欠陥報告(複数可)、それぞれがクラス標示、及びクラス標示に関連するテキスト記述を含む1つ又は複数のソフトウェア欠陥カテゴリ、以下に示す1つ又は複数の知識ベースから入手した文書コーパスを含む入力を受信する。本開示の実施形態を簡潔にし、より良好に理解するために、3つの欠陥タイプから構成されるサンプル欠陥分類方式を、各欠陥タイプのテキスト記述と共に以下に提供する。
制御/データ・フロー欠陥タイプ:この欠陥タイプは、アルゴリズム;変数割当て又は初期化によるエラー又は例外;条件文及びfor/whileループの確認;マルチスレッド・システム又はマルチプロセス・システム等におけるタイミング、シリアル化又は同期化に関連するソフトウェア欠陥に適用可能である。
構造欠陥タイプ:このタイプは、ソフトウェア・モジュール又は構成要素間のインターフェース、アプリケーション・プログラム・インターフェース(API)、クラス、オブジェクトを含むオブジェクト指向設計;プロシージャ、データベース・スキーマ、エンティティ関係図(複数可)等の間の関係の欠陥に適用可能である。
非コード欠陥タイプ:このタイプは、マニュアル、ユーザ・ガイド、javadoc等のソフトウェア文書;ソフトウェア構築プロセス;ソフトウェア構成及びインストール;ソフトウェア構成及び変更管理プロセス;ソフトウェア・グラフィカル・ユーザ・インターフェース又はナビゲーション等の欠陥に適用可能である。
上記の欠陥タイプでは、制御/データ・フロー欠陥タイプ、構造欠陥タイプ及び非コード欠陥タイプがクラス標示であり、「この欠陥タイプは、アルゴリズム;変数割当て又は初期化によるエラー又は例外;条件文及びfor/whileループの確認;マルチスレッド・システム又はマルチプロセス・システム等におけるタイミング、シリアル化又は同期化に関連するソフトウェア欠陥に適用可能である」を含むテキストが、ソフトウェア欠陥カテゴリのサンプルのテキスト記述である。同様に、クラス標示、構造欠陥タイプ及び非コード欠陥タイプの残りは、上記で示したテキスト記述を含む。
更に、以下のサンプルのソフトウェア欠陥報告を考慮する:
バグ名称:FP木ノードが積和演算されている(木の中で兄弟になっている)
バグ詳細:2011年11月14日作成
バージョン:0.6
優先度:大
報告者:Abc Xyz
OS:Linux(登録商標)
FPGrowth#traverseAndBuildConditionalFPTreeDataにおいて、条件付きFP木を作成する際にノードが同じノードの子として積和演算されることがあり、条件付き木の中で兄弟になっている。
一例示的実施形態では、ステップ304で述べたように、システム100は、ソフトウェア欠陥報告テキスト区分化モジュール204を介して、上記サンプル欠陥報告の区分化を実施し、正規表現を使用して異なる区分にし、各区分の部分を抽出する。以下で示すのは、システム100によって区分化工程から入手した1つ又は複数の区分の一例であり、例示的表1によって示す:
区分化ステップが完了すると、システム100は、欠陥分類の目的で、欠陥区分のテキスト内容:「欠陥名称」、「再現ステップ」、「予想される結果」、「実際の結果」及び「欠陥の詳細な説明」を考慮する。他の欠陥報告区分の内容は、欠陥分類の目的では無視することができる。
欠陥区分のテキスト内容、「欠陥名称」、「再現ステップ」、「予想される結果」、「実際の結果」及び「欠陥の詳細な説明」は、「分類用_欠陥_テキスト」と示す単一のテキスト文字列に組み合わせられ、次に、このテキスト文字列を概念空間内に投影する。進行中の例では、「分類用_欠陥_テキスト」は、以下の区分出力として得られる。
「FP木ノードが積和演算されている(木の中で兄弟になっている)。FPGrowth#traverseAndBuildConditionalFPTreeDataにおいて、条件付きFP木を作成する際にノードが同じノードの子として積和演算されることがあり、条件付き木の中で兄弟になっている。」
次のステップとして、システム100は、1つ又は複数の知識ベースから入手した文書コーパスに対し(1つの)分析を実施し、文書コーパスから関連文書サブセットを特定する。知識ベースを分析し、関連文書サブセットを特定するステップは、ソフトウェア欠陥報告分類タスクのため考慮中のソフトウェア欠陥報告の全てについて繰り返さなくてもよいことは、当業者であれば理解されよう。更に、一例示的実施形態では、このことは、典型的には、事前処理動作であってもよく、所与のセットのソフトウェア欠陥報告を分類する実際のタスクの前に実行することができる。ここで、ステップ306を具体的に説明する。
概念空間の生成に適切な関連文書セットの特定:
システム100は、例えば、知識ベースに対応する文書コーパスとして英語版ウィキペディア(登録商標)を利用する。ウィキペディア(登録商標)は、約350万の文書を有する。ウィキペディア(登録商標)は、汎用コーパスであるため、ソフトウェア欠陥分類タスクのためにウィキペディア(登録商標)全体を使用して概念空間生成を生成するステップは、多くの無関係な文書を含む傾向がある。したがって、実施形態は、本開示で提案する、ウィキペディア(登録商標)文書サブセットを特定する方法(複数可)を採用し、このウィキペディア(登録商標)文書サブセットとは、(本開示の目的である)ソフトウェア欠陥分類タスクで関連する可能性がより高い文書サブセットである。様々なウィキペディア(登録商標)文書を接続しているハイパー・リンクを使用して、ウィキペディア(登録商標)文書のグラフ(図示せず)を生成する。ソフトウェア欠陥報告分類タスクのための種文書として、ウィキペディア(登録商標)文書(小)セットを使用する。これらの種文書は、ソフトウェア欠陥報告分類タスクのために構成可能なパラメータである。ユーザ(複数可)は、提案するソフトウェア欠陥分類システム及び/又は方法を、既存の種文書セットには含まれていない新たなアプリケーション、新たな技術又は新たな分野に適合させたい場合にのみ、種文書を更新することができる。システム100は、一例示的実施形態では、これらの「種文書」から「x」ホップ(例えば本実験シナリオでは3ホップ)以内で到達可能であるウィキペディア(登録商標)文書のサブセットを特定する。このウィキペディア(登録商標)文書サブセットを特定するために、システム100は、ハイパーリンクを使用して構成したウィキペディア(登録商標)グラフに対し幅優先探索(BFS)を実行する。幅優先探索とは、グラフ理論分析の一種であり、一例示的実施形態では3ホップ以内で到達可能な文書の関連セットを特定するために、システム100によって実施、実行される。一実施形態では、第1のホップは、種ノード(又は種文書)の1つ又は複数の近隣(例えば第1の近隣セット)と呼ばれ、第2のホップは、第1の近隣セットの1つ又は複数の近隣(例えば第2の近隣セット)と呼ばれ、第3のホップは、第2の近隣セットの1つ又は複数の近隣(例えば第3の近隣セット)と呼ばれる。
現在の例では、簡潔にするために、「ソフトウェア・バグ」を唯一の種文書として使用し、この種文書から3ホップ以内で到達可能なウィキペディア(登録商標)文書のみを関連文書セット(又は文書サブセットと呼ぶ)として特定し、現在の例に含める。この文書サブセットを使用して、ソフトウェア欠陥の概念ベースの分類に必要な概念空間を生成する。概念空間は、工程内で多量の文書セットが特定されるため、図示しない。しかし、関連文書セットを特定し、ソフトウェア欠陥報告を分類するために、(上記で実施した)3ホップを実施することは、本開示の範囲の限定として解釈すべきではないことは当業者であれば理解されよう。
ステップ308で述べたように関連文書セットを特定した後、特定された関連文書セットに基づき、概念空間を生成する(多量の文書コーパスを含む概念空間生成に関する制約のために図示しない)。
更に、ソフトウェア欠陥報告(例えば上記の作業例で示したバグ・レポート)及び1つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対する概念空間表現は、図3のステップ310に従って入手/生成される。ソフトウェア欠陥報告及び1つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対する概念空間表現は、例として提供する。
ステップ304(例えば区分化)で出力として示される、検討中のソフトウェア欠陥報告に関する例示的概念空間表現(例えば「分類用_欠陥_テキスト」)を以下の表2に示す。
上記からわかるように、簡潔にするために、25の概念のみを示す。しかし、考慮中のソフトウェア欠陥報告のために図示した25の概念は、本発明の範囲の限定として解釈されるものではないことは当業者であれば理解されよう。
同様に、ステップ302における入力(例えばクラス標示及びテキスト記述)として示す、考慮中の1つ又は複数のソフトウェア欠陥カテゴリ(又は対応するクラス標示)の例示的概念空間表現(例えば「制御/データ・フロー」)を以下の表3に示す。
上記からわかるように、簡潔にするために、25の概念のみを示す。しかし、考慮中のソフトウェア欠陥カテゴリ(又は複数のソフトウェア欠陥カテゴリ)のために図示した25の概念は、本発明の範囲の限定として解釈されるものではないことは当業者であれば理解されよう。
ステップ312で、ソフトウェア欠陥報告及びソフトウェア欠陥カテゴリのそれぞれに対し概念空間表現を生成した後、システム100は、欠陥報告と欠陥標示(及び/又はソフトウェア欠陥カテゴリ)のそれぞれとの間の共通概念の数及び類似度を計算する。欠陥標示(以下、1つ又は複数のソフトウェア欠陥カテゴリのクラス標示とも呼ぶ)を割り当てるために、システム100は、概念空間表現で使用される概念数の少なくとも10%が、ソフトウェア欠陥報告と欠陥標示(又はソフトウェア欠陥カテゴリ)との間で共通であるはずであるという制約条件を前提として、(図4に示すような)様々な欠陥タイプにわたる類似度値の分布、類似度の相対強度を考慮に入れる。システム100は、1つ又は複数のソフトウェア欠陥報告の概念空間表現と共通している概念の数の10%未満を有する欠陥標示(又はソフトウェア欠陥カテゴリ)に対応する類似度値の平均及び標準偏差を計算する。本開示の一実施形態では、類似度値の標準偏差は、当技術分野で公知の標準偏差式を使用して計算される。次に、システム100は、10%未満の共通概念を有する欠陥標示(又はソフトウェア欠陥カテゴリ)に対応する類似度値セットの上記で計算した平均と、上記で計算した標準偏差の「n」倍(例えば本例では「n」は3である)との和として閾値を計算(生成)する。システム100は、概念空間表現が少なくとも10%のソフトウェア欠陥報告の概念空間表現との共通概念を有し、類似度値が、計算した(生成した)閾値よりも高い(閾値を超える)(又は閾値と等しい)1つ又は複数の欠陥標示(又はソフトウェア欠陥カテゴリ)を割り当てる。
欠陥標示(又はソフトウェア欠陥カテゴリ)であって、その欠陥標示(又はソフトウェア欠陥カテゴリ)の概念空間表現がソフトウェア欠陥報告の概念空間表現との共通概念を10%未満有する、欠陥標示(又はソフトウェア欠陥カテゴリ)がただ1つである場合、システム100は、閾値をただ1つの欠陥標示に対応する類似度値の「p」倍(例えば本例では「p」は例えば2である)として計算する。
欠陥標示(又はソフトウェア欠陥カテゴリ)であって、その欠陥標示(又はソフトウェア欠陥カテゴリ)の概念空間表現が、ソフトウェア欠陥報告の概念空間表現と共通する概念を10%未満有する欠陥標示(又はソフトウェア欠陥カテゴリ)がない場合(即ち、全ての欠陥標示(又はソフトウェア欠陥カテゴリ)が、ソフトウェア欠陥報告の概念空間表現と共通する概念を少なくとも10%有する場合)、システム100は、全ての欠陥標示に対応する類似度値の標準偏差及び平均に基づき、閾値を計算する。例えば、システム100は、全ての欠陥標示に対応する類似度値の標準偏差の「m」倍(例えば本例では「m」は例えば3である)を、全ての欠陥表示に対応する類似度知の平均から減算することによって、閾値を計算する。
以下は、ソフトウェア欠陥報告(例えば考慮中のソフトウェア欠陥報告−「分類用_欠陥_テキスト」)及びソフトウェア欠陥カテゴリ(例えば制御/データ・フロー、構造及び非コード)のそれぞれに関係する類似度値の計算及びその分布を示す例示的な表(例えば表4)である。進行中の例に関し、類似度値の分布、相対強度及び共通概念の数を以下の表4に示す。
明らかであるように、各ソフトウェア欠陥カテゴリに対する考慮中の欠陥報告(例えば分類用_欠陥_テキスト)に対し、第2列は、類似度値を示す。これらの類似度値は、上記式(1)を使用して計算する。一例示的実装形態では、類似度値0.1786を、ソフトウェア欠陥カテゴリ・タイプ「制御/データ・フロー」のために計算した。同様に、類似度値0.0157を、ソフトウェア欠陥カテゴリ・タイプ「構造」のために計算し、類似度値0.0174を、ソフトウェア欠陥カテゴリ・タイプ「非コード」のために計算した。第3列は、様々な欠陥カテゴリ(又はタイプ)の中での類似度の相対強度を表し、第2列からの値のうち、最小の値は、各ソフトウェア欠陥カテゴリの相対強度を決定するため、異なっている。例示的シナリオでは、0.0157は、特定された最小類似度値であり、類似度値0.1786を分割し、ソフトウェア欠陥カテゴリ・タイプ「制御/データ・フロー」の類似度の相対強度を計算するために使用され、この場合、11.376となる。同様に、0.0157は、特定された最小類似度値であり、類似度値0.0157を分割し、ソフトウェア欠陥カテゴリ・タイプ「構造」の類似度の相対強度を計算するために使用され、この場合、上記表4からわかるように、1となる。同様に、0.0157は、特定された最小類似度値であり、類似度値0.0174を分割し、ソフトウェア欠陥カテゴリ・タイプ「非コード」の類似度の相対強度を計算するために使用され、この場合、1.108となる。実施した実験結果では、現実には、考慮中のソフトウェア欠陥報告及び1つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対し考慮した概念は、500であった。第4列は、考慮中のソフトウェア欠陥報告(例えば分類用_欠陥_テキスト)と、カテゴリ(例えば制御/データ・フロー、構造及び非コード)との間の共通概念の数を表す。上記表4からわかるように、考慮中のソフトウェア欠陥報告に関係する概念−分類用_欠陥_テキストと、制御/データ・フロー欠陥カテゴリとの間に79の共通概念が発見された。同様に、考慮中のソフトウェア欠陥報告−分類用_欠陥_テキストと、構造欠陥カテゴリとの間に10の共通概念があった。同様に、考慮中のソフトウェア欠陥報告−分類用_欠陥_テキストと、非コード欠陥カテゴリとの間に10の共通概念があった。上記表4に基づき、図1から図3に関する図4は、本開示の一実施形態による、考慮中のソフトウェア欠陥報告に関する各ソフトウェア欠陥カテゴリに対し計算した類似度値の分布を示すグラフ図を示す。より詳細には、グラフ図は、システム100によって生成され、左側のY軸は、式(1)を使用して計算した「類似度値」を示し、右側のY軸は、様々な欠陥タイプにわたる相対強度を示す(図4では点線で示す)。
実験の実施により、システム100については、カテゴリのそれぞれに対し類似度値を計算するために、少なくとも50の概念が、考慮中のソフトウェア欠陥報告(例えば分類用_欠陥_テキスト)の概念空間表現と、カテゴリ(例えば制御/データ・フロー、構造及び非コード)との間で共通である必要があることに気付いた。500のうち50の共通概念とは、少なくとも10%であり、このシナリオでは制約条件である。システム100は、平均(例えば、平均は、ソフトウェア欠陥報告(複数可)表現の共通概念の10%未満を有するソフトウェア欠陥カテゴリの類似度値で計算される)、及び標準偏差の「n」倍(この場合、「n」は3である)に基づき閾値を計算する。したがって、閾値は、以下の例示的式により計算される:
平均=0.01655=((0.0157+0.0174)/2)
標準偏差(又はstdev)=0.001202082
閾値=平均+3×stdev=0.01655+3×0.001202082
=0.020156245
次に、いずれかの第2列からの値のそれぞれを、この動的に生成した類似度閾値と比較し、この場合、類似度閾値は0.020156245である。
例示的実装形態では、ソフトウェア欠陥カテゴリ「制御/データ・フロー」に関係する類似度値(例えば0.1786)を0.020156245と比較した。同様に、ソフトウェア欠陥カテゴリ「構造」に関係する類似度値(例えば0.0157)を0.020156245と比較した。同様に、ソフトウェア欠陥カテゴリ「非コード」に関係する類似度値(例えば0.0174)を0.020156245と比較した。明らかであるとおり、ソフトウェア欠陥カテゴリ「制御/データ・フロー」に関係する類似度値(例えば0.1786)は、動的に生成した類似度閾値(例えば0.020156245)よりも高い(又はこれを超える)。したがって、考慮中のソフトウェア欠陥報告は、ステップ316で示すように、「制御/データ・フロー」ソフトウェア欠陥カテゴリ下(又は「制御/データ・フロー」ソフトウェア欠陥カテゴリ内)に分類されている。
本明細書は、当業者が実施形態を製作し、使用することが可能になるように主題を説明するものである。主題の実施形態の範囲は、特許請求の範囲によって定義され、当業者が想到する他の修正形態を含むことができる。そのような他の修正形態は、特許請求の範囲の文字通りの文言とは異ならない同様の要素を有する場合、又は特許請求の範囲の文字通りの文言と比べて実質的でない差異を有する等価要素を含む場合、特許請求の範囲内にあることを意図する。
しかし、保護の範囲は、特許請求の範囲のメッセージを有するプログラム及び更にはプログラムコンピュータ可読記憶手段まで拡大され、そのようなコンピュータ可読記憶手段は、プログラムをサーバ又はモバイル・デバイス又は任意の適切なプログラム可能デバイス上で稼働させる際に、方法の1つ又は複数のステップを実施するプログラム・コード手段を含むことは理解されよう。ハードウェア・デバイスは、プログラム可能なあらゆる種類のデバイスとすることができ、例えば、サーバ若しくはパーソナル・コンピュータ等のようなあらゆる種類のコンピュータ、又はそれらの組合せを含む。デバイスは、手段も含むことができ、例えばハードウェア手段、例えば、特定用途向け集積回路(ASIC)、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又はハードウェア手段とソフトウェア手段との組合せ、例えば、ASIC及びFPGA、又は少なくとも1つのマイクロプロセッサ、及びデバイスの中に位置するソフトウェア・モジュールを有する少なくとも1つのメモリとすることができる。したがって、手段は、ハードウェア手段及びソフトウェア手段の両方を含むことができる。本明細書で説明する方法の実施形態は、ハードウェア及びソフトウェア内に実装することができる。デバイスは、ソフトウェア手段も含むことができる。代替的に、実施形態は、例えば複数のCPUを使用して様々なハードウェア・デバイス上に実装することができる。
本明細書の実施形態は、ハードウェア要素及びソフトウェア要素を備えることができる。ソフトウェア内に実装する実施形態は、限定はしないが、ファームウェア、常駐ソフトウェア、マイクロコード等を含む。本明細書で記載する様々なモジュールによって実施する機能は、他のモジュール又は他のモジュールの組合せにおいて実施することができる。この説明の目的で、コンピュータ使用可能媒体又はコンピュータ可読媒体は、指示実行システム、装置又はデバイスが使用するか又はこれらに関連するプログラムを備え、保存、通信、伝搬又は移送するあらゆる装置とすることができる。
例示するステップは、図示の例示的実施形態を説明するために示し、進行中の技術開発により、特定の機能を実施する様式が変更されることは予期されるはずである。こうした例は、例示のために本明細書で提示するものであり、限定するものではない。更に、機能的な基本構成要素の境界は、説明の便宜上、本明細書において任意に定義されている。特定の機能及び機能関係が適切に実施されるかぎり、代替的な境界を定義することができる。代替形態(本明細書に記載するものの等価物、拡張形態、変形形態、変形体等を含む)は、本明細書に含まれる教示に基づき、当業者には明らかであろう。そのような代替形態は、開示する実施形態の趣旨及び範囲内にある。また、語「備える」、「有する」、「含有する」及び「含む」並びに他の同様の形態は、意味が同等であり、これらの語のいずれか1つに続く1つ若しくは複数の項目がそのような1つ若しくは複数の項目の網羅的なリストではないという点で無制限であることを意図する、又は列挙した1つ若しくは複数の項目のみに限定されないことを意味する。本明細書及び添付の特許請求の範囲で使用する単数形「1つの(a、an及びthe)」は、文脈が別段に明確に規定しない限り、複数の言及を含むことにも留意されたい。
更に、1つ又は複数のコンピュータ可読記憶媒体は、本開示に一致する実装形態において利用することができる。コンピュータ可読記憶媒体は、プロセッサが読取り可能な情報又はデータを保存することができる任意のタイプの物理メモリを指す。したがって、コンピュータ可読記憶媒体は、本明細書に記載の実施形態に一致するステップ又は段階をプロセッサ(複数可)に実施させる指示を含め、1つ又は複数のプロセッサを実行させる指示を保存することができる。用語「コンピュータ可読媒体」は、有形物品を含み、搬送波及び過渡信号を除外する、即ち、非一時的であることは理解されよう。例は、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、揮発性メモリ、不揮発性メモリ、ハード・ドライブ、CD ROM、DVD、フラッシュ・ドライブ、ディスク、及びあらゆるほかの公知の物理的記憶媒体を含む。
本開示及び例は、例と見なされるにすぎず、真の範囲及び趣旨は、以下の特許請求の範囲によって示すことを意図する。

Claims (15)

  1. プロセッサ実施方法であって、前記方法は、
    1つ又は複数のハードウェア・プロセッサによって、入力データを入手するステップであって、前記入力データは、(a)1つ又は複数のソフトウェア欠陥報告、(b)1つ又は複数のソフトウェア欠陥カテゴリであって、前記1つ又は複数のソフトウェア欠陥カテゴリからの各ソフトウェア欠陥カテゴリが、クラス標示、及び前記クラス標示に関連するテキスト記述を含む、1つ又は複数のソフトウェア欠陥カテゴリ、並びに(c)文書コーパスを含む、ステップ(302)と、
    前記1つ又は複数のハードウェア・プロセッサによって、前記1つ又は複数のソフトウェア欠陥報告の入力テキストを、前記入力データに基づき1つ又は複数の区分に区分化するステップであって、前記1つ又は複数の区分のそれぞれは、対応するテキスト内容を含む、ステップ(304)と、
    文書コーパスから関連文書サブセットを特定するために、1つ又は複数の知識ベースから入手した前記文書コーパスに対し分析を実施するステップ(306)と、
    特定した前記関連文書サブセットに基づき、概念空間を生成するステップ(308)と、
    前記1つ又は複数のプロセッサによって、概念空間内に、前記1つ又は複数のソフトウェア欠陥報告の少なくとも1つに関係する前記1つ又は複数の区分のテキスト内容、及び前記1つ又は複数のソフトウェア欠陥カテゴリのテキスト記述を投影し、前記1つ又は複数のソフトウェア欠陥報告及び前記1つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対する概念空間表現を生成するステップ(310)と、
    前記1つ又は複数のハードウェア・プロセッサによって、前記1つ又は複数のソフトウェア欠陥報告のそれぞれ及び前記1つ又は複数のソフトウェア欠陥カテゴリのそれぞれの前記概念空間表現の間の1つ又は複数の類似度を計算し、分類すべき前記1つ又は複数のソフトウェア欠陥報告に特有の1つ又は複数の類似度値の分布を入手するステップ(312)と、
    前記1つ又は複数のハードウェア・プロセッサによって、前記1つ又は複数の類似度値の分布と、動的に生成した閾値との比較を実施するステップ(314)と、
    前記1つ又は複数のハードウェア・プロセッサによって、前記比較に基づき1つ又は複数のソフトウェア欠陥報告を1つ又は複数のソフトウェア欠陥カテゴリに分類するステップ(316)と、
    を含む方法。
  2. 前記分析を実施する記ステップは、前記関連文書サブセットを特定するために、前記1つ又は複数の知識ベースから入手した前記文書コーパスに対し、1つ又は複数の文書特定技法を適用するステップを含む、請求項1に記載のプロセッサ実施方法。
  3. 前記1つ又は複数の文書特定技法は、1つ又は複数のグラフ理論分析、1つ又は複数のキーワード特定技法、及び1つ又は複数のテキストクラスタ化技法のうち少なくとも1つを含む、請求項2に記載のプロセッサ実施方法。
  4. 前記1つ又は複数の類似度値が動的に生成した前記閾値よりも高い場合、前記1つ又は複数のソフトウェア欠陥報告は、前記1つ又は複数のソフトウェア欠陥カテゴリに分類される、請求項1に記載のプロセッサ実施方法。
  5. 動的に生成した前記閾値は、前記1つ又は複数の類似度値の分布に基づく、請求項1に記載のプロセッサ実施方法。
  6. システム(100)であって、
    指示及び1つ又は複数のモジュール(108)を保存するメモリ(102)と、
    1つ又は複数の通信インターフェース(106)と、
    前記1つ又は複数の通信インターフェース(106)を介して前記メモリ(102)に結合された1つ又は複数のハードウェア・プロセッサ(104)と、
    を備え、前記1つ又は複数のハードウェア・プロセッサ(104)は、前記指示によって前記1つ又は複数のモジュール(108)を実行するように構成され、前記1つ又は複数のモジュール(108)は、
    (a)1つ又は複数のソフトウェア欠陥報告、(b)クラス標示、及び前記クラス標示に関連するテキスト記述を含む1つ又は複数のソフトウェア欠陥カテゴリからの各ソフトウェア欠陥カテゴリ、並びに(c)文書コーパスを含む入力データを入手するように構成した入力読取りモジュール(202)と、
    前記入力データに基づき、前記1つ又は複数のソフトウェア欠陥報告の入力テキストを1つ又は複数の区分に区分化するように構成され、前記1つ又は複数の区分のそれぞれは、テキスト内容を含む、ソフトウェア欠陥報告テキスト区分化モジュール(204)と、
    文書コーパスから関連文書サブセットを特定するために、1つ又は複数の知識ベースから入手した前記文書コーパスに対し分析を実施し、
    特定した前記関連文書サブセットに基づき、概念空間を生成する
    ように構成した概念空間生成モジュール(206)と、
    前記概念空間内に、前記1つ又は複数のソフトウェア欠陥報告の少なくとも1つに関係する前記1つ又は複数の区分のテキスト内容、及び前記1つ又は複数のソフトウェア欠陥カテゴリのテキスト記述を投影し、前記1つ又は複数のソフトウェア欠陥報告及び前記1つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対する概念空間表現を生成するように構成した投影モジュール(208)と、
    前記1つ又は複数のソフトウェア欠陥報告のそれぞれ及び前記1つ又は複数のソフトウェア欠陥カテゴリのそれぞれの前記概念空間表現の間の1つ又は複数の類似度を計算し、分類すべき前記1つ又は複数のソフトウェア欠陥報告に特有の1つ又は複数の類似度値の分布を入手するように構成した概念空間類似度計算モジュール(210)と、
    前記1つ又は複数の類似度値の分布と、動的に生成した閾値との比較を実施し、
    前記比較に基づき、前記1つ又は複数のソフトウェア欠陥報告を前記1つ又は複数のソフトウェア欠陥カテゴリに分類する
    ように構成したソフトウェア欠陥分類モジュール(212)と、
    を備える、システム(100)。
  7. 前記概念空間生成モジュール(206)は、前記関連文書サブセットを特定するために、前記1つ又は複数の知識ベースから入手した前記文書コーパスに対し1つ又は複数の文書特定技法を適用することによって、分析を実施する、請求項6に記載のシステム。
  8. 前記1つ又は複数の文書特定技法は、1つ又は複数のグラフ理論分析、1つ又は複数のキーワード特定技法、1つ又は複数のテキストクラスタ化技法のうち少なくとも1つを含む、請求項7に記載のシステム。
  9. 前記1つ又は複数の類似度値が動的に生成した前記閾値よりも高い場合、前記ソフトウェア欠陥報告は、前記1つ又は複数のソフトウェア欠陥カテゴリに分類される、請求項6に記載のシステム。
  10. 動的に生成した前記閾値は、前記1つ又は複数の類似度値の分布に基づく、請求項6に記載のシステム。
  11. 1つ又は複数の命令を含む1つ又は複数の非一時的機械可読情報記憶媒体であって、1つ又は複数のハードウェア・プロセッサによって前記1つ又は複数の命令を実行すると、
    前記1つ又は複数のハードウェア・プロセッサによって、入力データを入手するステップであって、前記入力データは、(a)1つ又は複数のソフトウェア欠陥報告、(b)1つ又は複数のソフトウェア欠陥カテゴリであって、前記1つ又は複数のソフトウェア欠陥カテゴリからの各ソフトウェア欠陥カテゴリが、クラス標示、及び前記クラス標示に関連するテキスト記述を含む、1つ又は複数のソフトウェア欠陥カテゴリ、並びに(c)文書コーパスを含む、ステップと、
    前記1つ又は複数のハードウェア・プロセッサによって、前記入力データに基づき、前記1つ又は複数のソフトウェア欠陥報告の入力テキストを1つ又は複数の区分に区分化するステップであって、前記1つ又は複数の区分のそれぞれは、テキスト内容を含む、ステップと、
    文書コーパスから関連文書サブセットを特定するために、1つ又は複数の知識ベースから入手した前記文書コーパスに対し分析を実施するステップと、
    特定した前記関連文書サブセットに基づき、概念空間を生成するステップと、
    前記1つ又は複数のプロセッサによって、前記概念空間内に、前記1つ又は複数のソフトウェア欠陥報告の少なくとも1つに関係する前記1つ又は複数の区分のテキスト内容、及び前記1つ又は複数のソフトウェア欠陥カテゴリのテキスト記述を投影し、前記1つ又は複数のソフトウェア欠陥報告及び前記1つ又は複数のソフトウェア欠陥カテゴリのそれぞれに対する概念空間表現を生成するステップと、
    前記1つ又は複数のハードウェア・プロセッサによって、前記1つ又は複数のソフトウェア欠陥報告のそれぞれ及び前記1つ又は複数のソフトウェア欠陥カテゴリのそれぞれの前記概念空間表現の間の1つ又は複数の類似度を計算し、分類すべき前記1つ又は複数のソフトウェア欠陥報告に特有の1つ又は複数の類似度値の分布を入手するステップと、
    前記1つ又は複数のハードウェア・プロセッサによって、前記1つ又は複数の類似度値の分布と、動的に生成した閾値との比較を実施するステップと、
    前記1つ又は複数のハードウェア・プロセッサによって、前記比較に基づき、前記1つ又は複数のソフトウェア欠陥報告を前記1つ又は複数のソフトウェア欠陥カテゴリに分類するステップと、
    を生じさせる、1つ又は複数の非一時的機械可読情報記憶媒体。
  12. 前記分析を実施するステップは、前記関連文書サブセットを特定するために、前記1つ又は複数の知識ベースから入手した前記文書コーパスに対し1つ又は複数の文書特定技法を適用するステップを含む、請求項11に記載の1つ又は複数の非一時的機械可読情報記憶媒体。
  13. 前記1つ又は複数の文書特定技法は、1つ又は複数のグラフ理論分析、1つ又は複数のキーワード特定技法、1つ又は複数のテキストクラスタ化技法のうち少なくとも1つを含む、請求項12に記載の1つ又は複数の非一時的機械可読情報記憶媒体。
  14. 前記1つ又は複数の類似度値が動的に生成した前記閾値よりも高い場合、前記1つ又は複数のソフトウェア欠陥報告は、前記1つ又は複数のソフトウェア欠陥カテゴリに分類される、請求項11に記載の1つ又は複数の非一時的機械可読情報記憶媒体。
  15. 動的に生成した前記閾値は、前記1つ又は複数の類似度値の分布に基づく、請求項11に記載の1つ又は複数の非一時的機械可読情報記憶媒体。
JP2018050499A 2017-04-19 2018-03-19 ソフトウェア欠陥報告を分類するシステム及び方法 Active JP6567114B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN201721013935 2017-04-19
IN201721013935 2017-04-19

Publications (2)

Publication Number Publication Date
JP2018181318A true JP2018181318A (ja) 2018-11-15
JP6567114B2 JP6567114B2 (ja) 2019-08-28

Family

ID=61899026

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018050499A Active JP6567114B2 (ja) 2017-04-19 2018-03-19 ソフトウェア欠陥報告を分類するシステム及び方法

Country Status (3)

Country Link
US (1) US10664696B2 (ja)
EP (1) EP3392780A3 (ja)
JP (1) JP6567114B2 (ja)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107506434A (zh) * 2017-08-23 2017-12-22 北京百度网讯科技有限公司 基于人工智能分类语音输入文本的方法和装置
CN108121829B (zh) * 2018-01-12 2022-05-24 扬州大学 面向软件缺陷的领域知识图谱自动化构建方法
US10795917B2 (en) * 2018-07-02 2020-10-06 Salesforce.Com, Inc. Automatic generation of regular expressions for homogenous clusters of documents
US10891316B2 (en) * 2018-07-02 2021-01-12 Salesforce.Com, Inc. Identifying homogenous clusters
US11403465B2 (en) * 2018-08-24 2022-08-02 Royal Bank Of Canada Systems and methods for report processing
CN111104306A (zh) * 2018-10-26 2020-05-05 伊姆西Ip控股有限责任公司 用于应用中的错误诊断的方法、装置和计算机存储介质
CN109543032A (zh) * 2018-10-26 2019-03-29 平安科技(深圳)有限公司 文本分类方法、装置、计算机设备和存储介质
CN109492106B (zh) * 2018-11-13 2022-05-13 扬州大学 一种文本代码相结合的缺陷原因自动分类方法
CN109376247B (zh) * 2018-11-13 2022-05-13 扬州大学 一种基于关联规则的软件缺陷自动分类方法
CN109829155B (zh) * 2019-01-18 2024-03-22 平安科技(深圳)有限公司 关键词的确定方法、自动评分方法、装置、设备及介质
US11467817B2 (en) * 2019-01-28 2022-10-11 Adobe Inc. Software component defect prediction using classification models that generate hierarchical component classifications
CN110069594B (zh) * 2019-03-07 2023-10-10 平安科技(深圳)有限公司 合同确认方法、装置、电子设备及存储介质
US11210470B2 (en) * 2019-03-28 2021-12-28 Adobe Inc. Automatic text segmentation based on relevant context
US11354222B2 (en) 2019-06-27 2022-06-07 Capital One Services, Llc Discovery crawler for application dependency discovery, reporting, and management tool
US10642719B1 (en) * 2019-06-27 2020-05-05 Capital One Services, Llc Intelligent services for application dependency discovery, reporting, and management tool
CN110457475B (zh) * 2019-07-25 2023-06-30 创新先进技术有限公司 一种用于文本分类体系构建和标注语料扩充的方法和系统
CN112749079B (zh) * 2019-10-31 2023-12-26 中国移动通信集团浙江有限公司 软件测试的缺陷分类方法、装置及计算设备
CN110889412B (zh) * 2019-11-01 2023-04-07 泰康保险集团股份有限公司 体检报告中的医学长文定位与分类方法及装置
CN110825633A (zh) * 2019-11-01 2020-02-21 江苏科技大学 一种针对Java语言的软件缺陷检测与提取方法
CN113011689B (zh) * 2019-12-19 2024-05-07 中国移动通信集团辽宁有限公司 软件开发工作量的评估方法、装置及计算设备
CN111338972A (zh) * 2020-03-30 2020-06-26 北京计算机技术及应用研究所 基于机器学习的软件缺陷与复杂度关联关系分析方法
CN112069058A (zh) * 2020-08-11 2020-12-11 国网河北省电力有限公司保定供电分公司 一种基于专家库和自学习技术的缺陷处置方法
CN112181814B (zh) * 2020-09-18 2021-11-16 武汉大学 一种针对于缺陷报告的多标签标记方法
CN112286799B (zh) * 2020-10-19 2024-03-12 杭州电子科技大学 结合句嵌入和粒子群优化算法的软件缺陷定位方法
CN112699018B (zh) * 2020-10-23 2023-06-20 西安交通大学 基于软件缺陷关联分析的软件缺陷定位方法
US11720481B2 (en) 2020-12-11 2023-08-08 Optum, Inc. Method, apparatus and computer program product for predictive configuration management of a software testing system
CN112597038B (zh) * 2020-12-28 2023-12-08 中国航天系统科学与工程研究院 软件缺陷预测方法及系统
CN112883189A (zh) * 2021-01-26 2021-06-01 浙江香侬慧语科技有限责任公司 基于标签描述的文本分类方法、装置、存储介质及设备
EP4043975B1 (en) * 2021-02-15 2024-05-15 Siemens Aktiengesellschaft Computer-implemented method for determining at least one quality attribute for at least one defect of interest
CN113011179B (zh) * 2021-03-30 2023-10-20 南通大学 一种基于缺陷报告摘要中词性信息的严重程度预测方法
CN113515829B (zh) * 2021-05-21 2023-07-21 华北电力大学(保定) 一种用于极寒灾害下输电线路金具缺陷的态势感知方法
CN113448843B (zh) * 2021-06-17 2024-05-28 南京航空航天大学 基于缺陷分析的图像识别软件测试数据增强方法及装置
US11941357B2 (en) 2021-06-23 2024-03-26 Optum Technology, Inc. Machine learning techniques for word-based text similarity determinations
CN113434418A (zh) * 2021-06-29 2021-09-24 扬州大学 知识驱动的软件缺陷检测与分析方法及系统
CN114154896B (zh) * 2021-12-09 2022-08-26 苏州捷布森智能科技有限公司 基于mes的智能工厂产品质量监控方法及系统
US11580309B1 (en) * 2022-03-14 2023-02-14 States Title, Llc Predictive time series data object machine learning system
CN114676298B (zh) * 2022-04-12 2024-04-19 南通大学 一种基于质量过滤器的缺陷报告标题自动生成方法
CN114968813A (zh) * 2022-06-21 2022-08-30 江苏工程职业技术学院 一种面向软件仓库挖掘的缺陷定位方法
US11989240B2 (en) 2022-06-22 2024-05-21 Optum Services (Ireland) Limited Natural language processing machine learning frameworks trained using multi-task training routines
CN115454855B (zh) * 2022-09-16 2024-02-09 中国电信股份有限公司 代码缺陷报告审计方法、装置、电子设备及存储介质
CN115221374B (zh) * 2022-09-20 2022-11-25 华谱科仪(北京)科技有限公司 基于色谱数据分析的推送方法、装置及电子设备
CN116775871A (zh) * 2023-06-15 2023-09-19 南京航空航天大学 基于seBERT预训练模型的深度学习软件缺陷报告分类方法
CN116883390B (zh) * 2023-09-04 2023-11-21 合肥中科类脑智能技术有限公司 模糊抵抗性半监督缺陷检测方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293411A (ja) * 1999-04-06 2000-10-20 Nippon Steel Corp 障害管理装置および方法、記録媒体
US20070174023A1 (en) * 2006-01-26 2007-07-26 International Business Machines Corporation Methods and apparatus for considering a project environment during defect analysis
CN104615533A (zh) * 2015-01-15 2015-05-13 南京大学 一种基于移动即时通讯软件的软件缺陷智能跟踪管理方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7251637B1 (en) * 1993-09-20 2007-07-31 Fair Isaac Corporation Context vector generation and retrieval
EP1275042A2 (en) * 2000-03-06 2003-01-15 Kanisa Inc. A system and method for providing an intelligent multi-step dialog with a user
US7536413B1 (en) * 2001-05-07 2009-05-19 Ixreveal, Inc. Concept-based categorization of unstructured objects
US8015143B2 (en) * 2002-05-22 2011-09-06 Estes Timothy W Knowledge discovery agent system and method
CA2406866A1 (en) * 2002-10-04 2004-04-04 Sun Microsystems, Inc. System and method for migrating software
US7496228B2 (en) * 2003-06-13 2009-02-24 Landwehr Val R Method and system for detecting and classifying objects in images, such as insects and other arthropods
US8756234B1 (en) * 2004-11-16 2014-06-17 The General Hospital Corporation Information theory entropy reduction program
US20060294101A1 (en) * 2005-06-24 2006-12-28 Content Analyst Company, Llc Multi-strategy document classification system and method
JP4729611B2 (ja) * 2008-10-30 2011-07-20 株式会社エヌ・ティ・ティ・ドコモ イベントキュー管理装置及びイベントキュー管理方法
US9244510B1 (en) * 2011-09-23 2016-01-26 The Mathworks, Inc. Bug report checks in a modeling system
US9411955B2 (en) * 2012-08-09 2016-08-09 Qualcomm Incorporated Server-side malware detection and classification
US9461876B2 (en) * 2012-08-29 2016-10-04 Loci System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction
GB2540534A (en) * 2015-06-15 2017-01-25 Erevalue Ltd A method and system for processing data using an augmented natural language processing engine
JP6690170B2 (ja) * 2015-09-28 2020-04-28 富士ゼロックス株式会社 画像処理装置及びプログラム
US9870207B2 (en) * 2015-12-22 2018-01-16 Sap Se Software development using re-usable software components
US9798526B2 (en) * 2015-12-22 2017-10-24 Sap Se Software development using multi-domain decision management

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000293411A (ja) * 1999-04-06 2000-10-20 Nippon Steel Corp 障害管理装置および方法、記録媒体
US20070174023A1 (en) * 2006-01-26 2007-07-26 International Business Machines Corporation Methods and apparatus for considering a project environment during defect analysis
CN104615533A (zh) * 2015-01-15 2015-05-13 南京大学 一种基于移动即时通讯软件的软件缺陷智能跟踪管理方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
EVGENIY GABRILOVICH, ET AL.: "Computing Semantic Relatedness using Wikipedia-based Explicit Semantic Analysis", IJCAI'07 PROCEEDING OF THE 20TH INTERNATIONAL JOINT CONFERENCE ON ARTIFICIAL INTELLIGENCE, JPN6019009087, 12 January 2007 (2007-01-12), pages 1606 - 1611 *
FERDIAN THUNG, ET AL.: "Active Semi-Supervised Defect Categorization", 2015 IEEE 23RD INTERNATIONAL CONFERENCE ON PROGRAM COMPREHENSION, JPN6019009086, 19 May 2015 (2015-05-19), pages 60 - 70, XP033197155, DOI: doi:10.1109/ICPC.2015.15 *

Also Published As

Publication number Publication date
US10664696B2 (en) 2020-05-26
US20180307904A1 (en) 2018-10-25
JP6567114B2 (ja) 2019-08-28
EP3392780A2 (en) 2018-10-24
EP3392780A3 (en) 2018-11-07

Similar Documents

Publication Publication Date Title
JP6567114B2 (ja) ソフトウェア欠陥報告を分類するシステム及び方法
CN108399228B (zh) 文章分类方法、装置、计算机设备及存储介质
Bedi et al. Community detection in social networks
US11474817B2 (en) Provenance-based reuse of software code
CN107111625B (zh) 实现数据的高效分类和探索的方法和系统
JP5751251B2 (ja) 意味抽出装置、意味抽出方法、および、プログラム
US10504005B1 (en) Techniques to embed a data object into a multidimensional frame
US10713306B2 (en) Content pattern based automatic document classification
US10380162B2 (en) Item to vector based categorization
US11042581B2 (en) Unstructured data clustering of information technology service delivery actions
US11556852B2 (en) Efficient ground truth annotation
US10067983B2 (en) Analyzing tickets using discourse cues in communication logs
US20210157983A1 (en) Hybrid in-domain and out-of-domain document processing for non-vocabulary tokens of electronic documents
US20160217200A1 (en) Dynamic creation of domain specific corpora
CN113924560A (zh) 利用半监督深度学习理解对医学人工智能系统的查询意图
US11651159B2 (en) Semi-supervised system to mine document corpus on industry specific taxonomies
US11880403B2 (en) Document data management via graph cliques for layout understanding
US20150227834A1 (en) Ontological Concept Expansion for SHOQ Description Logic and the Like
US20220284343A1 (en) Machine teaching complex concepts assisted by computer vision and knowledge reasoning
US11574250B2 (en) Classification of erroneous cell data
KR102153259B1 (ko) 데이터 도메인 추천 방법 및 추천된 도메인을 이용하여 통합 데이터 저장소 관리 시스템을 구축하는 방법
US20090157645A1 (en) Relating similar terms for information retrieval
Panda et al. An improved software bug triaging approach based on topic modeling and fuzzy logic
US11947504B1 (en) Multi-cloud data processing and integration
Kangwanwisit et al. A component recommendation model for issues in software projects

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180530

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190319

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190614

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190730

R150 Certificate of patent or registration of utility model

Ref document number: 6567114

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250