JP2024048916A - Information processing system, information processing method, and computer program - Google Patents

Information processing system, information processing method, and computer program Download PDF

Info

Publication number
JP2024048916A
JP2024048916A JP2022155082A JP2022155082A JP2024048916A JP 2024048916 A JP2024048916 A JP 2024048916A JP 2022155082 A JP2022155082 A JP 2022155082A JP 2022155082 A JP2022155082 A JP 2022155082A JP 2024048916 A JP2024048916 A JP 2024048916A
Authority
JP
Japan
Prior art keywords
task
priority
information
test
queue
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.)
Pending
Application number
JP2022155082A
Other languages
Japanese (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.)
Sumitomo Wiring Systems Ltd
AutoNetworks Technologies Ltd
Sumitomo Electric Industries Ltd
Original Assignee
Sumitomo Wiring Systems Ltd
AutoNetworks Technologies Ltd
Sumitomo Electric Industries Ltd
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 Sumitomo Wiring Systems Ltd, AutoNetworks Technologies Ltd, Sumitomo Electric Industries Ltd filed Critical Sumitomo Wiring Systems Ltd
Priority to JP2022155082A priority Critical patent/JP2024048916A/en
Priority to PCT/JP2023/032993 priority patent/WO2024070620A1/en
Publication of JP2024048916A publication Critical patent/JP2024048916A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】より優先度の高いタスクから先にテストを実行する。【解決手段】車載装置にて実行されるソフトウェアの開発支援をする情報処理システムであって、前記ソフトウェアに含まれる複数のソースが格納されたリポジトリから提供されるタスクを、前記タスクがテストの実行待ちをするキューに追加する制御部を備え、前記制御部は、前記タスクに関する情報を含む優先度情報が格納されているストレージから、前記優先度情報を読み出し、前記優先度情報に基づいて、前記タスクの優先度を算出し、前記キューに既に蓄積されている前記タスクの優先度と、前記キューに新たに追加する前記タスクの優先度とを比較し、より高い優先度の前記タスクの実行順を先にした状態で、前記タスクを前記キューに追加する、情報処理システム。【選択図】図1[Problem] Testing is performed starting with a task with a higher priority. [Solution] An information processing system that supports the development of software to be executed by an in-vehicle device, comprising a control unit that adds a task provided from a repository storing multiple sources included in the software to a queue in which the task waits for execution of a test, the control unit reads priority information including information about the task from a storage that stores the priority information, calculates the priority of the task based on the priority information, compares the priority of the task already stored in the queue with the priority of the task to be newly added to the queue, and adds the task to the queue with the execution order of the task with a higher priority. [Selected Figure] Figure 1

Description

本開示は、情報処理システム、情報処理方法およびコンピュータプログラムに関する。 The present disclosure relates to an information processing system, an information processing method, and a computer program.

従来、ソフトウェアの開発において、継続的インテグレーション(CI:Continuous Integration)および継続的デリバリー(CD:Continuous Delivery)と称される手法が用いられる場合がある。なお、継続的デリバリーに代えて、継続的デプロイ(CD:Continuous Deployment)が実施される場合もある。このような開発手法は、開発途上のソフトウェアをこまめに自動検証することで、大規模な修正イベントを抑制し、修正に掛かるコストを低減することを目的としている。 Traditionally, in software development, methods known as Continuous Integration (CI) and Continuous Delivery (CD) are sometimes used. Note that Continuous Deployment (CD) is sometimes used instead of Continuous Delivery. Such development methods aim to prevent large-scale revision events and reduce the cost of revisions by frequently and automatically verifying software under development.

例えば、ソフトウェアの開発現場では、複数の開発者が各自、ソースを作成しており、単体のソースの動作確認が行われている。しかし、1個のソフトウェアとして複数のソースを統合した状態で動作させると、エラーが生じるおそれがある。この場合、いずれのソースの組合せにおいてエラーが生じたのかを1組ずつ検証する必要が生じるため、動作テストに時間が掛かるおそれがある。 For example, in software development, multiple developers each create source code, and the operation of each source code is checked. However, when multiple source codes are integrated and run as a single piece of software, there is a risk of errors occurring. In this case, it becomes necessary to verify which combination of source codes caused the error one by one, which can result in time-consuming operation tests.

CI/CDに基づく開発手法では、例えば複数の開発者がそれぞれ作成したソースを、クラウド上のリポジトリに格納する(リポジトリへのプッシュ)。そして、GitHub(登録商標)等のソース管理ツール(SCM:Source Code Managementとも称される。)が、ソースの更新等の都度、リポジトリに格納されたソースに基づいて自動的にタスクを作成する(タスクのビルド)。タスクはJenkins(登録商標)等のCI/CDツールによって自動的にテストされる。 In a development method based on CI/CD, for example, multiple developers each create source code and store it in a repository on the cloud (push to the repository). Then, a source management tool (also called Source Code Management: SCM) such as GitHub (registered trademark) automatically creates tasks based on the source code stored in the repository each time the source code is updated (build tasks). The tasks are automatically tested by a CI/CD tool such as Jenkins (registered trademark).

このように、小さなサイクルによりインテグレーションを繰り返し行い、インテグレーションのエラーを頻回にチェックすることで、大規模な手戻りを抑制することができる。 In this way, by repeating integration in small cycles and frequently checking for integration errors, large-scale rework can be prevented.

特許文献1には、テストの重要度、テストの実行時間に基づいて、実行するテストケースを選択する技術が開示されている。特許文献1の技術では、例えば重要度の低いテストケースを実行しないため、CIの自動テストに掛かる時間を抑制することができる。 Patent document 1 discloses a technique for selecting test cases to be executed based on the importance of the test and the execution time of the test. With the technique of Patent document 1, for example, test cases with low importance are not executed, so that the time required for automatic testing of CI can be reduced.

特許文献2には、ソースコードに対応するチケットの属性情報に含まれる優先度属性などに基づいて、自動実行キューの実行対象情報の順序を変更する技術が開示されている。 Patent document 2 discloses a technology that changes the order of execution target information in an automatic execution queue based on priority attributes and the like included in attribute information of a ticket corresponding to source code.

特開2010-134643号公報JP 2010-134643 A 特開2021-105866号公報JP 2021-105866 A

自動車等の車両に搭載される装置(車載装置)にて実行されるソフトウェアは、年々大規模化しており、車載装置用のソフトウェアにおいてもCI/CDに基づく開発手法が採用されてきている。 The software executed by devices installed in vehicles such as automobiles (on-board devices) is becoming larger in scale every year, and development methods based on CI/CD are also being adopted for software for on-board devices.

ここで、車載装置用のソフトウェアの場合、タスクの動作テストのために、例えば開発用の回路基板や測定治具などのハードウェアリソースを使用する必要がある。このようなハードウェアリソースを多数設けると、テスト環境の構築にコストが掛かるため、ハードウェアリソースの数は制限されている。このため、車載装置用のソフトウェアでは、動作テストを多数並列して実行することが困難であり、より優先度の高いタスクからテストを実行することで、ソフトウェアの修正点をより迅速に発見することが要求される。 Here, in the case of software for in-vehicle devices, it is necessary to use hardware resources such as development circuit boards and measurement jigs to perform task operation tests. Providing a large number of such hardware resources increases the cost of building a test environment, so the number of hardware resources is limited. For this reason, it is difficult to run many operation tests in parallel for software for in-vehicle devices, and there is a demand to more quickly find software corrections by running tests on tasks with higher priority.

かかる課題に鑑み、本開示は、より優先度の高いタスクからテストを実行することができる情報処理システム、情報処理方法およびコンピュータプログラムを提供することを目的とする。 In view of this problem, the present disclosure aims to provide an information processing system, an information processing method, and a computer program that can execute tests starting with tasks with higher priority.

本開示の情報処理システムは、車載装置にて実行されるソフトウェアの開発支援をする情報処理システムであって、前記ソフトウェアに含まれる複数のソースが格納されたリポジトリから提供されるタスクを、前記タスクがテストの実行待ちをするキューに追加する制御部を備え、前記制御部は、前記タスクに関する情報を含む優先度情報が格納されているストレージから、前記優先度情報を読み出し、前記優先度情報に基づいて、前記タスクの優先度を算出し、前記キューに既に蓄積されている前記タスクの優先度と、前記キューに新たに追加する前記タスクの優先度とを比較し、より高い優先度の前記タスクの実行順を先にした状態で、前記タスクを前記キューに追加する、情報処理システムである。 The information processing system disclosed herein is an information processing system that supports the development of software to be executed by an in-vehicle device, and includes a control unit that adds a task provided from a repository storing multiple sources included in the software to a queue in which the task waits for test execution, and the control unit reads priority information including information about the task from a storage device that stores the priority information, calculates the priority of the task based on the priority information, compares the priority of the task already stored in the queue with the priority of the task to be newly added to the queue, and adds the task to the queue with the task with the higher priority being executed first.

本開示の情報処理方法は、車載装置にて実行されるソフトウェアの開発支援をする情報処理方法であって、前記ソフトウェアに含まれる複数のソースが格納されたリポジトリから提供されるタスクを、前記タスクがテストの実行待ちをするキューに追加するステップを備え、前記追加するステップは、前記タスクに関する情報を含む優先度情報が格納されているストレージから、前記優先度情報を読み出す第1ステップと、前記優先度情報に基づいて、前記タスクの優先度を算出する第2ステップと、前記キューに既に蓄積されている前記タスクの優先度と、前記キューに新たに追加する前記タスクの優先度とを比較し、より高い優先度の前記タスクの実行順を先にした状態で、前記タスクを前記キューに追加する第3ステップと、を含む、情報処理方法である。 The information processing method disclosed herein is an information processing method for supporting the development of software to be executed by an in-vehicle device, and includes a step of adding a task provided from a repository storing multiple sources included in the software to a queue in which the task awaits execution of a test, the adding step including a first step of reading priority information from a storage storing priority information including information about the task, a second step of calculating the priority of the task based on the priority information, and a third step of comparing the priority of the task already stored in the queue with the priority of the task to be newly added to the queue, and adding the task to the queue with the task with the higher priority being executed first.

本開示のコンピュータプログラムは、車載装置にて実行されるソフトウェアの開発支援をするためのコンピュータプログラムであって、前記コンピュータプログラムは、コンピュータに、前記ソフトウェアに含まれる複数のソースが格納されたリポジトリから提供されるタスクを、前記タスクがテストの実行待ちをするキューに追加するステップを実行させ、前記追加するステップは、前記タスクに関する情報を含む優先度情報が格納されているストレージから、前記優先度情報を読み出す第1ステップと、前記優先度情報に基づいて、前記タスクの優先度を算出する第2ステップと、前記キューに既に蓄積されている前記タスクの優先度と、前記キューに新たに追加する前記タスクの優先度とを比較し、より高い優先度の前記タスクの実行順を先にした状態で、前記タスクを前記キューに追加する第3ステップと、を含む、コンピュータプログラムである。 The computer program disclosed herein is a computer program for supporting the development of software to be executed by an in-vehicle device, the computer program executing a step of adding a task provided from a repository storing multiple sources included in the software to a queue in which the task awaits execution of a test, the adding step including a first step of reading priority information from a storage storing priority information including information about the task, a second step of calculating the priority of the task based on the priority information, and a third step of comparing the priority of the task already stored in the queue with the priority of the task to be newly added to the queue, and adding the task to the queue with the task with the higher priority being executed first.

本開示によれば、より優先度の高いタスクからテストを実行することができる。 According to this disclosure, testing can be performed starting with the higher priority task.

図1は、実施形態に係る情報処理システムの一例を示す図である。FIG. 1 is a diagram illustrating an example of an information processing system according to an embodiment. 図2は、実施形態に係るソフトウェアの一例を示す図である。FIG. 2 is a diagram illustrating an example of software according to an embodiment. 図3は、実施形態に係る情報処理装置の内部構成の一例を示す図である。FIG. 3 is a diagram illustrating an example of an internal configuration of the information processing device according to the embodiment. 図4は、実施形態に係るテスト環境の一例を示す図である。FIG. 4 is a diagram illustrating an example of a test environment according to the embodiment. 図5は、実施形態に係るバージョン情報の一例を示すテーブルである。FIG. 5 is a table showing an example of version information according to the embodiment. 図6は、実施形態に係る実行時点情報の一例を示すテーブルである。FIG. 6 is a table illustrating an example of execution time information according to the embodiment. 図7は、実施形態に係る所要時間情報の一例を示すテーブルである。FIG. 7 is a table illustrating an example of required time information according to the embodiment. 図8は、実施形態に係るテスト結果情報の一例を示すテーブルである。FIG. 8 is a table showing an example of test result information according to the embodiment. 図9は、実施形態に係る安全規格情報の一例を示すテーブルである。FIG. 9 is a table illustrating an example of safety standard information according to the embodiment. 図10は、実施形態に係る環境情報の一例を示すテーブルである。FIG. 10 is a table illustrating an example of environmental information according to the embodiment. 図11は、実施形態に係る情報処理方法の一例を示すフローチャートである。FIG. 11 is a flowchart illustrating an example of an information processing method according to the embodiment. 図12は、変形例に係る情報処理方法を示すフローチャートである。FIG. 12 is a flowchart showing an information processing method according to a modified example. 図13は、変形例に係る各タスクの優先度を説明する図である。FIG. 13 is a diagram for explaining the priority of each task according to the modified example. 図14は、変形例に係るテスト結果情報を示すテーブルである。FIG. 14 is a table showing test result information according to a modified example.

[本開示の実施形態の説明]
本開示の実施形態には、その要旨として、以下の構成が含まれる。
[Description of the embodiments of the present disclosure]
The gist of the present disclosure includes the following configurations.

(1)本開示の情報処理システムは、車載装置にて実行されるソフトウェアの開発支援をする情報処理システムであって、前記ソフトウェアに含まれる複数のソースが格納されたリポジトリから提供されるタスクを、前記タスクがテストの実行待ちをするキューに追加する制御部を備え、前記制御部は、前記タスクに関する情報を含む優先度情報が格納されているストレージから、前記優先度情報を読み出し、前記優先度情報に基づいて、前記タスクの優先度を算出し、前記キューに既に蓄積されている前記タスクの優先度と、前記キューに新たに追加する前記タスクの優先度とを比較し、より高い優先度の前記タスクの実行順を先にした状態で、前記タスクを前記キューに追加する、情報処理システムである。 (1) The information processing system disclosed herein is an information processing system that supports the development of software to be executed by an in-vehicle device, and includes a control unit that adds a task provided from a repository storing multiple sources included in the software to a queue in which the task awaits test execution, and the control unit reads priority information including information about the task from a storage device that stores the priority information, calculates the priority of the task based on the priority information, compares the priority of the task already stored in the queue with the priority of the task to be newly added to the queue, and adds the task to the queue with the task with the higher priority being executed first.

このように構成することで、より優先度の高いタスクから先にテストを実行することができる。 By configuring it like this, you can run tests on higher priority tasks first.

(2)前記(1)の情報処理システムにおいて、前記車載装置は車載ECUを含んでもよい。 (2) In the information processing system of (1), the in-vehicle device may include an in-vehicle ECU.

車載ECU向けのソフトウェア開発は、大規模となる傾向があるため、より優先度の高いタスクから先にテストを実行することが特に有用となる。 Since software development for automotive ECUs tends to be large-scale, it is particularly useful to test higher priority tasks first.

(3)前記(1)又は前記(2)の情報処理システムにおいて、前記優先度情報は、テスト環境、前記タスクの過去のテストの結果、前記タスクの過去のテストの実行時点および前記タスクの過去のテストの所要時間のうち少なくともひとつに関する情報を含んでもよい。 (3) In the information processing system of (1) or (2), the priority information may include information regarding at least one of the test environment, the results of past tests of the task, the time when the past tests of the task were performed, and the time required for the past tests of the task.

優先度情報にテスト環境等が含まれるため、タスクに応じた適切な優先度の決定をすることができる。 Because the priority information includes test environments, etc., it is possible to determine appropriate priorities according to tasks.

(4)前記(1)から前記(3)のいずれかの情報処理システムにおいて、前記優先度情報は、前記タスクに要求される車両の安全規格に関する情報を含んでもよい。 (4) In any of the information processing systems described in (1) to (3), the priority information may include information regarding vehicle safety standards required for the task.

優先度情報に車両の安全規格に関する情報が含まれるため、車両の種類や前記車両に搭載される車載装置に応じた適切な優先度の決定をすることができる。 Because the priority information includes information regarding vehicle safety standards, it is possible to determine appropriate priorities according to the type of vehicle and the onboard devices installed in the vehicle.

(5)前記(3)の情報処理システムにおいて、前記タスクは、第1タスクと、直近の実行時点が前記第1タスクの直近の前記実行時点よりも前である第2タスクと、を含んでもよい。この場合、前記制御部は、前記第2タスクの優先度を前記第1タスクの優先度よりも高く算出してもよい。 (5) In the information processing system of (3), the tasks may include a first task and a second task whose most recent execution time is earlier than the most recent execution time of the first task. In this case, the control unit may calculate the priority of the second task to be higher than the priority of the first task.

しばらくテストされていないタスクについてより早くテストを実行することで、ソース修正の規模が大きくなることを抑制することができる。 By running tests sooner on tasks that haven't been tested for a while, you can prevent source modifications from becoming too large.

(6)前記(3)又は前記(5)の情報処理システムにおいて、前記タスクは、第1タスクと、前記所要時間が前記第1タスクの前記所要時間よりも短い第2タスクと、を含んでもよい。この場合、前記制御部は、前記第2タスクの優先度を前記第1タスクの優先度よりも高く算出してもよい。 (6) In the information processing system of (3) or (5), the tasks may include a first task and a second task whose required time is shorter than the required time of the first task. In this case, the control unit may calculate the priority of the second task to be higher than the priority of the first task.

短時間で実行できるタスクから先にテストを実行することで、時間あたりのテストの実行数を多くすることができ、実行待ちのタスク数を少なくすることができる。 By running tests for tasks that can be executed in a short time first, you can run more tests per hour and reduce the number of tasks waiting to be executed.

(7)前記(3)、前記(5)又は前記(6)の情報処理システムにおいて、前記タスクは、直近の前記結果が成功である第1タスクと、直近の前記結果が失敗である第2タスクと、を含んでもよい。この場合、前記制御部は、前記第2タスクの優先度を前記第1タスクの優先度よりも高く算出してもよい。 (7) In the information processing system of (3), (5), or (6), the tasks may include a first task whose most recent result is success and a second task whose most recent result is failure. In this case, the control unit may calculate the priority of the second task to be higher than the priority of the first task.

失敗したタスクから先にテストを実行することで、エラーが解消されたか否かをより早く確認することができる。 By running tests on failed tasks first, you can determine more quickly whether the error has been resolved.

(8)前記(3)、前記(5)、前記(6)又は前記(7)の情報処理システムにおいて、前記テスト環境は、回路基板および前記回路基板の動作を測定する測定部を含むテストセットと、前記キューから出力される前記タスクに基づいて、前記テストセットを制御することで、前記タスクのテストを実行する実行部と、を有してもよい。この場合、前記優先度情報は、前記タスクと、前記タスクのテストにおいて使用される前記テストセットとを紐付けた環境情報を含み、前記制御部は、前記環境情報に基づいて、前記タスクの優先度を算出してもよい。 (8) In the information processing system of (3), (5), (6), or (7), the test environment may include a test set including a circuit board and a measurement unit that measures the operation of the circuit board, and an execution unit that executes a test of the task by controlling the test set based on the task output from the queue. In this case, the priority information may include environmental information that links the task and the test set used in the test of the task, and the control unit may calculate the priority of the task based on the environmental information.

回路基板および測定部は、いずれもハードウェアリソースである。このようなハードウェアリソースを含むテストセットを多数設けると、テスト環境の構築にコストが掛かるため、限られたテストセットの数にて、ソフトウェアの動作テストを実行することが要求される。この結果、車載装置用のソフトウェアを開発するにあたっては、多数のタスクを並列して実行することが困難となる。この結果、より優先度の高いタスクから先にテストを実行することで、ソフトウェアの修正点をより迅速に発見することが特に有用となる。 Both the circuit board and the measurement unit are hardware resources. Providing a large number of test sets that include such hardware resources would be costly to build a test environment, so it is necessary to perform software operation tests using a limited number of test sets. As a result, it is difficult to execute many tasks in parallel when developing software for in-vehicle devices. As a result, it is particularly useful to perform tests on higher priority tasks first in order to more quickly find software corrections.

(9)前記(8)の情報処理システムにおいて、前記テストセットは、複数の第1テストセットと、複数の前記第1テストセットよりも数が少ない第2テストセットと、を含んでもよい。この場合、前記タスクは、前記環境情報において、前記第1テストセットに紐付けられている第1タスクと、前記第2テストセットに紐付けられている第2タスクと、を含み、前記制御部は、前記第2タスクの優先度を前記第1タスクの優先度よりも高く算出してもよい。 (9) In the information processing system of (8), the test sets may include a plurality of first test sets and a second test set that is less in number than the plurality of first test sets. In this case, the tasks may include a first task linked to the first test set and a second task linked to the second test set in the environment information, and the control unit may calculate the priority of the second task to be higher than the priority of the first task.

希少なテストセットから先にテストを実行することで、希少なテストセットの空き時間をより少なくすることができる。 By running tests on the rarer test sets first, the rarer test sets will have less free time.

(10)前記(4)の情報処理システムにおいて、前記タスクは、第1タスクと、要求される前記安全規格が前記第1タスクに要求される前記安全規格よりも厳しい第2タスクと、を含んでもよい。この場合、前記制御部は、前記第2タスクの優先度を前記第1タスクの優先度よりも高く算出してもよい。 (10) In the information processing system of (4), the tasks may include a first task and a second task, the safety standard required for which is stricter than the safety standard required for the first task. In this case, the control unit may calculate the priority of the second task to be higher than the priority of the first task.

安全規格がより厳しいタスクは、テストにおいて許容される値の範囲が狭く、エラーが生じやすい。このようなタスクから先にテストを実行することで、より迅速にソースのエラーを発見することができる。 Tasks with stricter safety standards have a narrower range of allowable values for testing and are more prone to errors. By testing these tasks first, you can find source errors more quickly.

(11)前記(10)の情報処理システムにおいて、前記安全規格は、ISO26262のASIL(Automotive Safety Integrity Level)である。 (11) In the information processing system of (10), the safety standard is ISO26262 ASIL (Automotive Safety Integrity Level).

(12)前記(1)から前記(11)のいずれかの情報処理システムにおいて、前記制御部は、前記優先度情報に基づいて、前記キューに既に蓄積されている前記タスクの優先度を算出し、前記キューに既に蓄積されている前記タスクのうち、第3タスクよりも優先度の高い第4タスクを、前記第3タスクよりも先の実行順にて、前記キュー内の蓄積順を並べ替えてもよい。 (12) In any of the information processing systems (1) to (11), the control unit may calculate the priority of the tasks already stored in the queue based on the priority information, and rearrange the order of tasks stored in the queue so that a fourth task, which has a higher priority than a third task, among the tasks already stored in the queue, is executed before the third task.

このように構成することで、既にキューに蓄積されている複数のタスクの蓄積順を見直すことができるため、より確実に、優先度の高いタスクから先にテストを実行することができる。 By configuring it in this way, the order in which multiple tasks are already stored in the queue can be reviewed, making it possible to more reliably execute tests on tasks with higher priority first.

(13)前記(1)から前記(12)のいずれかの情報処理システムにおいて、前記制御部は、前記テスト環境、前記安全規格、前記結果、前記実行時点および前記所要時間のうち少なくともひとつに基づいて、前記タスクを複数の分割タスクに分割し、前記優先度情報に基づいて、複数の前記分割タスクの優先度をそれぞれ算出し、複数の前記分割タスクのうち、第1分割タスクよりも優先度の高い第2分割タスクを、前記第1分割タスクよりも先の実行順にて、前記キューに蓄積してもよい。 (13) In any of the information processing systems (1) to (12), the control unit may divide the task into a plurality of divided tasks based on at least one of the test environment, the safety standard, the result, the execution time, and the required time, calculate priorities of the plurality of divided tasks based on the priority information, and accumulate a second divided task, which has a higher priority than a first divided task, in the queue in the order of execution prior to the first divided task.

このように構成することで、テストの結果をより細かく確認することができる。これにより、タスクのうちどの部分においてエラーが生じているかを絞り込みやすいため、よりエラーに迅速に対応することができる。 This configuration allows you to check the test results in more detail. This makes it easier to narrow down which part of the task is causing the error, allowing you to respond to the error more quickly.

(14)本開示の情報処理方法は、車載装置にて実行されるソフトウェアの開発支援をする情報処理方法であって、前記ソフトウェアに含まれる複数のソースが格納されたリポジトリから提供されるタスクを、前記タスクがテストの実行待ちをするキューに追加するステップを備え、前記追加するステップは、前記タスクに関する情報を含む優先度情報が格納されているストレージから、前記優先度情報を読み出す第1ステップと、前記優先度情報に基づいて、前記タスクの優先度を算出する第2ステップと、前記キューに既に蓄積されている前記タスクの優先度と、前記キューに新たに追加する前記タスクの優先度とを比較し、より高い優先度の前記タスクの実行順を先にした状態で、前記タスクを前記キューに追加する第3ステップと、を含む、情報処理方法である。 (14) The information processing method disclosed herein is an information processing method for supporting the development of software to be executed by an in-vehicle device, and includes a step of adding a task provided from a repository storing multiple sources included in the software to a queue in which the task awaits execution of a test, the adding step including a first step of reading priority information from a storage storing priority information including information about the task, a second step of calculating the priority of the task based on the priority information, and a third step of comparing the priority of the task already stored in the queue with the priority of the task to be newly added to the queue, and adding the task to the queue with the task with the higher priority being executed first.

このように構成することで、より優先度の高いタスクから先にテストを実行することができる。 By configuring it this way, you can run tests on higher priority tasks first.

(15)本開示のコンピュータプログラムは、車載装置にて実行されるソフトウェアの開発支援をするためのコンピュータプログラムであって、前記コンピュータプログラムは、コンピュータに、前記ソフトウェアに含まれる複数のソースが格納されたリポジトリから提供されるタスクを、前記タスクがテストの実行待ちをするキューに追加するステップを実行させ、前記追加するステップは、前記タスクに関する情報を含む優先度情報が格納されているストレージから、前記優先度情報を読み出す第1ステップと、前記優先度情報に基づいて、前記タスクの優先度を算出する第2ステップと、前記キューに既に蓄積されている前記タスクの優先度と、前記キューに新たに追加する前記タスクの優先度とを比較し、より高い優先度の前記タスクの実行順を先にした状態で、前記タスクを前記キューに追加する第3ステップと、を含む、コンピュータプログラムである。 (15) The computer program of the present disclosure is a computer program for supporting the development of software to be executed by an in-vehicle device, the computer program executing a step of adding a task provided from a repository storing multiple sources included in the software to a queue in which the task awaits execution of a test, the adding step including a first step of reading priority information from a storage storing priority information including information about the task, a second step of calculating the priority of the task based on the priority information, and a third step of comparing the priority of the task already stored in the queue with the priority of the task to be newly added to the queue, and adding the task to the queue with the task with the higher priority being executed first.

このように構成することで、より優先度の高いタスクから先にテストを実行することができる。 By configuring it this way, you can run tests on higher priority tasks first.

[1.本開示の実施形態の詳細]
以下、図面を参照して、本開示の実施形態の詳細を説明する。
1. Details of the embodiment of the present disclosure
Hereinafter, the details of the embodiments of the present disclosure will be described with reference to the drawings.

[1.1 情報処理システムの全体構成]
図1は、実施形態に係る情報処理システム1の構成例を示す図である。
情報処理システム1は、自動車等の車両に搭載される装置(以下、「車載装置」と称する。)にて実行されるソフトウェアSW1の開発支援をするシステムである。
[1.1 Overall configuration of information processing system]
FIG. 1 is a diagram showing an example of the configuration of an information processing system 1 according to an embodiment.
The information processing system 1 is a system that supports the development of software SW1 that is executed in an apparatus mounted on a vehicle such as an automobile (hereinafter, referred to as an "on-vehicle apparatus").

ソフトウェアSW1は、例えば、車載装置の中でも、車載のECU(Electronic Control Unit)に用いられるソフトウェアである。より具体的には、ソフトウェアSW1は、複数のECUを管理する機能を有するセントラルECU又は統合ECUに用いられる。このようなソフトウェアSW1は、大規模な開発が伴う傾向があるため、情報処理システム1による開発支援がより有用となる。 The software SW1 is software used, for example, in an on-board device, such as an on-board ECU (Electronic Control Unit). More specifically, the software SW1 is used in a central ECU or integrated ECU that has the function of managing multiple ECUs. Such software SW1 tends to involve large-scale development, making development support by the information processing system 1 particularly useful.

情報処理システム1は、情報処理装置10と、リポジトリ20と、テストツール30と、テスト環境40と、ストレージ50と、を備える。情報処理システム1は、1箇所に集約された1台の装置(例えばサーバ装置)によって実現されてもよいし、インターネット等のネットワークによって各部10,20,30,40,50が互いに通信可能に接続された状態で、複数箇所に分散された複数台の装置によって実現されてもよい。 The information processing system 1 includes an information processing device 10, a repository 20, a test tool 30, a test environment 40, and a storage 50. The information processing system 1 may be realized by a single device (e.g., a server device) concentrated in one location, or may be realized by multiple devices distributed in multiple locations with each unit 10, 20, 30, 40, 50 connected to each other so as to be able to communicate with each other via a network such as the Internet.

[1.2 ソフトウェアおよびタスク]
図2は、実施形態に係るソフトウェアSW1の一例を示す図である。図2を参照して、ソフトウェアSW1およびタスクTxについて説明する。ソフトウェアSW1は、前述のとおり、車載装置にて実行されるソフトウェアである。ソフトウェアSW1は、複数のコンポーネントX1,X2,X3を含む。コンポーネントX1は複数のモジュールa1,a2,a3を含み、コンポーネントX2は複数のモジュールb1,b2を含む。
1.2 Software and Tasks
Fig. 2 is a diagram showing an example of the software SW1 according to the embodiment. The software SW1 and the task Tx will be described with reference to Fig. 2. As described above, the software SW1 is software executed by the in-vehicle device. The software SW1 includes a plurality of components X1, X2, and X3. The component X1 includes a plurality of modules a1, a2, and a3, and the component X2 includes a plurality of modules b1 and b2.

これらのコンポーネントX1,X2,X3およびモジュールa1,a2,a3,b1,b2を「ソース」と総称する。すなわち、ソフトウェアSW1は複数のソースを含む。これらのソースは、ソースコードと称される所定のプログラム言語にて記載されたデータであってもよいし、ソースコードを機械語に変換した後のバイナリコードにて記載されたデータであってもよい。 These components X1, X2, and X3 and modules a1, a2, a3, b1, and b2 are collectively referred to as "sources." In other words, the software SW1 includes multiple sources. These sources may be data written in a specific programming language called source code, or may be data written in binary code after the source code is converted into machine language.

これらのソースは、例えば、複数の開発者(サプライヤ)がそれぞれ操作する複数の端末(端末群60と称する。)において個別に作成される。情報処理システム1では、ソース単体の動作テストと、複数のソースを結合(インテグレート)した状態での動作テストとを実行する。ここで、情報処理システム1において実行されるテストの項目をタスクTxと称する。タスクTxは「ジョブタスク」とも称される。 These sources are created individually, for example, on multiple terminals (called terminal group 60) operated by multiple developers (suppliers). In the information processing system 1, operation tests are performed on the source alone, and operation tests in a state where the multiple sources are combined (integrated). Here, the test items performed in the information processing system 1 are called tasks Tx. Tasks Tx are also called "job tasks".

タスクTxは、以下の(1)から(4)までのいずれかのテスト項目を含む。
(1)1個のモジュール(例えば、モジュールa1)が単体にて動作するか否かを検証するテスト項目。
(2)1個のコンポーネントに含まれる複数のモジュール(例えば、モジュールa1とモジュールa2)を結合した状態で動作するか否かを検証するテスト項目。
(3)1個のコンポーネント(例えば、コンポーネントX1)が動作するか否か、すなわち当該コンポーネントに含まれる全てのモジュール(例えばモジュールa1,a2,a3)を結合した状態で動作するか否かを検証するテスト項目。
(4)複数のコンポーネント(例えば、コンポーネントX1とコンポーネントX2)を結合した状態で動作するか否かを検証するテスト項目。
The task Tx includes any one of the following test items (1) to (4).
(1) A test item that verifies whether one module (e.g., module a1) operates independently.
(2) A test item that verifies whether multiple modules (e.g., module a1 and module a2) included in one component operate in a combined state.
(3) A test item that verifies whether one component (e.g., component X1) works, that is, whether all modules included in the component (e.g., modules a1, a2, and a3) work when combined.
(4) A test item that verifies whether multiple components (e.g., component X1 and component X2) operate in a combined state.

[1.3 リポジトリ]
図1を参照する。リポジトリ20は、例えば大容量記憶装置によって実現される、クラウド上に構築されたデータベースである。リポジトリ20は、端末群60にネットワークを介して接続されている。開発者は、端末群60においてそれぞれ作成した複数のソースをネットワークを介してリポジトリに送信する。リポジトリ20は、受信した複数のソースを格納する。
1.3 Repository
Please refer to Fig. 1. The repository 20 is a database constructed on a cloud, which is realized by, for example, a mass storage device. The repository 20 is connected to a group of terminals 60 via a network. A developer transmits a plurality of sources created on each of the group of terminals 60 to the repository via the network. The repository 20 stores the received plurality of sources.

リポジトリ20には、GitHub等のソース管理ツール(SCM:Sorce Code Managementとも称される。)が付帯されている。SCMは、リポジトリ20に格納されている複数のソースに基づいて、タスクTxを自動的に生成する。生成されたタスクTxは、リポジトリ20から情報処理装置10に提供される。 The repository 20 is provided with a source code management tool (also called SCM: Source Code Management) such as GitHub. The SCM automatically generates a task Tx based on multiple sources stored in the repository 20. The generated task Tx is provided from the repository 20 to the information processing device 10.

[1.4 情報処理装置]
図3は、実施形態に係る情報処理装置10の内部構成の一例を示す図である。
情報処理装置10は、タスクTxをテストツール30が管理するキュー31に追加する処理を実行するための装置である。情報処理装置10は、制御部11と、記憶部12と、通信部13と、読取部14と、を有する。これらの各部11~14は、それぞれバスによって電気的に接続されている。
[1.4 Information processing device]
FIG. 3 is a diagram illustrating an example of the internal configuration of the information processing device 10 according to the embodiment.
The information processing device 10 is a device for executing a process of adding a task Tx to a queue 31 managed by a test tool 30. The information processing device 10 has a control unit 11, a storage unit 12, a communication unit 13, and a reading unit 14. Each of these units 11 to 14 is electrically connected to each other via a bus.

制御部11は、例えばプロセッサ等の回路構成(Circuitry)を含む。制御部11は、具体的には、1個又は複数個のCPU(Central Processing Unit)を含む。制御部11は、記憶部12に記憶されているコンピュータプログラムを読み出して、各種の演算及び制御を実行する。 The control unit 11 includes a circuit configuration (circuitry) such as a processor. Specifically, the control unit 11 includes one or more central processing units (CPUs). The control unit 11 reads out computer programs stored in the memory unit 12 and executes various calculations and controls.

なお、制御部11は、予め所定のプログラムが書き込まれたプロセッサを含んでもよい。例えば、制御部11は、CPLD(Complex Programmable Logic Device)、FPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit)等の集積回路であってもよい。この場合、制御部11は、予め書き込まれたプログラムに基づいて、各種の情報処理を実行する。 The control unit 11 may include a processor in which a predetermined program is written in advance. For example, the control unit 11 may be an integrated circuit such as a CPLD (Complex Programmable Logic Device), an FPGA (Field-Programmable Gate Array), or an ASIC (Application Specific Integrated Circuit). In this case, the control unit 11 executes various information processing operations based on the programs written in advance.

記憶部12は、揮発性メモリと、不揮発性メモリと有し、各種のデータを記憶する。揮発性メモリは、例えばRAM(Random Access Memory)を含む。不揮発性メモリは、例えばフラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)又はROM(Read Only Memory)等を含む。記憶部12は、例えば、不揮発性メモリにコンピュータプログラム及び各種のパラメータを記憶している。 The storage unit 12 has a volatile memory and a non-volatile memory, and stores various data. The volatile memory includes, for example, a RAM (Random Access Memory). The non-volatile memory includes, for example, a flash memory, a HDD (Hard Disk Drive), a SSD (Solid State Drive), or a ROM (Read Only Memory). The storage unit 12 stores, for example, computer programs and various parameters in the non-volatile memory.

通信部13は、リポジトリ20、テストツール30およびストレージ50との通信を実行する通信インターフェースである。通信部13は、これらの各部20,30,50と、ネットワークを介して無線通信してもよいし、通信線を介して有線通信してもよい。無線通信を行う場合、通信部13は、アンテナを有する。 The communication unit 13 is a communication interface that communicates with the repository 20, the test tool 30, and the storage 50. The communication unit 13 may communicate with each of these units 20, 30, and 50 wirelessly via a network, or may communicate wired via a communication line. When performing wireless communication, the communication unit 13 has an antenna.

読取部14は、コンピュータが読取り可能な記録媒体15から情報を読み取る。記録媒体15は、例えばCD、DVD等の光学ディスク又はUSBフラッシュメモリである。読取部14は、例えば光学ドライブ又はUSB端子である。記録媒体15にはコンピュータプログラム及び各種のパラメータが記録されており、記録媒体15を読取部14に読み取らせることで、コンピュータプログラム及び各種のパラメータが記憶部12の不揮発性メモリに記憶される。 The reading unit 14 reads information from a computer-readable recording medium 15. The recording medium 15 is, for example, an optical disk such as a CD or DVD, or a USB flash memory. The reading unit 14 is, for example, an optical drive or a USB terminal. A computer program and various parameters are recorded on the recording medium 15, and by having the reading unit 14 read the recording medium 15, the computer program and various parameters are stored in the non-volatile memory of the storage unit 12.

リポジトリ20から提供されるタスクTxは、通信部13において受信され、バスを介して制御部11に入力される。また、ストレージ50から読み出される後述の優先度情報51も通信部13において受信され、バスを介して制御部11に入力される。制御部11は、記憶部12から読み出されるコンピュータプログラムに則って、優先度情報51に基づいてタスクTxの優先度を算出する。そして、制御部11は、算出された優先度に基づいて、タスクTxをキュー31の所定の位置に追加する。 The task Tx provided from the repository 20 is received by the communication unit 13 and input to the control unit 11 via the bus. Priority information 51 (described below) read from the storage 50 is also received by the communication unit 13 and input to the control unit 11 via the bus. The control unit 11 calculates the priority of the task Tx based on the priority information 51 in accordance with the computer program read from the memory unit 12. Then, the control unit 11 adds the task Tx to a specified position in the queue 31 based on the calculated priority.

[1.5 テストツール]
図1を参照する。テストツール30は、Jenkins又はCircleCI(登録商標)等のCI/CDツールであり、プロセッサおよびメモリを含むコンピュータ装置によって実現される。テストツール30は、複数のタスクTxがテストの実行待ちをするキュー31を管理する。具体的には、テストツール30は、キュー31に蓄積されているタスクTxをテスト環境40の実行部41へ順次、自動的に出力する。
1.5 Test Tools
Please refer to Fig. 1. The test tool 30 is a CI/CD tool such as Jenkins or CircleCI (registered trademark), and is realized by a computer device including a processor and a memory. The test tool 30 manages a queue 31 in which a plurality of tasks Tx wait for test execution. Specifically, the test tool 30 automatically outputs the tasks Tx stored in the queue 31 to an execution unit 41 of the test environment 40 in sequence.

キュー31は、例えば先入れ先出し法(FIFO:First In,First Out)にて複数のタスクTxを蓄積しているメモリである。図1の例では、キュー31に4個のタスクTx(特に区別する場合、それぞれT1,T2,T3,T4と称する。)が蓄積されている。 Queue 31 is a memory that stores multiple tasks Tx, for example, in a first-in, first-out (FIFO) manner. In the example of FIG. 1, four tasks Tx (referred to as T1, T2, T3, and T4 when distinguishing between them) are stored in queue 31.

図1では、既にタスクT1、タスクT2、タスクT3がこの順でキュー31に蓄積されているところに、情報処理装置10(具体的には、制御部11)から出力されたタスクT4が、FIFOではなくタスクT1とタスクT2の間の実行順にて追加された様子を示している。この場合、テストツール30は、タスクT1,T4,T2,T3の順に、キュー31に蓄積されているタスクTxを実行部41へ出力する。 In FIG. 1, task T1, task T2, and task T3 are already stored in the queue 31 in that order, and task T4 output from the information processing device 10 (specifically, the control unit 11) is added in the execution order between tasks T1 and T2, not in FIFO order. In this case, the test tool 30 outputs the tasks Tx stored in the queue 31 to the execution unit 41 in the order of tasks T1, T4, T2, and T3.

[1.6 テスト環境]
図1を参照する。テスト環境40は、実行部41と、テストセット42と、を有する。実行部41は、プロセッサおよびメモリを含むコンピュータ装置(例えば、ラップトップPC)であり、「ノード」とも称される。実行部41は、キュー31から出力されるタスクTxに基づいて、テストセット42を制御することで、タスクTxのテストを実行する。また、実行部41はテストセット42において実行したタスクTxのテストの結果等(例えば、テストの実行時点、実行に掛かった所要時間、テストが成功したか失敗したかを示す履歴)の情報を収集し、ストレージ50に出力する。
1.6 Test Environment
1. The test environment 40 includes an execution unit 41 and a test set 42. The execution unit 41 is a computer device (e.g., a laptop PC) including a processor and a memory, and is also called a "node." The execution unit 41 controls the test set 42 based on the task Tx output from the queue 31 to execute the test of the task Tx. The execution unit 41 also collects information such as the results of the test of the task Tx executed in the test set 42 (e.g., the time when the test was executed, the time required for execution, and a history indicating whether the test was successful or failed), and outputs the information to the storage 50.

テストセット42は、ソフトウェアSW1が動作する本番環境を模したハードウェアリソースである。ソフトウェアSW1は、車載装置にて実行されるいわゆる「組込みソフトウェア」であるため、その動作テストのためには、テストセット42のように本番環境を模したハードウェアリソースを使用する必要がある。テストセット42は、具体的には、回路基板43と、測定部44と、を含む。 The test set 42 is a hardware resource that mimics the production environment in which the software SW1 operates. Because the software SW1 is so-called "embedded software" that runs on an in-vehicle device, in order to test its operation, it is necessary to use hardware resources that mimic the production environment, such as the test set 42. Specifically, the test set 42 includes a circuit board 43 and a measurement unit 44.

回路基板43(開発基板とも称される。)は、車載装置に組み込まれる回路基板(例えば、ECUに実装される基板)を模した基板である。回路基板43は、車載装置に組み込まれる回路基板そのものであってもよいし、車載装置に組み込まれる回路基板の試作品であってもよい。測定部44は、回路基板43の動作を測定するツールである。測定部44は、例えばCANoe(登録商標)等の通信用のソフトウェアツールである。 Circuit board 43 (also called development board) is a board that imitates a circuit board (e.g., a board mounted on an ECU) that is to be incorporated into an in-vehicle device. Circuit board 43 may be the circuit board itself that is to be incorporated into an in-vehicle device, or may be a prototype of the circuit board that is to be incorporated into an in-vehicle device. Measurement unit 44 is a tool that measures the operation of circuit board 43. Measurement unit 44 is, for example, a software tool for communications such as CANoe (registered trademark).

図4は、実施形態に係るテスト環境40の一例を示す図である。図4は、テスト環境40に複数のテストセット42が含まれる場合を例示している。複数のテストセット42は、複数(図4では2個)の第1テストセット42aと、第2テストセット42bとを含む。第2テストセット42bは、複数の第1テストセット42aよりも数が少なく、図4では1個である。なお、複数のテストセット42に複数の第2テストセット42bが含まれてもよい。 Figure 4 is a diagram showing an example of a test environment 40 according to an embodiment. Figure 4 illustrates an example in which the test environment 40 includes multiple test sets 42. The multiple test sets 42 include multiple (two in Figure 4) first test sets 42a and second test sets 42b. The number of second test sets 42b is smaller than the number of first test sets 42a, and is one in Figure 4. Note that the multiple test sets 42 may include multiple second test sets 42b.

第1テストセット42aに含まれる回路基板43および測定部44を、第1回路基板43aおよび第1測定部44aと称する。第1測定部44aは、第1回路基板43aの動作を測定する。同様に、第2テストセット42bに含まれる回路基板43および測定部44を、第2回路基板43bおよび第2測定部44bと称する。第2回路基板43bは、第1回路基板43aとは異なる機能を有する基板である。第2測定部44bは、第2回路基板43bの動作を測定する。 The circuit board 43 and the measurement unit 44 included in the first test set 42a are referred to as the first circuit board 43a and the first measurement unit 44a. The first measurement unit 44a measures the operation of the first circuit board 43a. Similarly, the circuit board 43 and the measurement unit 44 included in the second test set 42b are referred to as the second circuit board 43b and the second measurement unit 44b. The second circuit board 43b is a board that has a different function from the first circuit board 43a. The second measurement unit 44b measures the operation of the second circuit board 43b.

図1を参照する。回路基板43および測定部44は、いずれもハードウェアリソースであり、かつ汎用性が低い。例えば、回路基板43は、汎用基板ではなく、車載装置用に調整された専用基板である。すなわち、回路基板43および測定部44は、専らソフトウェアSW1のテストにのみ用いられ、かつ価格も高価になりやすい。このようなテストセット42を多数設けると、テスト環境40の構築にコストが掛かるため、限られたテストセット42の数にて、ソフトウェアSW1の動作テストを実行することが要求される。 See FIG. 1. Both the circuit board 43 and the measurement unit 44 are hardware resources and have low versatility. For example, the circuit board 43 is not a general-purpose board, but a dedicated board adjusted for an in-vehicle device. In other words, the circuit board 43 and the measurement unit 44 are used exclusively for testing the software SW1, and tend to be expensive. If a large number of such test sets 42 are provided, the construction of the test environment 40 will be costly, so it is necessary to perform operation tests of the software SW1 with a limited number of test sets 42.

この結果、車載装置用のソフトウェアSW1を開発するにあたっては、多数のタスクTxを並列して実行することが困難となり、より優先度の高いタスクTxのテストから先に実行することで、ソフトウェアSW1の修正点をより迅速に発見することが要求される。 As a result, when developing software SW1 for an in-vehicle device, it becomes difficult to execute many tasks Tx in parallel, and it is necessary to execute tests of tasks Tx with higher priority first in order to more quickly find corrections to software SW1.

そこで、情報処理システム1では、キュー31にタスクTxを追加する際に、タスクTxの優先度に応じた位置にタスクTxを追加することで、優先度の高いタスクTxのテストをより早くに実行可能とする。 Therefore, in the information processing system 1, when a task Tx is added to the queue 31, the task Tx is added to a position according to the priority of the task Tx, thereby enabling the test of a task Tx with a high priority to be executed earlier.

[1.7 ストレージ]
図1を参照する。ストレージ50は、HDD又はSSD等の補助記憶装置である。ストレージ50には、優先度情報51が格納されている。優先度情報51は、タスクTxの優先度を算出するための情報である。優先度情報51は、例えば、バージョン情報D1、実行時点情報D2、所要時間情報D3、テスト結果情報D4、安全規格情報D5および環境情報D6を含む。なお、情報D1から情報D6までの情報のうち優先度情報51に含まれない情報があってもよい。すなわち、優先度情報51は、情報D1から情報D6までの少なくともひとつの情報を含めばよい。また、優先度情報51は、情報D1から情報D6までの情報以外の情報を含んでもよい。
1.7 Storage
Refer to FIG. 1. The storage 50 is an auxiliary storage device such as a HDD or SSD. Priority information 51 is stored in the storage 50. The priority information 51 is information for calculating the priority of a task Tx. The priority information 51 includes, for example, version information D1, execution time information D2, required time information D3, test result information D4, safety standard information D5, and environment information D6. Note that, among the information D1 to the information D6, there may be information that is not included in the priority information 51. That is, the priority information 51 only needs to include at least one of the information D1 to the information D6. The priority information 51 may also include information other than the information D1 to the information D6.

図5は、実施形態に係るバージョン情報D1の一例を示すテーブルTB1である。バージョン情報D1は、タスクTxのテストを実行した時点におけるソースのバージョンに関する情報である。バージョン情報D1は、例えば実行部41がタスクTxのテストを実行する都度、実行部41からストレージ50へ提供される。バージョン情報D1は、例えばSCMによってソースに付与されたハッシュ値(すなわち、ソースに対して一意に決まる値)として示されている。 FIG. 5 is a table TB1 showing an example of version information D1 according to an embodiment. Version information D1 is information about the version of the source at the time when a test of task Tx is executed. For example, version information D1 is provided from execution unit 41 to storage 50 each time execution unit 41 executes a test of task Tx. Version information D1 is shown as a hash value (i.e., a value uniquely determined for a source) assigned to the source by SCM, for example.

図5の例では、テストの実行時点TM1(例えば、テストを実行した年月日と時刻)におけるモジュールa1のバージョンがハッシュHa1-1と示され、実行時点TM1におけるモジュールa2のバージョンがハッシュH2-1と示されている。そして、実行時点TM1よりも後の実行時点TM2(より現時点に近い実行時点)におけるモジュールa1のバージョンがハッシュHa1-2と示され、実行時点TM1におけるモジュールa2のバージョンがハッシュH2-1と示されている。 In the example of FIG. 5, the version of module a1 at execution time TM1 (e.g., the date and time when the test was executed) is shown as hash Ha1-1, and the version of module a2 at execution time TM1 is shown as hash H2-1. The version of module a1 at execution time TM2, which is later than execution time TM1 (an execution time closer to the present time), is shown as hash Ha1-2, and the version of module a2 at execution time TM1 is shown as hash H2-1.

すなわち、実行時点TM2において、モジュールa1のバージョンはハッシュHa1-1からハッシュHa1-2に更新されている。図5の例では、モジュールa1以外のソースは実行時点TM1から実行時点TM2までの間に更新されていない。このため、複数のソースのうち、モジュールa1が最も直近に更新されたソースである。すなわち、バージョン情報D1において、複数の実行時点間におけるハッシュ値の差分をみることで、どのソースが最も直近に更新されているかを判断することができる。 That is, at execution time TM2, the version of module a1 is updated from hash Ha1-1 to hash Ha1-2. In the example of FIG. 5, sources other than module a1 are not updated between execution time TM1 and execution time TM2. Therefore, of the multiple sources, module a1 is the most recently updated source. In other words, by looking at the difference in hash values between multiple execution times in version information D1, it is possible to determine which source was most recently updated.

図6は、実施形態に係る実行時点情報D2の一例を示すテーブルTB2である。実行時点情報D2は、タスクTxと、タスクTxのテストを最後に実行した実行時点(直近の実行時点)とを紐付けた情報である。実行時点情報D2は、例えば実行部41がタスクTxのテストを実行する都度、実行部41からストレージ50へ提供される。図6の例では、モジュールa1,a2の結合テストは実行時点TM2にて最後に実行され、モジュールa2,a3の結合テストは実行時点TM1にて最後に実行されていることが示されている。すなわち、実行時点情報D2に基づくことで、どのタスクTxが最も直近に実行され、どのタスクTxが長らく放置されているかを判断することができる。 FIG. 6 is a table TB2 showing an example of execution time information D2 according to an embodiment. The execution time information D2 is information linking a task Tx with the execution time (most recent execution time) when a test of the task Tx was last executed. The execution time information D2 is provided from the execution unit 41 to the storage 50, for example, each time the execution unit 41 executes a test of the task Tx. The example of FIG. 6 shows that the integration test of modules a1 and a2 was last executed at execution time TM2, and the integration test of modules a2 and a3 was last executed at execution time TM1. In other words, based on the execution time information D2, it is possible to determine which task Tx was executed most recently and which task Tx has been left for a long time.

図7は、実施形態に係る所要時間情報D3の一例を示すテーブルTB3である。所要時間情報D3は、タスクTxと、タスクTxのテストの実行に掛かった所要時間とを紐づけた情報である。所要時間情報D3は、例えば実行部41がタスクTxのテストを実行する都度、実行部41からストレージ50へ提供される。図7のテーブルTB3には、実行時点TM1,TM2ごとの所要時間が格納されている。例えば、モジュールa1,a2の結合テストは、実行時点TM1では1分2秒掛かり、実行時点TM2では1分6秒掛かったことが示されている。また、モジュールa2,a3の結合テストは、実行時点TM1では2分30秒掛かり、実行時点TM2では当該結合テストを実行していないことが示されている。 FIG. 7 is a table TB3 showing an example of required time information D3 according to the embodiment. Required time information D3 is information linking a task Tx with the time required to execute a test of the task Tx. The required time information D3 is provided from the execution unit 41 to the storage 50, for example, each time the execution unit 41 executes a test of the task Tx. The table TB3 in FIG. 7 stores the required time for each execution time TM1, TM2. For example, it is shown that the integration test of modules a1 and a2 took 1 minute 2 seconds at execution time TM1 and 1 minute 6 seconds at execution time TM2. It is also shown that the integration test of modules a2 and a3 took 2 minutes 30 seconds at execution time TM1 and was not executed at execution time TM2.

所要時間情報D3によれば、直近のテストにおいて掛かった所要時間を取得することができる。例えば、モジュールa1,a2の結合テストの直近の所要時間は1分6秒であり、モジュールa2,a3の結合テストの直近の所要時間は2分30秒である。また、所要時間情報D3によれば、過去のテストにおいて掛かった所要時間の統計値(例えば、平均値又は中央値)を取得することができる。例えば、モジュールa1,a2の結合テストの所要時間の過去2回分の平均値は1分4秒である。 The required time information D3 makes it possible to obtain the time required for the most recent test. For example, the most recent integration test of modules a1 and a2 took 1 minute 6 seconds, and the most recent integration test of modules a2 and a3 took 2 minutes 30 seconds. Furthermore, the required time information D3 makes it possible to obtain statistics (e.g., average or median) of the time required for past tests. For example, the average time required for the most recent two integration tests of modules a1 and a2 is 1 minute 4 seconds.

図8は、実施形態に係るテスト結果情報D4の一例を示すテーブルTB4である。テスト結果情報D4は、タスクTxと、タスクTxのテストの結果とを紐づけた情報である。テストの結果は、テストの失敗(NG)と成功(OK)とを含む。ここで、テストの失敗とは、例えば測定部44において所望の測定値を満たさなかった場合を含む。また、テストの成功とは、例えば測定部44において所望の測定値をすべて満たした場合を含む。 Figure 8 is a table TB4 showing an example of test result information D4 according to an embodiment. Test result information D4 is information linking a task Tx with the test result of the task Tx. The test result includes a test failure (NG) and a test success (OK). Here, a test failure includes, for example, a case where the desired measurement value is not met in the measurement unit 44. Also, a test success includes, for example, a case where all the desired measurement values are met in the measurement unit 44.

図8のテーブルTB4には、実行時点TM1,TM2ごとのテスト結果が格納されている。テスト結果情報D4は、例えば実行部41がタスクTxのテストを実行する都度、実行部41からストレージ50へ提供される。例えば、モジュールa1,a2の結合テストは、実行時点TM1では失敗であり、実行時点TM2では成功であったことが示されている。モジュールa2,a3の結合テストは、実行時点TM1では成功であり、実行時点TM2では当該結合テストを実行していないことが示されている。また、コンポーネントX3,X1の結合テストは、実行時点TM1,TM2のいずれにおいても失敗であることが示されている。 Table TB4 in FIG. 8 stores test results for each execution time TM1, TM2. Test result information D4 is provided from the execution unit 41 to the storage 50, for example, each time the execution unit 41 executes a test of task Tx. For example, it is shown that the integration test of modules a1, a2 failed at execution time TM1 and was successful at execution time TM2. It is shown that the integration test of modules a2, a3 was successful at execution time TM1 and was not executed at execution time TM2. It is also shown that the integration test of components X3, X1 failed at both execution times TM1 and TM2.

テスト結果情報D4によれば、直近のテストの結果を取得することができる。例えば、モジュールa1,a2の結合テストの直近のテスト結果は成功であり、モジュールa2,a3の結合テストの直近のテスト結果は成功である。これに対し、コンポーネントX3,X1の結合テストの直近のテスト結果は失敗である。また、テスト結果情報D4によれば、過去に何回連続でテストに失敗しているかについての情報を取得することができる。例えば、コンポーネントX3,X1の結合テストは、直近から数えて、過去2回連続で失敗している。 The test result information D4 makes it possible to obtain the result of the most recent test. For example, the most recent test result of the integration test of modules a1 and a2 is a success, and the most recent test result of the integration test of modules a2 and a3 is a success. In contrast, the most recent test result of the integration test of components X3 and X1 is a failure. Furthermore, the test result information D4 makes it possible to obtain information on how many consecutive test failures have occurred in the past. For example, the most recent integration test of components X3 and X1 has failed twice in a row.

図9は、実施形態に係る安全規格情報D5の一例を示すテーブルTB5である。安全規格情報D5は、タスクTxのテストを実行した時点においてソースに要求される安全規格に関する情報である。安全規格情報D5は、例えば実行部41がタスクTxのテストを実行する都度、実行部41からストレージ50へ提供される。安全規格は、例えば車両、より具体的には自動車の安全規格である。安全規格は、例えばISO26262のASIL(Automotive Safety Integrity Level)である。ASILでは、例えばQM,ASIL-A,ASIL-B,ASIL-C,ASIL-Dという複数の段階が設定されており、この順に要求される基準が厳しくなる。すなわち、QMには最も緩い条件が課され、ASIL-Dには最も厳しい条件が課される。 FIG. 9 is a table TB5 showing an example of safety standard information D5 according to the embodiment. The safety standard information D5 is information on the safety standard required for the source at the time when the test of the task Tx is executed. The safety standard information D5 is provided from the execution unit 41 to the storage 50, for example, every time the execution unit 41 executes the test of the task Tx. The safety standard is, for example, a safety standard for vehicles, more specifically, automobiles. The safety standard is, for example, ASIL (Automotive Safety Integrity Level) of ISO26262. In ASIL, multiple stages are set, for example, QM, ASIL-A, ASIL-B, ASIL-C, and ASIL-D, and the required standards become stricter in this order. In other words, the loosest conditions are imposed on QM, and the strictest conditions are imposed on ASIL-D.

図9の例では、実行時点TM1におけるモジュールa1の安全規格がQMと示され、実行時点TM2におけるモジュールa1の安全規格がASIL-Aと示されている。すなわち、モジュールa1は実行時点TM1から実行時点TM2への更新(図5)に伴い、安全規格が1段階高くなったことが示されている。 In the example of Figure 9, the safety standard of module a1 at execution time TM1 is shown as QM, and the safety standard of module a1 at execution time TM2 is shown as ASIL-A. In other words, it shows that the safety standard of module a1 has become one level higher as a result of the update from execution time TM1 to execution time TM2 (Figure 5).

モジュールa1以外のソースについては、実行時点TM1から実行時点TM2への更新がないため、安全規格にも変化がない。例えば、モジュールa2,a3,b1,b2の安全規格はQMであり、コンポーネントX3の安全規格はASIL-Dである。安全規格情報D5において、直近の実行時点(図9では実行時点TM2)における安全規格の情報をみることで、現時点にて要求される安全規格を把握することができる。 For sources other than module a1, there is no update from execution time TM1 to execution time TM2, so there is no change in safety standards. For example, the safety standard for modules a2, a3, b1, and b2 is QM, and the safety standard for component X3 is ASIL-D. By looking at the safety standard information at the most recent execution time (execution time TM2 in Figure 9) in safety standard information D5, it is possible to understand the safety standard required at the current time.

図10は、実施形態に係る環境情報D6の一例を示すテーブルTB6である。環境情報D6は、タスクTxと、タスクTxのテストにおいて使用されるテストセット42とを紐づけた情報である。環境情報D6は、例えば実行部41がタスクTxのテストを実行する都度、実行部41からストレージ50へ提供される。例えば、モジュールa1,a2の結合テストおよびモジュールa2,a3の結合テストは、第1テストセット42aを使用して実行されることが示され、モジュールa3,a1の結合テストおよびコンポーネントX1のテストは第2テストセット42bを使用して実行されることが示されている。環境情報D6によれば、タスクTxのテストにおいて使用されるテストセット42の種類を取得することができる。 FIG. 10 is a table TB6 showing an example of environment information D6 according to an embodiment. The environment information D6 is information linking a task Tx with a test set 42 used in testing the task Tx. The environment information D6 is provided from the execution unit 41 to the storage 50, for example, each time the execution unit 41 executes a test of the task Tx. For example, it is indicated that the integration test of modules a1 and a2 and the integration test of modules a2 and a3 are executed using the first test set 42a, and that the integration test of modules a3 and a1 and the test of component X1 are executed using the second test set 42b. According to the environment information D6, it is possible to obtain the type of test set 42 used in testing the task Tx.

[1.8 情報処理方法]
図11は、情報処理システム1が実行する情報処理方法の一例を示すフローチャートである。はじめに、開発者が端末群60により複数のソースをそれぞれ作成し、ネットワークを介してリポジトリ20へ複数のソースを格納する。複数のソースは、それぞれ適宜のタイミングにてリポジトリ20へ格納される。
1.8 Information processing method
11 is a flowchart showing an example of an information processing method executed by the information processing system 1. First, a developer creates multiple sources using the terminal group 60, and stores the multiple sources in the repository 20 via the network. The multiple sources are stored in the repository 20 at appropriate times.

リポジトリ20を管理するSCMは、例えば定期的に(polling処理とも称される。)、又は新たなソースがリポジトリ20に格納された時に(push処理とも称される。)、タスクTxを作成する(ステップS11)。例えば、リポジトリ20に既にモジュールa1,a2,a3,b1,b2およびコンポーネントX3が格納されている状態で、新たなバージョンのモジュールa1がリポジトリ20に格納された場合、SCMはモジュールa1に関連するタスクTxを作成する。例えば、SCMは、モジュールa1,a2の結合テストを実行するためのタスクTxと、モジュールa1,a3の結合テストを実行するためのタスクTxと、コンポーネントX1のテストを実行するためのタスクTxと、コンポーネントX1を含む結合テスト(例えば、コンポーネントX1,X2の結合テスト)を実行するためのタスクTxと、を作成する。 The SCM that manages the repository 20 creates a task Tx, for example, periodically (also called polling processing) or when a new source is stored in the repository 20 (also called push processing) (step S11). For example, when a new version of a module a1 is stored in the repository 20 while modules a1, a2, a3, b1, and b2 and component X3 are already stored in the repository 20, the SCM creates a task Tx related to the module a1. For example, the SCM creates a task Tx for executing an integration test of modules a1 and a2, a task Tx for executing an integration test of modules a1 and a3, a task Tx for executing a test of component X1, and a task Tx for executing an integration test including component X1 (for example, an integration test of components X1 and X2).

その後、作成された1個又は複数個のタスクTxは、リポジトリ20から情報処理装置10に提供される。以上により、ステップS11が終了する。 Then, the created task or tasks Tx are provided from the repository 20 to the information processing device 10. This completes step S11.

情報処理装置10の通信部13は、リポジトリ20から受信したタスクTxを制御部11に出力する。制御部11は、新たにタスクTxの入力を受け付けると、ストレージ50から優先度情報51を読み出す(ステップS12)。制御部11は、例えば優先度情報51に含まれる情報D1から情報D6の全てを読み出してもよいし、情報D1から情報D6のうちタスクTxの優先度の算出に用いる一部の情報のみを読み出してもよい。読み出された優先度情報51は、通信部13を介して制御部11に入力される。以上により、ステップS12が終了する。 The communication unit 13 of the information processing device 10 outputs the task Tx received from the repository 20 to the control unit 11. When the control unit 11 accepts a new input of a task Tx, it reads the priority information 51 from the storage 50 (step S12). For example, the control unit 11 may read all of the information D1 to D6 included in the priority information 51, or may read only a portion of the information D1 to D6 used to calculate the priority of the task Tx. The read priority information 51 is input to the control unit 11 via the communication unit 13. This ends step S12.

続いて、制御部11は、優先度情報51に基づいてタスクTxの優先度を算出する(ステップS13)。優先度は、例えば以下に示す第1算出例から第5算出例のうち少なくともひとつの方法により算出される。制御部11は、第1算出例から第5算出例のうち2個以上の算出例により、情報D1から情報D6までの複数の情報に基づく複数種類の優先度を算出してもよい。優先度の算出例について、以下に説明する。 The control unit 11 then calculates the priority of the task Tx based on the priority information 51 (step S13). The priority is calculated, for example, by at least one method among the first to fifth calculation examples shown below. The control unit 11 may calculate multiple types of priorities based on multiple pieces of information, from information D1 to information D6, by two or more calculation examples among the first to fifth calculation examples. Examples of priority calculation are described below.

[1.8.1 第1算出例:放置されているタスクを優先する]
制御部11は、実行時点情報D2を読み出して、長らく放置されているタスクTx(すなわち、直近のテスト実行時点からの経過時間がより長いタスクTx)の優先度をより高く算出する。しばらくテストされていないタスクTxについてより早くテストを実行することで、ソース修正の規模が大きくなることを抑制することができる。
[1.8.1 First Calculation Example: Prioritize neglected tasks]
The control unit 11 reads the execution time information D2 and calculates a higher priority for a task Tx that has been left for a long time (i.e., a task Tx for which a longer time has elapsed since the most recent test was executed). By executing a test sooner for a task Tx that has not been tested for a while, it is possible to prevent the scale of source modification from becoming large.

例えば、図6の場合、モジュールa2,a3の結合テストに関するタスクTx(本算出例では、本開示の「第2タスク」の一例であり、適宜タスクa2-a3と称する。)の直近の実行時点TM1の方が、モジュールa1,a2の結合テストに関するタスクTx(本算出例では、本開示の「第1タスク」の一例であり、適宜タスクa1-a2と称する。)の直近の実行時点TM2よりも前(昔)である。 For example, in the case of FIG. 6, the most recent execution time TM1 of task Tx relating to integration testing of modules a2 and a3 (in this calculation example, an example of the "second task" of the present disclosure, and referred to as task a2-a3 as appropriate) is earlier (older) than the most recent execution time TM2 of task Tx relating to integration testing of modules a1 and a2 (in this calculation example, an example of the "first task" of the present disclosure, and referred to as task a1-a2 as appropriate).

このため、制御部11は、タスクa2-a3の優先度を、タスクa1-a2の優先度よりも高く算出する。優先度が高いほどタスクTxに高い数値を付与する場合、制御部11は、例えばタスクa2-a3の優先度として「2」を付与し、タスクa1-a2の優先度として「1」を付与する。 For this reason, the control unit 11 calculates the priority of tasks a2-a3 to be higher than the priority of tasks a1-a2. If a higher numerical value is assigned to task Tx the higher the priority, the control unit 11 assigns, for example, a priority of "2" to tasks a2-a3 and a priority of "1" to tasks a1-a2.

制御部11は、実行時点TM1,TM2の値に応じて、優先度を算出してもよい。例えば、実行時点TM1,TM2から現時点までの時間を優先度の値としてもよい。この場合、実行時点TM2から現時点までの時間の方が、実行時点TM1から現時点までの時間よりも長いため、タスクa2-a3の優先度としてより高い数値が算出される。 The control unit 11 may calculate the priority according to the values of the execution times TM1 and TM2. For example, the time from the execution times TM1 and TM2 to the current time may be used as the priority value. In this case, since the time from the execution time TM2 to the current time is longer than the time from the execution time TM1 to the current time, a higher value is calculated as the priority of tasks a2-a3.

[1.8.2 第2算出例:短時間で実行できるタスクを優先する]
制御部11は、所要時間情報D3を読み出して、短時間でテストを実行できるタスクTxの優先度をより高く算出する。短時間で実行できるタスクTxから先にテストを実行することで、時間あたりのテストの実行数を多くすることができ、実行待ちのタスク数を少なくすることができる。
[1.8.2 Second calculation example: Prioritize tasks that can be executed in a short time]
The control unit 11 reads the required time information D3 and calculates a higher priority for a task Tx that can be tested in a short time. By testing the task Tx that can be tested in a short time first, the number of tests that can be executed per unit time can be increased and the number of tasks waiting to be executed can be reduced.

例えば、図7の場合、モジュールa1,a2の結合テストに関するタスクTx(本算出例では、本開示の「第2タスク」の一例であり、適宜タスクa1-a2と称する。)のテストに掛かる所要時間の方が、モジュールa2,a3の結合テストに関するタスクTx(本算出例では、本開示の「第1タスク」の一例であり、適宜タスクa2-a3と称する。)のテストに掛かる所要時間よりも短い。 For example, in the case of FIG. 7, the time required for testing task Tx relating to integration testing of modules a1 and a2 (in this calculation example, an example of the "second task" of the present disclosure, and referred to as task a1-a2 as appropriate) is shorter than the time required for testing task Tx relating to integration testing of modules a2 and a3 (in this calculation example, an example of the "first task" of the present disclosure, and referred to as task a2-a3 as appropriate).

このため、制御部11は、タスクa1-a2の優先度を、タスクa2-a3の優先度よりも高く算出する。優先度が高いほどタスクTxに高い数値を付与する場合、制御部11は、例えばタスクa1-a2の優先度として「2」を付与し、タスクa2-a3の優先度として「1」を付与する。 For this reason, the control unit 11 calculates the priority of tasks a1-a2 to be higher than the priority of tasks a2-a3. If a higher numerical value is assigned to task Tx the higher the priority, the control unit 11 assigns, for example, a priority of "2" to tasks a1-a2 and a priority of "1" to tasks a2-a3.

制御部11は、所要時間の値に応じて、優先度を算出してもよい。例えば、所定値E1から所要時間を減算した値を優先度の値としてもよい。ここで、所定値E1は、各所要時間よりも十分に大きい値に設定される。この場合、所定値E1からタスクa1-a2の直近の所要時間(例えば1分6秒=66秒)を減算した値(E1-66)の方が、所定値E1からタスクa2-a3の直近の所要時間(例えば2分30秒=150秒)を減算した値(E1-150)よりも大きいため、タスクa1-a2の優先度としてより高い数値が算出される。なお、優先度の算出において、制御部11は、直近の所要時間の値を用いてもよいし、所要時間の統計値(例えば、過去複数回分の所要時間の平均値)を用いてもよい。 The control unit 11 may calculate the priority according to the required time value. For example, the priority value may be a value obtained by subtracting the required time from a predetermined value E1. Here, the predetermined value E1 is set to a value sufficiently larger than each required time. In this case, since the value (E1-66) obtained by subtracting the most recent required time of tasks a1-a2 (for example, 1 minute 6 seconds = 66 seconds) from the predetermined value E1 is greater than the value (E1-150) obtained by subtracting the most recent required time of tasks a2-a3 (for example, 2 minutes 30 seconds = 150 seconds) from the predetermined value E1, a higher value is calculated as the priority of tasks a1-a2. Note that in calculating the priority, the control unit 11 may use the most recent required time value or a statistical value of the required time (for example, the average value of the required times for the past several times).

[1.8.3 第3算出例:直近に失敗履歴のあるタスクを優先する]
制御部11は、テスト結果情報D4を読み出して、直近に失敗履歴のあるタスクTxの優先度をより高く算出する。失敗したタスクTxから先にテストを実行することで、エラーが解消されたか否かをより早く確認することができる。
[1.8.3 Third calculation example: Prioritize tasks with recent failure history]
The control unit 11 reads the test result information D4 and calculates the priority of the task Tx that has the most recent failure history to be higher. By executing the test on the failed task Tx first, it is possible to check more quickly whether the error has been resolved.

例えば、図8の場合、コンポーネントX1,X2の結合テストに関するタスクTx(本算出例では、本開示の「第1タスク」の一例であり、適宜タスクX1-X2と称する。)の直近のテスト結果が成功であり、コンポーネントX3,X1の結合テストに関するタスク(本算出例では、本開示の「第2タスク」の一例であり、適宜タスクX3-X1と称する。)の直近のテスト結果が失敗である。 For example, in the case of FIG. 8, the most recent test result of task Tx relating to integration testing of components X1 and X2 (in this calculation example, an example of the "first task" of the present disclosure, and appropriately referred to as task X1-X2) is a success, and the most recent test result of task Tx relating to integration testing of components X3 and X1 (in this calculation example, an example of the "second task" of the present disclosure, and appropriately referred to as task X3-X1) is a failure.

このため、制御部11は、タスクX3-X1の優先度を、タスクX1-X2の優先度よりも高く算出する。優先度が高いほどタスクTxに高い数値を付与する場合、制御部11は、例えばタスクX3-X1の優先度として「2」を付与し、タスクX1-X2の優先度として「1」を付与する。 For this reason, the control unit 11 calculates the priority of tasks X3-X1 to be higher than the priority of tasks X1-X2. If a higher numerical value is assigned to task Tx the higher the priority, the control unit 11 assigns, for example, a priority of "2" to tasks X3-X1 and a priority of "1" to tasks X1-X2.

制御部11は、直近からの連続失敗回数に応じて、優先度を算出してもよい。例えば、当該回数に定数(例えば、1)を加算した値を優先度としてもよい。この場合、制御部11は、タスクX1-X2に関して、直近からの連続失敗回数が0回(直近のテスト結果が成功)であるため、タスクX1-X2の優先度を1(=0+1)と算出する。また、制御部11は、タスクX3-X1に関して、直近からの連続失敗回数が2回であるため、タスクX3-X1の優先度を3(=2+1)と算出する。これにより、より多い失敗履歴のあるタスクX3-X1の優先度としてより高い数値が算出される。 The control unit 11 may calculate the priority according to the most recent number of consecutive failures. For example, the priority may be a value obtained by adding a constant (for example, 1) to the number. In this case, the control unit 11 calculates the priority of tasks X1-X2 as 1 (=0+1) because the most recent number of consecutive failures for tasks X1-X2 is 0 (the most recent test result was a success). Similarly, the control unit 11 calculates the priority of tasks X3-X1 as 3 (=2+1) because the most recent number of consecutive failures for tasks X3-X1 is 2. This allows a higher priority to be calculated for task X3-X1, which has a longer failure history.

[1.8.4 第4算出例:要求される安全規格がより厳しいタスクを優先する]
制御部11は、安全規格情報D5を読み出して、要求される安全規格がより厳しいタスクTxの優先度をより高く算出する。安全規格がより厳しいタスクTxは、例えば測定部44におけるテストで許容される値の範囲が狭く、エラーが生じやすい。このようなタスクTxから先にテストを実行することで、より迅速にソースのエラーを発見することができる。
[1.8.4 4th calculation example: Prioritize tasks that require stricter safety standards]
The control unit 11 reads out the safety standard information D5 and calculates a higher priority for a task Tx that requires stricter safety standards. Tasks Tx that require stricter safety standards have a narrower range of values that are permitted in tests by the measurement unit 44, for example, and are more likely to cause errors. By executing tests on such tasks Tx first, source errors can be found more quickly.

例えば、図9の場合、直近の実行時点におけるソースに関して、コンポーネントX3に要求されるASIL-Dが最も厳しく、その次にモジュールa1に要求されるASIL-Aが厳しい。そして、その他のソース(例えば、モジュールa2,a3等)に要求されるQMは最も緩い。 For example, in the case of Figure 9, for the sources at the most recent execution time, the ASIL-D required for component X3 is the strictest, followed by the ASIL-A required for module a1. The QM required for other sources (e.g. modules a2, a3, etc.) is the lenientest.

図8に示すようなソースを組合せたタスクTxを考える。例えば、モジュールa1,a2の結合テストを実行する場合、モジュールa1,a2を含むタスクa1-a2に要求される安全規格は、タスクa1-a2に含まれるソースに要求される規格の中で最も厳しいASIL-A(モジュールa1の安全規格)となる。また、モジュールa2,a3の結合テストを実行する場合、モジュールa2,a3を含むタスクa2-a3に要求される安全規格は、タスクa2-a3に含まれるソースに要求される規格の中で最も厳しいQM(モジュールa2,a3の安全規格)となる。 Consider a task Tx that combines sources as shown in Figure 8. For example, when performing an integration test of modules a1 and a2, the safety standard required for task a1-a2, which includes modules a1 and a2, is ASIL-A (the safety standard for module a1), which is the strictest among the standards required for the sources included in task a1-a2. Also, when performing an integration test of modules a2 and a3, the safety standard required for task a2-a3, which includes modules a2 and a3, is QM (the safety standard for modules a2 and a3), which is the strictest among the standards required for the sources included in task a2-a3.

以上により、タスクa1-a2(本算出例では、本開示の「第2タスク」の一例である。)のテストに要求される安全規格の方が、タスクa2-a3(本算出例では、本開示の「第1タスク」の一例である。)のテストに要求される安全規格よりも厳しいため、制御部11は、タスクa1-a2の優先度を、タスクa2-a3の優先度よりも高く算出する。優先度が高いほどタスクTxに高い数値を付与する場合、制御部11は、例えばタスクa1-a2の優先度として「2」を付与し、タスクa2-a3の優先度として「1」を付与する。 As a result of the above, the safety standard required for testing tasks a1-a2 (in this calculation example, an example of the "second task" of the present disclosure) is stricter than the safety standard required for testing tasks a2-a3 (in this calculation example, an example of the "first task" of the present disclosure), so the control unit 11 calculates the priority of tasks a1-a2 to be higher than the priority of tasks a2-a3. If a higher numerical value is assigned to task Tx the higher the priority, the control unit 11 assigns, for example, a priority of "2" to tasks a1-a2 and a priority of "1" to tasks a2-a3.

制御部11は、安全規格の厳しさ(高さ)に応じて、優先度を算出してもよい。例えば、制御部11は、最も厳しいASIL-Dが要求されるタスクTxの優先度を「5」とし、ASIL-Cを「4」、ASIL-Bを「3」、ASIL-Aを「2」、QMを「1」と、それぞれ優先度を割り当ててもよい。 The control unit 11 may calculate the priority according to the strictness (level) of the safety standard. For example, the control unit 11 may assign a priority of "5" to task Tx, which requires the strictest ASIL-D, and a priority of "4" to ASIL-C, "3" to ASIL-B, "2" to ASIL-A, and "1" to QM.

[1.8.5 第5算出例:数の少ないテストセットを使用するタスクを優先する]
制御部11は、環境情報D6を読み出して、環境情報D6のうち数の少ないテストセット42を使用するタスクTxの優先度をより高く算出する。希少なテストセット42から先にテストを実行することで、希少なテストセット42の空き時間をより少なくすることができる。
[1.8.5 5th calculation example: Prioritize tasks that use smaller test sets]
The control unit 11 reads the environment information D6 and calculates a higher priority for the task Tx that uses a test set 42 that is fewer in number in the environment information D6. By executing tests on the rare test set 42 first, it is possible to reduce the free time of the rare test set 42.

例えば、図4に示すように、テスト環境40に、2個の第1テストセット42aと1個の第2テストセット42bが含まれている場合を考える。図10の例では、モジュールa1,a2の結合テストに関するタスクTx(本算出例では、本開示の「第1タスク」の一例であり、適宜タスクa1-a2と称する。)に紐付いている第1テストセット42aよりも、モジュールa3,a1の結合テストに関するタスクTx(本算出例では、本開示の「第2タスク」の一例であり、適宜タスクa3-a1と称する。)に紐付いている第2テストセット42bの方が数が少ない。 For example, consider a case in which the test environment 40 includes two first test sets 42a and one second test set 42b as shown in FIG. 4. In the example of FIG. 10, there are fewer second test sets 42b linked to tasks Tx (in this calculation example, an example of a "second task" in the present disclosure and appropriately referred to as task a3-a1) related to integration testing of modules a3 and a1 than there are first test sets 42a linked to tasks Tx (in this calculation example, an example of a "first task" in the present disclosure and appropriately referred to as task a1-a2) related to integration testing of modules a1 and a2.

このため、制御部11は、タスクa3-a1の優先度を、タスクa1-a2の優先度よりも高く算出する。優先度が高いほどタスクTxに高い数値を付与する場合、制御部11は、例えばタスクa3-a1の優先度として「2」を付与し、タスクa1-a2の優先度として「1」を付与する。 For this reason, the control unit 11 calculates the priority of task a3-a1 to be higher than the priority of task a1-a2. If a higher numerical value is assigned to task Tx the higher the priority, the control unit 11 assigns, for example, a priority of "2" to task a3-a1 and a priority of "1" to task a1-a2.

制御部11は、テストセット42の数に応じて、優先度を算出してもよい。例えば、所定値E2からテストセット42の数を減算した値を優先度の値としてもよい。ここで、所定値E2は、各テストセット42の数よりも十分に大きい値に設定される。この場合、所定値E2から第2テストセット42bの数(1個)を減算した値(E2-1)の方が、所定値E2から第1テストセット42aの数(2個)を減算した値(E2-2)よりも大きいため、第2テストセット42bに紐付いているタスクa3-a1の優先度としてより高い数値が算出される。 The control unit 11 may calculate the priority according to the number of test sets 42. For example, the priority value may be a value obtained by subtracting the number of test sets 42 from a predetermined value E2. Here, the predetermined value E2 is set to a value that is sufficiently larger than the number of each test set 42. In this case, since the value (E2-1) obtained by subtracting the number of second test sets 42b (1) from the predetermined value E2 is greater than the value (E2-2) obtained by subtracting the number of first test sets 42a (2) from the predetermined value E2, a higher value is calculated as the priority of task a3-a1 linked to the second test set 42b.

[1.8.6 キューへのタスク追加]
算出された優先度は、例えば記憶部12に記憶される。以上により、ステップS13が終了する。
1.8.6 Adding a task to a queue
The calculated priority is stored, for example, in the storage unit 12. This ends step S13.

次に、制御部11は、優先度に基づいて、タスクTxをキュー31に追加する(ステップS14)。例えば、図1に示すように、キュー31に既にタスクT1,T2,T3が蓄積されている状態で、新たにタスクT4をキュー31へ追加する場合を考える。 Next, the control unit 11 adds the task Tx to the queue 31 based on the priority (step S14). For example, consider a case where a new task T4 is added to the queue 31 when tasks T1, T2, and T3 are already stored in the queue 31 as shown in FIG. 1.

タスクT4の優先度がタスクT1よりも低く、タスクT2よりも高い場合、制御部11はタスクT4をタスクT1よりも後の実行順で、タスクT2よりも先の実行順にて(すなわち、タスクT1とタスクT2の間に)、キュー31に追加する。 If the priority of task T4 is lower than that of task T1 but higher than that of task T2, the control unit 11 adds task T4 to the queue 31 after task T1 in the execution order but before task T2 (i.e., between tasks T1 and T2).

例えば、優先度の算出が上記の「第1算出例」に基づく場合で、タスクT1の優先度が「3」であり、タスクT2,T3の優先度がそれぞれ「1」であり、新たに追加するタスクT4の優先度が「2」である場合、制御部11は、上記のようにタスクT1とタスクT2の間にタスクT4を追加する。これにより、キュー31には優先度の高い順に複数のタスクTxが蓄積されるため、優先度の高いタスクTxから先にテストを実行することができる。 For example, when the priority calculation is based on the above "First Calculation Example", the priority of task T1 is "3", the priorities of tasks T2 and T3 are "1", and the priority of the newly added task T4 is "2", the control unit 11 adds task T4 between tasks T1 and T2 as described above. As a result, multiple tasks Tx are accumulated in the queue 31 in descending order of priority, so that the task Tx with the highest priority can be tested first.

また、複数の算出例により優先度を算出する場合、算出例ごとに重要度を予め設定し、タスクTxのキュー31への追加の際に重要度の高い算出例における優先度から順に評価してもよい。 In addition, when calculating the priority based on multiple calculation examples, the importance may be preset for each calculation example, and when adding task Tx to queue 31, the priority may be evaluated in descending order of importance from the calculation example with the highest importance.

ここで、第1算出例および第2算出例により、2種類の優先度を算出する場合を考える。例えば、第1算出例により算出される優先度(以下、第1優先度と称する。)の重要度を、第2算出例により算出される優先度(以下、第2優先度と称する。)の重要度よりも高く設定する。当該設定は、例えば情報処理装置10を管理するオペレータが設定し、パラメータのひとつとして記憶部12に予め記憶される。 Here, consider a case where two types of priorities are calculated using the first calculation example and the second calculation example. For example, the importance of the priority calculated using the first calculation example (hereinafter referred to as the first priority) is set higher than the importance of the priority calculated using the second calculation example (hereinafter referred to as the second priority). This setting is set, for example, by an operator who manages the information processing device 10, and is stored in advance in the storage unit 12 as one of the parameters.

この場合、制御部11は、はじめに、キュー31に蓄積されているタスクT1,T2,T3と、新たに追加するタスクT4との間で、第1優先度を比較する。例えばタスクT1,T2,T3の第1優先度がそれぞれ「2」であり、タスクT4の第1優先度も「2」である場合、第1優先度のみではタスクT4のキュー31への好適な追加位置を特定することができない。 In this case, the control unit 11 first compares the first priority between tasks T1, T2, and T3 stored in the queue 31 and the newly added task T4. For example, if the first priority of tasks T1, T2, and T3 is "2" and the first priority of task T4 is also "2," the first priority alone cannot identify an optimal position for adding task T4 to the queue 31.

そこで、次に、制御部11は、キュー31に蓄積されているタスクT1,T2,T3と、新たに追加するタスクT4との間で、第2優先度を比較する。例えばタスクT1の第2優先度が「3」であり、タスクT2,T3の第2優先度がそれぞれ「1」であり、新たに追加するタスクT4の第2優先度が「2」である場合、制御部11は、上記のようにタスクT1とタスクT2の間にタスクT4を追加する。 Then, the control unit 11 next compares the second priority between the tasks T1, T2, and T3 stored in the queue 31 and the newly added task T4. For example, if the second priority of task T1 is "3", the second priorities of tasks T2 and T3 are each "1", and the second priority of the newly added task T4 is "2", the control unit 11 adds task T4 between tasks T1 and T2 as described above.

このように、複数種類の優先度において、重要度の高い優先度から順にタスクTxを比較することで、タスクTxをキュー31のより好適な位置に追加することができる。なお、全ての優先度が同じである場合、FIFO法に基づいて、新たに追加するタスクTxを先に蓄積されているタスクTxよりも後の実行順にてキューに追加してもよい。 In this way, by comparing the tasks Tx in order of importance among multiple types of priorities, it is possible to add the task Tx to a more suitable position in the queue 31. Note that if all priorities are the same, the newly added task Tx may be added to the queue in the execution order after the previously stored task Tx, based on the FIFO method.

また、複数の算出例により優先度を算出する場合、算出例ごとに優先度の「重み」を予め設定し、複数の優先度にそれぞれ「重み」を付けた状態で複数の優先度を足し合わせることで算出される総合的な優先度に基づいて、タスクTxのキュー31への追加位置を決定してもよい。 In addition, when calculating the priority based on multiple calculation examples, a priority "weight" may be preset for each calculation example, and the position for adding task Tx to queue 31 may be determined based on an overall priority calculated by adding up the multiple priorities with each priority assigned a "weight."

例えば、第1優先度の重みが「2」に設定され、第2優先度の重みが「1」に設定されている場合を考える。この場合、総合的な優先度は、「第1優先度×2+第2優先度×1」として算出される。各優先度の重みは、例えば情報処理装置10を管理するオペレータが設定し、パラメータのひとつとして記憶部12に予め記憶される。 For example, consider a case where the weight of the first priority is set to "2" and the weight of the second priority is set to "1." In this case, the overall priority is calculated as "first priority x 2 + second priority x 1." The weight of each priority is set, for example, by an operator who manages the information processing device 10, and is stored in advance in the memory unit 12 as one of the parameters.

以上により、ステップS14が終了する。キュー31に蓄積されたタスクTxは、テストツール30によって適宜のタイミングにて実行部41へ出力され、テストが実行される。以上により、より優先度の高いタスクTxから先にテストを実行することができる。 This completes step S14. The tasks Tx stored in the queue 31 are output to the execution unit 41 at an appropriate timing by the test tool 30, and the tests are executed. This allows the tests to be executed starting with the task Tx with the higher priority.

[2. 変形例]
以下、実施形態の変形例について説明する。変形例において、上記の実施形態と同じ構成については同じ符号を付して説明を省略する。
2. Modifications
Modifications of the embodiment will be described below. In the modifications, the same components as those in the above embodiment will be denoted by the same reference numerals and the description thereof will be omitted.

[2.1 情報処理方法の変形例]
図12は、変形例に係る情報処理方法を示すフローチャートである。上記の実施形態では、例えば新たにキュー31に追加するタスクT4の優先度を算出して、既にキュー31に蓄積されているタスクT1,T2,T3のそれぞれの優先度(既に算出済みの優先度)と比較をすることで、タスクT4の追加位置を決定する。
[2.1 Variations of the information processing method]
12 is a flowchart showing an information processing method according to a modified example. In the above embodiment, for example, the priority of a task T4 to be newly added to the queue 31 is calculated, and compared with the priorities (already calculated priorities) of the tasks T1, T2, and T3 already stored in the queue 31, thereby determining the position at which the task T4 is to be added.

これに対し、本変形例では、新たにタスクT4をキュー31に追加する際に、既にキュー31に蓄積されているタスクT1,T2,T3について優先度を再算出する。そして、優先度に基づいて、単にタスクT4をキュー31に追加するだけでなく、タスクT1からタスクT3について、キュー31における順番を振り直す。 In contrast, in this modified example, when a new task T4 is added to the queue 31, the priorities of the tasks T1, T2, and T3 already stored in the queue 31 are recalculated. Then, based on the priorities, not only is task T4 simply added to the queue 31, but the order of tasks T1 to T3 in the queue 31 is also reassigned.

図12に示すように、ステップS11およびステップS12については、上記の実施形態と同様に実行される。その後、制御部11は、ステップS13と同様にタスクT4の優先度を算出するとともに、キュー31内におけるタスクT1,T2,T3のそれぞれの優先度を再算出する(ステップS15)。 As shown in FIG. 12, steps S11 and S12 are executed in the same manner as in the above embodiment. After that, the control unit 11 calculates the priority of task T4 in the same manner as in step S13, and recalculates the priorities of tasks T1, T2, and T3 in the queue 31 (step S15).

図13は、変形例に係る各タスクの優先度を説明する図である。例えば、既にキュー31に蓄積されているタスクT1,T2,T3について、タスクT4を追加する前の優先度が、それぞれ「3」、「2」、「1」であるとする。そして、ステップS15により、タスクT4の優先度が「3」と算出され、タスクT1,T2,T3の優先度が「4」、「1」、「2」とそれぞれ再算出されたとする。 Figure 13 is a diagram explaining the priority of each task in the modified example. For example, assume that the priorities of tasks T1, T2, and T3 already stored in queue 31 are "3," "2," and "1," respectively, before task T4 is added. Then, assume that in step S15, the priority of task T4 is calculated to be "3," and the priorities of tasks T1, T2, and T3 are recalculated to be "4," "1," and "2," respectively.

この場合、制御部11は、ステップS15後のそれぞれの優先度に基づいて、キュー31におけるタスクT1からタスクT3の蓄積順を並べ替える。具体的には、制御部11は、優先度が高い順に、タスクT1,T3,T2と並べ替える。そして、制御部11は、タスクT4をタスクT1とタスクT3の間に追加する。これにより、最終的なキュー31の蓄積順は、テストの実行が早い方から順に、タスクT1,T4,T3,T2となる。 In this case, the control unit 11 rearranges the accumulation order of tasks T1 to T3 in the queue 31 based on their respective priorities after step S15. Specifically, the control unit 11 rearranges the tasks T1, T3, and T2 in order of decreasing priority. Then, the control unit 11 adds task T4 between tasks T1 and T3. As a result, the final accumulation order of tasks in the queue 31 is tasks T1, T4, T3, and T2 in order of earliest test execution.

このように、タスクT4を好適な位置に追加するだけでなく、上記の例ではタスクT2,T3の順番の入れ替わりが生じる。このため、タスクTxをキュー31に追加する都度、既にキュー31に蓄積されている複数のタスクTxの蓄積順を見直すことができるため、より確実に、優先度の高いタスクTxから先にテストを実行することができる。特に、キュー31の中で長らく実行が後回しになっている(すなわち、放置されている)タスクTxの実行順を早めたい場合に、当該方式が好適である。 In this way, not only is task T4 added to a suitable position, but in the above example, the order of tasks T2 and T3 is also swapped. Therefore, each time a task Tx is added to queue 31, the order of the tasks Tx already stored in queue 31 can be reviewed, so that the task Tx with the highest priority can be tested first with greater certainty. This method is particularly suitable when it is desired to move up the order of execution of a task Tx that has been put off for a long time in queue 31 (i.e., left unattended).

なお、タスクTxをキュー31に追加する都度、キュー31内の全てのタスクTxについて優先度を再算出すると、制御部11において過分な処理負荷が掛かるおそれがある。このため、制御部11は、例えばタスクTxをキュー31に所定個数だけ追加するごとに、ステップS15およびステップS16を実行し、それ以外の場合にはステップS13およびステップS14を実行してもよい。また、push処理の際にはキュー31内のタスクTxの優先度の再算出を実行せず、polling処理の際に限ってキュー31内のタスクTxの優先度の再算出を実行してもよい。このように構成することで、制御部11における処理負荷を軽減しつつ、キュー31内のタスクTxの順番の振り直しを実行することができる。 Note that if the priorities of all tasks Tx in the queue 31 are recalculated each time a task Tx is added to the queue 31, there is a risk of placing an excessive processing load on the control unit 11. For this reason, the control unit 11 may execute steps S15 and S16, for example, each time a predetermined number of tasks Tx are added to the queue 31, and execute steps S13 and S14 in other cases. In addition, recalculation of the priorities of the tasks Tx in the queue 31 may not be executed during push processing, and recalculation of the priorities of the tasks Tx in the queue 31 may be executed only during polling processing. With this configuration, it is possible to reorder the tasks Tx in the queue 31 while reducing the processing load on the control unit 11.

[2.2 タスクの変形例]
制御部11は、タスクTxを、例えばテスト項目ごとに複数の分割タスクDTxに細分化したうえで、複数の分割タスクDTxについて優先度を算出してもよい。制御部11は、例えば、タスクTxが使用するテスト環境、タスクTxに要求される安全規格、タスクTxのテストの結果、タスクTxのテストの実行時点およびタスクTxのテストに掛かる所要時間のうち少なくともひとつに基づいて、タスクTxを複数の分割タスクDTxに分割する。
2.2 Task Variations
The control unit 11 may divide the task Tx into a plurality of divided tasks DTx for each test item, and then calculate the priorities of the plurality of divided tasks DTx. The control unit 11 divides the task Tx into a plurality of divided tasks DTx based on at least one of the test environment used by the task Tx, the safety standard required for the task Tx, the test result of the task Tx, the execution time of the test of the task Tx, and the time required for the test of the task Tx.

例えば、安全規格に基づいてタスクTxを複数の分割タスクDTxに分割する例を説明する。図9に示すように、コンポーネントX3の動作テストに関するタスクTx(以下、タスクX3と称する。)には、安全規格としてASIL-Dが要求される。しかしながら、タスクX3に含まれる全てのテスト項目にASIL-Dが要求されるわけではなく、例えばタスクX3に含まれるテスト項目の一部には安全規格としてQMが要求される項目が含まれる場合がある。 As an example, an example will be described in which a task Tx is divided into multiple split tasks DTx based on a safety standard. As shown in FIG. 9, a task Tx (hereinafter referred to as task X3) related to an operational test of a component X3 requires ASIL-D as a safety standard. However, ASIL-D is not required for all test items included in task X3; for example, some of the test items included in task X3 may include items that require QM as a safety standard.

このため、制御部11は、優先度を算出する際に、安全規格に基づいて、例えばテスト項目ごとにタスクX3を分割タスクX3a,X3bに分割する。例えば、分割タスクX3aはタスクX3のうちQMが要求されるテスト項目のみを含む。また、分割タスクX3bはタスクX3のうちASIL-A以上の安全規格(ASIL-A,B,C,D)が要求されるテスト項目のみを含む。 For this reason, when calculating the priority, the control unit 11 divides task X3 into split tasks X3a and X3b, for example for each test item, based on the safety standard. For example, split task X3a includes only test items of task X3 that require QM. Also, split task X3b includes only test items of task X3 that require a safety standard of ASIL-A or higher (ASIL-A, B, C, D).

図14は、変形例に係るテスト結果情報D4を示すテーブルTB4aである。テーブルTB4aにおいて、タスクX3は、複数の分割タスクX3a,X3bにそれぞれ分割されている。そして、複数の分割タスクX3a,X3bごとにテスト結果情報D4を細分化することで、例えば実行時点TM1において分割タスクX3aのテストは成功であり、分割タスクX3bのテストは失敗である等、テストの結果をより細かく確認することができる。これにより、タスクX3のうちどの部分においてエラーが生じているかを絞り込みやすいため、よりエラーに迅速に対応することができる。 Figure 14 is a table TB4a showing test result information D4 relating to a modified example. In table TB4a, task X3 is divided into multiple split tasks X3a and X3b. By subdividing test result information D4 for each of the multiple split tasks X3a and X3b, it is possible to check the test results in more detail, for example, that the test of split task X3a was successful and the test of split task X3b was unsuccessful at execution time TM1. This makes it easier to narrow down which part of task X3 has an error, allowing the error to be responded to more quickly.

また、ステップS13において、制御部11は、複数の分割タスクTDxの優先度をそれぞれ算出してもよい。また、ステップS14において、制御部11は、既にキュー31に蓄積されている複数の分割タスクTDxに対して、優先度に基づいて、新たにキュー31に追加する分割タスクTDxの位置を決定してもよい。これにより、より細やかにテストを実行することができる。 In step S13, the control unit 11 may calculate the priority of each of the multiple divided tasks TDx. In step S14, the control unit 11 may determine the position of the divided task TDx to be newly added to the queue 31 based on the priority of the multiple divided tasks TDx already stored in the queue 31. This allows tests to be executed in a more detailed manner.

[3.付記]
本開示は、以下の付記に示す内容を含む。
[3. Notes]
This disclosure includes the contents set forth in the following appendices.

[付記1]
車載装置にて実行されるソフトウェアの開発支援をする情報処理装置であって、
前記ソフトウェアに含まれる複数のソースが格納されたリポジトリから提供されるタスクを、前記タスクがテストの実行待ちをするキューに追加する制御部を備え、
前記制御部は、
前記タスクに関する情報を含む優先度情報が格納されているストレージから、前記優先度情報を読み出し、
前記優先度情報に基づいて、前記タスクの優先度を算出し、
前記キューに既に蓄積されている前記タスクの優先度と、前記キューに新たに追加する前記タスクの優先度とを比較し、より高い優先度の前記タスクの実行順を先にした状態で、前記タスクを前記キューに追加する、
情報処理装置。
[Appendix 1]
An information processing device that supports development of software to be executed in an in-vehicle device,
a control unit that adds a task provided from a repository in which a plurality of sources included in the software are stored to a queue in which the task waits for execution of a test;
The control unit is
reading out priority information including information related to the task from a storage in which the priority information is stored;
Calculating a priority of the task based on the priority information;
comparing the priority of the task already stored in the queue with the priority of the task to be newly added to the queue, and adding the task to the queue in a state where the task with the higher priority is given priority in the execution order;
Information processing device.

[4.補記]
なお、上記の実施形態及び各種の変形例については、その少なくとも一部を、相互に任意に組み合わせてもよい。また、今回開示された実施形態及び変形例はすべての点で例示であって制限的なものではないと考えられるべきである。本開示の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
[4. Supplementary Notes]
In addition, at least a part of the above-mentioned embodiment and various modified examples may be arbitrarily combined with each other. In addition, the embodiment and modified examples disclosed herein should be considered to be illustrative and not restrictive in all respects. The scope of the present disclosure is indicated by the claims, and it is intended to include all modifications within the meaning and scope equivalent to the claims.

1 情報処理システム
10 情報処理装置
11 制御部
12 記憶部
13 通信部
14 読取部
15 記録媒体
20 リポジトリ
30 テストツール
31 キュー
40 テスト環境
41 実行部
42 テストセット
42a 第1テストセット
42b 第2テストセット
43 回路基板
43a 第1回路基板
43b 第2回路基板
44 測定部
44a 第1測定部
44b 第2測定部
50 ストレージ
51 優先度情報
60 端末群
SW1 ソフトウェア
a1,a2,a3,b1,b2 モジュール
X1,X2,X3 コンポーネント
Tx,T1,T2,T3,T4 タスク
DTx 分割タスク
D1 バージョン情報
D2 実行時点情報
D3 所要時間情報
D4 テスト結果情報
D5 安全規格情報
D6 環境情報
TB1,TB2,TB3,TB4,TB4a,TB5,TB6 テーブル
TM1,TM2 実行時点
E1,E2 所定値
REFERENCE SIGNS LIST 1 Information processing system 10 Information processing device 11 Control unit 12 Memory unit 13 Communication unit 14 Reading unit 15 Recording medium 20 Repository 30 Test tool 31 Queue 40 Test environment 41 Execution unit 42 Test set 42a First test set 42b Second test set 43 Circuit board 43a First circuit board 43b Second circuit board 44 Measurement unit 44a First measurement unit 44b Second measurement unit 50 Storage 51 Priority information 60 Terminal group SW1 Software a1, a2, a3, b1, b2 Module X1, X2, X3 Component Tx, T1, T2, T3, T4 Task DTx Divided task D1 Version information D2 Execution time information D3 Required time information D4 Test result information D5 Safety standard information D6 Environmental information TB1, TB2, TB3, TB4, TB4a, TB5, TB6 Table TM1, TM2 Execution time E1, E2 Predetermined value

Claims (15)

車載装置にて実行されるソフトウェアの開発支援をする情報処理システムであって、
前記ソフトウェアに含まれる複数のソースが格納されたリポジトリから提供されるタスクを、前記タスクがテストの実行待ちをするキューに追加する制御部を備え、
前記制御部は、
前記タスクに関する情報を含む優先度情報が格納されているストレージから、前記優先度情報を読み出し、
前記優先度情報に基づいて、前記タスクの優先度を算出し、
前記キューに既に蓄積されている前記タスクの優先度と、前記キューに新たに追加する前記タスクの優先度とを比較し、より高い優先度の前記タスクの実行順を先にした状態で、前記タスクを前記キューに追加する、
情報処理システム。
An information processing system that supports development of software to be executed in an in-vehicle device,
a control unit that adds a task provided from a repository in which a plurality of sources included in the software are stored to a queue in which the task waits for execution of a test;
The control unit is
reading out priority information including information related to the task from a storage in which the priority information is stored;
Calculating a priority of the task based on the priority information;
comparing the priority of the task already stored in the queue with the priority of the task to be newly added to the queue, and adding the task to the queue in a state where the task with the higher priority is given priority in the execution order;
Information processing system.
前記車載装置は車載ECUを含む、
請求項1に記載の情報処理システム。
The on-board device includes an on-board ECU,
The information processing system according to claim 1 .
前記優先度情報は、テスト環境、前記タスクの過去のテストの結果、前記タスクの過去のテストの実行時点および前記タスクの過去のテストの所要時間のうち少なくともひとつに関する情報を含む、
請求項2に記載の情報処理システム。
the priority information includes at least one of information regarding a test environment, a result of a past test of the task, a time point when the past test of the task was performed, and a time required for the past test of the task;
The information processing system according to claim 2 .
前記優先度情報は、前記タスクに要求される車両の安全規格に関する情報を含む、
請求項1から請求項3のいずれか1項に記載の情報処理システム。
The priority information includes information regarding a vehicle safety standard required for the task.
The information processing system according to any one of claims 1 to 3.
前記タスクは、第1タスクと、直近の実行時点が前記第1タスクの直近の前記実行時点よりも前である第2タスクと、を含み、
前記制御部は、前記第2タスクの優先度を前記第1タスクの優先度よりも高く算出する、
請求項3に記載の情報処理システム。
the tasks include a first task and a second task whose most recent execution time is earlier than the most recent execution time of the first task;
the control unit calculates a priority of the second task to be higher than a priority of the first task;
The information processing system according to claim 3 .
前記タスクは、第1タスクと、前記所要時間が前記第1タスクの前記所要時間よりも短い第2タスクと、を含み、
前記制御部は、前記第2タスクの優先度を前記第1タスクの優先度よりも高く算出する、
請求項3に記載の情報処理システム。
the tasks include a first task and a second task, the required time of which is shorter than the required time of the first task;
the control unit calculates a priority of the second task to be higher than a priority of the first task;
The information processing system according to claim 3 .
前記タスクは、直近の前記結果が成功である第1タスクと、直近の前記結果が失敗である第2タスクと、を含み、
前記制御部は、前記第2タスクの優先度を前記第1タスクの優先度よりも高く算出する、
請求項3に記載の情報処理システム。
the tasks include a first task whose most recent outcome is success and a second task whose most recent outcome is failure;
the control unit calculates a priority of the second task to be higher than a priority of the first task;
The information processing system according to claim 3 .
前記テスト環境は、
回路基板および前記回路基板の動作を測定する測定部を含むテストセットと、
前記キューから出力される前記タスクに基づいて、前記テストセットを制御することで、前記タスクのテストを実行する実行部と、
を有し、
前記優先度情報は、前記タスクと、前記タスクのテストにおいて使用される前記テストセットとを紐付けた環境情報を含み、
前記制御部は、前記環境情報に基づいて、前記タスクの優先度を算出する、
請求項3に記載の情報処理システム。
The test environment includes:
a test set including a circuit board and a measurement unit for measuring the operation of the circuit board;
an execution unit that executes a test of the task by controlling the test set based on the task output from the queue;
having
the priority information includes environment information linking the task with the test set used in testing the task;
The control unit calculates a priority of the task based on the environmental information.
The information processing system according to claim 3 .
前記テストセットは、複数の第1テストセットと、複数の前記第1テストセットよりも数が少ない第2テストセットと、を含み、
前記タスクは、前記環境情報において、前記第1テストセットに紐付けられている第1タスクと、前記第2テストセットに紐付けられている第2タスクと、を含み、
前記制御部は、前記第2タスクの優先度を前記第1タスクの優先度よりも高く算出する、
請求項8に記載の情報処理システム。
The test sets include a plurality of first test sets and a plurality of second test sets, the number of which is smaller than the number of the first test sets;
the tasks include a first task associated with the first test set and a second task associated with the second test set in the environment information;
the control unit calculates a priority of the second task to be higher than a priority of the first task;
The information processing system according to claim 8.
前記タスクは、第1タスクと、要求される前記安全規格が前記第1タスクに要求される前記安全規格よりも厳しい第2タスクと、を含み、
前記制御部は、前記第2タスクの優先度を前記第1タスクの優先度よりも高く算出する、
請求項4に記載の情報処理システム。
the tasks include a first task and a second task having a safety standard required for the second task that is stricter than the safety standard required for the first task;
the control unit calculates a priority of the second task to be higher than a priority of the first task;
5. The information processing system according to claim 4.
前記安全規格は、ISO26262のASIL(Automotive Safety Integrity Level)である、
請求項10に記載の情報処理システム。
The safety standard is ISO26262 ASIL (Automotive Safety Integrity Level),
The information processing system according to claim 10.
前記制御部は、
前記優先度情報に基づいて、前記キューに既に蓄積されている前記タスクの優先度を算出し、
前記キューに既に蓄積されている前記タスクのうち、第3タスクよりも優先度の高い第4タスクを、前記第3タスクよりも先の実行順にて、前記キュー内の蓄積順を並べ替える、
請求項5から請求項9のいずれか1項に記載の情報処理システム。
The control unit is
Calculating the priority of the tasks already stored in the queue based on the priority information;
rearrange the order of accumulation in the queue so that a fourth task, which has a higher priority than the third task, among the tasks already accumulated in the queue, is executed before the third task;
The information processing system according to any one of claims 5 to 9.
前記制御部は、
前記テスト環境、前記安全規格、前記結果、前記実行時点および前記所要時間のうち少なくともひとつに基づいて、前記タスクを複数の分割タスクに分割し、
前記優先度情報に基づいて、複数の前記分割タスクの優先度をそれぞれ算出し、
複数の前記分割タスクのうち、第1分割タスクよりも優先度の高い第2分割タスクを、前記第1分割タスクよりも先の実行順にて、前記キューに蓄積する、
請求項5から請求項9のいずれか1項に記載の情報処理システム。
The control unit is
Dividing the task into a plurality of sub-tasks based on at least one of the test environment, the safety standard, the result, the execution time, and the required time;
Calculating priorities of the divided tasks based on the priority information;
a second divided task having a higher priority than the first divided task is stored in the queue in the order of execution prior to the first divided task, among the plurality of divided tasks;
The information processing system according to any one of claims 5 to 9.
車載装置にて実行されるソフトウェアの開発支援をする情報処理方法であって、
前記ソフトウェアに含まれる複数のソースが格納されたリポジトリから提供されるタスクを、前記タスクがテストの実行待ちをするキューに追加するステップを備え、
前記追加するステップは、
前記タスクに関する情報を含む優先度情報が格納されているストレージから、前記優先度情報を読み出す第1ステップと、
前記優先度情報に基づいて、前記タスクの優先度を算出する第2ステップと、
前記キューに既に蓄積されている前記タスクの優先度と、前記キューに新たに追加する前記タスクの優先度とを比較し、より高い優先度の前記タスクの実行順を先にした状態で、前記タスクを前記キューに追加する第3ステップと、
を含む、
情報処理方法。
An information processing method for supporting development of software to be executed in an in-vehicle device, comprising:
adding a task provided from a repository in which a plurality of sources included in the software are stored to a queue in which the task is to be waited for execution of a test;
The adding step includes:
a first step of reading priority information including information related to the task from a storage in which the priority information is stored;
a second step of calculating a priority of the task based on the priority information;
a third step of comparing the priority of the task already stored in the queue with the priority of the task to be newly added to the queue, and adding the task to the queue in a state in which the task with the higher priority is given priority in the execution order;
including,
Information processing methods.
車載装置にて実行されるソフトウェアの開発支援をするためのコンピュータプログラムであって、
前記コンピュータプログラムは、コンピュータに、
前記ソフトウェアに含まれる複数のソースが格納されたリポジトリから提供されるタスクを、前記タスクがテストの実行待ちをするキューに追加するステップを実行させ、
前記追加するステップは、
前記タスクに関する情報を含む優先度情報が格納されているストレージから、前記優先度情報を読み出す第1ステップと、
前記優先度情報に基づいて、前記タスクの優先度を算出する第2ステップと、
前記キューに既に蓄積されている前記タスクの優先度と、前記キューに新たに追加する前記タスクの優先度とを比較し、より高い優先度の前記タスクの実行順を先にした状態で、前記タスクを前記キューに追加する第3ステップと、
を含む、
コンピュータプログラム。
A computer program for supporting development of software executed in an in-vehicle device,
The computer program includes:
adding a task provided from a repository in which a plurality of sources included in the software are stored to a queue in which the task is to be tested;
The adding step includes:
a first step of reading priority information including information related to the task from a storage in which the priority information is stored;
a second step of calculating a priority of the task based on the priority information;
a third step of comparing the priority of the task already stored in the queue with the priority of the task to be newly added to the queue, and adding the task to the queue in a state in which the task with the higher priority is given priority in the execution order;
including,
Computer program.
JP2022155082A 2022-09-28 2022-09-28 Information processing system, information processing method, and computer program Pending JP2024048916A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2022155082A JP2024048916A (en) 2022-09-28 2022-09-28 Information processing system, information processing method, and computer program
PCT/JP2023/032993 WO2024070620A1 (en) 2022-09-28 2023-09-11 Information processing system, information processing method, and computer program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2022155082A JP2024048916A (en) 2022-09-28 2022-09-28 Information processing system, information processing method, and computer program

Publications (1)

Publication Number Publication Date
JP2024048916A true JP2024048916A (en) 2024-04-09

Family

ID=90477527

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022155082A Pending JP2024048916A (en) 2022-09-28 2022-09-28 Information processing system, information processing method, and computer program

Country Status (2)

Country Link
JP (1) JP2024048916A (en)
WO (1) WO2024070620A1 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8826239B2 (en) * 2010-10-06 2014-09-02 International Business Machines Corporation Asynchronous code testing in integrated development environment (IDE)
US20190018765A1 (en) * 2016-02-24 2019-01-17 Mitsubishi Electric Corporation Test case generation apparatus and computer readable medium
JP6571897B2 (en) * 2017-02-16 2019-09-04 三菱電機株式会社 Operation verification apparatus, operation verification method, and operation verification program
US11366748B1 (en) * 2020-11-30 2022-06-21 Irdeto B.V. Fuzzy testing a software system

Also Published As

Publication number Publication date
WO2024070620A1 (en) 2024-04-04

Similar Documents

Publication Publication Date Title
JP6755158B2 (en) Computer system, how to update software by computer system, and programs for that
JP6021120B2 (en) Method for streaming data, computer system thereof, and program for computer system
US8677348B1 (en) Method and apparatus for determining least risk install order of software patches
CN110888414B (en) Test method for upgrading vehicle controller
US8910145B2 (en) Method and device for installing/uninstalling software modules, with centralized resolution of constraints, in aircraft equipment items
US20150347279A1 (en) Methodology and tool support for test organization and migration for embedded software
CN114117973A (en) Logic synthesis method, device and storage medium
CN113515297A (en) Version updating method and device, electronic equipment and storage medium
US11907103B2 (en) Test environment determination device and test environment determination method
CN114637511A (en) Code testing system, method, device, electronic equipment and readable storage medium
CN107992420B (en) Management method and system for test item
WO2024070620A1 (en) Information processing system, information processing method, and computer program
CN114237754A (en) Data loading method and device, electronic equipment and storage medium
CN110968339B (en) Method and device for front-end building tool and electronic equipment
CN116383021A (en) Software package performance testing method, system, computing device and readable storage medium
WO2024070617A1 (en) Information processing system and information processing method
CN113850428A (en) Job scheduling prediction processing method and device and electronic equipment
US20040162857A1 (en) System for managing and dynamically recreating factory environments
CN115220415B (en) Vehicle-mounted controller testing method, system, test management platform and storage medium
CN116662210B (en) Interface regression testing method, device and application
US7739654B2 (en) Model curation for integrated circuit designs
CN114443358A (en) Rollback method and device based on hierarchical publication
CN117389564A (en) Continuous integration method, device, equipment and medium for automobile controller software
JP2022187056A (en) Software specification apparatus
WO2021111541A1 (en) Calibration order generation device, calibration order generation method, and calibration order generation program