本公開涉及信息處理裝置、警告優(yōu)先級預測方法、以及警告優(yōu)先級預測程序。
背景技術:
1、以往為了分析源代碼的違規(guī)而使用靜態(tài)分析工具。靜態(tài)分析工具的分析結果包含有許多的警告,但在警告中混合有真陽性的警告和假陽性的警告。真陽性是表示真正存在違規(guī)的位置的警告,假陽性是指錯誤地警告了沒有違規(guī)的位置的警告。
2、因此,源代碼的開發(fā)者需要自己從靜態(tài)分析工具的分析結果所包含的許多的警告中區(qū)分真陽性的警告和假陽性的警告。
3、因此,在專利文獻1記載了基于用戶對是否修正與靜態(tài)分析結果對應的源代碼的判斷結果、源代碼度量的信息、程序開發(fā)項目的信息,進行與分析對象的源代碼相關的靜態(tài)分析結果的優(yōu)先順序排序的分析裝置。此外,上述用戶的判斷結果是指對警告的真陽性和假陽性的判斷結果。真陽性是真正存在違規(guī)的位置,假陽性是錯誤地對沒有違規(guī)的位置進行了警告的位置。該表示真陽性以及假陽性的用戶的判斷結果作為警告標簽被賦予給每個警告。
4、專利文獻1:日本特開2017-204090號公報
5、專利文獻1所記載的分析裝置由于根據產品項目所特有的信息進行靜態(tài)分析結果的優(yōu)先順序排序,所以優(yōu)先順序成為依賴于產品項目的結果。因此,在對不同的產品項目的源代碼的靜態(tài)分析應用專利文獻1的分析裝置的情況下,有靜態(tài)分析結果的優(yōu)先順序排序的精度降低的可能性。另外,若按每個產品項目構建分析裝置,則有開發(fā)費用等增加的可能性。
技術實現思路
1、因此,本公開的目的在于提供即使對于不同的產品項目的每一個所使用的不同的源代碼,也能夠高精度地預測基于靜態(tài)分析的警告的優(yōu)先級的信息處理裝置、警告優(yōu)先級預測方法、以及警告優(yōu)先級預測程序。
2、本公開為了解決上述課題而采用以下的技術單元。
3、本公開的一方式的信息處理裝置是預測靜態(tài)分析工具對源代碼的分析結果示出的警告的優(yōu)先級的信息處理裝置,具備:學習部,使用上述源代碼、包含上述分析結果示出的上述源代碼中的警告的產生位置的警告信息、使用上述源代碼的產品固有的信息、以及包含不依賴于上述產品的信息的非依賴信息作為學習用的輸入數據,并使用與每個上述警告建立關聯的警告標簽作為教師數據來進行機器學習,生成預測模型,該預測模型使輸入為上述靜態(tài)分析工具對上述源代碼的上述分析結果,并使輸出為上述警告的優(yōu)先級;受理部,受理作為上述預測模型的預測對象的上述靜態(tài)分析工具的上述分析結果;以及預測部,使用上述預測模型預測通過上述受理部受理的上述分析結果示出的警告的優(yōu)先級。
4、根據本構成,靜態(tài)分析工具對源代碼的分析結果示出的警告的優(yōu)先級的判定使用預測模型,該預測模型基于將與每個警告建立關聯的警告標簽作為教師數據的機器學習。警告標簽是通過用戶的判斷對每個警告附加的標簽。而且,預測模型的學習用的輸入數據使用不依賴于產品的非依賴信息。由此,預測模型不專用于特定的源代碼或者產品,而作為具有通用性的機器學習模型生成。因此本構成即使對于不同的產品項目的每一個所使用的不同的源代碼,也能夠高精度地預測靜態(tài)分析結果示出的警告的優(yōu)先級。
5、在上述的信息處理裝置中,也可以上述非依賴信息是與上述源代碼的分析所使用的上述靜態(tài)分析工具的種類以及設定相關的信息。
6、源代碼的分析所使用的靜態(tài)分析工具按其種類以及設定而靜態(tài)分析的性能不同。因此,通過在預測模型的學習用的輸入數據中使用與靜態(tài)分析工具的種類以及設定相關的信息,能夠高精度地預測靜態(tài)分析結果示出的警告的優(yōu)先級。此外,在靜態(tài)分析工具的種類中也包含有相同的種類的靜態(tài)分析工具中的不同的版本。另外,靜態(tài)分析工具的設定例如包含編程語言的標準。
7、在上述的信息處理裝置中,也可以上述非依賴信息包含與上述靜態(tài)分析工具的種類對應的上述靜態(tài)分析工具的特性信息。根據本構成,通過使用靜態(tài)分析工具的特性信息作為預測模型的學習用的輸入數據,能夠更高精度地預測基于靜態(tài)分析的警告。
8、在上述的信息處理裝置中,也可以上述特性信息包含靜態(tài)分析的可決定性、以及上述靜態(tài)分析工具的基準評價結果的至少一個。根據本構成,能夠高精度地預測靜態(tài)分析結果示出的警告的優(yōu)先級。
9、在上述的信息處理裝置中,也可以上述警告的優(yōu)先級是屬于特定的上述警告標簽的概率。根據本構成,用戶能夠容易地識別需要修正的源代碼的位置。
10、在上述的信息處理裝置中,也可以上述警告標簽是多值的,至少包含警告真正存在違規(guī)的位置的真陽性、以及錯誤地警告了沒有違規(guī)的位置的假陽性。根據本構成,用戶能夠容易地識別需要修正的源代碼的位置。
11、在上述的信息處理裝置中,也可以上述真陽性分為需要修正上述源代碼的警告、或者不需要修正上述源代碼的警告。根據本構成,用戶能夠容易地識別需要修正的源代碼的位置。
12、在上述的信息處理裝置中,也可以上述預測部將上述源代碼的上述分析結果、上述源代碼、使用上述源代碼的產品固有的信息、以及上述非依賴信息輸入到上述預測模型,預測上述分析結果示出的警告的優(yōu)先級。
13、在上述的信息處理裝置中,也可以上述預測模型由能夠進行集成學習的機器學習模型生成。
14、本公開的一方式的優(yōu)先級預測方法是預測靜態(tài)分析工具對源代碼的分析結果示出的警告的優(yōu)先級的優(yōu)先級預測方法,具有:第一工序,學習部使用上述源代碼、包含上述分析結果示出的上述源代碼中的警告的產生位置的警告信息、使用上述源代碼的產品固有的信息、以及包含不依賴于上述產品的信息的非依賴信息作為學習用的輸入數據,并使用與每個上述警告建立關聯的警告標簽作為教師數據來進行機器學習,生成預測模型,該預測模型使輸入為上述靜態(tài)分析工具對上述源代碼的上述分析結果,并使輸出為上述警告的優(yōu)先級;第二工序,受理部受理作為上述預測模型的預測對象的上述靜態(tài)分析工具的上述分析結果;以及第三工序,預測部使用上述預測模型預測通過上述受理部受理的上述分析結果示出的警告的優(yōu)先級。
15、本公開的一方式的警告優(yōu)先級預測程序用于使預測靜態(tài)分析工具對源代碼的分析結果示出的警告的優(yōu)先級的信息處理裝置具備的計算機作為學習部、受理部以及預測部發(fā)揮作用,上述學習部,使用上述源代碼、包含上述分析結果示出的上述源代碼中的警告的產生位置的警告信息、使用上述源代碼的產品固有的信息、以及包含不依賴于上述產品的信息的非依賴信息作為學習用的輸入數據,并使用與每個上述警告建立關聯的警告標簽作為教師數據來進行機器學習,生成預測模型,該預測模型使輸入為上述靜態(tài)分析工具對上述源代碼的上述分析結果,并使輸出為上述警告的優(yōu)先級,上述受理部受理作為上述預測模型的預測對象的上述靜態(tài)分析工具的上述分析結果,上述預測部使用上述預測模型預測通過上述受理部受理的上述分析結果示出的警告的優(yōu)先級。
16、根據本公開,即使對于不同的產品項目的每一個所使用的不同的源代碼,也能夠高精度地預測基于靜態(tài)分析的警告的優(yōu)先級。
1.一種信息處理裝置,是預測靜態(tài)分析工具對源代碼的分析結果示出的警告的優(yōu)先級的信息處理裝置,具備:
2.根據權利要求1所述的信息處理裝置,其中,
3.根據權利要求2所述的信息處理裝置,其中,
4.根據權利要求3所述的信息處理裝置,其中,
5.根據權利要求1或者2所述的信息處理裝置,其中,
6.根據權利要求5所述的信息處理裝置,其中,
7.根據權利要求6所述的信息處理裝置,其中,
8.根據權利要求1或者2所述的信息處理裝置,其中,
9.根據權利要求1或者2所述的信息處理裝置,其中,
10.一種優(yōu)先級預測方法,是預測靜態(tài)分析工具對源代碼的分析結果示出的警告的優(yōu)先級的優(yōu)先級預測方法,具有:
11.一種存儲警告優(yōu)先級預測程序的存儲介質,其中,