(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024132931
(43)【公開日】2024-10-01
(54)【発明の名称】ソフトウェアの品質検査範囲検出方法、コンピュータ装置、およびコンピュータプログラム
(51)【国際特許分類】
G06F 11/36 20060101AFI20240920BHJP
【FI】
G06F11/36 184
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024032625
(22)【出願日】2024-03-05
(31)【優先権主張番号】10-2023-0033143
(32)【優先日】2023-03-14
(33)【優先権主張国・地域又は機関】KR
(71)【出願人】
【識別番号】516014409
【氏名又は名称】ライン プラス コーポレーション
【氏名又は名称原語表記】LINE Plus Corporation
(74)【代理人】
【識別番号】110003199
【氏名又は名称】弁理士法人高田・高橋国際特許事務所
(72)【発明者】
【氏名】キム ヨンジェ
(72)【発明者】
【氏名】ナム サンヒョク
(72)【発明者】
【氏名】チョ ヨンデ
(72)【発明者】
【氏名】ヤン ヒョンソク
(72)【発明者】
【氏名】キム ユン ハン
(72)【発明者】
【氏名】キム ジョンシク
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042HH17
5B042HH49
(57)【要約】
【課題】ソフトウェアの品質検査項目を自動で設定するために人工知能を利用して品質検査範囲を検出する方法、コンピュータ装置、およびコンピュータプログラムを提供する。
【解決手段】メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成される少なくとも1つのプロセッサを含むコンピュータ装置で実行されるソフトウェアの品質検査範囲検出方法であって、前記少なくとも1つのプロセッサにより、人工知能モデルを利用したソースコードの変更事項分析によって、予め設定された品質検査項目のうちで前記ソースコードのための品質検査項目を設定する段階を含む品質検査範囲検出方法を提供する。
【選択図】
図6
【特許請求の範囲】
【請求項1】
メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成される少なくとも1つのプロセッサを含むコンピュータ装置で実行されるソフトウェアの品質検査範囲検出方法であって、
前記少なくとも1つのプロセッサにより、人工知能モデルを利用したソースコードの変更事項分析によって、予め設定された品質検査項目のうちで前記ソースコードのための品質検査項目を設定する段階
を含む、品質検査範囲検出方法。
【請求項2】
前記人工知能モデルは、ソースコードまたはソースコードの変更事項を学習することにより、前記予め設定された品質検査項目ごとにソースコードとの関係情報を確率値で出力するように構築されていることを特徴とする、
請求項1に記載の品質検査範囲検出方法。
【請求項3】
前記設定する段階は、
前記ソフトウェアのソースコードと前記予め設定された品質検査項目を人工知能モデルに入力する段階
を含む、請求項1に記載の品質検査範囲検出方法。
【請求項4】
前記設定する段階は、
前記人工知能モデルが出力する前記ソースコードと前記予め設定された品質検査項目との関係情報に対する確率結果データに基づいて、前記予め設定された品質検査項目のうちで前記ソースコードの変更事項に対応する品質検査項目を設定して前記ソフトウェアのための品質検査範囲を抽出する段階
を含む、請求項1に記載の品質検査範囲検出方法。
【請求項5】
前記設定する段階は、
前記人工知能モデルが出力する前記ソースコードと前記予め設定された品質検査項目との関係情報に対する確率結果データを取得する段階、および、
前記予め設定された品質検査項目それぞれに対応する確率結果データを表示する段階
を含む、請求項1に記載の品質検査範囲検出方法。
【請求項6】
前記表示する段階は、
前記予め設定された品質検査項目それぞれに対応する確率結果データに基づいて、個別の品質検査項目の重要度または予め設定された尺度を表示することを特徴とする、請求項5に記載の品質検査範囲検出方法。
【請求項7】
前記表示する段階は、
ソースコードの変更がある品質検査項目を視覚的表現で表示することを特徴とする、
請求項5に記載の品質検査範囲検出方法。
【請求項8】
前記設定する段階は、
前記設定された品質検査項目に対応しないソースコードに対して、新たな品質検査項目の追加を提案する段階
を含む、請求項1に記載の品質検査範囲検出方法。
【請求項9】
前記ソースコードまたは変更事項が発生したソースコードごとにソースコード参照識別子が付与されることを特徴とする、
請求項1に記載の品質検査範囲検出方法。
【請求項10】
前記設定する段階は、
前記予め設定された品質検査項目それぞれに対応するソースコードのソースコード参照識別子に、ソースコードの変更状況を示す標識を追加する段階
を含む、請求項9に記載の品質検査範囲検出方法。
【請求項11】
前記予め設定された品質検査項目ごとに品質検査参照識別子が付与されることを特徴とする、請求項1に記載の品質検査範囲検出方法。
【請求項12】
前記設定する段階は、
前記予め設定された品質検査項目を構成する各段階のうち、ソースコードの変更事項と関連する段階をソースコード参照識別子で表示する段階
を含む、請求項1に記載の品質検査範囲検出方法。
【請求項13】
前記設定する段階は、
前記表示されたソースコード参照識別子が選択されることにともない、前記ソースコードの変更事項と関連する段階に対応するソースコードを含むリンクを提供する段階
を含む、請求項12に記載の品質検査範囲検出方法。
【請求項14】
前記設定する段階は、
前記人工知能モデルから出力された確率結果データに対するフィードバック情報を入力するためのユーザインタフェースを提供する段階、および、
前記提供されたユーザインタフェースにユーザが入力したフィードバック情報を反映して、前記ソフトウェアのための品質検査項目を設定する段階
を含む、請求項1に記載の品質検査範囲検出方法。
【請求項15】
請求項1~14のうちのいずれか一項に記載の品質検査範囲検出方法を前記コンピュータ装置に実行させるために非一時的なコンピュータ読み取り可能な記録媒体に記録される、コンピュータプログラム。
【請求項16】
請求項1~14のうちのいずれか一項に記載の品質検査範囲検出方法を前記コンピュータ装置に実行させるためのプログラムが記録されている、非一時的なコンピュータ読み取り可能な記録媒体。
【請求項17】
メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成される少なくとも1つのプロセッサを含むコンピュータ装置であって、
前記少なくとも1つのプロセッサは、
人工知能モデルを利用したソースコードの変更事項分析によって、予め設定された品質検査項目のうちで前記ソースコードのための品質検査項目を設定すること
を特徴とする、コンピュータ装置。
【請求項18】
前記人工知能モデルは、ソースコードまたはソースコードの変更事項を学習することにより、前記予め設定された品質検査項目ごとにソースコードとの関係情報を確率値で出力するように構築されたものであること
を特徴とする、請求項17に記載のコンピュータ装置。
【請求項19】
前記ソースコードのための品質検査項目を設定するために、前記少なくとも1つのプロセッサにより、
前記人工知能モデルが出力する前記ソースコードと前記予め設定された品質検査項目との関係情報に対する確率結果データに基づいて、前記予め設定された品質検査項目のうちで前記ソースコードの変更事項に対応する品質検査項目を設定して前記ソフトウェアのための品質検査範囲を抽出すること
を特徴とする、請求項17に記載のコンピュータ装置。
【請求項20】
前記ソースコードのための品質検査項目を設定するために、前記少なくとも1つのプロセッサにより、
前記人工知能モデルが出力する前記ソースコードと前記予め設定された品質検査項目との関係情報に対する確率結果データを取得し、
前記予め設定された品質検査項目それぞれに対応する確率結果データを表示すること
を特徴とする、請求項17に記載のコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【0001】
以下の説明は、品質検査の効率を高める技術に関する。
【背景技術】
【0002】
現代社会におけるソフトウェアの開発過程では、ソフトウェア開発者が実装リストを見ながらソースコードを作成して構成管理ツールに保存すると、品質検査者が、ソースコードから変換した結果物が期待どおりに動作するかを実装リストの品質検査項目を見ながら検査し、期待どおりの動作をすれば合格を、そうでなければ不合格を通知する。ソフトウェア開発者は、不合格となった品質検査項目が合格するようにソースコードを修正して構成管理ツールに再度保存し、結果物を品質検査者に伝達する。品質検査者は、新たな結果物の品質を検査し、合格基準に達すれば品質検査に合格したことを結果として通知する。
【0003】
特許文献1(登録日2020年8月12日)には、人工知能を利用してサービスプラットフォームをテストする技術が開示されている。しかし、従来の技術は、小規模の変更事項が発生しただけでもすべての品質検査項目の検査を実施しなければならないため、テストにかかる時間と処理コストの削減が難しく、限界があった。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】韓国登録特許第10-2145821公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
人工知能モデルを利用したソースコードの変更事項分析によって、品質検査項目を自動で設定することができる。
【0006】
すべての品質検査項目に対するソースコードの品質検査を行わなくても、人工知能モデルによって設定された品質検査項目だけに対するソースコードの品質検査を行うことができる。
【課題を解決するための手段】
【0007】
メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成される少なくとも1つのプロセッサを含むコンピュータ装置で実行されるソフトウェアの品質検査範囲検出方法であって、前記少なくとも1つのプロセッサにより、人工知能モデルを利用したソースコードの変更事項分析によって、予め設定された品質検査項目のうちで前記ソースコードのための品質検査項目を設定する段階を含む、品質検査範囲検出方法を提供する。
【0008】
前記人工知能モデルは、ソースコードまたはソースコードの変更事項を学習することにより、前記予め設定された品質検査項目ごとにソースコードとの関係情報を確率値で出力するように構築されたものであってよい。
【0009】
前記設定する段階は、前記ソフトウェアのソースコードと前記予め設定された品質検査項目を人工知能モデルに入力する段階を含んでよい。
【0010】
前記設定する段階は、前記人工知能モデルが出力する前記ソースコードと前記予め設定された品質検査項目との関係情報に対する確率結果データに基づいて、前記予め設定された品質検査項目のうちで前記ソースコードの変更事項に対応する品質検査項目を設定して、前記ソフトウェアのための品質検査範囲を抽出する段階を含んでよい。
【0011】
前記設定する段階は、前記人工知能モデルが出力する前記ソースコードと前記予め設定された品質検査項目との関係情報に対する確率結果データを取得する段階、および、前記予め設定された品質検査項目それぞれに対応する確率結果データを表示する段階を含んでよい。
【0012】
前記表示する段階は、前記予め設定された品質検査項目それぞれに対応する確率結果データに基づいて、個別の品質検査項目の重要度または予め設定された尺度を表示するものであってよい。
【0013】
前記表示する段階は、ソースコードの変更事項がある品質検査項目を視覚的表現で表示してよい。
【0014】
前記設定する段階は、前記予め設定された品質検査項目に対応しないソースコードに対して、新たな品質検査項目の追加を提案する段階を含んでよい。
【0015】
前記ソースコードまたは変更事項が発生したソースコードごとにソースコード参照識別子が付与されるようにしてよい。
【0016】
前記設定する段階は、前記予め設定された品質検査項目それぞれに対応するソースコードのソースコード参照識別子にソースコードの変更状況を示す標識を追加する段階を含んでよい。
【0017】
前記予め設定された品質検査項目ごとに品質検査参照識別子が付与されるようにしてよい。
【0018】
前記設定する段階は、前記予め設定された品質検査項目を構成する各段階のうちでソースコードの変更事項と関連する段階をソースコード参照識別子で表示する段階を含んでよい。
【0019】
前記設定する段階は、前記表示されたソースコード参照識別子が選択されることにともない、前記ソースコードの変更事項と関連する段階に対応するソースコードを含むリンクを提供する段階を含んでよい。
【0020】
前記設定する段階は、前記人工知能モデルから出力された確率結果データに対するフィードバック情報を入力するためのユーザインタフェースを提供する段階、および、前記提供されたユーザインタフェースにユーザが入力したフィードバック情報を反映して、前記ソフトウェアのための品質検査項目を設定する段階を含んでよい。
【0021】
前記品質検査範囲検出方法を前記コンピュータ装置に実行させるために非一時的なコンピュータ読み取り可能な記録媒体に記録される、コンピュータプログラムを提供する。
【0022】
前記品質検査範囲検出方法を前記コンピュータ装置に実行させるためのプログラムが記録されている、非一時的なコンピュータ読み取り可能な記録媒体を提供する。
【0023】
メモリに含まれるコンピュータ読み取り可能な命令を実行するように構成される少なくとも1つのプロセッサを含むコンピュータ装置であって、前記少なくとも1つのプロセッサは、人工知能モデルを利用したソースコードの変更事項分析によって、予め設定された品質検査項目のうちで前記ソースコードのための品質検査項目を設定することを特徴とする、コンピュータ装置を提供する。
【0024】
前記人工知能モデルは、ソースコードまたはソースコードの変更事項を学習することにより、前記予め設定された品質検査項目ごとにソースコードとの関係情報を確率値で出力するように構築されたものであってよい。
【0025】
前記ソースコードのための品質検査項目を設定するために、前記少なくとも1つのプロセッサにより、前記人工知能モデルが出力する前記ソースコードと前記予め設定された品質検査項目との関係情報に対する確率結果データに基づいて、前記予め設定された品質検査項目のうちで前記ソースコードの変更事項に対応する品質検査項目を設定して、前記ソフトウェアのための品質検査範囲を抽出してよい。
【0026】
前記ソースコードのための品質検査項目を設定するために、前記少なくとも1つのプロセッサにより、前記人工知能モデルが出力する前記ソースコードと前記予め設定された品質検査項目との関係情報に対する確率結果データを取得して、前記予め設定された品質検査項目それぞれに対応する確率結果データを表示してよい。
【発明の効果】
【0027】
人工知能モデルを利用したソースコードの変更事項分析によって必要な品質検査項目だけを設定することにより、品質検査にかかる時間と費用を減らし、品質検査の効率を高めることができる。
【0028】
品質検査者は、ソースコードにアクセスできない状況であっても、ソースコードの変更によるエラーを、ソースコード参照識別子を利用して報告することができる。ソフトウェア開発者は、ソースコード参照識別子を利用してエラーの原因を迅速に把握することができる。
【図面の簡単な説明】
【0029】
【
図1】一実施形態における、ネットワーク環境の一例を示した図である。
【
図2】一実施形態における、コンピュータ装置の一例を示したブロック図である。
【
図3】一実施形態における、コンピュータ装置が実行することができる方法の一例を示したフローチャートである。
【
図4】一実施形態における、人工知能モデルの学習動作を説明するためのフローチャートである。
【
図5】一実施形態における、人工知能モデルを利用して品質検査範囲を抽出する動作を説明するための図である。
【
図6】一実施形態における、ソースコードの変更事項分析によって出力される結果データを説明するための図である。
【
図7】一実施形態における、品質検査項目に出力される結果データを説明するための図である。
【
図8】一実施形態における、品質検査項目を視覚的表現で表示する動作を説明するための図である。
【発明を実施するための形態】
【0030】
以下、実施形態について、添付の図面を参照しながら詳しく説明する。
【0031】
実施形態では、品質検査項目を自動で設定する技術について説明する。
【0032】
本明細書で具体的に開示される事項を含む実施形態は、人工知能モデルを利用したソースコードの変更事項分析によって、予め設定された品質検査項目のうちでソースコードのための品質検査項目を自動で設定することができる。
【0033】
本発明の実施形態に係る品質検査範囲検出システムは、少なくとも1つのコンピュータ装置によって実現されてよく、本発明の実施形態に係る品質検査範囲検出方法は、品質検査範囲検出システムに含まれる少なくとも1つのコンピュータ装置によって実行されてよい。このとき、コンピュータ装置においては、一実施形態に係るコンピュータプログラムがインストールされて実行されてよく、コンピュータ装置は、実行されるコンピュータプログラムの制御にしたがって実施形態に係る品質検査範囲検出方法を実行してよい。上述したコンピュータプログラムは、コンピュータ装置と結合して品質検査範囲検出方法をコンピュータに実行させるために、コンピュータ読み取り可能な記録媒体に記録されてよい。
【0034】
図1は、本発明の一実施形態における、ネットワーク環境の例を示した図である。
図1のネットワーク環境は、複数の電子機器110、120、130、140、複数のサーバ150、160、およびネットワーク170を含む例を示している。このような
図1は、発明の説明のための一例に過ぎず、電子機器の数やサーバの数が
図1のように限定されることはない。また、
図1のネットワーク環境は、本実施形態に適用可能な環境のうちの一例を説明したものに過ぎず、本実施形態に適用可能な環境が
図1のネットワーク環境に限定されることはない。
【0035】
複数の電子機器110、120、130、140は、コンピュータ装置によって実現される固定端末や移動端末であってよい。複数の電子機器110、120、130、140の例としては、スマートフォン、携帯電話、ナビゲーション、PC(personal computer)、ノート型PC、デジタル放送用端末、PDA(Personal Digital Assistant)、PMP(Portable Multimedia Player)、タブレットなどがある。一例として、
図1では、電子機器110の例としてスマートフォンを示しているが、本発明の実施形態において、電子機器110は、実質的に無線または有線通信方式を利用し、ネットワーク170を介して他の電子機器120、130、140および/またはサーバ150、160と通信することのできる多様な物理的なコンピュータ装置のうちの1つを意味してよい。
【0036】
通信方式が限定されることはなく、ネットワーク170が含むことのできる通信網(一例として、移動通信網、有線インターネット、無線インターネット、放送網)を利用する通信方式だけではなく、機器間の近距離無線通信が含まれてもよい。例えば、ネットワーク170は、PAN(personal area network)、LAN(local area network)、CAN(campus area network)、MAN(metropolitan area network)、WAN(wide area network)、BBN(broadband network)、インターネットなどのネットワークのうちの1つ以上の任意のネットワークを含んでよい。さらに、ネットワーク170は、バスネットワーク、スターネットワーク、リングネットワーク、メッシュネットワーク、スター-バスネットワーク、ツリーまたは階層的ネットワークなどを含むネットワークトポロジのうちの任意の1つ以上を含んでもよいが、これらに限定されることはない。
【0037】
サーバ150、160それぞれは、複数の電子機器110、120、130、140とネットワーク170を介して通信して命令、コード、ファイル、コンテンツ、サービスなどを提供する1つ以上のコンピュータ装置によって実現されてよい。例えば、サーバ150は、ネットワーク170を介して接続した複数の電子機器110、120、130、140にサービス(一例として、品質検査範囲検出サービスなど)を提供するシステムであってよい。
【0038】
図2は、本発明の一実施形態における、コンピュータ装置の例を示したブロック図である。上述した複数の電子機器110、120、130、140それぞれやサーバ150、160それぞれは、
図2に示したコンピュータ装置200によって実現されてよい。
【0039】
このようなコンピュータ装置200は、
図2に示すように、メモリ210、プロセッサ220、通信インタフェース230、および入力/出力インタフェース240を含んでよい。メモリ210は、コンピュータ読み取り可能な記録媒体であって、RAM(random access memory)、ROM(read only memory)、およびディスクドライブのような永続的大容量記録装置を含んでよい。ここで、ROMやディスクドライブのような永続的大容量記録装置は、メモリ210とは区分される別の永続的記録装置としてコンピュータ装置200に含まれてもよい。また、メモリ210には、オペレーティングシステムと、少なくとも1つのプログラムコードが記録されてよい。このようなソフトウェア構成要素は、メモリ210とは別のコンピュータ読み取り可能な記録媒体からメモリ210にロードされてよい。このような別のコンピュータ読み取り可能な記録媒体は、フロッピードライブ、ディスク、テープ、DVD/CD-ROMドライブ、メモリカードなどのコンピュータ読み取り可能な記録媒体を含んでよい。他の実施形態において、ソフトウェア構成要素は、コンピュータ読み取り可能な記録媒体ではない通信インタフェース230を通じてメモリ210にロードされてもよい。例えば、ソフトウェア構成要素は、ネットワーク170を介して受信されるファイルによってインストールされるコンピュータプログラムに基づいてコンピュータ装置200のメモリ210にロードされてよい。
【0040】
プロセッサ220は、基本的な算術、ロジック、および入出力演算を実行することにより、コンピュータプログラムの命令を処理するように構成されてよい。命令は、メモリ210または通信インタフェース230によって、プロセッサ220に提供されてよい。例えば、プロセッサ220は、メモリ210のような記録装置に記録されたプログラムコードにしたがって受信される命令を実行するように構成されてよい。
【0041】
通信インタフェース230は、ネットワーク170を介してコンピュータ装置200が他の装置(一例として、上述した記録装置)と互いに通信するための機能を提供してよい。一例として、コンピュータ装置200のプロセッサ220がメモリ210のような記録装置に記録されたプログラムコードにしたがって生成した要求や命令、データ、ファイルなどが、通信インタフェース230の制御にしたがってネットワーク170を介して他の装置に伝達されてよい。これとは逆に、他の装置からの信号や命令、データ、ファイルなどが、ネットワーク170を経てコンピュータ装置200の通信インタフェース230を通じてコンピュータ装置200に受信されてよい。通信インタフェース230を通じて受信された信号や命令、データなどは、プロセッサ220やメモリ210に伝達されてよく、ファイルなどは、コンピュータ装置200がさらに含むことのできる記録媒体(上述した永続的記録装置)に記録されてよい。
【0042】
入力/出力インタフェース240は、入力/出力装置250とのインタフェースのための手段であってよい。例えば、入力装置は、マイク、キーボード、またはマウスなどの装置を、出力装置は、ディスプレイ、スピーカのような装置を含んでよい。他の例として、入力/出力インタフェース240は、タッチスクリーンのように入力と出力のための機能が1つに統合された装置とのインタフェースのための手段であってもよい。入力/出力装置250は、コンピュータ装置200と1つの装置で構成されてもよい。
【0043】
また、他の実施形態において、コンピュータ装置200は、
図2の構成要素よりも少ないか多くの構成要素を含んでもよい。しかし、大部分の従来技術的構成要素を明確に図に示す必要はない。例えば、コンピュータ装置200は、上述した入力/出力装置250のうちの少なくとも一部を含むように実現されてもよいし、トランシーバ、データベースなどのような他の構成要素をさらに含んでもよい。
【0044】
以下では、人工知能モデルを利用したソースコードの変更事項分析によって品質検査が必要な品質検査項目だけを抽出することで品質検査にかかる時間と費用を減らして効率を高めことができる、品質検査範囲検出方法および装置の具体的な実施形態について説明する。
【0045】
コンピュータ装置200のプロセッサ220は、以下の品質検査範囲検出方法を実行するための構成要素によって実現されてよい。実施形態によっては、プロセッサ220の構成要素は、選択的にプロセッサ220に含まれても除外されてもよい。また、実施形態によっては、プロセッサ220の構成要素は、プロセッサ220の機能の表現のために分離されても併合されてもよい。
【0046】
このようなプロセッサ220およびプロセッサ220の構成要素は、以下の品質検査範囲検出方法に含まれる段階を実行するようにコンピュータ装置200を制御してよい。例えば、プロセッサ220およびプロセッサ220の構成要素は、メモリ210が含むオペレーティングシステムのコードと、少なくとも1つのプログラムのコードとによる命令(instruction)を実行するように実現されてよい。
【0047】
ここで、プロセッサ220の構成要素は、コンピュータ装置200に記録されたプログラムコードが提供する命令にしたがってプロセッサ220によって実行される、互いに異なる機能(different functions)の表現であってよい。
【0048】
プロセッサ220は、コンピュータ装置200の制御と関連する命令がロードされたメモリ210から必要な命令を読み取ってよい。この場合、前記読み取られた命令は、プロセッサ220が以下で説明する段階を実行するように制御するための命令を含んでよい。
【0049】
以下で説明する品質検査範囲検出方法に含まれる段階は、図に示したものとは異なる順序で実行されてもよいし、段階のうちの一部が省略されたり追加の過程がさらに含まれたりしてもよい。
【0050】
図3は、一実施形態における、コンピュータ装置が実行することができる方法の一例を示したフローチャートである。
【0051】
段階310で、プロセッサ220は、人工知能モデルを利用したソースコードの変更事項分析によって、予め設定された品質検査項目のうちでソースコードのための品質検査項目を設定してよい。プロセッサ220は、ソフトウェアのソースコードと予め設定された品質検査項目を人工知能モデルに入力してよい。プロセッサ220は、人工知能モデルが出力するソースコードと予め設定された品質検査項目との関係情報に対する確率結果データに基づいて予め設定された品質検査項目のうちでソースコードの変更事項に対応する品質検査項目を設定して、ソフトウェアのための品質検査範囲を自動で抽出してよい。また、プロセッサ220は、人工知能モデルが出力するソースコードと予め設定された品質検査項目との関係情報に対する確率結果データを取得し、予め設定された品質検査項目それぞれに対応する確率結果データを表示して手動で品質検査範囲を調節するようにしてよい。例えば、プロセッサ220は、品質検査項目の追加、削除、およびフィルタリングを行ってよい。プロセッサ220は、ソースコードに変更事項がない場合には、品質検査が必要ない品質検査項目を消去してよく、ソースコードに変更事項がある場合には、ソースコードに変更事項がある品質検査項目だけをフィルタリングしてよく、予め設定された品質検査項目に対応しないソースコードの変更事項に対して新たな品質検査項目を追加するように提案してよい。プロセッサ220は、品質検査項目を追加するためのユーザインタフェースを提供してよく、提供されたユーザインタフェースへの品質検査者の品質検査項目名の入力によって新たな品質検査項目を追加してよい。これにより、設定された品質検査項目と関連してソースコードから変換された結果物(例えば、ソフトウェアプログラム)を利用して品質検査が行われることにより、短時間で品質検査を行うことができ、この精度を高めることができる。
【0052】
図4は、一実施形態における、人工知能モデルの学習動作を説明するためのフローチャートである。
【0053】
21世紀以降、人工知能技術は、統計学から出発した分類技術の性能を超え、画像認識、音声認識、自然言語処理において高い性能が実証されている。人工知能技術でデータを学習(training)する方式をモデルと言い、多様なアルゴリズム(例えば、ANN、CNN、DNN、GAN、RNNなど)で構成される。人工知能モデルは、データを利用して学習するために、関数層とパラメータ、エポック(epoch)を修正しながら最適値を探索する過程を実行することで最高の性能を発揮するモデルデータとして保存され、目的が類似するデータ処理に活用される。プロセッサ220は、人工知能モデルをパラメータと閾値で構成された複数の関数を層(layer)で重ねて構成し、正解と不正解があるデータセットを幾度にわたって学習させることで各関数の固有値を最適化することができる。
【0054】
プロセッサ220は、ソースコードまたはソースコードの変更事項を学習してよい(S410)。プロセッサ220は、人工知能モデルに設定されたパラメータと実行条件を利用して、ソースコードまたはソースコードの変更事項を学習してよい。プロセッサ220は、予め設定された品質検査項目ごとにソースコードとの関係情報を確率値で出力してよい(S420)。このとき、プロセッサ220は、人工知能モデルに入力データを入力する前に、前処理過程を実行してよい。例えば、プロセッサ220は、人工知能モデルに入力可能なデータに変換するために、すべての入力データを0と1の範囲に調整する正規化過程を実行してよい。また、プロセッサ220は、人工知能モデルから出力された結果データに対して別の加工方法を適用して後処理過程を実行してよい。このような前処理過程と後処理過程を経ることにより、プロセッサ220は、結果の正確度を高めることができる。また、プロセッサ220は、人工知能モデルが継続して発展して精度と速度を高め続けられるようにすることを考慮して、人工知能モデルの管理と人工知能モデルを実行するコンピュータリソースを管理してもよい。
【0055】
実施形態では、品質検査項目を自動で設定するための人工知能モデルを自己学習させる動作について説明したが、学習が外部でなされた人工知能モデルを適用することも可能である。
【0056】
図5は、一実施形態における、人工知能モデルを利用して品質検査範囲を抽出する動作を説明するための図である。
【0057】
プロセッサ220は、構成管理ツールからソースコード510の入力を受けてよい。プロセッサ220は、品質検査の対象となるソースコードを読み取り可能な形態に加工してよい。プロセッサ220は、ソースコードに対して、機械語に翻訳さてコンピュータで実行可能な形態に結果物を変換してよい。プロセッサ220は、ソースコードに、数字、文字、記号を含む予め設定された桁のソースコード参照識別子を付与してよい。これは、ソースコード参照識別子は、ソースコードを参照するように付与されるものであるためである。例えば、プロセッサ220は、ソースコード510またはソースコード510の変更事項の入力を受けた場合、ソースコード510または変更事項があるソースコード510にソースコード参照識別子を付与してよい。このとき、ソースコード参照識別子は、構成管理ツールから入力された識別子をそのままコピーして使用してもよいし、プロセッサ220で生成した固有の値が識別子として使用されてもよい。
【0058】
プロセッサ220は、構成管理ツールから品質検査項目520の入力を受けてよい。プロセッサ220は、品質検査項目を固有のデータ構造によってシステム内部で管理してよい。プロセッサ220は、品質検査項目に、数字、文字、記号を含む予め設定された桁の品質検査参照識別子を付与してよい。これは、品質検査参照識別子は、品質検査項目を参照するように付与されるものであるためである。このとき、品質検査参照識別子は、品質検査項目に予め付与された識別子が存在する場合には同じ識別子が使用されてよく、プロセッサ220で生成した固有値が識別子として使用されてもよい。
【0059】
プロセッサ220は、ソースコード510と予め設定された品質検査項目520を人工知能モデル530に入力してよい。プロセッサ220は、ソースコード510と予め設定された品質検査項目520を人工知能モデル530に入力可能な形態に加工し、加工されたソースコード510と予め設定された品質検査項目520を人工知能モデル530に入力してよい。例えば、人工知能モデル530は、1つのモデルまたは2つ以上のモデルで構成されるが、プロセッサ220は、1つのモデルで構成された人工知能モデル530を利用して、予め設定された品質検査項目520とソースコード510との関係情報に対する確率結果データを出力(段階540)してよい。2つ以上のモデルで構成された人工知能モデル530の場合、プロセッサ220は、それぞれのモデルから出力された、予め設定された品質検査項目とソースコードとの関係情報に対する結果データを集計して最終的な確率結果データを出力してよい。プロセッサ220は、出力された確率結果データに基づいて、ソースコード510に該当する予め設定された品質検査範囲を導き出してよい。
【0060】
プロセッサ220は、予め設定された品質検査項目520それぞれに対応する確率結果データを表示してよい。プロセッサ220は、予め設定された品質検査項目520それぞれに、人工知能モデル530から出力された予め設定された品質検査項目520とソースコード510との関係情報を示す確率結果データを表示してよい。プロセッサ220は、人工知能モデル530から出力された確率結果データに基づいて、ソースコード510に変更事項が存在するかどうかを判断(段階550)してよい。例えば、プロセッサ220は、人工知能モデル530から出力された確率結果データとソースコード510および予め設定された品質検査項目520とを比較して、ソースコード510に変更事項が存在するかどうかを判断してよい。プロセッサ220は、予め設定された品質検査項目520がソースコード510のどの点と連関しているかという関係情報を把握してよい。プロセッサ220は、予め設定された品質検査項目520のうちでソースコード510の変更事項に対応する品質検査項目を設定(段階560)してよい。プロセッサ220は、ソフトウェアのために含まれる品質検査範囲を抽出(段階570)してよい。
【0061】
実施形態において、人工知能モデルを利用して品質検査項目とソースコードとの関係情報に基づいたソースコードの変更事項の判断は、一種の静的分析の部類に属すると見なされるが、動的分析にも適用可能である。例えば、特定の品質検査項目を実行したときに、過去のバージョンとは異なり新たなバージョンで過度にコンピュータリソースが使用された場合には、品質検査項目と連携するソースコードの変更時点が原因であると見なされ、品質検査結果報告書に原因が説明されるようになってよい。
【0062】
図6は、一実施形態における、ソースコードの変更事項分析によって出力される結果データを説明するための図である。
【0063】
予め設定された品質検査項目610ごとに対応するソースコード参照識別子620が存在してもよい。ソースコード参照識別子620は、少なくとも1つ以上のソースコード630を参照するものであってよい。プロセッサ220は、予め設定された品質検査項目610それぞれに対応するソースコード630のソースコード参照識別子620に、ソースコードの変更状況を示す標識を追加してよい。プロセッサ220は、ソースコード参照識別子620に対する標識によってソースコード630の変更状況を表示してよい。例えば、プロセッサ220は、「*」標識を使用して、以前の品質検査でソースコードに変更が生じたことを表示してよい。プロセッサ220は、ソースコード630を参照するソースコード参照識別子620によって、ソースコード630を品質検査者に非表示にしてよい。
【0064】
プロセッサ220は、人工知能モデルが出力するソースコード630と予め設定された品質検査項目610との関係情報に対する確率結果データを取得してよい。プロセッサ220は、予め設定された品質検査項目610それぞれに対応する確率結果データを表示してよい。プロセッサ220は、確率結果データに基づいて品質検査の実施状況を提供してよい。例えば、プロセッサ220が、品質検査1(611)の確率結果データを99.9%、品質検査3(612)の確率結果データを1.3%と表示したとする。プロセッサ220は、品質検査1(611)の場合、ソースコード630の大部分に変更事項が存在すると判断して品質検査の実行が必要であるという通知してよく、品質検査3(612)の場合、ソースコード630の大部分に変更事項が存在しないと判断して品質検査の実行は必要ないという通知してよい。また、プロセッサ220は、ソースコード630に変更事項は存在するが予め設定された品質検査項目610に対応しないソースコード630に対しては、品質検査漏れ(613)と関連する情報を提供してよい。プロセッサ220は、品質検査者に品質検査項目を補強するように新たな品質検査項目の追加を提案してよい。例えば、プロセッサ220は、品質検査者に新たな品質検査項目を追加するようにメッセージを出力してよい。
【0065】
図7は、一実施形態における、品質検査項目に出力される結果データを説明するための図である。
【0066】
実施形態では、「メールでログイン可能」と「会員登録ボタンを押すと会員登録フォーマットを出力」というそれぞれの品質検査項目を例に挙げて説明する。以下、「メールでログイン可能」という品質検査項目を品質検査項目A(710)、「会員登録フォーマットを出力」という品質検査項目を品質検査項目B(720)と記載する。
【0067】
品質検査項目それぞれは、少なくとも1つ以上の品質検査段階を含み、各段階は、品質検査者または機械または自動化ソフトウェアによって実行されてよい。プロセッサ220は、品質検査項目それぞれに品質検査参照識別子701を付与してよい。
【0068】
例えば、品質検査項目A(710)には、電子メールでログインするための各段階の手順703が設定されていてよい。簡単に説明すると、品質検査項目A(710)は、ページに移動する1段階、メールアドレスを入力する2段階、パスワードを入力する3段階、ログインボタンを押す4段階、およびログイン成功状況を出力する結果で構成されてよい。
【0069】
また、品質検査項目B(720)には、会員登録ボタンを押す会員登録フォーマットを出力するための各段階の手順が設定されていてよい。簡単に説明すると、品質検査項目B(720)は、ページに移動する1段階、会員登録ボタンをクリックする2段階、会員登録ページを出力する3段階、および会員登録ページの表示状況を出力する結果で構成されてよい。
【0070】
プロセッサ220は、品質検査項目の一部領域705に、品質検査参照識別子701、ソースコードの変更状況および確率結果データ702を提供してよい。プロセッサ220は、予め設定された品質検査項目がソースコードの変更事項とどのくらいの関係性があるかを確率結果データ702で表示してよい。また、プロセッサ220は、品質検査項目それぞれに対応する確率結果データに基づいて、個別の品質検査項目の重要度または予め設定された尺度を表示してよい。例えば、プロセッサ220は、確率結果データと予め設定された基準との比較により、「あり/なし」で表現したり、確率結果データが含まれる予め設定された段階(例えば、3段階)によって信号機のように互いに異なる色で表現したりして、品質検査が必要な品質検査項目を提供してよい。品質検査者は、予め設定された品質検査項目に設定された各段階に対して品質検査を機械的に実施してよい。プロセッサ220は、予め設定された品質検査項目を構成する各段階のうちでソースコードの変更事項と密接に関連する段階を、ソースコードのソースコード参照識別子704で表示してよい。このようなソースコード参照識別子704により、品質検査者は、ソースコードを知らない状況(ブラックボックステスト)でも、プログラム開発者と円滑にコミュニケーションすることができるようになる。また、プロセッサ220は、ソースコード識別子をクリックしたときにソースコードを表示するリンクを提供することにより、ホワイトボックステストも可能となるように提供してもよい。
【0071】
また、プロセッサ220は、ソースコードの変更事項がある品質検査項目がある場合、ソースコードの変更事項がある品質検査項目を視覚的表現で表示してよい。プロセッサ220は、ソースコードの変更事項がある品質検査項目の背景情報を変更したり、個別の視覚的表現を追加したりしてよい。プロセッサ220は、ソースコードの変更事項がある品質検査項目の背景情報とソースコードの変更事項がない品質検査項目の背景情報が異なるように表示してよい。例えば、プロセッサ220は、品質検査項目A(710)と品質検査項目B(720)の背景色を異なるように表示してよい。または、ソースコードの変更事項がある品質検査項目が品質検査項目A(710)である場合、プロセッサ220は、品質検査項目A(710)について、絵文字やブロック情報などの視覚的表現を表示してよい。例えば、プロセッサ220は、品質検査項目A(710)について、ブロック数によって重要度を示すブロック情報を表示してよい。プロセッサ220は、予め設定された品質検査項目それぞれに対応する確率結果データに基づいて重要度を判定し、判定された重要度に対応するブロック数を含むブロック情報を品質検査項目A(710)について表示してよい。これと同様に、プロセッサ220は、予め設定された品質検査項目それぞれに対応する確率結果データに基づいて重要度を判定し、判定された重要度に対応する絵文字表情または予め設定された絵文字表情の個数を品質検査項目A(710)について表示してよい。これにより、品質検査者の視線を変更事項のある品質検査項目に集中させることができ、全体的な品質検査作業の効率を高めることができる。さらに、プロセッサ220は、ソースコードの変更がない理由も確率的に表示してよい。
【0072】
プロセッサ220は、品質検査項目の一部領域705にユーザインタフェース706を提供してよい。人工知能モデルから出力された確率結果データは数値的にしか表現されないため、不正確な結果が発生することがある。プロセッサ220は、人工知能モデルから出力された確率結果データに対するフィードバック情報を入力するためのユーザインタフェース706を提供し、提供されたユーザインタフェース706にユーザ(例えば、ソフトウェア開発者、品質検査者など)が入力したフィードバック情報を反映することにより、人工知能モデルの精度を高めるためのサポートを提供することができる。プロセッサ220は、フィードバック情報を反映して、ソフトウェアのための品質検査項目を設定してよい。
【0073】
図8は、一実施形態における、品質検査項目を視覚的表現で表示する動作を説明するための図である。
【0074】
プロセッサ220は、ソースコードの変更事項がある品質検査項目がある場合、ソースコードの変更事項がある品質検査項目について視覚的表現810を表示してよい。プロセッサ220は、ソースコードの変更事項がある品質検査項目の背景情報を変更したり、個別の視覚的表現を追加したりしてよい。プロセッサ220は、品質検査項目610の一部に視覚的表現を追加するための個別の領域を構成してよく、構成された個別の領域に視覚的表現810を追加的に表示してよい。または、プロセッサ220は、ソースコードの変更事項がある品質検査項目を視覚的表現810に置き換えて表示してもよい。例えば、プロセッサ220は、ソースコードの変更事項がある品質検査項目に特定の表示(例えば、アイコン)がオーバーレイされる視覚的表現810を追加してよい。プロセッサ220は、オーバーレイされた特定の表示にユーザが位置することにともない、ソースコードの変更と関連する追加の詳細情報830を提供してよい。プロセッサ220は、ソースコードの変更事項と関連する追加詳細情報830として、ソースコードまたは確率結果データを提供してよい。
【0075】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、および/またはハードウェア構成要素とソフトウェア構成要素との組み合わせによって実現されてよい。例えば、実施形態で説明された装置および構成要素は、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ、マイクロコンピュータ、FPGA(field programmable gate array)、PLU(programmable logic unit)、マイクロプロセッサ、または命令を実行して応答することができる様々な装置のように、1つ以上の汎用コンピュータまたは特殊目的コンピュータを利用して実現されてよい。処理装置は、オペレーティングシステム(OS)およびOS上で実行される1つ以上のソフトウェアアプリケーションを実行してよい。また、処理装置は、ソフトウェアの実行に応答し、データにアクセスし、データを記録、操作、処理、および生成してもよい。理解の便宜のために、1つの処理装置が使用されるとして説明される場合もあるが、当業者であれば、処理装置が複数個の処理要素および/または複数種類の処理要素を含んでもよいことが理解できるであろう。例えば、処理装置は、複数個のプロセッサまたは1つのプロセッサおよび1つのコントローラを含んでよい。また、並列プロセッサのような、他の処理構成も可能である。
【0076】
ソフトウェアは、コンピュータプログラム、コード、命令、またはこれらのうちの1つ以上の組み合わせを含んでもよく、望む動作をするように処理装置を構成したり、独立的または集合的に処理装置に命令したりしてよい。ソフトウェアおよび/またはデータは、処理装置に基づいて解釈されたり、処理装置に命令またはデータを提供したりするために、いかなる種類の機械、コンポーネント、物理装置、コンピュータ記録媒体または装置に具現化されてよい。ソフトウェアは、ネットワークによって接続されたコンピュータシステム上に分散され、分散された状態で記録されても実行されてもよい。ソフトウェアおよびデータは、1つ以上のコンピュータ読み取り可能な記録媒体に記録されてよい。
【0077】
実施形態に係る方法は、多様なコンピュータ手段によって実行可能なプログラム命令の形態で実現されてコンピュータ読み取り可能な媒体に記録されてよい。前記コンピュータ読み取り可能な媒体は、プログラム命令、データファイル、データ構造などを単独でまたは組み合わせて含んでよい。前記媒体に記録されるプログラム命令は、実施形態のために特別に設計されたものであってもよいし、コンピュータソフトウェアの当業者に公知された使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピーディスク、および磁気テープのような磁気媒体、CD-ROMおよびDVDのような光媒体、フロプティカルディスク(floptical disk)のような光磁気媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を記録して実行するように特別に構成されたハードウェア装置が含まれる。プログラム命令の例としては、コンパイラによって生成されるもののような機械語コードだけではなく、インタプリタなどを使用してコンピュータによって実行される高級言語コードを含む。
【0078】
以上のように、実施形態を、限定された実施形態および図面に基づいて説明したが、当業者であれば、上述した記載から多様な修正および変形が可能であろう。例えば、説明された技術が、説明された方法とは異なる順序で実行されたり、かつ/あるいは、説明されたシステム、構造、装置、回路などの構成要素が、説明された方法とは異なる形態で結合されたりまたは組み合わされたり、他の構成要素または均等物によって対置されたり置換されたとしても、適切な結果を達成することができる。
【0079】
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付の特許請求の範囲に属する。
【符号の説明】
【0080】
110、120、130、140:電子機器
150、160:サーバ
170:ネットワーク
【外国語明細書】