JP5970617B2 - 開発支援システム - Google Patents
開発支援システム Download PDFInfo
- Publication number
- JP5970617B2 JP5970617B2 JP2015541720A JP2015541720A JP5970617B2 JP 5970617 B2 JP5970617 B2 JP 5970617B2 JP 2015541720 A JP2015541720 A JP 2015541720A JP 2015541720 A JP2015541720 A JP 2015541720A JP 5970617 B2 JP5970617 B2 JP 5970617B2
- Authority
- JP
- Japan
- Prior art keywords
- test
- program
- development
- support system
- test case
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3644—Software debugging by instrumenting at runtime
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Description
本発明は、ソフトウェア開発の技術に関し、特に、プログラムの不具合確認等のためのテストにおけるテストケースを抽出する開発支援システムに適用して有効な技術に関するものである。
ソフトウェアプログラム(以下では単に「プログラム」と記載する場合がある)には、人為的なミスによる不良が含まれている。プログラム製品の出荷に先立って、プログラムに含まれる不良を探索し、修正するために、テストが行われるのが一般的である。テストの実施は、例えば、テスト対象のプログラムに対してさまざまな条件を設定して実行するテスト用のプログラムであるテストケースを順次実行し、不具合を発生させることで、テスト対象のプログラムにおける不良の場所および原因を明らかにする。
さらに、例えば、テストケースの実行を自動的に行ったりするような、いわゆる継続的インテグレーション(CI:Continuous Integration)に係るツールや技術が普及してきている。CIを実現するツール等では、一般的に、複数人で開発されるプログラムは、中央の記憶サーバ上のリポジトリと呼ばれる記憶領域において集中的に管理される。そして、開発者が、開発したプログラムをリポジトリに登録するたびに、自動的にテストケースを実行し、登録されたプログラムに不良が存在しないかを調べることで、プログラムの品質確保が図られる。
また、リポジトリで管理されるプログラムのソースコードなどの関連物に対して、複数の開発者等が内容をチェックするレビューにより開発内容を承認するという仕組みが提供されているものがある。このような複数の開発者による共同開発やレビューによるソフトウェア開発の手法はソーシャルコーディングと呼ばれる。
一方、テストの実施に際しては、テストケースの量に伴い実行時間が増大するという課題が有る。プログラムの不良は、通常は特定の条件のみで発生するため、これを探索するには、あらゆる条件を想定した多数のテストケースを準備して実行する必要があることから、テストケースの実行に多くの時間を要する。
この課題に対して、例えば、特開2008−204405号公報(特許文献1)には、過去に行われたテストのテストケースについての情報を保存しておき、その情報と対象プログラムを解析して得られた依存関係を組み合わせることにより、プログラムを変更した箇所に応じて優先的にテストすべき部分を自動的に抽出してリグレッションテストを行う技術が記載されている。
また、特開2010−134643号公報(特許文献2)には、リポジトリにテストケースの属性として重要度および実行実績時間を保持させ、開発者からソース登録を受けたソース構成管理ツールからCIツールにソース変更の通知があったときに、CIツールから渡された変更ファイルの解析を行い、解析結果をリポジトリに格納し、CIツールから渡された実施重要度および実施時間閾値と、リポジトリに格納されたテストケースの重要度および実行実績時間とから実行すべきテストケースを選択する技術が記載されている。
上述した従来技術によるテスト方法は、いずれも、テストケースのうち重要なものに限定して実行することで、テストケースの実施に時間を要するという上記課題を解決しようとするものである。
しかしながら、従来技術によるテスト方法では、例えば、開発初期段階、中期段階、後期段階といったプログラムの開発状況や開発フェーズなどを考慮してテストケースを抽出することができない。また、テストを実施する操作者や、テスト実施の観点等といったテストの内容や実施状況などを考慮してテストケースを抽出することができない。
そこで本発明の目的は、プログラムの開発状況や、テストの状況などに応じて重要なテストケースを抽出する開発支援システムを提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、以下のとおりである。
本発明の代表的な実施の形態による開発支援システムは、1つ以上のテストケースの実行によりプログラムをテストする開発支援システムであって、前記プログラムおよび前記各テストケースをリポジトリに保持して管理する構成管理部と、前記テストケースを実行してテスト結果を前記リポジトリに格納するテスト実行部と、を有し、前記テストケースは、その種類の情報と関連付けて前記リポジトリにおいて管理され、前記構成管理部は、前記プログラムの開発状況を判定して、前記開発状況に基づいて前記各テストケースに優先度を設定し、前記テスト実行部は、前記優先度に基づいて、実行する前記テストケースを抽出するものである。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
すなわち、本発明の代表的な実施の形態によれば、プログラムの開発状況や、テストの状況などに応じて重要なテストケースを抽出することが可能となる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
上述したように、ネットワークを介して複数の開発者がプログラムの開発を行うソーシャルコーディングの環境において、テストの自動実行などのCIを実現するツール等が普及してきているが、自動実行とは言いながらも、膨大な数のテストケースを全て実行するには非常に時間がかかり非効率である。そこで、重要な部分のみに限定してテストケースを実行する、もしくは重要な部分を優先的に実行できるようにしたいという要望がある。
ここで、上述した特許文献等の従来技術では、テストケースのうち重要なものに限定して実行することで、テストケースの実施を効率化することができるものの、プログラムの開発状況や、テスト状況などを考慮することまではできていない。例えば、開発状況の考慮として、同一のプログラムにおいても、開発工程の進捗度(例えば、開発初期と開発後期との間など)や時間経過によるプログラム自体の成熟度に応じてテストしたい内容は異なり得る。また、プログラムに加えた修正を登録(コミット)する頻度が高い場合や修正量(差分)が小さい場合と、登録頻度が低い場合や修正差分が大きい場合との間でも、テストしたい内容は異なり得る。従来技術では、このような時間的観点を含む開発状況を考慮して重要度を判断するという観点が欠落している。
また、テスト状況の考慮として、同一のプログラムにおいても、例えば、開発者によるローカルでの単体テストと、プログラム統合による全体検証テストとの間では、テストしたい観点は異なり得る。従来技術では、このようなテスト実施の内容を考慮して重要度を判断するという観点が欠落している。
そこで、本発明の一実施の形態である開発支援システムは、ソーシャルコーディングの環境において、プログラムの開発状況や、テスト実施の観点に基づき、重要なテストケースを抽出し、あるいは優先的に実施できるようにするものである。これにより、膨大な数のテストケースを網羅的に全て実施することなく、効率的なテストの実施を可能とする。
図2は、上述した本発明の一実施の形態である開発支援システムが解決しようとする課題について概要を説明する図である。図中では、ソーシャルコーディングやバージョン管理、リポジトリ管理において、開発単位毎のプログラムを管理する領域であるブランチの分岐例と、ブランチにおいて開発したプログラムについての登録(コミット)の状況の例を左から右方向への時系列で示している。ここでは、メインブランチから開発者AおよびBのそれぞれが自身の開発のためのブランチを分岐させて作成し、開発が完了した後にメインブランチに統合(マージ)している状態を示している。
プログラムは、上述したように、開発用途や開発者などの単位で個別に設けられたブランチ上で管理される。図3は、ソーシャルコーディングにおけるブランチの作成例について概要を示した図である。図中では、マスタとなるプログラムが登録されているマスタブランチ401(ブランチ名“master”)に、“A.java”および“B.java”などのプログラム(ソースコード)が登録されていることを示している。新しいブランチは、任意のタイミングで作成することができ、例えば、既存のリポジトリをコピーすることで作成することができる。この場合、作成されたブランチは元のブランチから分岐したものとなる。なお、最初のブランチは新規に作成する。
図3の例では、マスタブランチ401から、開発用のメインブランチである開発用ブランチ402(ブランチ名“develop”)を分岐させて作成した状態を示している。さらに、開発用ブランチ402から、機能Aについての開発用のブランチである機能A開発用ブランチ403(ブランチ名“feature_A”)を分岐させて作成し、さらに、機能A開発用ブランチ403から、“XXX”という名称の開発者用のブランチである機能A開発者XXX用ブランチ404(ブランチ名“feature_A_XXX”)を分岐させて作成した状態を示している。
また、作成したブランチは、例えば開発対象のプログラムの完成など、任意のタイミングで分岐元のブランチに統合(マージ)することができる。図4は、ソーシャルコーディングにおけるブランチの統合例について概要を示した図である。図中では、分岐元である機能A開発用ブランチ403に対して、分岐して作成した機能A開発者XXX用ブランチ404をマージした状態を示している。マージにより、機能A開発用ブランチ403に対して、機能A開発者XXX用ブランチ404に登録されたプログラムの内容が上書きでマージされる。図2〜図4に示したように、開発の進展に伴って、複数のブランチに分岐したり、複数のブランチを統合したりしながら開発が進められる。
開発の各段階でテストが行われるが、上述した、重要なテストケースを抽出する際の考慮点のうち、時間的観点を含むプログラムの開発状況を考慮した抽出の手法については、例えば、図2の(1)に示したように、開発の進捗度(開発初期や成熟期など)に応じて適当な種類のテストケースを抽出することが含まれる。また、図2の(2)に示したように、コミットの頻度が多い(間隔が短い)場合や修正差分の量が多い場合にテストケースを間引いて抽出したり、複数のテストを分散実行したりすることなどが含まれる。
一方、重要なテストケースを抽出する際の考慮点のうち、テスト実施の観点を考慮した抽出の手法については、例えば、図2の(3)に示したように、対象のブランチに応じてテスト対象を変えて適当なテストケース(例えば、開発者ブランチの場合はローカルでの単体テスト、メインブランチの場合はプログラムを統合した後の全体検証テストなど)を抽出することが含まれる。
<システム構成>
図1は、本発明の一実施の形態である開発支援システムの構成例について概要を示した図である。開発支援システム1は、例えば、開発支援サーバ100に対して、LAN(Local Area Network)などのネットワークを介して、各ユーザがそれぞれ使用する開発用クライアント200が複数接続され、相互に通信可能な構成を有する。
図1は、本発明の一実施の形態である開発支援システムの構成例について概要を示した図である。開発支援システム1は、例えば、開発支援サーバ100に対して、LAN(Local Area Network)などのネットワークを介して、各ユーザがそれぞれ使用する開発用クライアント200が複数接続され、相互に通信可能な構成を有する。
開発支援サーバ100は、例えば、テストケースの抽出やテストの自動実行などの機能を有するサーバシステムであり、一般的なサーバ機器やクラウドコンピューティング環境上に構築された仮想サーバなどにより実装され、図示しないOS(Operating System)やDBMS(DataBase Management System)、Webサーバプログラムなどのミドルウェア上で稼働するソフトウェアプログラムにより実装される構成管理部110およびテスト実行部120などの各部を有する。
また、複数の開発者により開発されたプログラムや各種成果物を記憶して集中的に管理するデータベース等の記憶領域であるリポジトリ130を有する。リポジトリ130には、例えば、後述するブランチ管理テーブル131やテストケース管理テーブル132などのテーブルの他に、開発されたプログラム133や、抽出・作成されたテストケース134、テスト実施結果であるテスト結果135などの各種データが保持される。
構成管理部110は、プログラム開発の全体的な構成を管理する機能を有し、例えば、ソーシャルコーディング機能やリポジトリ管理機能、バージョン管理機能などを提供するシステムやツールのサーバプログラムによって構成される。これらのツールとしては、例えば、Gitなどの一般に普及しているものを適用することができる。構成管理部110は、例えば、後述する開発用クライアント200からの要求等に基づいて、開発されたプログラム133をリポジトリ130に登録する。このとき、前回の登録時からの変更や差分が把握できるような情報を履歴情報として併せて格納する。また、プログラム133に対して作成されたテストケース134をリポジトリ130に登録するとともに、テストケース管理テーブル132を更新する機能も有する。また、作成されたブランチの情報をブランチ管理テーブル131によって管理する機能も有する。
テスト実行部120は、構成管理部110からの指示により、リポジトリ130に登録されたテストケース134に基づいてテストを自動実行する機能を有し、例えば、JUnitなどの一般に普及しているテストフレームワークなどを適用することができる。本実施の形態では、後述する手法により、テストケース134のうち優先度が高いものを抽出して、抽出されたテストケース134に絞ってテストを実施することで、効率的なテストの実施を可能とする。実行するテストケース134については、テストケース管理テーブル132によって管理し、また、テストの実行の結果として得られるテスト結果135についてもリポジトリ130に格納して管理する。
開発用クライアント200は、例えば、開発者等の各ユーザがプログラム133の開発やテストケース134の作成などの作業を行うPC(Personal Computer)等の情報処理端末であり、図示しないOSなどのミドルウェア上で稼働するソフトウェアプログラムにより実装されるWebブラウザ210やコード記述部220、構成管理操作部230などの各部を有する。
コード記述部220は、開発者がプログラム133を開発・作成したり、テストケース134を作成したりするための機能を有し、例えば、Eclipseなどの一般に普及しているプログラム開発ツールや開発環境などを適宜利用することができる。コード記述部220を利用して開発者により開発・作成されたプログラム133やテストケース134、テストケース134に関する情報であるテストケース付加情報201は、後述する構成管理操作部230により、開発支援サーバ100上のリポジトリ130に登録される。
構成管理操作部230は、開発支援サーバ100の構成管理部110と通信し、コード記述部220により開発・作成されたプログラム133やテストケース134、テストケース付加情報201などを送信してリポジトリ130に登録する機能を有する。例えば、開発支援サーバ100の構成管理部110としてGitを用いている場合には、Gitクライアントなどにより実装することができる。
Webブラウザ210は、ソーシャルコーディングにおいて開発者がコード記述部220や構成管理操作部230を用いたプログラム開発やレビュー等の作業を実施するためのユーザインタフェースを提供するWebブラウザプログラムであり、一般に普及しているものを適宜用いることができる。図示しない開発支援サーバ100上のWebサーバプログラムを介して開発支援サーバ100の構成管理部110等と通信を行う機能を有していてもよい。
<処理フロー(テストケース作成)>
以下では、本実施の形態におけるテスト実施の際の各処理について説明する。図5は、テストケース作成の処理の流れの例について概要を示したフローチャートである。まず、テストケースの作成者が、開発用クライアント200を利用して、コード記述部220によりテストケース134を作成し、開発支援サーバ100の構成管理部110を介してリポジトリ130に登録する(S01)。このとき、構成管理部110では、テストケース134の種類などを含む関連情報を割り当てて、後述するテストケース管理テーブル132に併せて登録する(S02)。
以下では、本実施の形態におけるテスト実施の際の各処理について説明する。図5は、テストケース作成の処理の流れの例について概要を示したフローチャートである。まず、テストケースの作成者が、開発用クライアント200を利用して、コード記述部220によりテストケース134を作成し、開発支援サーバ100の構成管理部110を介してリポジトリ130に登録する(S01)。このとき、構成管理部110では、テストケース134の種類などを含む関連情報を割り当てて、後述するテストケース管理テーブル132に併せて登録する(S02)。
<処理フロー(テスト実行)>
図6は、作成されたテストケース134に基づくテスト実行の処理の流れの例について概要を示したフローチャートである。まず、プログラム133の開発者が、開発用クライアント200を利用して、コード記述部220および構成管理操作部230により、開発したプログラム133を開発支援サーバ100のリポジトリ130に登録(コミット)する(S11)。ここでの登録は、例えば、変更や修正に係る差分のみを登録する形式とすることができる。登録したプログラム133の情報は、ブランチ毎に後述するブランチ管理テーブル131によって管理する。また、プログラム133を登録した履歴は、後述するコミット履歴131aによって管理する。
図6は、作成されたテストケース134に基づくテスト実行の処理の流れの例について概要を示したフローチャートである。まず、プログラム133の開発者が、開発用クライアント200を利用して、コード記述部220および構成管理操作部230により、開発したプログラム133を開発支援サーバ100のリポジトリ130に登録(コミット)する(S11)。ここでの登録は、例えば、変更や修正に係る差分のみを登録する形式とすることができる。登録したプログラム133の情報は、ブランチ毎に後述するブランチ管理テーブル131によって管理する。また、プログラム133を登録した履歴は、後述するコミット履歴131aによって管理する。
プログラム133がリポジトリ130に登録されると、開発支援サーバ100の構成管理部110もしくはテスト実行部120が、登録されたプログラム133について、テストケース管理テーブル132に登録された各テストケース134に係る優先度を所定の手法によりそれぞれ算出し、算出した優先度の値によってテストケース管理テーブル132を更新する(S12)。優先度算出処理の内容については後述する。
その後、開発支援サーバ100のテスト実行部120が、初期処理としてテスト経過時間をリセットした上で(S13)、テストを実施する(S14)。テストの実施の際は、テストケース管理テーブル132に登録された優先度が高いものから順に、もしくは優先度が所定の値より大きいものを、テストケース134とプログラム133をリポジトリ130から読み込んで実行し、テスト結果135をリポジトリ130に格納する。その後、テストの開始から所定の制限時間が経過したか否かを判定する(S15)。所定の制限時間が経過していない場合は、ステップS14に戻ってテスト実施を継続する。一方、所定の制限時間が経過している場合は、テスト実行を終了する。
以上の処理により、優先度の高いテストケース134に絞り込んでテストを実施することができ、テストの効率化を図ることができる。なお、ステップS15で所定の制限時間の経過により実行されなかったテストケース134については、例えば、そのリストを保持しておき、夜間の定時処理などによって実施するようにしてもよい。また、所定の制限時間内でのステップS14の実行においていずれかのテストケース134の実行が失敗した場合は、例えば、テスト実行処理の終了後、優先度が低いために実行をスキップしたテストケース134に対応するコミットについてもテストを実施し、どの時点で対象のテストケース134が失敗していたかを検証するのが望ましい。
<処理フロー(優先度算出処理)>
図7は、図6に示したテスト実行の処理フローにおける優先度算出処理(S12)の流れの例について概要を示したフローチャートである。まず、開発支援サーバ100の構成管理部110もしくはテスト実行部120が、テストの対象のプログラム133が登録されているリポジトリ130上のブランチの作業内容を判定する(S21)。ブランチの作業内容は、例えば、図3に示したように、ブランチのネーミングルールに基づいて判断することができる。
図7は、図6に示したテスト実行の処理フローにおける優先度算出処理(S12)の流れの例について概要を示したフローチャートである。まず、開発支援サーバ100の構成管理部110もしくはテスト実行部120が、テストの対象のプログラム133が登録されているリポジトリ130上のブランチの作業内容を判定する(S21)。ブランチの作業内容は、例えば、図3に示したように、ブランチのネーミングルールに基づいて判断することができる。
ステップS21でブランチがメインブランチであると判定された場合は、全体について回帰テスト(リグレッションテスト)を実行するものとして、テストケース134のうち、テスト種別が「回帰テスト」であるものを選択して抽出する(S22)。抽出に際しては、対象のテストケース134が必ず実行対象となるよう、優先度を最大値等に上げるようにしてもよい。すなわち、対象のテストケース134の優先度を最大値等に上げることは、対象のテストケース134を直接抽出することと等価である。テストケース134の種別は、例えば、後述するテストケース管理テーブル132に登録された内容によって判断してもよいし、テストケース134が格納されているフォルダの情報や、テストケース134に対して付与されたアノテーションの情報等に基づいて判断してもよい。
ステップS21でブランチが機能ブランチであると判定された場合は、対象の機能に関連したテストを実行するものとして、テストケース134のうち、機能種別が対象の機能に対応するものを選択して抽出する(S23)。ここでも、対象のテストケース134の優先度を最大値等に上げるようにしてもよい。テストケース134の機能種別は、例えば、後述するテストケース管理テーブル132や機能マスタ137に登録された内容によって判断してもよいし、対象の機能に係るプログラム133やテストケース134等が格納されているフォルダの情報や、アノテーションの情報等に基づいて判断してもよい。
ステップS21でブランチが開発者ブランチであると判定された場合は、正常系のテストを実施する。まず、対象のプログラム133について前回のコミットからの経過時間が所定時間以上経過しているか否か(直近度が高いか否か)を判定する(S24)。前回のコミットからの経過時間に代えて、過去数回のコミットの間隔の平均時間を用いてもよい。所定時間以上経過していない場合は、前回のテスト実施から時間があまり経過していない(直近度が高い)と推測されることから、テストの実行を行わずに先送りして間引くことでテスト間隔を調整するため、所定時間のタイマーを起動する(S25)。
タイマーが終了するまでに次のテスト実行のトリガーが発生しない場合は、優先度算出処理を終了してテストの実施(図6のステップS13以降)を自動的に行う。なお、直近度が高い場合に、テストの実行を先送りするのではなく、前回実施したテストケース134とは異なるテストケース134が抽出されるよう、これらのテストケース134の優先度を高くするようにしてもよい。
一方、ステップS24で前回のコミットから所定時間以上経過している(直近度が低い)場合は、次に、対象のプログラム133の変更部分の差分量が所定以上あるか否かを判定する(S26)。差分量が所定より少ない場合は、テスト実施の必要度が低いと判断し、ステップS25に進んでテストの実行を先送りする。ステップS26で差分量が所定以上ある場合は、テストを実行するためにタイマーを解除し(S27)、テストケース134の抽出を行う(S28)。
テストケース134の抽出では、下記の観点を用いて各テストケース134に優先度を設定して優先度の高いものが抽出されるようにすることができる。例えば、開発部分との関連度の高いテストケースとして、ブランチのネーミングルールから判別できる機能の種類によって、対応する機能に関連するテストケースを選択したり、対象のプログラム133を開発した開発者に割り当てられているタスクやロールなどに基づいて、これらの関連するテストケース134を選択することができる。すなわち、開発者がアプリケーションにおけるP層(プレゼンテーション層)を担当する開発者であるか、F層(ファンクション層)やD層(データ層)を担当する開発者であるかに応じて、P層、F層、D層に対応するテストケース134の優先度を高くすることができる。
また、対象のプログラム133の開発者自身が作成したテストケース134について優先度を高くするようにしてもよい。また、前回のテスト実施時に実行されなかったテストケース134、もしくは前回実施されてから所定時間以上実施されていないテストケース134について、一定期間テストがされていないことから、これらのテストケース134が抽出されるよう優先度を高く設定するようにしてもよい。
なお、図7の例では、テスト対象のブランチがメインブランチか機能ブランチか開発者ブランチかによって作業内容を判定し、テストケース134の抽出(優先度の設定)の手法を切り替えているが、対象となるブランチの作業内容としては上記のものに限らず、例えば、バグ対策やリリース準備、レビュー依頼など他の作業内容であることを判定するようにしてもよい。
また、ブランチの内容によるもの以外に、テストを実施するトリガーとなったコミットの種類に基づいて作業内容を判定することもできる。例えば、対象のコミットが複数のブランチのマージコミットである場合は、機能統合の作業を行っていると推測されることから、全テストケースが実行されるようにしてもよい。また、対象のコミットが通常コミットの場合は、開発内容のアップデートがあったと推測されることから、回帰テストが実行されるよう、対応するテストケース134の優先度を高くするようにしてもよい。さらに、コミットの種類の他に、例えば、開発者ブランチが作成されるトリガーとなった課題(Issue)の種別に基づいて関連するテストケース134の優先度を高くするようにしてもよい。
また、プログラム開発の進捗度(成熟度)に基づいて関連するテストケース134が抽出されるように優先度を設定することもできる。例えば、開発したプログラム(ソースコード)に対するレビューの件数や、その結果(OK/NGの件数)に応じて、進捗度をスコアリングし、進捗度が所定のレベルより低いと判定される場合には全てのテストケース134が実行され、進捗度が所定のレベルより高いと判定される場合には重要なテストケース134のみ実行されるように優先度を設定することができる。
図8は、プログラム133に対するレビューの処理の流れの例について概要を示したフローチャートである。まず、レビューの要求者が、自身の開発用クライアント200を用いて、レビュー対象のプログラム133を開発支援サーバ100のリポジトリ130から取得し、対象箇所のページをWebブラウザ210上などに表示させる(S41)。その後、レビュー要求者が、レビュアーに対するコメントやレビューポイントなどを入力し(S42、S43)、プログラム133をコミットすることによって、レビュー要求を開発支援サーバ100に対して送信する(S44)。
開発支援サーバ100では、レビュー要求を受信して、当該要求に係る情報を、例えば、リポジトリ130上の後述するレビュー管理テーブル136に登録する。その後、レビュアーが、自身の開発用クライアント200を用いて対象のプログラム133の該当箇所をリポジトリ130から取得してレビューを実施すると(S46)、レビュー結果に基づいて開発支援サーバ100の構成管理部110等がレビュー管理テーブル136の内容を更新する(S47)。
上記のようなレビューの件数や結果の情報の他にも、プログラム開発の進捗度を判断する指標としては、例えば、ソースコード中のいわゆる“TODOコメント”の数や空メソッドの数などに基づいて算出するソースコードの完成度や、対象のプログラム133に関連するテストケース134に対するレビューの進捗度などを用いることができる。また、前回実施したテストの結果、例えば成否の結果の割合や、成功の件数などを用いることもできる。
<データ構成>
図9は、開発支援サーバ100のリポジトリ130上に保持されるテストケース管理テーブル132のデータ構成と具体的なデータの例について概要を示した図である。テストケース管理テーブル132は、テストケース134の種類などを含む関連情報を保持するテーブルであり、例えば、No.、テストクラス、機能種別、テスト種別、作成者、および優先度などの各項目を有する。
図9は、開発支援サーバ100のリポジトリ130上に保持されるテストケース管理テーブル132のデータ構成と具体的なデータの例について概要を示した図である。テストケース管理テーブル132は、テストケース134の種類などを含む関連情報を保持するテーブルであり、例えば、No.、テストクラス、機能種別、テスト種別、作成者、および優先度などの各項目を有する。
No.の項目は、各テストケース134を一意に識別することができるよう割り振られたシーケンス番号などの情報を保持する。テストクラスの項目は、対象のテストケース134として実行するテスト用プログラム(クラス)を特定する名称の情報を保持する。機能種別の項目は、対象のテストケース134が対応するアプリケーション上の機能の種別を特定するコード値等の情報を保持する。図9の例では、便宜上、“UI(User Interface)系”や、“DB系”、“ロジック系”などの名称によって示されている。
テスト種別の項目は、対象のテストケース134が対応するテストの種別を特定するコード値等の情報を保持する。図9の例では、便宜上、“リグレッション”、“正常系”、“異常系”などの名称によって示されている。作成者の項目は、対象のテストケース134を作成した開発者等のユーザを識別するID等の情報を保持する。この識別情報は、後述する開発者マスタ138に設定されている。優先度の項目は、対象のテストケース134に対して、上記の図7において示したような優先度算出処理によって算出された優先度の情報を保持する。図9の例では、優先度の値は“1”(抽出対象)もしくは“−1”(非抽出対象)となっているが、優先度の設定方法はこれに限らず、例えば、“1”〜“10”や“1”〜“100”等の数値範囲として設定したり、“A”、“B”、“C”のようなランクにより設定したりすることも可能である。
図10は、リポジトリ130上に保持されるブランチ管理テーブル131のデータ構成と具体的なデータの例について概要を示した図である。ブランチ管理テーブル131は、開発支援サーバ100のリポジトリ130上に作成されたブランチを管理するテーブルであり、例えば、ブランチ名、およびファイルリストなどの各項目を有する。
ブランチ名の項目は、各ブランチを一意に識別することができる名称の情報を保持する。この名称は、例えば、図3に示したように、所定のネーミングルールに基づいて設定され、名称から対象のブランチの種別や作業内容等を判別することができるものとする。ファイルリストの項目は、対象のブランチに登録されているプログラム133が含まれるファイルのリストからなる情報を保持する。図10の例では、便宜上ファイル名を列挙したデータとしているが、対象の全ファイル(プログラム133)を特定することができるデータ構造であればこれに限定されない。
図11は、リポジトリ130上に保持されるコミット履歴131aのデータ構成と具体的なデータの例について概要を示した図である。コミット履歴131aは、ブランチにプログラム133を登録(コミット)した履歴の情報を保持するテーブルであり、例えば、ブランチ名、コミット日時、および修正内容などの各項目を有する。
ブランチ名の項目は、プログラム133が登録されたブランチを特定するブランチ名の情報を保持する。ブランチ名の情報は、上述した図10のブランチ管理テーブル131に登録されている。コミット日時の項目は、対象のブランチにプログラム133がコミットされたタイムスタンプの情報を保持する。修正内容の項目は、対象のブランチに対して修正・変更分としてコミットされたプログラム133が含まれるファイル名の情報を保持する。
図12は、機能マスタ137のデータ構成と具体的なデータの例について概要を示した図である。機能マスタ137は、開発対象の機能についてのマスタ情報を保持するテーブルであり、例えば、機能名、および機能種別などの各項目を有する。機能名の項目は、対象の機能を一意に識別するためのIDや名称等の情報を保持する。この名称は、上述したブランチのネーミングルールにおいて用いられるものである。機能種別の項目は、上述の図9の例における機能種別の項目と同様に、対象の機能の種別を特定するコード値等の情報を保持する。
図13は、開発者マスタ138のデータ構成と具体的なデータの例について概要を示した図である。開発者マスタ138は、各開発者についてのマスタ情報を保持するテーブルであり、例えば、ユーザ名、および担当業務の各項目を有する。ユーザ名の項目は、対象の開発者を一意に識別することができるID等の識別情報を保持する。担当業務の項目は、対象の開発者がプログラム開発において担当する1つ以上の業務やタスク、ロール等を特定するためのコード値等の情報を保持する。
図14は、リポジトリ130上に保持されるレビュー管理テーブル136のデータ構成と具体的なデータの例について概要を示した図である。レビュー管理テーブル136は、開発対象のプログラム133を含むブランチを分岐元のブランチにマージする際のレビューについて管理するテーブルであり、例えば、マージ要求、マージ対象、マージ先、レビュー件数、およびレビュースコアなどの各項目を有する。
マージ要求の項目は、各マージ要求を一意に識別することができるシーケンス番号やID等の情報を保持する。マージ対象およびマージ先の項目は、それぞれ、マージの対象となるマージ元のブランチ、およびマージ先(分岐元)のブランチを特定するブランチ名の情報を保持する。レビュー件数の項目は、対象のブランチのマージに係るレビュー要求に対して実施されたレビューの件数の情報を保持する。レビュー要求に対して複数のレビュアーが並行的にレビューを行うことも可能である。レビュースコアの項目は、対象のブランチのマージに係るレビューのスコアの情報を保持する。スコアが高ければ対象のプログラム133の品質は高いものと推測され、テストケース134の実行を重要なものに限定して行うなどの効率化を図ることも可能となる。
なお、上述の図9〜図14で示した各テーブルのデータ構成(項目)はあくまで一例であり、同様のデータを保持・管理することが可能な構成であれば、他のテーブル構成やデータ構成であってもよい。
以上に説明したように、本発明の一実施の形態である開発支援システム1によれば、ソーシャルコーディングの環境において、プログラム133の開発状況や、テスト実施といった各種観点を考慮した上で、重要なテストケース134を抽出し、あるいは優先的に実施することが可能である。これにより、膨大な数のテストケースを網羅的に全て実施することなく、効率的なテストの実施が可能である。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は上記の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、上記の実施の形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、上記の実施の形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば、集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリやハードディスク、SSD(Solid State Drive)等の記録装置、またはICカード、SDカード、DVD等の記録媒体に置くことができる。
また、上記の各図において、制御線や情報線は説明上必要と考えられるものを示しており、必ずしも実装上の全ての制御線や情報線を示しているとは限らない。実際にはほとんど全ての構成が相互に接続されていると考えてもよい。
本発明は、プログラムの不具合確認等のためのテストにおけるテストケースを抽出する開発支援システムに利用可能である。
1…開発支援システム、
100…開発支援サーバ、110…構成管理部、120…テスト実行部、130…リポジトリ、131…ブランチ管理テーブル、131a…コミット履歴、132…テストケース管理テーブル、133…プログラム、134…テストケース、135…テスト結果、136…レビュー管理テーブル、137…機能マスタ、138…開発者マスタ、
200…開発用クライアント、201…テストケース付加情報、210…Webブラウザ、220…コード記述部、230…構成管理操作部、
300…ネットワーク
401…マスタブランチ、402…開発用ブランチ、403…機能A開発用ブランチ、404…機能A開発者XXX用ブランチ
100…開発支援サーバ、110…構成管理部、120…テスト実行部、130…リポジトリ、131…ブランチ管理テーブル、131a…コミット履歴、132…テストケース管理テーブル、133…プログラム、134…テストケース、135…テスト結果、136…レビュー管理テーブル、137…機能マスタ、138…開発者マスタ、
200…開発用クライアント、201…テストケース付加情報、210…Webブラウザ、220…コード記述部、230…構成管理操作部、
300…ネットワーク
401…マスタブランチ、402…開発用ブランチ、403…機能A開発用ブランチ、404…機能A開発者XXX用ブランチ
Claims (15)
- 1つ以上のテストケースの実行によりプログラムをテストする開発支援システムであって、
前記プログラムおよび前記各テストケースをリポジトリに保持して管理する構成管理部と、
前記テストケースを実行してテスト結果を前記リポジトリに格納するテスト実行部と、を有し、
前記テストケースは、その種類の情報と関連付けて前記リポジトリにおいて管理され、
前記構成管理部は、前記プログラムの開発状況を判定して、前記開発状況に基づいて前記各テストケースに優先度を設定し、
前記テスト実行部は、前記優先度に基づいて、実行する前記テストケースを抽出する、開発支援システム。 - 請求項1に記載の開発支援システムにおいて、
前記構成管理部は、前記プログラムが登録されているブランチに基づいて前記開発状況を判定する、開発支援システム。 - 請求項1に記載の開発支援システムにおいて、
前記構成管理部は、前記プログラムを対応するブランチにコミットした際の当該コミットの種別に基づいて前記開発状況を判定する、開発支援システム。 - 請求項1に記載の開発支援システムにおいて、
前記構成管理部は、前記プログラムの開発に係る課題の種別に基づいて前記開発状況を判定する、開発支援システム。 - 請求項1に記載の開発支援システムにおいて、
前記構成管理部は、前記プログラムの開発者に割り当てられているタスクの種別に基づいて前記開発状況を判定する、開発支援システム。 - 1つ以上のテストケースの実行によりプログラムをテストする開発支援システムであって、
前記プログラムおよび前記各テストケースをリポジトリに保持して管理する構成管理部と、
前記テストケースを実行してテスト結果を前記リポジトリに格納するテスト実行部と、を有し、
前記テストケースは、その種類の情報と関連付けて前記リポジトリにおいて管理され、
前記構成管理部は、前記プログラムの開発の進捗度を算出して、前記進捗度に基づいて前記各テストケースに優先度を設定し、
前記テスト実行部は、前記優先度に基づいて、実行する前記テストケースを抽出する、開発支援システム。 - 請求項6に記載の開発支援システムにおいて、
前記構成管理部は、ブランチに登録された前記プログラムに対するレビューの件数に基づいて前記進捗度を算出する、開発支援システム。 - 請求項6に記載の開発支援システムにおいて、
前記構成管理部は、ブランチに登録された前記プログラムに対するレビューのスコアに基づいて前記進捗度を算出する、開発支援システム。 - 請求項6に記載の開発支援システムにおいて、
前記構成管理部は、ブランチに登録された前記プログラムにおけるTODOコメントの記載の数に基づいて前記進捗度を算出する、開発支援システム。 - 1つ以上のテストケースの実行によりプログラムをテストする開発支援システムであって、
前記プログラムおよび前記各テストケースをリポジトリに保持して管理する構成管理部と、
前記テストケースを実行してテスト結果を前記リポジトリに格納するテスト実行部と、を有し、
前記テストケースは、その種類の情報と関連付けて前記リポジトリにおいて管理され、
前記構成管理部は、前記プログラムがブランチに登録されたタイミングに基づいて、登録の直近度を算出して、前記直近度に基づいて前記各テストケースに優先度を設定し、
前記テスト実行部は、前記優先度に基づいて、実行する前記テストケースを抽出する、開発支援システム。 - 請求項10に記載の開発支援システムにおいて、
前記構成管理部は、前記プログラムがブランチに前回登録されたタイミングから、今回登録されたタイミングまでの時間間隔に基づいて前記直近度を算出する、開発支援システム。 - 請求項10に記載の開発支援システムにおいて、
前記構成管理部は、前記プログラムがブランチに登録された過去の所定の回数における、登録間の時間間隔の平均値に基づいて前記直近度を算出する、開発支援システム。 - 請求項10に記載の開発支援システムにおいて、
前記構成管理部は、ブランチに登録された前記プログラムにおける前回の登録からの差分量に基づいて前記直近度を算出する、開発支援システム。 - 請求項10に記載の開発支援システムにおいて、
前記構成管理部は、前記直近度が高い場合に、前記テスト実行部により前記テストケースが抽出されないようにする、開発支援システム。 - 請求項10に記載の開発支援システムにおいて、
前記構成管理部は、前記直近度が高い場合に、前回のテスト実施時に実行された前記テストケースとは異なる前記テストケースの前記優先度を高くする、開発支援システム。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2014/070123 WO2016016975A1 (ja) | 2014-07-30 | 2014-07-30 | 開発支援システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5970617B2 true JP5970617B2 (ja) | 2016-08-17 |
JPWO2016016975A1 JPWO2016016975A1 (ja) | 2017-04-27 |
Family
ID=55216918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015541720A Expired - Fee Related JP5970617B2 (ja) | 2014-07-30 | 2014-07-30 | 開発支援システム |
Country Status (4)
Country | Link |
---|---|
US (1) | US9703692B2 (ja) |
JP (1) | JP5970617B2 (ja) |
CN (1) | CN105453050A (ja) |
WO (1) | WO2016016975A1 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9740585B2 (en) | 2015-06-23 | 2017-08-22 | International Business Machines Corporation | Flexible configuration and control of a testing system |
WO2017213634A1 (en) * | 2016-06-07 | 2017-12-14 | Hitachi, Ltd. | Method and apparatus to deploy applications on proper it resources based on frequency and amount of change |
CN106227658A (zh) * | 2016-07-15 | 2016-12-14 | 珠海市魅族科技有限公司 | 一种测试用例的管理方法、系统及装置 |
US11093374B2 (en) | 2016-08-09 | 2021-08-17 | SeaLights Technologies LTD | System and method for continuous testing and delivery of software |
CN106372514A (zh) * | 2016-08-30 | 2017-02-01 | 东软集团股份有限公司 | 一种安全漏洞维护方法及系统 |
CN108241580B (zh) * | 2016-12-30 | 2021-11-19 | 深圳壹账通智能科技有限公司 | 客户端程序的测试方法及终端 |
JP6835207B2 (ja) * | 2017-03-23 | 2021-02-24 | 日本電気株式会社 | 運用管理サーバ、開発運用支援システム、それらの方法及びプログラム |
US10365994B2 (en) * | 2017-04-24 | 2019-07-30 | Facebook, Inc. | Dynamic scheduling of test cases |
CN107622017B (zh) * | 2017-10-13 | 2020-09-15 | 深圳市视维科技股份有限公司 | 一种通用自动化软件测试的解析方法 |
US11573885B1 (en) * | 2019-09-26 | 2023-02-07 | SeaLights Technologies LTD | System and method for test selection according to test impact analytics |
CN111274126B (zh) * | 2020-01-14 | 2022-10-04 | 华为云计算技术有限公司 | 测试用例筛选方法、装置及介质 |
US11263120B2 (en) * | 2020-02-12 | 2022-03-01 | Capital One Services, Llc | Feature-based deployment pipelines |
US11321083B2 (en) * | 2020-02-18 | 2022-05-03 | The Toronto-Dominion Bank | Automated branching workflow for a version control system |
US11176026B2 (en) | 2020-02-20 | 2021-11-16 | International Business Machines Corporation | Assignment of test case priorities based on combinatorial test design model analysis |
US11663113B2 (en) * | 2020-02-20 | 2023-05-30 | International Business Machines Corporation | Real time fault localization using combinatorial test design techniques and test case priority selection |
US11307975B2 (en) | 2020-02-20 | 2022-04-19 | International Business Machines Corporation | Machine code analysis for identifying software defects |
CN112817848B (zh) * | 2021-01-28 | 2024-03-12 | 北京达佳互联信息技术有限公司 | 一种测试信息展示方法、装置、电子设备和存储介质 |
JP2022138708A (ja) * | 2021-03-10 | 2022-09-26 | 株式会社日立製作所 | ソフトウェア性能検証システム、およびソフトウェア性能検証方法 |
US11989120B2 (en) * | 2021-05-25 | 2024-05-21 | Dish Network L.L.C. | Visual testing issue reproduction based on communication of automated workflow |
US11709765B1 (en) * | 2022-01-04 | 2023-07-25 | Bank Of America Corporation | Intelligent test cases generation based on voice conversation |
CN117435512B (zh) * | 2023-12-21 | 2024-03-08 | 摩尔元数(福建)科技有限公司 | 一种基于Junit5自动切换不同数据库类型的单元测试方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7568183B1 (en) * | 2005-01-21 | 2009-07-28 | Microsoft Corporation | System and method for automation testing and validation |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8561036B1 (en) * | 2006-02-23 | 2013-10-15 | Google Inc. | Software test case management |
US20070220479A1 (en) * | 2006-03-14 | 2007-09-20 | Hughes John M | Systems and methods for software development |
JP2008003985A (ja) * | 2006-06-26 | 2008-01-10 | Dainippon Screen Mfg Co Ltd | 開発支援システム、開発支援方法および開発支援プログラム |
US7913230B2 (en) * | 2007-01-31 | 2011-03-22 | Oracle International Corporation | Computer-implemented methods and systems for generating software testing documentation and test results management system using same |
JP4939973B2 (ja) | 2007-02-22 | 2012-05-30 | 富士通株式会社 | 試験制御装置、試験制御方法及び試験制御プログラム |
JP2009181536A (ja) * | 2008-02-01 | 2009-08-13 | Dainippon Screen Mfg Co Ltd | ソフトウェアの障害管理装置、テスト管理装置、ならびにそれらのプログラム |
US20090265694A1 (en) * | 2008-04-18 | 2009-10-22 | International Business Machines Corporation | Method and system for test failure analysis prioritization for software code testing in automated test execution |
US8276123B1 (en) * | 2008-07-22 | 2012-09-25 | Juniper Networks, Inc. | Adaptive regression test selection within testing environments |
CN101727385A (zh) * | 2008-10-31 | 2010-06-09 | 国际商业机器公司 | 用于处理用户接口信息变化的方法和系统 |
US20100131497A1 (en) * | 2008-11-26 | 2010-05-27 | Peterson Michael L | Method for determining which of a number of test cases should be run during testing |
JP5213671B2 (ja) | 2008-12-03 | 2013-06-19 | 株式会社日立ソリューションズ | テストケースの選択方法及び選択システム |
US8645341B2 (en) * | 2010-03-31 | 2014-02-04 | Salesforce.Com, Inc. | Method and system for automatically updating a software QA test repository |
US8826239B2 (en) * | 2010-10-06 | 2014-09-02 | International Business Machines Corporation | Asynchronous code testing in integrated development environment (IDE) |
JP5479389B2 (ja) * | 2011-03-04 | 2014-04-23 | エンカレッジ・テクノロジ株式会社 | 情報処理システム、プログラム改修装置、プログラム改修方法、及びプログラム |
JP5629239B2 (ja) * | 2011-05-23 | 2014-11-19 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | ソフトウェアの動作をテストする装置及び方法 |
CN103257918A (zh) * | 2012-02-16 | 2013-08-21 | 广州博纳信息技术有限公司 | 基于软件测评平台的项目测试过程管理方法 |
US9092578B2 (en) * | 2012-12-20 | 2015-07-28 | Sap Se | Automated end-to-end testing via multiple test tools |
US9311223B2 (en) * | 2013-05-21 | 2016-04-12 | International Business Machines Corporation | Prioritizing test cases using multiple variables |
-
2014
- 2014-07-30 CN CN201480020875.6A patent/CN105453050A/zh active Pending
- 2014-07-30 WO PCT/JP2014/070123 patent/WO2016016975A1/ja active Application Filing
- 2014-07-30 US US14/782,881 patent/US9703692B2/en not_active Expired - Fee Related
- 2014-07-30 JP JP2015541720A patent/JP5970617B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7568183B1 (en) * | 2005-01-21 | 2009-07-28 | Microsoft Corporation | System and method for automation testing and validation |
Non-Patent Citations (3)
Title |
---|
JPN6015014180; 平山 雅之 外6名: '"ソフトウェア品質向上への取組み"' 東芝レビュー 第56巻,第11号, 20011101, pp.47-55, 株式会社東芝 * |
JPN6015014181; 田島 峻 外2名: '"ソースコード更新情報を用いたテスト着手時期の予測"' 情報処理学会研究報告 第2013-SE-179巻,第14号, 20130311, pp.1-7, 一般社団法人情報処理学会 * |
JPN7015000947; KIM, Taesoo et al.: '"Optimizing unit test execution in large software programs using dependency analysis"' Proceedings of the 4th Asia-Pacific Workshop on Systems (APSys '13) Article No.19, 201307, pp.1-6, ACM * |
Also Published As
Publication number | Publication date |
---|---|
JPWO2016016975A1 (ja) | 2017-04-27 |
WO2016016975A1 (ja) | 2016-02-04 |
CN105453050A (zh) | 2016-03-30 |
US9703692B2 (en) | 2017-07-11 |
US20160378647A1 (en) | 2016-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5970617B2 (ja) | 開発支援システム | |
US10642599B1 (en) | Preemptive deployment in software deployment pipelines | |
US11048688B2 (en) | Deleting configuration items in a configuration management database | |
JP7413255B2 (ja) | インタラクティブ・ワークフローを実行するコンピュータ実施方法、システム、およびコンピュータ・プログラム製品、ならびにコンピュータ・プログラム | |
CN107102916B (zh) | 在服务的次要位置重放作业 | |
US9754242B2 (en) | Deployment mechanism for non-versioning business process artifacts | |
US9197499B2 (en) | Virtual server migration plan making method and system | |
US8661418B2 (en) | Setting program, workflow creating method, and work flow creating apparatus | |
US10877846B2 (en) | Performing a closure merge operation | |
US9892019B2 (en) | Use case driven stepping component automation framework | |
US10713084B2 (en) | Cognitive learning workflow execution | |
US11099834B2 (en) | Software builds using a cloud system | |
US8032618B2 (en) | Asynchronous update of virtualized applications | |
JP6385471B2 (ja) | 移行および遠隔ランタイム統合 | |
JP6336919B2 (ja) | ソースコードレビュー方法及びそのシステム | |
US9798573B1 (en) | Physical to virtual scheduling system and method | |
US20230088318A1 (en) | Remotely healing crashed processes | |
CN113448493B (zh) | 用于备份数据的方法、电子设备和计算机可读介质 | |
CN110321132B (zh) | 一种代码发布方法和装置 | |
US10684881B2 (en) | Batch processing of computing elements to conditionally delete virtual machine(s) | |
US20230409386A1 (en) | Automatically orchestrating a computerized workflow | |
CN117648198B (zh) | 应用适配方法及装置、设备及存储介质 | |
US10496059B2 (en) | Operational control management apparatus and operational control management method | |
KR101866086B1 (ko) | 재사용 기반의 가상 클러스터 구축 방법 및 장치 | |
JP2017091027A (ja) | システム開発支援システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20160614 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160711 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5970617 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |