JP2024048916A - Information processing system, information processing method, and computer program - Google Patents
Information processing system, information processing method, and computer program Download PDFInfo
- 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
Links
- 230000010365 information processing Effects 0.000 title claims abstract description 77
- 238000004590 computer program Methods 0.000 title claims description 17
- 238000003672 processing method Methods 0.000 title claims description 15
- 238000012360 testing method Methods 0.000 claims abstract description 260
- 238000011161 development Methods 0.000 claims abstract description 20
- 238000005259 measurement Methods 0.000 claims description 23
- 230000007613 environmental effect Effects 0.000 claims description 5
- 238000009825 accumulation Methods 0.000 claims description 3
- 230000010354 integration Effects 0.000 description 34
- 238000004364 calculation method Methods 0.000 description 31
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 10
- 238000000034 method Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
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の自動テストに掛かる時間を抑制することができる。
特許文献2には、ソースコードに対応するチケットの属性情報に含まれる優先度属性などに基づいて、自動実行キューの実行対象情報の順序を変更する技術が開示されている。
自動車等の車両に搭載される装置(車載装置)にて実行されるソフトウェアは、年々大規模化しており、車載装置用のソフトウェアにおいても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.
[本開示の実施形態の説明]
本開示の実施形態には、その要旨として、以下の構成が含まれる。
[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
The
ソフトウェア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
情報処理システム1は、情報処理装置10と、リポジトリ20と、テストツール30と、テスト環境40と、ストレージ50と、を備える。情報処理システム1は、1箇所に集約された1台の装置(例えばサーバ装置)によって実現されてもよいし、インターネット等のネットワークによって各部10,20,30,40,50が互いに通信可能に接続された状態で、複数箇所に分散された複数台の装置によって実現されてもよい。
The
[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
タスク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
リポジトリ20には、GitHub等のソース管理ツール(SCM:Sorce Code Managementとも称される。)が付帯されている。SCMは、リポジトリ20に格納されている複数のソースに基づいて、タスクTxを自動的に生成する。生成されたタスクTxは、リポジトリ20から情報処理装置10に提供される。
The
[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
The
制御部11は、例えばプロセッサ等の回路構成(Circuitry)を含む。制御部11は、具体的には、1個又は複数個のCPU(Central Processing Unit)を含む。制御部11は、記憶部12に記憶されているコンピュータプログラムを読み出して、各種の演算及び制御を実行する。
The
なお、制御部11は、予め所定のプログラムが書き込まれたプロセッサを含んでもよい。例えば、制御部11は、CPLD(Complex Programmable Logic Device)、FPGA(Field-Programmable Gate Array)又はASIC(Application Specific Integrated Circuit)等の集積回路であってもよい。この場合、制御部11は、予め書き込まれたプログラムに基づいて、各種の情報処理を実行する。
The
記憶部12は、揮発性メモリと、不揮発性メモリと有し、各種のデータを記憶する。揮発性メモリは、例えばRAM(Random Access Memory)を含む。不揮発性メモリは、例えばフラッシュメモリ、HDD(Hard Disk Drive)、SSD(Solid State Drive)又はROM(Read Only Memory)等を含む。記憶部12は、例えば、不揮発性メモリにコンピュータプログラム及び各種のパラメータを記憶している。
The
通信部13は、リポジトリ20、テストツール30およびストレージ50との通信を実行する通信インターフェースである。通信部13は、これらの各部20,30,50と、ネットワークを介して無線通信してもよいし、通信線を介して有線通信してもよい。無線通信を行う場合、通信部13は、アンテナを有する。
The
読取部14は、コンピュータが読取り可能な記録媒体15から情報を読み取る。記録媒体15は、例えばCD、DVD等の光学ディスク又はUSBフラッシュメモリである。読取部14は、例えば光学ドライブ又はUSB端子である。記録媒体15にはコンピュータプログラム及び各種のパラメータが記録されており、記録媒体15を読取部14に読み取らせることで、コンピュータプログラム及び各種のパラメータが記憶部12の不揮発性メモリに記憶される。
The
リポジトリ20から提供されるタスクTxは、通信部13において受信され、バスを介して制御部11に入力される。また、ストレージ50から読み出される後述の優先度情報51も通信部13において受信され、バスを介して制御部11に入力される。制御部11は、記憶部12から読み出されるコンピュータプログラムに則って、優先度情報51に基づいてタスクTxの優先度を算出する。そして、制御部11は、算出された優先度に基づいて、タスクTxをキュー31の所定の位置に追加する。
The task Tx provided from the
[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
キュー31は、例えば先入れ先出し法(FIFO:First In,First Out)にて複数のタスクTxを蓄積しているメモリである。図1の例では、キュー31に4個のタスクTx(特に区別する場合、それぞれT1,T2,T3,T4と称する。)が蓄積されている。
図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
[1.6 テスト環境]
図1を参照する。テスト環境40は、実行部41と、テストセット42と、を有する。実行部41は、プロセッサおよびメモリを含むコンピュータ装置(例えば、ラップトップPC)であり、「ノード」とも称される。実行部41は、キュー31から出力されるタスクTxに基づいて、テストセット42を制御することで、タスクTxのテストを実行する。また、実行部41はテストセット42において実行したタスクTxのテストの結果等(例えば、テストの実行時点、実行に掛かった所要時間、テストが成功したか失敗したかを示す履歴)の情報を収集し、ストレージ50に出力する。
1.6 Test Environment
1. The
テストセット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
回路基板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.
図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
第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
図1を参照する。回路基板43および測定部44は、いずれもハードウェアリソースであり、かつ汎用性が低い。例えば、回路基板43は、汎用基板ではなく、車載装置用に調整された専用基板である。すなわち、回路基板43および測定部44は、専らソフトウェアSW1のテストにのみ用いられ、かつ価格も高価になりやすい。このようなテストセット42を多数設けると、テスト環境40の構築にコストが掛かるため、限られたテストセット42の数にて、ソフトウェアSW1の動作テストを実行することが要求される。
See FIG. 1. Both the
この結果、車載装置用のソフトウェア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
[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
図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
図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
図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
所要時間情報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
図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
図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
テスト結果情報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
図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
[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
リポジトリ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
その後、作成された1個又は複数個のタスクTxは、リポジトリ20から情報処理装置10に提供される。以上により、ステップS11が終了する。
Then, the created task or tasks Tx are provided from the
情報処理装置10の通信部13は、リポジトリ20から受信したタスクTxを制御部11に出力する。制御部11は、新たにタスクTxの入力を受け付けると、ストレージ50から優先度情報51を読み出す(ステップS12)。制御部11は、例えば優先度情報51に含まれる情報D1から情報D6の全てを読み出してもよいし、情報D1から情報D6のうちタスクTxの優先度の算出に用いる一部の情報のみを読み出してもよい。読み出された優先度情報51は、通信部13を介して制御部11に入力される。以上により、ステップS12が終了する。
The
続いて、制御部11は、優先度情報51に基づいてタスクTxの優先度を算出する(ステップS13)。優先度は、例えば以下に示す第1算出例から第5算出例のうち少なくともひとつの方法により算出される。制御部11は、第1算出例から第5算出例のうち2個以上の算出例により、情報D1から情報D6までの複数の情報に基づく複数種類の優先度を算出してもよい。優先度の算出例について、以下に説明する。
The
[1.8.1 第1算出例:放置されているタスクを優先する]
制御部11は、実行時点情報D2を読み出して、長らく放置されているタスクTx(すなわち、直近のテスト実行時点からの経過時間がより長いタスクTx)の優先度をより高く算出する。しばらくテストされていないタスクTxについてより早くテストを実行することで、ソース修正の規模が大きくなることを抑制することができる。
[1.8.1 First Calculation Example: Prioritize neglected tasks]
The
例えば、図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
制御部11は、実行時点TM1,TM2の値に応じて、優先度を算出してもよい。例えば、実行時点TM1,TM2から現時点までの時間を優先度の値としてもよい。この場合、実行時点TM2から現時点までの時間の方が、実行時点TM1から現時点までの時間よりも長いため、タスクa2-a3の優先度としてより高い数値が算出される。
The
[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
例えば、図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
制御部11は、所要時間の値に応じて、優先度を算出してもよい。例えば、所定値E1から所要時間を減算した値を優先度の値としてもよい。ここで、所定値E1は、各所要時間よりも十分に大きい値に設定される。この場合、所定値E1からタスクa1-a2の直近の所要時間(例えば1分6秒=66秒)を減算した値(E1-66)の方が、所定値E1からタスクa2-a3の直近の所要時間(例えば2分30秒=150秒)を減算した値(E1-150)よりも大きいため、タスクa1-a2の優先度としてより高い数値が算出される。なお、優先度の算出において、制御部11は、直近の所要時間の値を用いてもよいし、所要時間の統計値(例えば、過去複数回分の所要時間の平均値)を用いてもよい。
The
[1.8.3 第3算出例:直近に失敗履歴のあるタスクを優先する]
制御部11は、テスト結果情報D4を読み出して、直近に失敗履歴のあるタスクTxの優先度をより高く算出する。失敗したタスクTxから先にテストを実行することで、エラーが解消されたか否かをより早く確認することができる。
[1.8.3 Third calculation example: Prioritize tasks with recent failure history]
The
例えば、図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
制御部11は、直近からの連続失敗回数に応じて、優先度を算出してもよい。例えば、当該回数に定数(例えば、1)を加算した値を優先度としてもよい。この場合、制御部11は、タスクX1-X2に関して、直近からの連続失敗回数が0回(直近のテスト結果が成功)であるため、タスクX1-X2の優先度を1(=0+1)と算出する。また、制御部11は、タスクX3-X1に関して、直近からの連続失敗回数が2回であるため、タスクX3-X1の優先度を3(=2+1)と算出する。これにより、より多い失敗履歴のあるタスクX3-X1の優先度としてより高い数値が算出される。
The
[1.8.4 第4算出例:要求される安全規格がより厳しいタスクを優先する]
制御部11は、安全規格情報D5を読み出して、要求される安全規格がより厳しいタスクTxの優先度をより高く算出する。安全規格がより厳しいタスクTxは、例えば測定部44におけるテストで許容される値の範囲が狭く、エラーが生じやすい。このようなタスクTxから先にテストを実行することで、より迅速にソースのエラーを発見することができる。
[1.8.4 4th calculation example: Prioritize tasks that require stricter safety standards]
The
例えば、図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
制御部11は、安全規格の厳しさ(高さ)に応じて、優先度を算出してもよい。例えば、制御部11は、最も厳しいASIL-Dが要求されるタスクTxの優先度を「5」とし、ASIL-Cを「4」、ASIL-Bを「3」、ASIL-Aを「2」、QMを「1」と、それぞれ優先度を割り当ててもよい。
The
[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
例えば、図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
このため、制御部11は、タスクa3-a1の優先度を、タスクa1-a2の優先度よりも高く算出する。優先度が高いほどタスクTxに高い数値を付与する場合、制御部11は、例えばタスクa3-a1の優先度として「2」を付与し、タスクa1-a2の優先度として「1」を付与する。
For this reason, the
制御部11は、テストセット42の数に応じて、優先度を算出してもよい。例えば、所定値E2からテストセット42の数を減算した値を優先度の値としてもよい。ここで、所定値E2は、各テストセット42の数よりも十分に大きい値に設定される。この場合、所定値E2から第2テストセット42bの数(1個)を減算した値(E2-1)の方が、所定値E2から第1テストセット42aの数(2個)を減算した値(E2-2)よりも大きいため、第2テストセット42bに紐付いているタスクa3-a1の優先度としてより高い数値が算出される。
The
[1.8.6 キューへのタスク追加]
算出された優先度は、例えば記憶部12に記憶される。以上により、ステップS13が終了する。
1.8.6 Adding a task to a queue
The calculated priority is stored, for example, in the
次に、制御部11は、優先度に基づいて、タスクTxをキュー31に追加する(ステップS14)。例えば、図1に示すように、キュー31に既にタスクT1,T2,T3が蓄積されている状態で、新たにタスクT4をキュー31へ追加する場合を考える。
Next, the
タスク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
例えば、優先度の算出が上記の「第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
また、複数の算出例により優先度を算出する場合、算出例ごとに重要度を予め設定し、タスク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
この場合、制御部11は、はじめに、キュー31に蓄積されているタスクT1,T2,T3と、新たに追加するタスクT4との間で、第1優先度を比較する。例えばタスクT1,T2,T3の第1優先度がそれぞれ「2」であり、タスクT4の第1優先度も「2」である場合、第1優先度のみではタスクT4のキュー31への好適な追加位置を特定することができない。
In this case, the
そこで、次に、制御部11は、キュー31に蓄積されているタスクT1,T2,T3と、新たに追加するタスクT4との間で、第2優先度を比較する。例えばタスクT1の第2優先度が「3」であり、タスクT2,T3の第2優先度がそれぞれ「1」であり、新たに追加するタスクT4の第2優先度が「2」である場合、制御部11は、上記のようにタスクT1とタスクT2の間にタスクT4を追加する。
Then, the
このように、複数種類の優先度において、重要度の高い優先度から順にタスク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
また、複数の算出例により優先度を算出する場合、算出例ごとに優先度の「重み」を予め設定し、複数の優先度にそれぞれ「重み」を付けた状態で複数の優先度を足し合わせることで算出される総合的な優先度に基づいて、タスク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 +
以上により、ステップS14が終了する。キュー31に蓄積されたタスクTxは、テストツール30によって適宜のタイミングにて実行部41へ出力され、テストが実行される。以上により、より優先度の高いタスクTxから先にテストを実行することができる。
This completes step S14. The tasks Tx stored in the
[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
これに対し、本変形例では、新たにタスク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
図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
図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
この場合、制御部11は、ステップS15後のそれぞれの優先度に基づいて、キュー31におけるタスクT1からタスクT3の蓄積順を並べ替える。具体的には、制御部11は、優先度が高い順に、タスクT1,T3,T2と並べ替える。そして、制御部11は、タスクT4をタスクT1とタスクT3の間に追加する。これにより、最終的なキュー31の蓄積順は、テストの実行が早い方から順に、タスクT1,T4,T3,T2となる。
In this case, the
このように、タスク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
なお、タスク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
[2.2 タスクの変形例]
制御部11は、タスクTxを、例えばテスト項目ごとに複数の分割タスクDTxに細分化したうえで、複数の分割タスクDTxについて優先度を算出してもよい。制御部11は、例えば、タスクTxが使用するテスト環境、タスクTxに要求される安全規格、タスクTxのテストの結果、タスクTxのテストの実行時点およびタスクTxのテストに掛かる所要時間のうち少なくともひとつに基づいて、タスクTxを複数の分割タスクDTxに分割する。
2.2 Task Variations
The
例えば、安全規格に基づいてタスク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
図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
[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
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.
請求項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.
前記制御部は、前記第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 .
前記制御部は、前記第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 .
前記制御部は、前記第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テストセットに紐付けられている第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.
前記制御部は、前記第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.
請求項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.
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)
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 |
-
2022
- 2022-09-28 JP JP2022155082A patent/JP2024048916A/en active Pending
-
2023
- 2023-09-11 WO PCT/JP2023/032993 patent/WO2024070620A1/en unknown
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 |