Program development assistance system, program development assistance method, information processing device, and program
The program development support system addresses the challenge of fair job execution among development teams by prioritizing jobs based on past execution times, ensuring that all teams have equitable access to execution resources.
Patent Information
- Application Number
- PCT/JP2024/041588
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-04
- Filing Date
- 2024-11-25
- Publication Date
- 2025-06-12
AI Technical Summary
When multiple development teams share an environment for executing jobs, it becomes challenging to ensure fair execution, especially when some teams commit a large amount of source code, potentially delaying other teams' jobs.
A program development support system that includes a storage unit for jobs, an execution unit, and a priority determination unit. The priority determination unit calculates priorities based on past execution times for each development team, ensuring that jobs from teams with shorter execution times are prioritized.
This solution enables fair execution of jobs for each development team by prioritizing tasks based on past execution times, ensuring that no team is unfairly delayed due to large source code commitments.
Smart Images

Figure JP2024041588_12062025_PF_FP_ABST
Abstract
Description
Program development support system, program development support method, information processing device, and program
[0001] The present disclosure relates to a program development support system, a program development support method, an information processing device, and a program.
[0002] Patent Document 1 discloses a program development support system. This system has an automatic execution processing server. This automatic execution processing server stores execution target information corresponding to source code that performs automatic execution processing in a predetermined order. This automatic execution processing server changes the order of the execution target information in the automatic execution queue based on ticket attribute information (specifically, priority attribute, due date attribute, or critical path attribute). This automatic execution processing server performs automatic execution processing based on the changed order.
[0003] Japanese Patent Application Laid-Open No. 2021-105866
[0004] When an environment for executing such jobs is shared by multiple development teams, there is a concern that some development teams may commit a large amount of source code, making it difficult for other development teams to execute their jobs.
[0005] The present disclosure aims to provide a technology that makes it easy to execute jobs of each development team fairly.
[0006] The program development support system of the present disclosure includes a storage unit that stores jobs for testing source code committed to a source code management system, an execution unit that executes the jobs stored in the storage unit, and a priority determination unit that determines the priority of the jobs stored in the storage unit based on the past execution time of the jobs calculated for each development team of the source code, and the execution unit executes the jobs with the highest priority determined by the priority determination unit with priority given to them.
[0007] The program development support method disclosed herein includes the steps of: storing in a storage unit jobs for testing source code committed to a source code management system; executing the jobs stored in the storage unit; and determining, by a priority determination unit, the priorities of the jobs stored in the storage unit based on the past execution times of the jobs calculated for each development team of the source code, and executing the jobs with higher priorities determined by the priority determination unit first.
[0008] The information processing device disclosed herein is an information processing device included in a program development support system that has a storage unit that stores jobs for testing source code committed to a source code management system, and an execution unit that executes the jobs stored in the storage unit in order of priority, and has a priority determination unit that determines the priority of the jobs stored in the storage unit based on the past execution time of the jobs calculated for each development team of the source code.
[0009] The program disclosed herein causes a computer of an information processing device included in a program development support system, which has a storage unit that stores jobs for testing source code committed to a source code management system, and an execution unit that executes the jobs stored in the storage unit in order of priority, to determine the priority of the jobs stored in the storage unit based on the past execution times of the jobs calculated for each development team of the source code.
[0010] The technology disclosed herein makes it easy to execute jobs for each development team fairly.
[0011] Fig. 1 is a schematic diagram of a program development support system according to a first embodiment. Fig. 2 is an explanatory diagram showing an example of sorting jobs in a storage unit according to the first embodiment. Fig. 3 is a sequence diagram of the program development support system according to the first embodiment.
[0012] [Description of Embodiments of the Present Disclosure] First, embodiments of the present disclosure will be listed and described.
[0013] [1] A program development support system comprising: a storage unit that stores jobs for testing source code committed to a source code management system; an execution unit that executes the jobs stored in the storage unit; and a priority determination unit that determines the priorities of the jobs stored in the storage unit based on past execution times of the jobs calculated for each development team of the source code, wherein the execution unit prioritizes execution of the jobs with higher priorities determined by the priority determination unit.
[0014] The program development support system determines the priority of jobs based on the execution time of each development team for previously executed jobs, and executes jobs with higher priority first. Therefore, the program development support system takes into account the execution time of each development team for previously executed jobs, making it easier to execute jobs of each development team fairly.
[0015] [2] The program development support system according to [1], wherein the priority determination unit determines the priority such that the job of the development team having the shorter execution time in the judgment period has a higher priority.
[0016] The program development support system described above can execute jobs of each development team more fairly by increasing the priority of the jobs of the development team that have a short execution time.
[0017] [3] The program development support system according to [1] or [2], wherein the priority determination unit determines the priority based on the execution time for each development team and the number of members of the development team.
[0018] The above-described program development support system determines job priorities by taking into account not only the execution time of each development team's job but also the number of people in the development team, thereby enabling jobs from each development team to be executed more fairly.
[0019] [4] The program development support system according to any one of [1] to [3], wherein the priority determination unit determines the priority based on the execution time and the due date of the source code for each development team.
[0020] The program development support system can determine the priority of jobs by taking into account not only the execution time of jobs for each development team but also the deadline for the source code.
[0021] [Details of the embodiments of the present disclosure] <First embodiment> 1. Configuration of program development support system 1 Fig. 1 shows a program development support system 1. The program development support system 1 is shared by multiple development teams. Each development team is made up of one or more developers.
[0022] The program development support system 1 includes a source code management system 10, an execution system 20, a server 30, an information processing device 40, a node 50, and hardware 60. The source code management system 10, the execution system 20, the server 30, the information processing device 40, and the node 50 can communicate with each other via a network such as the Internet.
[0023] The source code management system 10 functions as a repository for managing source code, version information, etc. Source code created by developers is committed to the source code management system 10.
[0024] The execution system 20 functions as a CI / CD tool that continuously tests source code committed to the source code management system 10. CI stands for Continuous Integration. CD stands for Continuous Delivery. The execution system 20 includes a storage unit 21 and an execution unit 22. The storage unit 21 stores jobs that test source code committed to the source code management system 10. Jobs include not only tests but also builds and deploys. The execution unit 22 executes the jobs stored in the storage unit 21. When executing a job, the execution unit 22 controls hardware 60 via a node 50 (e.g., a personal computer). This enables testing using the hardware 60. Multiple types of hardware 60 may be provided. The hardware 60 is, for example, a circuit board or a measurement jig.
[0025] The server 30 includes a ticket information management unit 31 and an execution information management unit 32. The ticket information management unit 31 manages the contents of program creation, program modification, and the like as ticket information. The ticket information includes information such as ticket identification information (e.g., ticket number), ticket title, content description, developer, development team, and source code due date. The execution information management unit 32 manages execution information based on the execution results of jobs by the execution unit 22. The execution information includes the execution time of jobs for each development team. The execution information management unit 32 creates and updates execution information indicating the execution time of jobs for each development team based on the execution results of jobs sent from the execution system 20.
[0026] The information processing device 40 includes a priority determination unit 41. The priority determination unit 41 determines the priority of jobs stored in the storage unit 21 based on the execution time of jobs for each source code development team.
[0027] The priority determination unit 41 may determine priorities such that jobs from development teams with shorter job execution times within a determination period have a higher priority. The determination period may be, for example, the most recent specified time (e.g., one hour). The priority may be, for example, the reciprocal of the ratio of each execution time. For example, the execution times of jobs from development teams A, B, and C are 1 minute, 2 minutes, and 58 minutes, respectively, within the most recent hour. In this case, the priorities of jobs from development teams A, B, and C are 60, 30, and 60 / 58, respectively.
[0028] The priority determination unit 41 may determine the priority based on the execution time of the job for each development team, the number of members of the development team, and the deadline of the source code.
[0029] The priority determination unit 41 may determine the first provisional priority of jobs based on the execution time of jobs for each development team. The priority determination unit 41 may determine the first provisional priority such that the shorter the execution time of a job within a determination period, the higher the first provisional priority of the job of the development team. The determination period may be, for example, the most recent predetermined time (e.g., one hour). The first provisional priority may be, for example, the reciprocal of the ratio of each execution time. For example, suppose that the execution times of jobs for development teams A, B, and C within the most recent hour were 1 minute, 2 minutes, and 58 minutes, respectively. In this case, the first provisional priorities of jobs for development teams A, B, and C would be 60, 30, and 60 / 58, respectively.
[0030] The priority determination unit 41 may determine the second provisional priority of a job based on the number of members of a development team. The priority determination unit 41 may determine the second provisional priority such that the job of a development team with more members has a higher second provisional priority. The second provisional priority may have the same value as the number of members, for example. For example, suppose that development teams A, B, and C have 1, 2, and 3 members, respectively. In this case, the second provisional priorities of the jobs of development teams A, B, and C are 1, 2, and 3, respectively.
[0031] The priority determination unit 41 may determine the third provisional priority of a job based on the due date of the source code. The priority determination unit 41 may determine the third provisional priority such that the job of source code with a shorter due date has a higher third provisional priority. The third provisional priority may be, for example, the reciprocal of the number of months remaining. For example, suppose that the due dates of the source code created by development teams A, B, and C are 3 months, 2 months, and 1 month, respectively. In this case, the third provisional priorities of the jobs of development teams A, B, and C are 1 / 3, 2 / 3, and 1, respectively.
[0032] The priority determination unit 41 may determine the priority based on the first tentative priority, the second tentative priority, and the third tentative priority. For example, the priority determination unit 41 may determine the priority by multiplying the first tentative priority by the second tentative priority and the third tentative priority. In the above example, the job priorities of development teams A, B, and C are 20 (= 60 × 1 × (1 / 3)), 40 (= 30 × 2 × (2 / 3)), and 180 / 58 (= 60 × 3 × 1 / 58), respectively. In other words, the job priorities of development teams B, A, and C are highest in order.
[0033] The storage unit 21 described above creates a job when it receives a commit notification from the source code management system 10. The storage unit 21 stores the created jobs in the queue 21A in descending order of priority (see FIG. 2). For example, in the example of FIG. 2, as shown on the left, jobs 1, 2, and 3 of development team C are stored in the queue 21A. Job 1 of development team C is currently running. Jobs waiting to be executed are arranged in the order of execution after job 1, which is currently running. In this situation, suppose jobs 1 and 2 of development team A and jobs 1 and 2 of development team B are created. In this case, jobs with higher priority are given priority, excluding the currently running job. Therefore, if the priority order is from B to A and C to C, the jobs are arranged in the order shown on the right side of FIG. 2. In other words, after job 1 of development team C, which is currently running, jobs 1 and 2 of development team B, jobs 1 and 2 of development team A, and jobs 1 and 2 of development team C are arranged in that order.
[0034] The execution unit 22 executes the jobs stored in the storage unit 21 in the order in which they are arranged in the queue 21A. As a result, the execution unit 22 executes jobs with higher priorities determined by the priority determination unit 41 with priority.
[0035] 2. Processing Flow of Program Development Support System 1 The program development support system 1 performs the processing shown in FIG. 3. A developer creates source code corresponding to a ticket managed by the ticket information management unit 31. At T10 in FIG. 3, the developer commits the created source code to the source code management system 10. Along with the source code, identification information of the ticket corresponding to the source code (e.g., ticket number) is also committed to the source code management system 10. When the source code is committed, the source code management system 10 sends a commit notification to the execution system 20 at T11. Upon receiving the commit notification, the execution system 20 obtains commit information from the source code management system 10. The commit information includes source code identification information (e.g., file name), test cases, ticket identification information, etc.
[0036] After acquiring the commit information, the execution system 20 transmits the ticket identification information (e.g., ticket number) included in the commit information to the information processing device 40 at T12. When the information processing device 40 receives the ticket identification information, it requests information corresponding to the ticket identification information from the server 30 at T13. Specifically, the information processing device 40 requests information necessary for determining priority from the server 30. The information necessary for determining priority includes execution information indicating the execution time of jobs for each development team, the number of people in the development team, and the due date of the source code. The server 30 transmits information corresponding to the request to the information processing device 40 at T14.
[0037] After acquiring the information necessary for determining the priority, the information processing device 40 determines the priority based on the acquired information at T15. The specific method for determining the priority is as described above. At T16, the information processing device 40 transmits the determined priority to the execution system 20.
[0038] Upon receiving the priority, the execution system 20 creates a job in T17. Then, the execution system 20 sorts the jobs based on the received priority in T18. In T19, the execution system 20 executes the sorted jobs in order. After executing the job, the execution system 20 transmits the execution time of the executed job to the server 30 in T20. Upon receiving the job execution time, the server 30 updates the execution information in T21.
[0039] 3. Examples of Functions and Effects of the Program Development Support System 1 The program development support system 1 determines the priority of jobs based on the execution time of each development team for previously executed jobs, and executes jobs with higher priority first. Therefore, the program development support system 1 takes into account the execution time of each development team for previously executed jobs, making it easier to execute jobs for each development team fairly.
[0040] The program development support system 1 can determine the priority of jobs by taking into account the execution time of the job for each development team, the number of members of the development team, and the deadline for the source code. By determining the priority of jobs by taking into account not only the execution time of the job for each development team but also the number of members of the development team, the program development support system 1 can execute the jobs of each development team more fairly.
[0041] The program development support system 1 can determine priorities such that jobs of development teams with shorter execution times within a judgment period have higher priorities. By increasing the priority of jobs of development teams with shorter execution times, the program development support system 1 can execute jobs of each development team more fairly.
[0042] The program development support system 1 can determine priorities such that the jobs of development teams with a larger number of members have a higher priority. By increasing the priority of jobs of development teams with a larger number of members, the program development support system 1 can execute jobs of each development team more fairly.
[0043] The program development support system 1 can determine the priority so that jobs of source code with a shorter deadline have a higher priority. By increasing the priority of jobs corresponding to source code with a shorter deadline, the program development support system 1 can make it easier to complete jobs by their deadlines.
[0044] <Other Embodiments> The present disclosure is not limited to the embodiments described above and in the drawings. For example, any combination of features of the above-described or below-described embodiments is possible within a range that does not contradict. Furthermore, any feature of the above-described or below-described embodiments may be omitted unless explicitly stated as essential. Furthermore, the above-described embodiments may be modified as follows.
[0045] In the first embodiment, an example has been described in which the information processing device 40 determines priorities based on the execution time of jobs for each development team, the number of members of the development team, and the due date of the source code. Alternatively, the information processing device 40 may determine priorities based only on the execution time of jobs for each development team and the number of members of the development team. Furthermore, the information processing device 40 may determine priorities based only on the execution time of jobs for each development team and the due date of the source code.
[0046] In the above embodiments, an example has been described in which the information processing device 40 acquires all of the information for determining the priority from the server 30. In contrast, if some or all of the information for determining the priority is managed by the source code management system 10, the information processing device 40 may acquire some or all of the information for determining the priority from the source code management system 10 directly or via the execution system 20.
[0047] In the first embodiment, an example has been described in which the information processing device 40 calculates the priority by calculation. However, the information processing device 40 may determine the priority by using a table.
[0048] In the first embodiment, the ticket information management unit 31 and the execution information management unit 32 are configured to be provided on the same server, but they may be configured to be provided on separate servers.
[0049] The embodiments disclosed herein should be considered to be illustrative in all respects and not restrictive. The scope of the present invention is not limited to the embodiments disclosed herein, but is defined by the claims, and is intended to include all modifications within the meaning and scope of the claims.
[0050] REFERENCE SIGNS LIST 1... program development support system 10... source code management system 20... execution system 21... storage unit 21A... queue 22... execution unit 30... server 31... ticket information management unit 32... execution information management unit 40... information processing device 41... priority determination unit 50... node 60... hardware
Claims
1. A program development support system comprising: a storage unit that stores jobs for testing source code committed to a source code management system; an execution unit that executes the jobs stored in the storage unit; and a priority determination unit that determines the priority of the jobs stored in the storage unit based on the past execution time of the jobs calculated for each development team of the source code, wherein the execution unit gives priority to and executes the jobs with higher priorities determined by the priority determination unit.
2. The program development support system according to claim 1, wherein said priority determination unit determines said priorities such that said jobs of said development team having shorter execution times in a judgment period have higher priorities.
3. The program development support system according to claim 1 or 2, wherein the priority determination unit determines the priority based on the execution time for each development team and the number of members of the development team.
4. A program development support system according to claim 1 or 2, wherein the priority determination unit determines the priority based on the execution time and the due date of the source code for each development team.
5. A program development support method comprising: a step of storing in a storage unit a job for testing source code committed to a source code management system; a step of executing the job stored in the storage unit; and a step of determining, by a priority determination unit, the priority of the job stored in the storage unit based on the past execution time of the job calculated for each development team of the source code, wherein the job with the highest priority determined by the priority determination unit is executed preferentially.
6. An information processing device included in a program development support system having a storage unit that stores jobs for testing source code committed to a source code management system, and an execution unit that executes the jobs stored in the storage unit in order of decreasing priority, the information processing device also having a priority determination unit that determines the priority of the jobs stored in the storage unit based on the past execution times of the jobs calculated for each development team of the source code.
7. A program for causing a computer of an information processing device included in a program development support system having a storage unit for storing jobs for testing source code committed to a source code management system, and an execution unit for executing the jobs stored in the storage unit in order of priority, to determine the priority of the jobs stored in the storage unit based on the past execution times of the jobs calculated for each development team of the source code.
Citation Information
Patent Citations
Software testing method, system, program, and file generation method
JP2019191685A
Program, method, information processing device and system
JP2022092445A