IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ベイジン バイドゥ ネットコム サイエンス アンド テクノロジー カンパニー リミテッドの特許一覧

特開2022-48088コードをテストするための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム
<>
  • 特開-コードをテストするための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム 図1
  • 特開-コードをテストするための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム 図2
  • 特開-コードをテストするための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム 図3
  • 特開-コードをテストするための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム 図4
  • 特開-コードをテストするための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム 図5
  • 特開-コードをテストするための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022048088
(43)【公開日】2022-03-25
(54)【発明の名称】コードをテストするための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラム
(51)【国際特許分類】
   G06F 11/36 20060101AFI20220317BHJP
【FI】
G06F11/36 188
【審査請求】有
【請求項の数】13
【出願形態】OL
【外国語出願】
【公開請求】
(21)【出願番号】P 2021107977
(22)【出願日】2021-06-29
(31)【優先権主張番号】202011362254.X
(32)【優先日】2020-11-27
(33)【優先権主張国・地域又は機関】CN
(71)【出願人】
【識別番号】514322098
【氏名又は名称】ベイジン バイドゥ ネットコム サイエンス テクノロジー カンパニー リミテッド
(74)【代理人】
【識別番号】110000914
【氏名又は名称】特許業務法人 安富国際特許事務所
(72)【発明者】
【氏名】ジャン, チュンラ
(72)【発明者】
【氏名】ルオ, タオ
(72)【発明者】
【氏名】ラン, シァン
(57)【要約】
【課題】コードをテストするための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラムの提供。
【解決手段】本出願はコードをテストするための方法、装置、電子機器及び記憶媒体を開示し、深層学習技術分野に関する。具体的な実施形態は、ユーザからのコード提出要求を受信したことに応答して、ユーザにより提出されたコードを確定するステップと、コードに対して統合テストを行い、予め設定された少なくとも一つのテストタスクを実行するステップと、少なくとも一つのテストタスクのエラー情報を取得するステップと、エラー情報が予め設定された条件を満たすと判定されたことに応答して、エラー情報に基づいて、早期警報情報を生成するステップと、早期警報情報を出力するステップと、を含む。本実施形態は巨大なCIタスク量の中でCIシステムの異常エラーを事前に警報し、CIシステムの安定性と正確性を向上させることができる。
【選択図】図2

【特許請求の範囲】
【請求項1】
ユーザからのコード提出要求を受信したことに応答して、前記ユーザにより提出されたコードを確定するステップと、
前記コードに対して統合テストを行い、予め設定された少なくとも一つのテストタスクを実行するステップと、
前記少なくとも一つのテストタスクのエラー情報を取得するステップと、
前記エラー情報が予め設定された条件を満たすと判定されたことに応答して、前記エラー情報に基づいて、早期警報情報を生成するステップと、
前記早期警報情報を出力するステップと、
を含むコードをテストするための方法。
【請求項2】
前記エラー情報が示すテストタスクごとに、該テストタスクの実行回数を確定するステップと、
該テストタスクの実行回数が第1所定閾値よりも小さいと判定されたことに応答して、該テストタスクのエラータイプ及び各エラータイプに対応するエラーの数を確定するステップと、
前記エラータイプが所定タイプであることと、前記所定タイプに対応するエラーの数が第2所定閾値よりも小さいこととが判定されたことに応答して、前記エラー情報が予め設定された条件を満たすと判定するステップと、をさらに含む請求項1に記載の方法。
【請求項3】
前記の、前記エラー情報に基づいて、早期警報情報を生成するステップは、
前記エラー情報が示すエラータイプの統計回数を取得するステップと、
前記統計回数を更新するステップと、
更新後の統計回数及び前記エラータイプに基づいて、前記早期警報情報を生成するステップと、を含む請求項1に記載の方法。
【請求項4】
前記エラー情報が予め設定された条件を満たすと判定されたことに応答して、前記エラー情報に基づいて、フォーマット化情報を生成するステップと、
前記フォーマット化情報を格納するステップと、をさらに含む請求項1に記載の方法。
【請求項5】
前記エラー情報が予め設定された条件を満たさないと判定されたことに応答して、前記エラー情報を前記ユーザに出力するステップをさらに含む請求項1に記載の方法。
【請求項6】
ユーザからのコード提出要求を受信したことに応答して、前記ユーザにより提出されたコードを確定するように構成されるコード取得ユニットと、
前記コードに対して統合テストを行い、予め設定された少なくとも一つのテストタスクを実行するように構成されるコードテストユニットと、
前記少なくとも一つのテストタスクのエラー情報を取得するように構成されるエラー取得ユニットと、
前記エラー情報が予め設定された条件を満たすと判定されたことに応答して、前記エラー情報に基づいて、早期警報情報を生成するように構成される早期警報生成ユニットと、
前記早期警報情報を出力するように構成される早期警報出力ユニットと、
を備える、コードをテストするための装置。
【請求項7】
前記エラー情報が示すテストタスクごとに、該テストタスクの実行回数を確定し、
該テストタスクの実行回数が第1所定閾値よりも小さいと判定されたことに応答して、該テストタスクのエラータイプ及び各エラータイプに対応するエラーの数を確定し、
前記エラータイプが所定タイプであることと、前記所定タイプに対応するエラーの数が第2所定閾値よりも小さいこととが判定されたことに応答して、前記エラー情報が予め設定された条件を満たすと判定する
ように構成される条件判定ユニットをさらに備える請求項6に記載の装置。
【請求項8】
前記早期警報生成ユニットは、さらに
前記エラー情報が示すエラータイプの統計回数を取得し、
前記統計回数を更新し、
更新後の統計回数及び前記エラータイプに基づいて、前記早期警報情報を生成するように構成される請求項6に記載の装置。
【請求項9】
前記エラー情報が予め設定された条件を満たすと判定されたことに応答して、前記エラー情報に基づいて、フォーマット化情報を生成し、
前記フォーマット化情報を格納する
ように構成される記憶ユニットをさらに備える請求項6に記載の装置。
【請求項10】
前記エラー情報が予め設定された条件を満たさないと判定されたことに応答して、前記エラー情報を前記ユーザに出力するように構成されるエラー出力ユニットをさらに備える請求項6に記載の装置。
【請求項11】
少なくとも一つのプロセッサと、前記少なくとも一つのプロセッサと通信可能に接続されたメモリとを備える、コードをテストするための電子機器であって、
前記メモリには、前記少なくとも一つのプロセッサによって実行可能な命令が格納されており、前記命令が前記少なくとも一つのプロセッサによって実行されると、前記少なくとも一つのプロセッサに請求項1~5のいずれか1項に記載の方法が実行される、電子機器。
【請求項12】
コンピュータ命令が格納されている非一時的コンピュータ可読記憶媒体であって、
前記コンピュータ命令は前記コンピュータに請求項1~5のいずれか1項に記載の方法を実行させるために用いられる非一時的コンピュータ可読記憶媒体。
【請求項13】
プロセッサによって実行されると、請求項1~5のいずれか1項に記載の方法が実行されるコンピュータプログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本出願は、コンピュータ技術分野に関し、具体的に深層学習技術分野に関し、特にコードをテストするための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラムに関する。
【背景技術】
【0002】
プロジェクトの開発と発表、継続的インテグレーション(Continuous Integration、CI)システムは重要な一環である。優れたプロジェクトは、コードを提供してもらうようにあらゆる分野の人々を引き付け、このときCIシステムの安定性は極めて重要である。CIシステムのタスクは一般的に多様で、テスト範囲が広い。ユーザにより提出されたコードの数が多く、各ユーザにより毎回提出されたコードはCIシステムにおけるタスクを通過する必要がある。CIタスクの失敗原因は多く、巨大なCIタスク量の中でこれらの異常エラーを事前に警報することは、CIシステムの安定性と正確性を向上させる重要な課題である。
【発明の概要】
【課題を解決するための手段】
【0003】
本出願は、コードをテストするための方法及び装置、電子機器、記憶媒体並びにコンピュータプログラムを提供する。
【0004】
第1の態様によれば、ユーザからのコード提出要求を受信したことに応答して、ユーザにより提出されたコードを確定するステップと、コードに対して統合テストを行い、予め設定された少なくとも一つのテストタスクを実行するステップと、少なくとも一つのテストタスクのエラー情報を取得するステップと、エラー情報が予め設定された条件を満たすと判定されたことに応答して、エラー情報に基づいて、早期警報情報を生成するステップと、早期警報情報を出力するステップと、を含むコードをテストするための方法を提供する。
【0005】
第2の態様によれば、ユーザからのコード提出要求を受信したことに応答して、ユーザにより提出されたコードを確定するように構成されるコード取得ユニットと、コードに対して統合テストを行い、予め設定された少なくとも一つのテストタスクを実行するように構成されるコードテストユニットと、少なくとも一つのテストタスクのエラー情報を取得するように構成されるエラー取得ユニットと、エラー情報が予め設定された条件を満たすと判定されたことに応答して、エラー情報に基づいて、早期警報情報を生成するように構成される早期警報生成ユニットと、早期警報情報を出力するように構成される早期警報出力ユニットとを備える、コードをテストするための装置を提供する。
【0006】
第3の態様によれば、少なくとも一つのプロセッサと、少なくとも一つのプロセッサと通信可能に接続されたメモリとを備える、コードをテストするための電子機器であって、メモリには、少なくとも一つのプロセッサによって実行可能な命令が格納されており、命令が少なくとも一つのプロセッサによって実行されると、少なくとも一つのプロセッサに第1の態様に記載の方法が実行される、電子機器を提供する。
【0007】
第4の態様によれば、コンピュータ命令が格納されている非一時的コンピュータ可読記憶媒体であって、上記コンピュータ命令は第1の態様に記載の方法をコンピュータに実行させるために用いられる非一時的コンピュータ可読記憶媒体を提供する。
【0008】
第5の態様によれば、プロセッサによって実行されると、第1の態様に記載の方法が実行されるコンピュータプログラムを提供する。
【0009】
本出願の技術によれば巨大なCIタスク量の中でCIシステムの異常エラーを事前に警報し、CIシステムの安定性と正確性を向上させることができる。
【0010】
なお、発明の概要に記載された内容は、本出願の実施形態のかなめとなる特徴又は重要な特徴を限定することを意図するものではなく、本出願の範囲を限定するものでもない。本出願の他の特徴は、以下の説明によって容易に理解されるであろう。
【0011】
図面は本出願をよりよく理解するために用いられ、本出願を限定するものではない。
【図面の簡単な説明】
【0012】
図1】本出願の一実施形態を適用可能な例示的なシステムアーキテクチャを示す図である。
図2】本出願に係るコードをテストするための方法の一実施形態を示すフローチャートである。
図3】本出願に係るコードをテストするための方法の一応用シーンを示す概略図である。
図4】本出願に係るコードをテストするための方法のもう一つの実施形態を示すフローチャートである。
図5】本出願に係るコードをテストするための装置の一実施形態を示す構造概略図である。
図6】本出願の実施形態に係るコードをテストするための方法を実装するための電子機器のブロック図である。
【発明を実施するための形態】
【0013】
以下は図面を参照して本出願の例示的な実施形態を説明し、ここでは理解に役立つため、本出願の実施形態の様々な詳細が記載されるが、これらは単なる例示的なものに過ぎない。従って、本出願の範囲及び要旨を逸脱しない限り、当業者が本明細書の実施形態に対して様々な変更や修正を行うことができることは自明である。なお、以下の説明では、明確化及び簡略化のため、公知の機能及び構成については説明を省略する。
【0014】
なお、矛盾しない限り、本出願における実施形態及び実施形態における特徴を互いに組み合わせることができる。以下、図面を参照しながら実施形態と組み合わせて本出願を詳細に説明する。
【0015】
図1は、本出願に係るコードをテストするための方法又はコードをテストするための装置の実施形態が適用可能な例示的なシステムアーキテクチャ100を示している。
【0016】
図1に示すように、システムアーキテクチャ100は、端末装置101、102、103、ネットワーク104、及びサーバ105を含んでもよい。ネットワーク104は、端末装置101、102、103とサーバ105の間で通信リンクを提供するための媒体として使用される。ネットワーク104は、有線、無線通信リンク又は光ファイバケーブルなどの様々なタイプの接続を含んでもよい。
【0017】
ユーザは、メッセージを送受信するために、端末装置101、102、103を使用してネットワーク104を介してサーバ105と情報のやり取りをすることができる。端末装置101、102、103には、コード提出用アプリケーション、ウェブページ閲覧アプリケーション、インスタントコミュニケーションツール、メールボックスクライアント、ソーシャルプラットフォームソフトウェアなどの様々な通信クライアントアプリケーションをインストールすることができる。
【0018】
端末装置101、102、103は、ハードウェアであってもよいし、ソフトウェアであってもよい。端末装置101、102、103は、ハードウェアである場合、表示画面を有するとともにコード入力をサポートする様々な電子機器であってもよく、スマートフォン、タブレットコンピュータ、ラップトップコンピュータ及びデスクトップコンピュータなどを含むが、これらに限定されない。端末装置101、102及び103は、ソフトウェアである場合、上記の電子機器にインストールされてもよい。それは、複数のソフトウェア又はソフトウェアモジュール(例えば、分散サービスを提供するためのもの)として実装されてもよく、又は単一のソフトウェア若しくはソフトウェアモジュールとして実装されてもよい。ここでは特に限定しない。
【0019】
サーバ105は、様々なサービスを提供するサーバであってもよく、例えば、ユーザが端末装置101、102、103を介して提出したコードをテストするバックグラウンドサーバであってもよい。バックグラウンドサーバは受信した提出要求を解析し、ユーザにより提出されたコードを確定し、且つコードをテストし、同時に処理結果(例えばテスト結果)を端末装置101、102、103にフィードバックすることができる。
【0020】
なお、サーバ105は、ハードウェアであってもよいし、ソフトウェアであってもよい。サーバ105は、ハードウェアである場合、複数のサーバから構成される分散サーバクラスターとしても、単一のサーバとしても実装可能である。サーバ105は、ソフトウェアである場合、複数のソフトウェア若しくはソフトウェアモジュール(例えば、分散サービスを提供するためのもの)として実装されてもよく、又は単一のソフトウェア若しくはソフトウェアモジュールとして実装されてもよい。ここでは特に限定しない。
【0021】
なお、本出願の実施形態によって提供されるコードをテストするための方法は、一般的にサーバ105によって実行される。それに応じて、コードをテストするための装置は一般的にサーバ105に設けられる。
【0022】
図1における端末装置、ネットワーク及びサーバの数は例示的なものに過ぎないことを理解すべきである。実装の必要性に応じて、端末装置、ネットワーク及びサーバの数を任意に加減してもよい。
【0023】
次に、本出願に係るコードをテストするための方法の一実施形態のフロー200を示す図2を参照する。この実施形態のコードをテストするための方法は、ステップ201~205を含む。
【0024】
ステップ201では、ユーザからのコード提出要求を受信したことに応答して、ユーザにより提出されたコードを確定する。
【0025】
本実施形態では、コードをテストするための方法の実行主体(例えば、図1に示すサーバ105)は、ユーザにより使用される端末装置を介して送信されたコード提出要求を受信することができる。上記コード提出要求は、ユーザの識別子、提出時刻、提出されたコードなどの情報を含んでもよい。具体的には、ユーザは、端末装置にインストールされたコード提出ソフトウェアを介して実行主体にコード提出要求を送信してもよい。実行主体は上記コード提出要求を受信した後、コード提出要求を解析し、ユーザにより提出されたコードを確定してもよい。
【0026】
ステップ202では、コードに対して統合テストを行い、予め設定された少なくとも一つのテストタスクを実行する。
【0027】
実行主体は、ユーザにより提出されたコードを確定した後、CIシステムの少なくとも一つのテストタスクを実行するためにコードに対して統合テストを行ってもよい。具体的には、実行主体はコンパイルプラットフォーム(例えば、PaddlePaddle、PaddlePaddleはフライパドルとも呼ばれ、バイドゥ社の数年の深層学習技術研究と業務アプリケーションを基礎とし、中国の最初のオープンソースオープン、技術リード、機能完備の産業レベルの深層学習プラットフォームである)を呼び出して上記コードに対して統合テストを行ってもよい。このように、上記コードは、予め設定された少なくとも一つのテストタスクを実行することができる。上記テストタスクは、技術者により実際のプロジェクトに応じて設定されてもよい。ユーザのコードが上記テストタスクのいずれにも成功した場合、コードベースに組み込まれることができる。
【0028】
いくつかの特定のアプリケーションでは、上記の各テストタスクは特定のコード及び名称を有する。各テストタスクの実行に成功した後、成功メッセージが出力される。各テストタスクの実行に失敗した場合、エラー情報が出力される。実行主体が成功メッセージを受信した場合、ユーザのコードに問題がなく、テストタスクにも問題がないことを意味する。
【0029】
ステップ203では、少なくとも一つのテストタスクのエラー情報を取得する。
【0030】
実行主体は、各テストタスクの実行完了後に、各テストタスクのエラー情報を取得してもよい。具体的には、実行主体は、タスクの実行中に生成されたログからエラー情報を取得してもよい。あるいは、実行主体は、テストタスクスクリプトにおいて技術者によって事前に設定されたイベントトラッキング(event tracking)を実行することによってエラー情報を取得してもよい。上記エラー情報は、エラータイプ、エラーの詳細情報(例えば、エラーに対応するコードなど)を含んでもよい。
【0031】
ステップ204では、エラー情報が予め設定された条件を満たすと判定されたことに応答して、エラー情報に基づいて、早期警報情報を生成する。
【0032】
実行主体は、エラー情報を取得した後、エラー情報が予め設定された条件を満たすか否かを判定してもよい。上記予め設定された条件には、エラーが発生した時間が所定の期間内にあること、エラータイプが予め設定された種類に属すること、エラーに対応するコードが異常コードであることなどが含まれるが、これらに限定されない。エラー情報が予め設定された条件を満たす場合、実行主体はエラー情報に基づいて、早期警報情報を生成することができる。具体的には、実行主体はエラー情報を直接早期警報情報としてもよい。あるいは、実行主体は、まず、エラー情報のうちのエラータイプを判定し、次に当該エラータイプのエラーの発生回数をカウントし、当該エラータイプのエラーの発生回数が閾値を超えた場合、エラータイプを早期警報情報としてもよい。
【0033】
ステップ205では、早期警報情報を出力する。
【0034】
実行主体は、早期警報情報を生成した後、早期警報情報を出力してもよい。ここでの出力は、コードを提出したユーザではなく、プロジェクトの担当者に出力してもよい。このようにして、プロジェクトの担当者は、上記の早期警報情報に基づいて、CIシステムを的確に調査することができる。
【0035】
次に、図3を参照する。図3は、本出願に係るコードをテストするための方法の一応用シーンを示す概略図である。図3の応用シーンにおいて、サーバ301は、ユーザにより端末装置302を介して提出されたコードを受信し、コードに対して統合テストを行った後、各テストタスクのエラー情報を取得することができる。上記エラー情報は次の表1に示される。実行主体は、EXCODEを解析することにより、エラータイプがユニットテストエラーであり、エラー回数が3回未満であると判定した場合、現在のエラーは、組み込まれたコード、CI機器又はネットワークの原因によるエラーである可能性があると考えられる。CIシステムの担当者に上記の原因に基づく問題の調査を促すために、担当者が使用する端末装置303に早期警報情報を出力することができる。
【0036】
【表1】
【0037】
本出願の上記実施形態に係るコードをテストするための方法は、エラー情報が予め設定された条件を満たす場合、早期警報情報を生成することができ、巨大なCIタスク量の中でCIシステムの異常エラーを早期警報することが達成され、CIシステムの安定性と正確性を向上させることができる。
【0038】
次に、本出願に係るコードをテストするための方法のもう一つの実施形態のフロー400を示す図4を参照する。図4に示すように、本実施形態に係るコードをテストするための方法はステップ401~408を含んでもよい。
【0039】
ステップ401では、ユーザからのコード提出要求の受信に応答して、ユーザにより提出されたコードを確定する。
【0040】
ステップ402では、コードに対して統合テストを行い、予め設定された少なくとも一つのテストタスクを実行する。
【0041】
ステップ403では、少なくとも一つのテストタスクのエラー情報を取得する。
【0042】
ステップ404では、エラー情報が示すテストタスクごとに、該テストタスクの実行回数を確定し、該テストタスクの実行回数が第1所定閾値よりも小さいと判定されたことに応答して、該テストタスクのエラータイプ及び各エラータイプに対応するエラーの数を確定し、エラータイプが所定タイプであることと、所定タイプに対応するエラーの数が第2所定閾値よりも小さいこととが判定されたことに応答して、エラー情報が予め設定された条件を満たすと判定する。
【0043】
実行主体はエラー情報を取得した後、エラー情報を解析し、エラー情報が示す各テストタスクを判定することができる。例えば、エラー情報は、テストタスク1のエラー情報を含んでもよいし、テストタスク2のエラー情報を含んでもよい。テストタスクごとに、実行主体は該テストタスクの実行回数を特定することができる。実行主体は、テストタスクの識別子、実行時間又は他の関連情報によって、テストタスクの実行回数を特定することができる。通常、ユーザは、最初の失敗の後、自分のコードの原因かCIシステムの原因かを判定できないので、手動でこのタスクを再実行することがある。実行回数が2回以上の場合、該テストタスクが繰り返し実行されたことを示す。一般的に、同一のテストタスクが何度も繰り返し実行されてもエラーが発生する場合、ほとんどがユーザのコード自体の問題である。
【0044】
実行主体は、該テストタスクが繰り返し実行されていないと判定し、すなわちその実行回数が1回であると判定した場合、さらに該テストタスクのエラータイプを判定することができる。具体的には、実行主体は、タスクログを取得し、タスクログにおけるエラーに関する情報に基づいて、エラータイプを特定することができる。ここで、エラータイプとしては、ユニットテストの失敗、ユニットテストのカバー率の不足、コンパイルの失敗などが挙げられる。
【0045】
実行主体は、エラータイプを特定した後、所定タイプであるか否かを判定してもよい。ここでの所定タイプは、例えば、ユニットテストの失敗であってもよい。所定タイプである場合、さらに該エラータイプに対応するエラーの数を判定してもよい。エラーの数が第2所定閾値、例えば20より大きい場合、基本的にユーザのコード自体の問題であると判定できる。エラーの数が第2所定閾値未満である場合、エラーを統計する必要があると見なされ、この時点でエラー情報が予め設定された条件を満たすと見なされる。
【0046】
ステップ405では、エラー情報が予め設定された条件を満たすと判定されたことに応答して、エラー情報が示すエラータイプの統計回数を取得し、統計回数を更新し、更新後の統計回数及びエラータイプに基づいて、早期警報情報を生成する。
【0047】
本実施形態では、実行主体は、エラー情報が予め設定された条件を満たすと判定した後、エラー情報が示すエラータイプの統計回数を特定してもよい。上記統計回数は、エラー情報を解析することにより得られる。統計回数はデータベースに格納され得る。実行主体は、データベースを読み取ることによって上記統計回数を取得することができる。そして、上記統計回数を更新してもよい。ここで、更新とは、統計回数を1増加させることであってもよい。実行主体は、更新後の統計回数及びエラータイプに基づいて、早期警報情報を生成することができる。具体的には、実行主体は、更新後の統計回数及びエラータイプを直接早期警報情報として使用してもよい。
【0048】
なお、データベースに格納されている統計回数が単一のユーザと関連している場合、実行主体は、各ユーザに対応する当該エラータイプの統計回数の中から最大値を確定して当該エラータイプの最終統計回数としてもよい。
【0049】
ステップ406では、早期警報情報を出力する。
【0050】
ステップ407では、エラー情報が予め設定された条件を満たすと判定されたことに応答して、エラー情報に基づいて、フォーマット化情報を生成し、フォーマット化情報を格納する。
【0051】
実行主体は、エラー情報が予め設定された条件を満たすと判定された場合に、エラー情報に基づいて、フォーマット化情報を生成することができる。具体的には、実行主体はエラー情報から上記表1中の情報を抽出し、フォーマット化情報を得ることができる。そして、実行主体は、上記フォーマット化情報を格納することができる。
【0052】
ステップ408では、エラー情報が予め設定された条件を満たさないと判定されたことに応答して、エラー情報をユーザに出力する。
【0053】
本実施形態では、実行主体は、エラー情報が予め設定された条件を満たさないと判定された場合、上記エラーがユーザのコード自体に起因するものであると判定できる。この場合、実行主体は、エラー情報をユーザに出力してもよい。
【0054】
CIシステムの担当者が上記エラーに対して検査やエラー排除を行うことに役立つために、本出願の上記実施形態に係るコードをテストするための方法は、条件を満たすエラー情報が示すエラーを統計して早期警報情報を出力することができる。同時に、ユーザが自分でチェックするために、ユーザのコード自体によるエラーをユーザに出力することもできる。
【0055】
さらに図5を参照すると、上記の各図に示された方法の実施態様として、本出願は、コードをテストするための装置の一実施形態を提供し、当該装置の実施形態は、図2に示された方法の実施形態に対応しており、当該装置は、具体的に様々な電子機器に適用することができる。
【0056】
図5に示すように、本実施形態に係るコードをテストするための装置500は、コード取得ユニット501と、コードテストユニット502と、エラー取得ユニット503と、早期警報生成ユニット504と、早期警報出力ユニット505とを備える。
【0057】
コード取得ユニット501は、ユーザからのコード提出要求の受信に応答して、ユーザにより提出されたコードを確定するように構成される。
【0058】
コードテストユニット502は、コードに対して統合テストを行い、予め設定された少なくとも一つのテストタスクを実行するように構成される。
【0059】
エラー取得ユニット503は、少なくとも一つのテストタスクのエラー情報を取得するように構成される。
【0060】
早期警報生成ユニット504は、エラー情報が予め設定された条件を満たすと判定されたことに応答して、エラー情報に基づいて、早期警報情報を生成するように構成される。
【0061】
早期警報出力ユニット505は、早期警報情報を出力するように構成される。
【0062】
本実施形態のいくつかのオプション的な実施形態において、上記装置500は、エラー情報が示すテストタスクごとに、該テストタスクの実行回数を確定し、該テストタスクの実行回数が第1所定閾値よりも小さいと判定されたことに応答して、該テストタスクのエラータイプ及び各エラータイプに対応するエラーの数を確定し、エラータイプが所定タイプであることと所定タイプに対応するエラーの数が第2所定閾値よりも小さいと判定されたことに応答してエラー情報が予め設定された条件を満たすと判定するように構成される条件判定ユニット(図5に示されていない)をさらに備えてもよい。
【0063】
本実施形態のいくつかのオプション的な実施形態において、早期警報生成ユニット504はさらに、エラー情報が示すエラータイプの統計回数を取得し、統計回数を増分更新し、増分更新後の統計回数及びエラータイプに基づいて、早期警報情報を生成するように構成されてもよい。
【0064】
本実施形態のいくつかのオプション的な実施形態において、上記装置500は、エラー情報が予め設定された条件を満たすと判定されたことに応答して、エラー情報に基づいて、フォーマット化情報を生成し、フォーマット化情報を格納するように構成される記憶ユニット(図5に示されていない)をさらに備えてもよい。
【0065】
本実施形態のいくつかのオプション的な実施形態において、上記装置500はエラー情報が予め設定された条件を満たさないと判定されたことに応答して、エラー情報をユーザに出力するように構成されるエラー出力ユニット(図5に示されていない)をさらに備えてもよい。
【0066】
コードをテストするための装置500に列挙されたユニット501~ユニット505は、図2を参照して記述した方法の各ステップに対応することが理解されるべきである。したがって、上記の、コードをテストするための方法について記述した動作及び特徴は、同様に装置500及びその中に含まれるユニットに適用可能であり、ここではその説明を省略する。
【0067】
本出願の実施形態によれば、本出願はさらに電子機器及び読み取り可能な記憶媒体を提供する。
【0068】
図6に示すように、図6は、本出願の実施形態に係るコードをテストするための方法を実施するための電子機器のブロック図である。電子機器は、ラップトップコンピュータ、デスクトップコンピュータ、ワークステーション、パーソナルデジタルアシスタント、サーバ、ブレード型サーバ、メインフレームコンピュータ及びその他の適切なコンピュータ等の様々な形態のデジタルコンピュータを表す。また、電子機器は、個人デジタル処理、携帯電話、スマートフォン、ウェアラブル機器及びその他の類似するコンピューティングデバイス等の様々な形態のモバイルデバイスを表すことができる。なお、ここで示したコンポーネント、それらの接続関係、及びそれらの機能はあくまでも一例であり、ここで記述及び/又は要求した本出願の実施形態を限定することを意図するものではない。
【0069】
図6に示すように、該電子機器は、1つ又は複数のプロセッサ601、メモリ602、及び各コンポーネントを接続するためのインタフェース(高速インタフェース及び低速インタフェースを含む)を含む。各コンポーネントは、互いに異なるバスで接続されており、共通のマザーボード上に実装されていてもよいし、必要に応じて他の方式で実装されていてもよい。プロセッサは、電子機器内で実行される指令を処理することができ、前記指令は、インタフェースに結合された表示装置等の外部入出力装置にグラフィカルユーザインタフェース(GUI,Graphical User Interface)のグラフィック情報を表示するために、メモリ内又はメモリ上に格納される命令を含む。他の実施形態では、必要に応じて、複数のプロセッサ及び/又は複数のバスを、複数のメモリとともに使用することができる。また、複数の電子機器が接続されていてもよく、各機器は、例えば、サーバアレイ、ブレードサーバ群又はマルチプロセッサシステムなど、一部の必要な動作を提供する。図6では、1つのプロセッサ601を例としている。
【0070】
メモリ602は、本出願に係る非一時的コンピュータ可読記憶媒体である。ここで、前記メモリは、少なくとも一つのプロセッサにより実行可能な命令を格納しており、それにより前記少なくとも一つのプロセッサに本出願に係るコードをテストするための方法を実行させる。本出願の非一時的コンピュータ可読記憶媒体はコンピュータ命令を格納し、該コンピュータ命令はコンピュータに本出願に係るコードをテストするための方法を実行させるために用いられる。
【0071】
メモリ602は、非一時的コンピュータ可読記憶媒体として、非一時的ソフトウェアプログラム、非一時的コンピュータ実行可能なプログラム並びに、例えば本出願の実施形態に係るコードをテストするための方法に対応するプログラムコマンド/モジュール(例えば、図5に示すコード取得ユニット501、コードテストユニット502、エラー取得ユニット503、早期警報生成ユニット504及び早期警報出力ユニット505)などのモジュールを格納するために用いられてもよい。プロセッサ601は、メモリ602に格納された非一時的ソフトウェアプログラム、命令及びモジュールを実行することにより、サーバの各種機能アプリケーション及びデータ処理を実行し、すなわち上記方法の実施形態におけるコードをテストするための方法を実施する。
【0072】
メモリ602はオペレーティングシステム、少なくとも一つの機能に必要なアプリケーションを格納できるプログラム記憶領域と、コードをテストするための電子機器の使用に応じて作成されるデータ等を格納できるデータ記憶領域とを含み得る。また、メモリ602は高速ランダムアクセスメモリを含むことができ、また非一時的メモリ(例えば、少なくとも一つの磁気ディスク記憶装置、フラッシュメモリデバイス又はその他の非一時的ソリッドステート記憶装置)を含み得る。いくつかの実施形態において、メモリ602はオプションとしてプロセッサ601に対して遠隔に設置されたリモートメモリを含み、これらのリモートメモリはネットワークを介してコードをテストするための電子機器に接続され得る。上記ネットワークとしては、例えば、インターネット、企業イントラネット、ローカルエリアネットワーク、移動体通信網及びこれらの組み合わせなどが挙げられるが、これらに限定されない。
【0073】
コードをテストするための方法を実行する電子機器はさらに、入力装置603及び出力装置604を含み得る。プロセッサ601、メモリ602、入力装置603及び出力装置604は、バス又はその他の方式で接続されていてもよく、図6ではバスで接続されている例を示している。
【0074】
例えば、タッチパネル、キーパッド、マウス、トラックパッド、タッチパッド、ポインティングデバイス、1つ又は複数のマウスボタン、トラックボール、ジョイスティック等の入力装置603は、入力された数字や文字情報を受信し、コードをテストするための方法を実行する電子機器のユーザ設定及び機能制御に関連するキー信号の入力を生成することができる。出力装置604は表示装置、補助照明装置(例えば、LED)及び触覚フィードバック装置(例えば、振動モータ)等を含むことができる。該表示装置は、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ及びプラズマディスプレイを含むことができるが、これらに限定されない。いくつかの実施形態において、表示装置はタッチパネルであってもよい。
【0075】
ここで説明するシステム及び技術の各実施形態はデジタル電子回路システム、集積回路システム、専用集積回路(Application Specific Integrated Circuit,ASIC)、コンピュータハードウェア、ファームウェア、ソフトウェア、及び/又はそれらの組み合わせにおいて実装され得る。これらの様々な実施形態は、1つ又は複数のコンピュータプログラムに実装され、該1つ又は複数のコンピュータプログラムは少なくとも一つのプログラマブルプロセッサを含むプログラマブルシステムにおいて実行及び/又は解釈することができ、該プログラマブルプロセッサは専用又は汎用プログラマブルプロセッサであってもよく、記憶システム、少なくとも一つの入力装置及び少なくとも一つの出力装置からデータ及び命令を受信することができ、且つデータ及び命令を該記憶システム、該少なくとも一つの入力装置及び該少なくとも一つの出力装置に伝送することを含み得る。
【0076】
これらのコンピュータプログラムは、プログラム、ソフトウェア、ソフトウェアアプリケーション又はコードとも呼ばれ、プログラマブルプロセッサの機械命令を含み、且つ高度プロセス及び/又はオブジェクト指向のプログラミング言語、及び/又はアセンブリ言語/機械語を用いて実施することができる。ここで、「機械可読媒体」及び「コンピュータ可読媒体」という用語は、機械命令及び/又はデータをプログラマブルプロセッサに供給するための任意のコンピュータプログラム、装置、及び/又はデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブルロジックデバイス(PLD))を意味し、機械可読信号である機械命令を受信する機械可読媒体を含む。「機械可読信号」という用語は、機械命令及び/又はデータをプログラマブルプロセッサに供給するための任意の信号を意味する。
【0077】
ユーザとのやりとりを行うために、ここで記述するシステムと技術は、ユーザに情報を表示するための表示装置(例えば、陰極線管(Cathode Ray Tube,CRT)又はLCD(液晶ディスプレイ)モニタ)と、キーボード及びポインティングデバイス(例えば、マウス又はトラックボール)とを備えるコンピュータ上で実施することができ、ユーザが該キーボード及び該ポインティングデバイスを介してコンピュータに入力を提供できる。他の種類の装置もユーザとのやりとりを行うことに用いることができる。例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックであるいかなる形態のセンシングフィードバックであってもよく、且つ音入力、音声入力若しくは触覚入力を含むいかなる形態でユーザからの入力を受信してもよい。
【0078】
ここで記述したシステム及び技術は、バックグラウンドコンポーネントを含む演算システム(例えば、データサーバ)に実装されてもよく、又はミドルウェアコンポーネントを含む演算システム(例えば、アプリケーションサーバ)に実装されてもよく、又はフロントエンドコンポーネントを含む演算システム(例えば、グラフィカルユーザインタフェース又はウェブブラウザを有するユーザコンピュータ)に実装されてもよく、ユーザは該グラフィカルユーザインタフェース又はウェブブラウザを介してここで記述したシステム及び技術の実施形態とやりとりを行ってもよく、又はこのようなバックグラウンドコンポーネント、ミドルウェアコンポーネント又はフロントエンドコンポーネントのいずれかの組み合わせを含む演算システムに実装されてもよい。また、システムの各コンポーネントの間は、通信ネットワーク等の任意の形態又は媒体を介してデジタルデータ通信により接続されていてもよい。通信ネットワークとしては、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)及びインターネットなどを含む。
【0079】
コンピュータシステムは、クライアントとサーバとを含んでもよい。クライアントとサーバは、通常、互いに離れており、通信ネットワークを介してやりとりを行う。クライアントとサーバとの関係は、互いにクライアント-サーバの関係を有するコンピュータプログラムをそれぞれのコンピュータ上で動作することによって生成される。
【0080】
本出願の実施形態の技術的解決手段によれば、巨大なCIタスク量の中でCIシステムの異常エラーを早期警報し、CIシステムの安定性と正確性を向上させることができる。
【0081】
上述した様々な形態のフローを用いて、ステップを改めて並び替え、追加又は削除を行ってもよいことが理解されるべきである。例えば、本出願に記載された各ステップは、本出願に開示された技術方案の所望の結果が達成できる限り、並行して実行されてもよく、順番に実行されてもよく、異なる順序で実行されてもよい。本明細書はここで限定しない。
【0082】
上記具体的な実施形態は、本出願の保護範囲を限定するものではない。当業者であれば、設計要件及び他の要因に応じて、様々な修正、組み合わせ、サブコンビネーション、及び代替を行うことができることは理解される。本出願の精神及び原理内で行われたあらゆる補正、均等な置換及び改善などは、いずれも本出願の保護範囲内に含まれるべきである。

図1
図2
図3
図4
図5
図6
【外国語明細書】
Title of Invention

Figure 1
Figure 2
Figure 3
Figure 4
Figure 5
Figure 6