JP7016583B2 - ソフトウェアのテスト方法、システムおよびプログラム - Google Patents

ソフトウェアのテスト方法、システムおよびプログラム Download PDF

Info

Publication number
JP7016583B2
JP7016583B2 JP2018080527A JP2018080527A JP7016583B2 JP 7016583 B2 JP7016583 B2 JP 7016583B2 JP 2018080527 A JP2018080527 A JP 2018080527A JP 2018080527 A JP2018080527 A JP 2018080527A JP 7016583 B2 JP7016583 B2 JP 7016583B2
Authority
JP
Japan
Prior art keywords
test
execution
order
test cases
cases
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.)
Active
Application number
JP2018080527A
Other languages
English (en)
Other versions
JP2019191685A (ja
Inventor
大輔 阿波野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Information Systems Japan Corp
Original Assignee
Toshiba Information Systems Japan Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Information Systems Japan Corp filed Critical Toshiba Information Systems Japan Corp
Priority to JP2018080527A priority Critical patent/JP7016583B2/ja
Publication of JP2019191685A publication Critical patent/JP2019191685A/ja
Application granted granted Critical
Publication of JP7016583B2 publication Critical patent/JP7016583B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、ソフトウェアプログラムの開発過程において、プログラムの変更、不具合確認などを目的とするテストに関する。
ソフトウェア開発では、プログラムに不良(バグ)が含まれていないか探索し、修正するため、テストが行われる。具体的には、テスト対象となる完成前のプログラムに対し、様々な条件設定でそのプログラムを実行させるテスト用プログラム(以下、テストケースという)を順次実行し、プログラムに不良が存在しないか確認する。不良を確認したらその原因を解析し、プログラムを修正する。
例えば、継続的インテグレーション(Continuous Integration)によるソフトウェア開発では、複数の開発者が、集中管理されたリポジトリに開発プログラムを登録する。プログラムが登録される度にテストケースを自動的に実行することによって、ソフトウェア開発を効率的に行うことができる。
このような継続的インテグレーションでは、テストケースの数が増えるのに伴い、テストの実行時間が増大するという問題が生じる。これを解消する方法として、テストケースのうち重要なものに限定する手法が知られている。
例えば、修正により新たに不良発生の可能性が高いテストケース、対象プログラムとの依存関係が強いテストケース、実施重要度が大きいテストケースなどを選択し、優先的に実行する(特許文献1、2、3参照)。あるいは、プログラムの開発状況やテスト実施内容などに基づいて優先度の高いテストケースを抽出し、実行する(特許文献4参照)。
特開2008-129661号公報 特開2008-204405号公報 特開2010-134643号公報 特許第5970617号公報
テストケースの実行時間は、その内容などに依存し、テストケースの間で実行時間に大きな差が生じることがある。並列分散処理によってテストケースを実行する場合、テストケースを単に履歴順、登録順に従って複数のコンピュータに実行させると、あるコンピュータでは、実行時間の比較的長いテストケースが続き、他のコンピュータでは比較的短い実行時間のテストケースが続いて行われる状況が生じやすい。すべてのコンピュータの実行終了を待ってテスト結果を判断しなければ、更なるプログラム修正、テストに進むことができず、ソフトウェア開発時間の短縮に至らない。
したがって、並列分散処理によるテストケースの実行において、実行時間を効果的に短縮することが求められる。
本発明のテスト方法は、システムにおいて、複数のテストケースの実行順を定め、複数のコンピュータを並列的に使うことによって、複数のテストケースを所定の実行順で実行するテスト方法であって、システムにおいて、各テストケースの実行時間に従って実行順を定める。例えばシステムにおいて、テストケースの実行順を、実行時間の長い順に定めることが可能である。例えば、継続的インテグレーションによる回帰テストを行うことができる。
システムでは、以前実行されたときに記録された各テストケースの実行時間に従って、実行順を定めることが可能である。例えば、複数のテストケースを実行する度に、各テストケースの実行時間を記録することができる。
本発明の他の一態様であるシステムは、例えばソフトウェア開発を支援するシステムの一部あるいはすべてで構成することが可能であり、記憶部に記憶された複数のテストケースの実行順を定める実行順設定部と、複数のコンピュータに対し、並列分散処理によって、複数のテストケースを所定の実行順で実行させるテストケース実行部とを備える。実行順設定部は、各テストケースの実行時間に従って実行順を定める。
本発明の他の一態様であるプログラムは、システムにおいて、記憶部に記憶された複数のテストケースに対し、各テストケースの実行時間に従って実行順を定める実行順を定めるステップと、複数のコンピュータに対し、並列分散処理によって、複数のテストケースを実行順で実行させるステップとを実行させる。
一方、本発明の他の態様であるファイル作成方法は、複数のコンピュータを並列的に使うことによって、継続的インテグレーションによる回帰テストを実行することが可能なシステムにおいて、複数のテストケースが所定の実行順で並ぶファイルから、実行時間の長い順で複数のテストケースが並ぶファイルを生成する。
本発明によれば、並列分散処理によるテストケースの実行において、実行時間を効果的に短縮することができる。
本実施形態であるテストケース実行可能なシステムの構成図である。 回帰テストを実行する処理のフローチャートである。 回帰テストの実行時間を示した図である。
以下では、図面を参照して本発明の実施形態について説明する。
図1は、本実施形態であるテストケース実行可能なシステムの構成図である。
システム10は、回帰テスト(リグレッションテスト)を実行可能なシステムであり、テストケース格納部15、テストケース管理部20、テストケース実行部30、プログラム格納部40’、ユーザインターフェイス50とを備える。ここでは、テストケース管理部20は、継続的インテグレーションを行う機能を備え、プログラムの自動回帰テストが反復的に行われる。このような機能を実現するプログラムは、図示しない記憶媒体に記憶されている。
開発者は、ユーザインターフェイス50を通じて、特定のプログラムに対する修正、変更などを行う。テストケース管理部20がプログラムの修正、変更を検出すると、テストケース実行部30は、テストケース管理部20からの指示に従い、回帰テストを行う。
テストケース格納部15には、複数のテストケースが格納されている。テストケースは、テスト対象となるプログラムに対して様々な条件を設定して実行し、プログラム修正が誤っていないか、新たな不良が発生していないかといったことを調べるためのテスト用プログラムであり、それぞれテスト内容が異なる。
テストケース実行部30は、複数のコンピュータ40と接続し、並列分散処理によって回帰テストを複数のコンピュータ40に実行させる。具体的には、テストケース実行部30は、複数のコンピュータそれぞれにテストケースを順に割り当てて実行させ、実行終了すると、次の順のテストケースを割り当てていく。
一連のテストケースの実行がすべて終了すると、テストケース管理部20は、テストケース実行部30からテスト結果を受け取る。開発者は、テスト結果を受けてさらにプログラム修正を行う。それに伴い、複数のテストケースを用いた回帰テストが自動的に行われる。このようなプログラム修正、自動テストが繰り返し行われる。
本実施形態では、複数のテストケースを並列分散処理させるとき、テストケースの実行順を、実行時間の長い順にして回帰テストを行う。以下、これについて説明する。
図2は、回帰テストを実行する処理のフローチャートである。図3は、回帰テストの実行時間を示した図である。
テスト開始時には、複数のテストケースが履歴順(登録順)に並べたリストのファイルが、テストケース格納部15に格納されている。初めは、複数のコンピュータ40によって複数のテストケースを履歴順で並列的に実行させる(S101、S102)。このとき、各テストケースの実行時間を計測、記録し、テストケースの実行時間のリストを作成する(S101~S103)。
回帰テストのテスト結果を踏まえてプログラムが修正されると、回帰テストが再び実行される(S104)。ステップS105では、テストケースの実行順が、先の回帰テストで作成された実行時間のリストに基づいてソートされる。具体的には、複数のテストケースの実行順が、実行時間の長い順に変更され、新たな実行順で並んだ複数のテストケースのファイルが作成される。そして、新たに作成されたファイルに従い、回帰テストが行われる(S106)。
図3では、ソート前、ソート後の実行時間を示している。ここでは、複数のコンピュータ40を4つのマシンA~Dによって構成し、15個のテストケースT1~T15によって回帰テストを行っている。
最初の回帰テストでは、4つのマシンA~Dを使って履歴順(登録順)で複数のテストケースを実行している。初めに、並び順で上位4つのテストケースが4つのマシンA~Dに割り当てられる。いずれかのマシンでテストケースの実行が終了すると、次の順番のテストケースがそのマシンに割り当てられる。各マシンにおいて実行終了する度に、次の順のテストケースを割り当てていく。
このような並列分散処理による回帰テストの過程において、実行時間の比較的長いテストケースが、あるマシンで続けて行われると、そのマシンにおける総実行時間が他のマシンと比べて長くなってしまう。図3では、マシンCにおける実行時間終了が他のマシンA、B、Dと比べて長い。その一方、マシンDにおける総実行時間は比較的短い。その結果、全てのマシンA~Dによる実行終了までの総時間(回帰テスト時間)t0が長くなる。
一方、複数のテストケースの実行順を、前回の回帰テストにおいて実行時間の長い順に設定した場合、4つのマシンA~Dに対して実行時間の比較的長い4つのテストケースT1~T4が最初に割り当てられる。そして、実行時間の長い順にテストケースが4つのマシンA~Dに順次割り当てられていく。プログラムの修正があっても、各テストケースの実行時間はそれほど大きく変化しないと考えれば、回帰テスト時間t1は、最初の回帰テストの時間t0と比べて短くなる。
ステップS106で回帰テストが実行されると、ステップS103と同様、各テストケースの実行時間のリストが作成され、記録される(S107)。そして、次の回帰テストには、新たに記録された実行時間に基づいて実行順が定められ、ファイルが作成される。プログラム修正が終了するまで(S108)、このようなテストケースの実行順のソートと回帰テストが繰り返し行われる。
なお、回帰テストの度にテストケースの実行順を並び替えしなくてもよく、所定回数回帰テストを行ってから実行順を定めてもよい。また、テストケースの実行順の並び替え、ファイル作成を、回帰テスト終了直後など、あるいは次の回帰テストが開始される前に行ってもよい。
このように本実施形態によれば、複数のコンピュータ40を並列的に使って回帰テストを実行するシステム10において、回帰テスト時に記録した各テストケースの実行時間に基づき、複数のテストケースを実行時間の長い順にソートする。そして、複数のテストケースを定めた実行順で実行する。
実行時間の長い順序でテストケースを実行させることにより、並列分散処理に基づく回帰テストの時間短縮を図ることができる。また、長時間かかるテストケースを始めに実行するため、副作用リスクがあるなど開発者にとって優先的順位が高いテストケースを優先的に実行することができる。
各テストケースの実行時間のデータをテストケース格納部15へ格納することによって、ソート処理および新たなファイル作成が次の回帰テストにおいて容易となる。また、各テストケースの実行時間を回帰テストの度に記録することにより、新たなテストケースを追加しても、最新の実行時間のデータに基づいた順番でテストケースを実行することができる。
本実施形態では、実行時間の長い順で実行順をスケジューリングしているが、短い順でスケジューリングしてもよい。また、継続的インテグレーションツールを用いない回帰テストに対しても適用可能である。さらに、回帰テスト以外のソフトウェアのテストに対しても有効である。ソート処理、ファイル作成については、テストケース管理部20以外の処理部で行ってもよく、継続的インテグレーション処理のプログラムに一部組み込むことも可能であり、あるいは、それにソート処理、ファイル作成などの処理を編集作業などによって組み入れることも可能である。
システムは、サーバシステムなどで構成すればよく、仮想サーバなどのクラウドコンピュータで実装することも可能である。また、継続的インテグレーションの態様、開発支援システムの態様、OS、コンピュータの種類などは特に制限されず、任意である。
10 システム
15 テストケース格納部
20 テストケース管理部(実行順設定部)
30 テストケース実行部
40 コンピュータ

Claims (8)

  1. システムにおいて、複数のテストケースの実行順を定め、
    複数のテストケースの数より少ない数で構成される複数のコンピュータに対し、テストケース実行終了のコンピュータに実行順で次のテストケースを順次割り当てていく並列分散処理によって、複数のテストケースを実させるテスト方法であって、
    前記システムにおいて、複数のテストケースの実行順を、実行時間の長い順または短い順に定めることを特徴とするテスト方法。
  2. 前記システムにおいて、複数のテストケースの実行順を、実行時間の長い順に定めることを特徴とする請求項1に記載のテスト方法。
  3. 前記システムにおいて、以前実行されたときに記録された各テストケースの実行時間に従って、複数のテストケースの実行順を定めることを特徴とする請求項1または2に記載のテスト方法。
  4. 前記システムにおいて、複数のテストケースを実行する度に、各テストケースの実行時間を記録することを特徴とする請求項3に記載のテスト方法。
  5. 前記システムにおいて、継続的インテグレーションによる回帰テストが行われることを特徴とする請求項1乃至4のいずれかに記載のテスト方法。
  6. 記憶部に記憶された複数のテストケースの実行順を定める実行順設定部と、
    複数のテストケースの数より少ない数で構成される複数のコンピュータに対し、テストケース実行終了のコンピュータに実行順で次のテストケースを順次割り当てていく並列分散処理によって、複数のテストケースを実行させるテストケース実行部とを備え、
    前記実行順設定部が、複数のテストケースの実行順を、実行時間の長い順または短い順に定めることを特徴とするシステム。
  7. ステムにおいて、
    憶部に記憶された複数のテストケースの実行順を、実行時間の長い順または短い順に定めるステップと、
    複数のテストケースの数より少ない数で構成される複数のコンピュータに対し、テストケース実行終了のコンピュータに実行順で次のテストケースを順次割り当てていく並列分散処理によって、複数のテストケースを実行させるステップと
    を実行させることを特徴とするプログラム。
  8. 複数のテストケースが実行順として登録順で並ぶファイルから、実行時間の長い順または短い順で複数のテストケースが並ぶファイルを生成することを特徴とする請求項1に記載のテスト方法
JP2018080527A 2018-04-19 2018-04-19 ソフトウェアのテスト方法、システムおよびプログラム Active JP7016583B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018080527A JP7016583B2 (ja) 2018-04-19 2018-04-19 ソフトウェアのテスト方法、システムおよびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018080527A JP7016583B2 (ja) 2018-04-19 2018-04-19 ソフトウェアのテスト方法、システムおよびプログラム

Publications (2)

Publication Number Publication Date
JP2019191685A JP2019191685A (ja) 2019-10-31
JP7016583B2 true JP7016583B2 (ja) 2022-02-07

Family

ID=68389914

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018080527A Active JP7016583B2 (ja) 2018-04-19 2018-04-19 ソフトウェアのテスト方法、システムおよびプログラム

Country Status (1)

Country Link
JP (1) JP7016583B2 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001309033A (ja) 2000-04-21 2001-11-02 Matsushita Electric Ind Co Ltd 回線シミュレーション装置
JP2005284484A (ja) 2004-03-29 2005-10-13 Japan Research Institute Ltd テストケース生成方法及びテストケース生成装置
JP2010134643A (ja) 2008-12-03 2010-06-17 Hitachi Software Eng Co Ltd テストケースの選択方法及び選択システム
JP2012181852A (ja) 2004-07-30 2012-09-20 Commissariat A L'energie Atomique & Aux Energies Alternatives タスク処理のスケジューリング方法及びこの方法を適用するための装置
JP2017194895A (ja) 2016-04-22 2017-10-26 日本電信電話株式会社 テストデータ生成プログラム及びテストデータ生成方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001309033A (ja) 2000-04-21 2001-11-02 Matsushita Electric Ind Co Ltd 回線シミュレーション装置
JP2005284484A (ja) 2004-03-29 2005-10-13 Japan Research Institute Ltd テストケース生成方法及びテストケース生成装置
JP2012181852A (ja) 2004-07-30 2012-09-20 Commissariat A L'energie Atomique & Aux Energies Alternatives タスク処理のスケジューリング方法及びこの方法を適用するための装置
JP2010134643A (ja) 2008-12-03 2010-06-17 Hitachi Software Eng Co Ltd テストケースの選択方法及び選択システム
JP2017194895A (ja) 2016-04-22 2017-10-26 日本電信電話株式会社 テストデータ生成プログラム及びテストデータ生成方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
中根清光 ほか,Windows NT/UNIX融合環境における論理検証負荷の分散,第57回(平成10年後期)全国大会講演論文集(3) データベースとメディア ネットワーク,日本,社団法人情報処理学会,1998年10月05日,pp.3-475~3-476

Also Published As

Publication number Publication date
JP2019191685A (ja) 2019-10-31

Similar Documents

Publication Publication Date Title
JP7292786B2 (ja) ハイブリッド・コンピューティング環境におけるパッチ管理
JP5970617B2 (ja) 開発支援システム
US6988139B1 (en) Distributed computing of a job corresponding to a plurality of predefined tasks
US9928059B1 (en) Automated deployment of a multi-version application in a network-based computing environment
US10917456B2 (en) Application management in an application deployment pipeline
US20110145793A1 (en) Method and apparatus to semantically connect independent build and test processes
US20120030654A1 (en) Apparatus and method for automated testing of software program
US9542173B2 (en) Dependency handling for software extensions
US9898392B2 (en) Automated test planning using test case relevancy
CN111158730B (zh) 系统更新方法、装置、电子设备和可读存储介质
US11842188B2 (en) Continuous integration and deployment pipeline selection based on dynamic mapping
CN107179982B (zh) 一种跨进程调试方法和装置
US11989539B2 (en) Continuous integration and deployment system time-based management
CN113672273B (zh) 数据处理方法、系统及设备
US6983216B2 (en) Test automation method and tool with dynamic attributes and value sets integration
JP7016583B2 (ja) ソフトウェアのテスト方法、システムおよびプログラム
JP2017045217A (ja) ログ管理装置、ログ管理方法、およびログ管理プログラム
US9317273B2 (en) Information processing apparatus and information processing method
JP6702072B2 (ja) 制御プログラム、装置、及び方法
CN113434360A (zh) 一种作业运行监控的方法及系统
CN111143229A (zh) 软件测试方法及装置、计算机设备及计算机可读存储介质
US8359456B2 (en) Generating random addresses for verification of distributed computerized devices
WO2012066635A1 (ja) テスト方法、テスト装置及びテスト実行用プログラム
CN111367563B (zh) 主机版本合并方法及装置
JP7454700B2 (ja) 演算装置及び検査方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200923

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210930

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211223

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: 20220125

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220125