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

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

▶ 日立オートモティブシステムズ株式会社の特許一覧

特開2022-183757継続的インテグレーションシステム及び継続的インテグレーション方法
<>
  • 特開-継続的インテグレーションシステム及び継続的インテグレーション方法 図1
  • 特開-継続的インテグレーションシステム及び継続的インテグレーション方法 図2
  • 特開-継続的インテグレーションシステム及び継続的インテグレーション方法 図3
  • 特開-継続的インテグレーションシステム及び継続的インテグレーション方法 図4
  • 特開-継続的インテグレーションシステム及び継続的インテグレーション方法 図5
  • 特開-継続的インテグレーションシステム及び継続的インテグレーション方法 図6
  • 特開-継続的インテグレーションシステム及び継続的インテグレーション方法 図7
  • 特開-継続的インテグレーションシステム及び継続的インテグレーション方法 図8
  • 特開-継続的インテグレーションシステム及び継続的インテグレーション方法 図9
  • 特開-継続的インテグレーションシステム及び継続的インテグレーション方法 図10
  • 特開-継続的インテグレーションシステム及び継続的インテグレーション方法 図11
  • 特開-継続的インテグレーションシステム及び継続的インテグレーション方法 図12
  • 特開-継続的インテグレーションシステム及び継続的インテグレーション方法 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022183757
(43)【公開日】2022-12-13
(54)【発明の名称】継続的インテグレーションシステム及び継続的インテグレーション方法
(51)【国際特許分類】
   G06F 11/36 20060101AFI20221206BHJP
   G06F 8/70 20180101ALI20221206BHJP
【FI】
G06F11/36 164
G06F8/70
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2021091235
(22)【出願日】2021-05-31
(71)【出願人】
【識別番号】509186579
【氏名又は名称】日立Astemo株式会社
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】北島 智哉
(72)【発明者】
【氏名】竹内 豪
(72)【発明者】
【氏名】東嶋 重樹
【テーマコード(参考)】
5B042
5B376
【Fターム(参考)】
5B042HH17
5B042HH49
5B376BA03
5B376DA06
(57)【要約】
【課題】テストを実行するジョブを自動的に最適化する。
【解決手段】継続的インテグレーションシステムであって、ファイルの構成を管理する管理サーバと、前記管理サーバからの要求に従ってCIジョブの実行を実行マシンに依頼するCIサーバと、前記CIサーバからの要求に従って前記CIジョブを実行する実行マシンを備え、前記CIサーバは、パイプライン上のCIジョブの実行可否を判定する判定部と、前記判定部が実行可能と判定したCIジョブの実行要求を生成する実行部とを有することを特徴とする継続的インテグレーションシステム。
【選択図】図1
【特許請求の範囲】
【請求項1】
継続的インテグレーションシステムであって、
ファイルの構成を管理する管理サーバと、
前記管理サーバからの要求に従ってCIジョブの実行を実行マシンに依頼するCIサーバと、
前記CIサーバからの要求に従って前記CIジョブを実行する実行マシンを備え、
前記CIサーバは、
パイプライン上のCIジョブの実行可否を判定する判定部と、
前記判定部が実行可能と判定したCIジョブの実行要求を生成する実行部とを有することを特徴とする継続的インテグレーションシステム。
【請求項2】
請求項1に記載の継続的インテグレーションシステムであって、
前記判定部は、判定項目ごとの前記CIジョブの実行可否の判定結果に基づいて計算される判定指数が所定値以上の場合、当該CIジョブが実行可能と判定することを特徴とする継続的インテグレーションシステム。
【請求項3】
請求項2に記載の継続的インテグレーションシステムであって、
前記判定指数は、前記判定項目ごとの判定結果に重みづけ係数を乗じた値の合計値であることを特徴とする継続的インテグレーションシステム。
【請求項4】
請求項3に記載の継続的インテグレーションシステムであって、
前記重みづけ係数は、前記CIジョブの変更量に基づいて定められることを特徴とする継続的インテグレーションシステム。
【請求項5】
請求項3に記載の継続的インテグレーションシステムであって、
前記重みづけ係数は、前記CIジョブの最終変更時点からの経過時間に基づいて定められることを特徴とする継続的インテグレーションシステム。
【請求項6】
請求項3に記載の継続的インテグレーションシステムであって、
前記重みづけ係数は、前記CIジョブにおける関数コールに基づいて定められることを特徴とする継続的インテグレーションシステム。
【請求項7】
請求項3に記載の継続的インテグレーションシステムであって、
前記重みづけ係数同士の間に重みづけが設定されることを特徴とする継続的インテグレーションシステム。
【請求項8】
請求項2に記載の継続的インテグレーションシステムであって、
前記実行部は、前記CIジョブの判定指数が前記所定値以上となったCIジョブの実行要求を生成することを特徴とする継続的インテグレーションシステム。
【請求項9】
請求項2に記載の継続的インテグレーションシステムであって、
前記判定部は、前記判定指数にかかわらず、前記CIジョブを実行するか否かを判定するための必須判定項目に基づいて、前記CIジョブの実行可否を判定することを特徴とする継続的インテグレーションシステム。
【請求項10】
請求項1に記載の継続的インテグレーションシステムであって、
前記CIジョブは、インテグレーション及びソフトウェアテスト項目の定義を含むことを特徴とする継続的インテグレーションシステム。
【請求項11】
請求項10に記載の継続的インテグレーションシステムであって、
前記実行マシンは、回帰テストを含むソフトウェアテストを実行することを特徴とする継続的インテグレーションシステム。
【請求項12】
CIサーバが実行する継続的インテグレーション方法であって、
前記CIサーバは、
所定の処理を実行する演算装置と、前記演算装置がアクセス可能な記憶装置とを有し、
管理サーバからの要求に従ってCIジョブの実行を実行マシンに依頼するものであって、
前記継続的インテグレーション方法は、
パイプライン上のCIジョブの実行可否を判定する手順と、
前記判定する手順で実行可能と判定されたCIジョブの実行要求を生成する手順とを有することを特徴とする継続的インテグレーション方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は継続的インテグレーションシステムに関し、特における実行するCIジョブの自動選択方法およびパイプライン実行装置に関する。
【背景技術】
【0002】
継続的インテグレーション(Continuous Integration、以下CI)は、仕様変更に伴うソースファイルの頻繁な変更に対してビルド及びテストをその都度自動的に実行し、エラーを早期に発見し、修正できる開発手法である。CIによって、開発、テスト、リリースのサイクルが継続的に行われる仕組みが提供され、ソフトウェアの不具合を早期に発見し、対処し、品質を短期で向上させることが可能となる。従来のウォーターフォールに代表される開発手法では、一つの長い開発サイクルのために最終工程までビルド及びテストが実行されない。そのため、ビルドやテストの実行時にエラーが発生した場合、開発は最終工程であるために原因を解析するため多くの時間がかかるだけでなく、修正の際の手戻りが大きく、工数が増大する。一方のアジャイル的ソフトウェア開発によって開発サイクルが短いCIでは、その短いサイクルの中で都度ビルド及びテストを繰り返すため、エラーを早期に発見し、修正できる。また、開発初期の段階で仕様漏れや仕様違いに気が付くことができ、素早く修正できる。それにより従来の手法に比べ、リードタイムが削減でき、一定の品質を保つことが可能である。以下ではCIを構成するビルドやテストをジョブと呼び、ジョブを実行順に内包した集まりをパイプラインと呼ぶ。
【0003】
本技術分野の背景技術として、以下の先行技術がある。特許文献1(国際公開第2018/116460号)には、ソフトウェアのテストを管理するCIサーバと、ソフトウェアのテストを実行する計算クラスタと、を含む継続的インテグレーションシステムであって、CIサーバは、テストを実行するソフトウェアを受け付けて、リソース推定部が算出したリソースで計算クラスタにテストを実行させて、計算クラスタから実行結果を取得するCIサービス部と、テストに割り当てるリソースを推定するリソース推定部と、を有し、リソース推定部は、テストごとに一意となるテストIDを割り当てるテストID算出部と、テストIDごとに消費したリソースの情報を取得する結果取得部と、過去に実行したテストIDと取得したリソースの情報とを対応付けて格納する履歴情報と、履歴情報に基づいて、テストIDごとにテストの実行に必要なリソースを推定する推定部と、を含む継続的インテグレーションシステムが記載されている(要約参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】国際公開第2018/116460号
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に記載された従来のCIでは、定義されたパイプライン内のジョブがすべて実行される。しかし、その時の開発フェーズや入力されるファイルの完成度によっては、実行すべきでないジョブまで実行されるため、ジョブを実行するための計算機(以下、実行マシン)のリソースを浪費する。一方で、実行するジョブを選択するために、その都度パイプラインの構成や設定を手動で変更することは、開発者の負担が大きい。
【0006】
そこで、実行するジョブを自動的に最適化して、テストを実行することが求められている。
【課題を解決するための手段】
【0007】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、継続的インテグレーションシステムであって、ファイルの構成を管理する管理サーバと、前記管理サーバからの要求に従ってCIジョブの実行を実行マシンに依頼するCIサーバと、前記CIサーバからの要求に従って前記CIジョブを実行する実行マシンを備え、前記CIサーバは、パイプライン上のCIジョブの実行可否を判定する判定部と、前記判定部が実行可能と判定したCIジョブの実行要求を生成する実行部とを有することを特徴とする。
【発明の効果】
【0008】
本発明の一態様によれば、パイプラインへの入力ファイル群のうち実行するジョブを最適化できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
【図面の簡単な説明】
【0009】
図1】実施例1の継続的インテグレーションシステムの構成例を示すブロック図である。
図2】実施例1のバージョン管理サーバの機能の一例を示すブロック図である。
図3】実施例1の入力ファイル解析結果の構成例を示す図である。
図4】実施例1の入力ファイル解析部が実行する処理のフローチャートである。
図5】実施例1の判定項目の構成例を示す図である。
図6】実施例1の実行ジョブ判定部が実行する処理のフローチャートである。
図7】実施例1のジョブ実行判定閾値の構成例を示す図である。
図8】実施例1の実行ジョブ判定結果の構成例を示す図である。
図9】実施例1のCIサーバの構成例を示すブロック図である。
図10】実施例2のCIジョブの重みづけ係数の構成例を示す図である。
図11】実施例2の実行ジョブ判定部が実行する処理のフローチャートである。
図12】実施例3の必須判定項目表の構成例を示す図である。
図13】実施例3の実行ジョブ判定部が実行する処理のフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明を実施するための実施例について説明する。
【0011】
<実施例1>
図1は、継続的インテグレーションシステムの構成例を示すブロック図であり、図2は、バージョン管理サーバ40の機能の一例を示すブロック図である。
【0012】
継続的インテグレーションシステム(CIシステム)は、ファイルの構成を管理するバージョン管理サーバ40と、パイプライン72を構成するCIジョブ73-1~73-Nのうち実行するCIジョブを判定し、実行対象と判定されたCIジョブの実行をジョブ実行マシン群200に要求するCIサーバ70と、CIジョブ73-1~73-Nの処理を行う複数の実行マシン(計算機)211-1~211-Mからなるジョブ実行マシン群200から構成される。
【0013】
なお、CIジョブを個々に特定しない場合には、「-」以降の添字を省略した符号(例えば「73」)を使用する。また、他の構成要素の符号についても同様である。
【0014】
バージョン管理サーバ40は、ファイル群の構成を管理する機能を有し、ファイル群を管理するブランチ42と、複数のブランチ42を管理するリポジトリ41から構成される。
【0015】
本実施例のバージョン管理サーバ40は、ファイル群を管理するリポジトリ41を有する。リポジトリ41はブランチ42で区分されている。各ブランチ42は、プログラムのソースファイルからなるソースファイル群43と、CIジョブ73-1~73-Nの処理を記述したCIジョブ用スクリプト44-1~44-NからなるCIジョブ用スクリプト群44と、判定項目1~判定項目Nを記載した判定項目群45と、パイプラインを構成するCIジョブを記述したパイプライン構成46を管理する。
【0016】
CIサーバ70は、実行するCIジョブ73を決めるための情報を抽出する入力ファイル解析部80と、CIジョブ73を実行するかを判定する実行ジョブ判定部90と、実行ジョブ判定結果91とパイプライン72の構成に基づいてCIジョブ73の実行を管理するCIジョブ実行部71から構成される。
【0017】
ユーザ端末2は、ユーザ1によって入力された入力ファイル群20をバージョン管理サーバ40へ送信する。バージョン管理サーバ40は受信した入力ファイル群20をリポジトリ41上のブランチ42へ格納する。
【0018】
バージョン管理サーバ40は、受信した入力ファイル群20とブランチ42に格納されたソースファイル群43との間に差分が存在する場合、ファイル更新情報50とパイプライン入力ファイル51をCIサーバ70へ送信する。パイプライン入力ファイル51は、ブランチ42内の全てのファイルであるソースファイル群43と、CIジョブ用スクリプト群44と、判定項目群45と、パイプライン構成46を含む。CIジョブ用スクリプト群44の各ジョブは、ジョブを結合するためのインテグレーション及びソフトウェアテスト項目の定義を含む。ファイル更新情報50は、入力ファイル群20うちソースファイル群43で更新があったファイルの情報を含む。
【0019】
CIサーバ70がファイル更新情報50とパイプライン入力ファイル51をバージョン管理サーバ40から受信すると、入力ファイル解析部80がファイル更新情報50とパイプライン入力ファイル51に基づいてCIジョブ73-1~73-Nのうち、実行するCIジョブ73を決めるための情報を抽出し、入力ファイル解析結果81を実行ジョブ判定部90に出力する。
【0020】
入力ファイル解析結果81は、図3に示すように、判定項目1~Lの判定結果w1~wLを記録する。
【0021】
次に、実行ジョブ判定部90は、入力ファイル解析結果81に基づいてCIジョブ73-1~73-Nのうち、実行するCIジョブ73を決め、実行ジョブ判定結果91をCIジョブ実行部71に出力する。CIジョブ実行部71は、実行ジョブ判定結果91とパイプライン構成46に基づいて、実行が必要ないジョブを除外した実行ジョブをパイプラインのフレームに構築し、実行対象と判定されたCIジョブ73の実行をジョブ実行マシン群200に依頼する。
【0022】
CIジョブ実行部71は、実行対象と判定されたCIジョブ73の処理を記述したCIジョブ用スクリプト112と、処理に必要な入力ファイル111と、ジョブ実行要求110をジョブ実行マシン群200へ送信する。すなわち、CIジョブ実行部71は、パイプライン入力ファイル51から非実行ジョブを除外し、パイプラインのフレームに実行ジョブを構築して、ジョブ実行要求110を構築する。ジョブ実行要求110は、ジョブ実行マシン群200の中から一意に選択された、CIジョブ73を実行可能な実行マシンの情報を含む。
【0023】
選択された実行マシン211は、CIジョブ用スクリプト112を用いて入力ファイル111をCIジョブ73として、回帰テストを含むソフトウェアテストを実行し、処理の結果をジョブ実行結果100としてCIサーバ70に送信する。
【0024】
CIサーバ70は、ジョブ実行マシン群200からジョブ実行結果100を受信すると、パイプライン実行結果60をバージョン管理サーバ40へ送信する。
【0025】
以上に説明したように、本実施例のCIサーバ70は、実行するCIジョブ73を取捨選択し、自動的に最適化することによって、実行マシン211のリソースを削減できる。また、実行するCIジョブ73の最適化によって、構成されるパイプラインの実行が完了するまでの時間も短縮できる。
【0026】
図4は、入力ファイル解析部80が実行する処理のフローチャートである。
【0027】
入力ファイル解析部80は、パイプライン入力ファイル51を受け取ると、パイプライン入力ファイル51を解析し、判定項目i=1から順に(301)、予め定められた判定項目i=1~Lのそれぞれが満たされているか判定する(302)。そして、判定項目iが満たされていれば判定結果wiに1を設定し(303)、判定項目iが満たされていなければ判定結果wiに0を設定する(304)。判定項目iの判定が終わったら、パラメータiに1を加算し(305)、パラメータiが最大値Lより大きいかを判定する(306)。パラメータiが最大値L以下であれば、ステップ302に戻り次の判定項目の処理を続ける。一方、パラメータiが最大値Lより大きければ、全ての判定項目の処理が終了したので、入力ファイル解析結果81を、実行ジョブ判定部90に出力する。
【0028】
CIサーバ70は、判定項目を有する。判定項目は、図5に例示するように、判定項目名、判定項目の内容、及び判定結果が関連付けられて記憶されている。例えば、判定項目1では、パイプライン入力ファイル51の行数が100行以上であればwi=1となり、パイプライン入力ファイル51の行数が100行より小さければwi=0となる。入力ファイル解析部80は、ファイル更新情報50とパイプライン入力ファイル51を受信すると、図4のフローチャートに従って、パイプライン入力ファイル51のうちファイル更新情報50に含まれる更新ファイルに対して、判定項目1:行数が100行以上か、判定項目2:更新回数が10回以上かを、最後の判定項目Lまで判定する。例えば、行数が60行であり、更新回数が3回である更新ファイルの判定結果は、図5に示すように全て0となる。この判定結果は、入力ファイル解析結果81に記載される。
【0029】
図6は、実行ジョブ判定部90が実行する処理のフローチャートである。
【0030】
あるCIジョブpを例にすると、CIジョブp=1から順に(311)、それぞれの判定項目に対応する判定結果である図3の入力ファイル解析結果81のw1~wLまでの総和を、CIジョブpのジョブ実行可否判定指数Vpを算出する。具体的には、CIジョブpのジョブ実行可否判定指数Vp=0に初期設定し(312)、判定項目の番号k=1に初期設定し(313)、ジョブ実行可否判定指数Vpに判定結果wkを加算する(314)。その後、パラメータkに1を加算し(315)、パラメータkと最大値Lを比較する(316)。パラメータkが最大値L以下であれば、ステップ314に戻り次の判定結果を加算する処理を続ける。一方、パラメータkが最大値Lより大きければ、CIジョブpのジョブ実行可否判定指数Vpと図7に示すジョブ実行判定閾値Tpを比較する(317)。実行ジョブ判定部90は、VpがTp以上であればCIジョブpが実行対象ジョブであると判定し、判定結果を図8の実行ジョブ判定結果に記載する(318)。一方、VpがTpより小さければCIジョブpが非実行対象ジョブであると判定し、判定結果を図8の実行ジョブ判定結果に記載する(319)。
【0031】
その後、パラメータpに1を加算し(320)、パラメータpが最大値N以下であれば(ステップ321でno)、ステップ312に戻り次のジョブの処理を続ける。一方、パラメータpが最大値Nより大きければ(ステップ321でyes)、処理を終了する。
【0032】
図9は、CIサーバ70の構成例を示すブロック図である。
【0033】
CIサーバ70は、プロセッサ11と、メモリ12と、ストレージ装置13と、ネットワーク装置14とを含む計算機である。
【0034】
メモリ12は、不揮発性の記憶素子であるROM及び揮発性の記憶素子であるRAMを含む。ROMは、不変のプログラム(例えば、BIOS)などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、プロセッサ11が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。メモリ12には、入力ファイル解析部80と、実行ジョブ判定部90と、CIジョブ実行部71がロードされて、プロセッサ11によって実行される。
【0035】
プロセッサ11は、メモリ12に格納されたプログラムを実行する演算装置である。プロセッサ11が、各機能部のプログラムに従って処理を実行することによって、所定の機能を提供する機能部として動作する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
【0036】
ネットワーク装置14には、ネットワーク15が接続される。ネットワーク15には、図1に示すバージョン管理サーバ40と、ジョブ実行マシン群200と、ユーザ端末2が接続されて、これらの装置は相互に通信できる。
【0037】
ストレージ装置13は、例えば、磁気記憶装置(HDD)、フラッシュメモリ(SSD)等の大容量かつ不揮発性の記憶装置である。また、ストレージ装置13は、プロセッサ11がプログラムの実行時に使用するデータ、及びプロセッサ11が実行するプログラムを格納する。すなわち、プログラムは、ストレージ装置13から読み出されて、メモリ12にロードされて、プロセッサ11によって実行されることによって、CIサーバ70の各機能を実現する。
【0038】
プロセッサ11が実行するプログラムは、リムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワーク15を介してCIサーバ70に提供され、非一時的記憶媒体である不揮発性のストレージ装置13に格納される。このため、CIサーバ70は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。
【0039】
CIサーバ70は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。例えば、各機能部は、各々別個の物理的又は論理的計算機上で動作するものでも、複数が組み合わされて一つの物理的又は論理的計算機上で動作するものでもよい。
【0040】
以上に説明したように、パイプラインへの入力ファイル群を解析し、解析結果を用いて、パイプライン中のジョブから実行すべきジョブを自動的に選択して、ジョブ実行要求をパイプラインを構築するので、パイプラインへの入力ファイル群のうち実行するジョブを最適化でき、実行マシンのリソースの浪費を抑制できる。さらに、パイプラインの実行完了までの時間を短縮できる。
【0041】
<実施例2>
実施例2では、実行ジョブ判定部90が実行する処理が、実施例1の実行ジョブ判定部90が実行する処理(図6)と、ステップ334で異なる。他の構成及び処理は前述した実施例1と同じなので、説明を省略する。
【0042】
実施例2では、図10に示すように、CIジョブ毎に判定項目1~判定項目Lの重みづけ係数ap1~apLが予め設定されている。重みづけ係数ap1~apLは実数である。例えば、変更量が多いCIジョブはテストの優先度が高く、重みづけ係数を高くするとよい。また、今まで重みづけ係数が低い又は最終変更時点からの経過時間が長く、長期間テストがされていないCIジョブの重みづけ係数を高くして、優先的にテストを行うとよい。また、関数コールはエラーの原因となる場合があり、関数コールを有するCIジョブの重みづけ係数を高くして、テストの優先度が高くするとよい。また、関連する重み付け係数同士に重み付けをして、ある重みづけ係数を決めると、他の重みづけ係数が自動的に決まるようにしてもよい。
【0043】
図11は、実施例2の実行ジョブ判定部90が実行する処理のフローチャートである。ステップ334では、実行ジョブ判定部90は、それぞれの判定項目に対応する判定結果w1~wLに重みづけ係数ap1~apLを乗じた値をジョブ実行可否判定指数Vpを加算する。
【0044】
実施例2では、ジョブによって判定項目の重要性が異なることに対応して重み付け係数を定めたので、ジョブごとに適切なテスト要否を判定できる。
【0045】
<実施例3>
実施例3では、判定項目の中に、当該判定項目が満たされない場合、ジョブ実行可否判定指数Vpにかかわらず、当該CIジョブを実行しないと判定するための必須判定項目を設けた点で異なる。他の構成及び処理は前述した実施例1と同じなので、説明を省略する。
【0046】
図12に示す必須判定項目表では、b11~bNLは0又は1が設定される。例えば、CIジョブpにおいて判定項目kが必須判定項目である場合、bpkは1となる。一方、CIジョブpにおいて判定項目kが必須判定項目でない場合、bpkは0となる。
【0047】
図13は、実施例3の実行ジョブ判定部90が実行する処理のフローチャートである。ステップ342では、CIジョブpの判定項目kが必須判定項目(つまり、bpk=1)であり、かつ判定項目kの判定結果wtが0のとき(ステップ342でyes)、CIジョブpは非実行対象と判定される(319)。
【0048】
なお、実施例3において、ステップ314に代えてステップ334(図11)を採用し、判定項目を重み付けしてもよい。また、必須判定項目によってCIジョブを非実行にすると判定したが、CIジョブを実行すると判定してもよい。
【0049】
実施例3では、ジョブによって判定項目の重要性が異なることに対応して必須判定項目を設けたので、ジョブごとに適切なテスト要否を判定できる。
【0050】
なお、本発明は前述した実施例に限定されるものではなく、添付した特許請求の範囲の趣旨内における様々な変形例及び同等の構成が含まれる。例えば、前述した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに本発明は限定されない。また、ある実施例の構成の一部を他の実施例の構成に置き換えてもよい。また、ある実施例の構成に他の実施例の構成を加えてもよい。また、各実施例の構成の一部について、他の構成の追加・削除・置換をしてもよい。
【0051】
また、前述した各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等により、ハードウェアで実現してもよく、プロセッサがそれぞれの機能を実現するプログラムを解釈し実行することにより、ソフトウェアで実現してもよい。
【0052】
各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記憶装置、又は、ICカード、SDカード、DVD等の記録媒体に格納することができる。
【0053】
また、制御線や情報線は説明上必要と考えられるものを示しており、実装上必要な全ての制御線や情報線を示しているとは限らない。実際には、ほとんど全ての構成が相互に接続されていると考えてよい。
【符号の説明】
【0054】
1 ユーザ
2 ユーザ端末
20 入力ファイル群
40 バージョン管理サーバ
41 リポジトリ
42 ブランチ
43 入力ファイル群
44 CIジョブスクリプト群
44-1~44-N CIジョブ用スクリプト
45 判定項目群
45-1~45-N 判定項目
46 パイプライン構成
50 ファイル更新情報
51 パイプライン入力ファイル
60 パイプライン実行結果
70 CIサーバ
71 CIジョブ実行部
72 パイプライン
73-1~73-N CIジョブ1~N
80 入力ファイル解析部
81 入力ファイル解析結果
90 実行ジョブ判定部
91 実行ジョブ判定結果
100 ジョブ実行結果
110 ジョブ実行要求
111 入力ファイル
112 CIジョブ用スクリプト
200 ジョブ実行マシン群
211-1~211-M 実行マシン
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13