Program development support system, program development support method, information processing apparatus, and program

JP2025089643A5Pending Publication Date: 2026-04-09AUTONETWORKS TECH LTD +2
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-12-04
Publication Date
2026-04-09

AI Technical Summary

Technical Problem

Existing program development support systems do not efficiently detect bugs when multiple developers share an execution environment, as the bug occurrence rate varies among developers.

Method used

A program development support system that includes a storage unit for jobs, an execution unit, a level information management unit for skill levels of developers, and a priority determination unit that prioritizes jobs based on developer skill levels to efficiently detect bugs.

Benefits of technology

The system efficiently detects bugs by prioritizing jobs based on developer skill levels, ensuring that jobs from developers with lower skill levels, who may have a higher bug occurrence rate, are executed with higher priority.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

To provide a technique for facilitating efficient detection of bugs.SOLUTION: A program development support system 1 includes a storage unit 21, an execution unit 22, a level information management unit 31, and a priority determination unit 41. The storage unit 21 stores a job for testing a source code committed by a source code management system 10. The execution unit 22 executes the job stored in the storage unit 21. The level information management unit 31 manages level information indicating a skill level of each developer of the source code. The priority determination unit 41 determines priorities of the jobs stored in the storage unit 21 on the basis of the level information managed by the level information management unit 31. The execution unit 22 preferentially executes a job having high priority determined by the priority determination unit 41.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a program development support system, a program development support method, an information processing apparatus, and a program.

Background Art

[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 for performing 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 the attribute information of the ticket (specifically, the priority attribute, the due date attribute, or the critical path attribute). This automatic execution processing server performs automatic execution processing based on the changed order.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] When sharing an environment for executing such jobs among multiple developers, it is assumed that the bug occurrence rate differs for each developer. In such a situation, it is desirable to efficiently detect bugs. However, Patent Document 1 does not suggest anything regarding such matters.

[0005] An object of the present disclosure is to provide a technique that can easily and efficiently detect bugs.

Means for Solving the Problems

[0006] The program development support system of the present disclosure is A storage unit that stores a job for testing source code committed to a source code management system; An execution unit that executes the job stored in the storage unit; A level information management unit that manages level information indicating the skill level of each developer of the source code; A priority determination unit that determines the priority of the job stored in the storage unit based on the level information managed by the level information management unit, and; The execution unit preferentially executes the job with the higher priority determined by the priority determination unit.

[0007] The program development support method of the present disclosure includes: A step of storing in a storage unit that stores a job for testing source code committed to a source code management device; A step of executing the job stored in the storage unit; Using a level information management unit that manages level information indicating the skill level of each developer of the source code, and determining the priority of the job stored in the storage unit by a priority determination unit based on the level information managed by the level information management unit, and; Preferentially executing the job with the higher priority determined by the priority determination unit.

[0008] The information processing device of the present disclosure is an information processing device included in a program development support system including: A storage unit that stores a job for testing source code committed to a source code management device, an execution unit that executes the job stored in the storage unit in descending order of priority, and a level information management unit that manages level information indicating the skill level of each developer of the source code; A priority determination unit that determines the priority of the job stored in the storage unit based on the level information managed by the level information management unit.

[0009] The program of the present disclosure is: A storage unit that stores jobs for testing source code committed to a source code management device, an execution unit that executes the jobs stored in the storage unit in descending order of priority, and a level information management unit that manages level information indicating the skill level of each developer of the source code. On the computer of the information processing device included in the program development support system, Based on the level information managed by the level information management unit, determining the priority of the job stored in the storage unit.

Advantages of the Invention

[0010] According to the technology of the present disclosure, bugs can be efficiently detected.

Brief Description of the Drawings

[0011]

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

Figure 8

Modes for Carrying Out the Invention

[0012] [Description of Embodiments of the Present Disclosure] First, embodiments of the present disclosure will be listed and described.

[0013] 〔1〕A storage unit that stores a job for testing source code committed to a source code management system; An execution unit that executes the job stored in the storage unit; A level information management unit that manages level information indicating the skill level of each developer of the source code; A priority determination unit that determines the priority of the job stored in the storage unit based on the level information managed by the level information management unit, and The execution unit preferentially executes the job with the higher priority determined by the priority determination unit. A program development support system.

[0014] The bug occurrence rate varies depending on the skill level of the developer. The above program development support system can efficiently detect bugs by determining the priority of jobs based on the skill level of the developer.

[0015] 〔2〕The priority determination unit determines the priority such that the lower the skill level of the developer, the higher the priority of the job. The program development support system according to claim 1.

[0016] It is assumed that developers with a low skill level have a high incidence of defects. The above program development support system can efficiently detect bugs by increasing the priority of jobs of developers assumed to have a high incidence of defects.

[0017] 〔3〕A creation unit that creates the level information based on the result of the execution unit executing the job is provided. The program development support system according to claim 1 or claim 2.

[0018] The above program development support system can create level information based on the results of job execution. Therefore, the above program development support system does not need to prepare level information in advance.

[0019] 〔4〕The level information management unit includes an update unit that updates the level information based on the results of the job execution by the execution unit. The program development support system according to claim 1 or claim 2.

[0020] The above program development support system can update level information based on the results of job execution. Therefore, the above program development support system can respond to changes in the developer's skill level.

[0021] 〔5〕The level information management unit manages the level information indicating the skill level for each technical field of each developer. The priority determination unit determines the priority of the job based on the technical field corresponding to the source code and the level information. The program development support system according to claim 1 or claim 2.

[0022] The developer's skill level may vary depending on the technical field. The above program development support system can determine the priority of a job taking into account the skill level according to the technical field.

[0023] 〔6〕The technical fields defined by the level information include a plurality of technical fields that can overlap and correspond to the committed source code. For the job corresponding to the source code to which a plurality of technical fields overlap and correspond, the priority determination unit determines the priority of the job based on each technical field corresponding to the source code and the level information. The program development support system according to claim 5.

[0024] The above program development support system can determine the priority of a job corresponding to source code for which multiple technical fields overlap by taking into account the skill levels corresponding to each technical field.

[0025] 〔7〕For the job corresponding to the source code for which multiple technical fields overlap, the priority determination unit specifies the priority for each technical field from the skill levels of each technical field corresponding to the source code, and determines the priority using the average value of the priorities for each technical field. The program development support system according to claim 5.

[0026] In the situation where the above program development support system has a mixture of jobs corresponding to source code for which multiple technical fields overlap and jobs corresponding to source code for which only one technical field corresponds, it is easy to avoid one of the jobs being easily prioritized.

[0027] 〔8〕The priority determination unit determines the priority based on the level information and the due date of the source code. The program development support system according to claim 1 or claim 2.

[0028] The above program development support system can determine the priority of a job taking into account not only the skill level of the developer but also the due date of the source code.

[0029] [Details of Embodiments of the Present Disclosure] <First Embodiment> 1-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 a plurality of developers.

[0030] 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.

[0031] 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.

[0032] The execution system 20 functions as a CI / CD tool for continuously testing the source code committed to the source code management system 10. CI stands for Continuous Integration, and 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 for testing the source code committed to the source code management system 10. Jobs include not only testing but also building and deployment. The execution unit 22 executes the jobs stored in the storage unit 21. When executing a job, the execution unit 22 controls the hardware 60 via the node 50 (for example, a personal computer). Thereby, testing using the hardware 60 is realized. Multiple types of hardware 60 may be provided. The hardware 60 is, for example, a circuit board, a measuring jig, etc.

[0033] The server 30 includes a ticket information management unit 31 and a level information management unit 32. The ticket information management unit 31 manages, as ticket information, the content of program creation, the content of program modification, etc. The ticket information includes information such as the identification information of the ticket (for example, ticket number), the title of the ticket, the content description, the developer, the development team, and the due date of the source code. The level information management unit 32 manages level information indicating the skill level of each developer of the source code. The level information is stored in advance in the level information management unit 32.

[0034] The information processing apparatus 40 includes a priority determination unit 41. The priority determination unit 41 determines the priority of the job stored in the storage unit 21 based on the level information managed by the level information management unit 32.

[0035] The priority determination unit 41 may determine the priority so that the lower the skill level of the developer, the higher the priority. For example, in the example shown in FIG. 2, the skill levels of developers A, B, and C are 3, 2, and 1, respectively. The higher the skill level of the developer, the larger the value of the skill level. The priority determination unit 41 stores a table (see FIG. 3) showing the correspondence between the skill level and the priority. In the example shown in FIG. 3, priorities 1, 2, and 3 are associated with skill levels 3, 2, and 1, respectively. The priority determination unit 41 determines the priority of the job corresponding to the source code created by the developer based on the skill level of the developer and the table. Specifically, the priority determination unit 41 determines the priority of the job of developer A with a skill level of 3 to be 1, the priority of the job of developer B with a skill level of 2 to be 2, and the priority of the job of developer C with a skill level of 1 to be 3. That is, the priority of the jobs increases in the order of developers C, B, and A.

[0036] The priority determination unit 41 may determine the priority based on the level information and the due date of the source code.

[0037] The priority determination unit 41 may determine the first provisional priority of a job based on the level information. The priority determination unit 41 may determine the first provisional priority such that the lower the skill level of the developer, the higher the first provisional priority of the job. The priority determination unit 41 may determine the first provisional priority using the table shown in FIG. 3 in the same manner as the above-described priority determination method. In this case, the first provisional priorities of the jobs of developers A, B, and C are 1, 2, and 3, respectively.

[0038] The priority determination unit 41 may determine the second provisional priority of a job based on the due date of the source code. The priority determination unit 41 may determine the second provisional priority such that the shorter the due date of the source code, the higher the second provisional priority of the job. The second provisional priority may be, for example, the reciprocal of the remaining number of months. For example, assume that the due dates of the source codes created by developers A, B, and C are 3 months, 2 months, and 1 month, respectively. In this case, the second provisional priorities of the jobs of developers A, B, and C are 1 / 3, 2 / 3, and 1, respectively.

[0039] The priority determination unit 41 may determine the priority based on the first provisional priority and the second provisional priority. For example, the priority determination unit 41 may determine the value obtained by multiplying the first provisional priority by the second provisional priority as the priority. In the above-described example, the priorities of the jobs of developers A, B, and C are 1 / 3 (=1×(1 / 3)), 4 / 3 (=2×(2 / 3)), and 3 (=3×1), respectively. That is, the priorities of the jobs increase in the order of developers C, B, and A.

[0040] When the storage unit 21 described above receives a commit notification from the source code management system 10, it creates a job. The storage unit 21 arranges the created jobs in descending order of priority and stores them in the queue 21A (see FIG. 4). For example, in the example of FIG. 4, as shown in the left part, the jobs 1, 2, and 3 of developer A are stored in the queue 21A. The job 1 of developer A is being executed. The jobs waiting to be executed are arranged in the order in which they will be executed after the job 1 being executed. In this situation, assume that the jobs 1 and 2 of developer B and the jobs 1 and 2 of developer C are created. In this case, excluding the job being executed, the jobs with higher priority are prioritized. Therefore, if the priorities are high in the order of developer C, B, and A, the jobs are arranged in the order shown in the right part of FIG. 4. That is, after the job 1 of developer A being executed, the jobs 1 and 2 of developer C, the jobs 1 and 2 of developer B, and the jobs 1 and 2 of developer A are arranged in order.

[0041] The execution unit 22 described above executes the jobs stored in the storage unit 21 in the order in which they are arranged in the queue 21A. Thereby, the execution unit 22 preferentially executes the jobs with higher priority determined by the priority determination unit 41.

[0042] 1-2. Processing Flow of the Program Development Support System 1 The program development support system 1 performs the processing shown in FIG. 5. The developer creates the source code corresponding to the ticket managed by the ticket information management unit 31. In T10 of FIG. 5, the created source code is committed by the developer to the source code management system 10. To the source code management system 10, together with the source code, the identification information (for example, ticket number) of the ticket corresponding to the source code is also committed. When the source code is committed, the source code management system 10 sends a commit notification to the execution system 20 at T11. When the execution system 20 receives the commit notification, it acquires the commit information from the source code management system 10. The commit information includes the identification information (for example, file name) of the source code, test cases, the identification information of the ticket, and the like.

[0043] After obtaining the commit information, the execution system 20 transmits the identification information (e.g., ticket number) of the ticket included in the commit information to the information processing device 40 at T12. When the information processing device 40 receives the identification information of the ticket, it requests the information corresponding to the identification information of the ticket from the server 30 at T13. Specifically, the information processing device 40 requests the server 30 for the information necessary to determine the priority. The information necessary to determine the priority includes the level information indicating the skill level of the developer, the due date of the source code, and the like. The server 30 transmits the information corresponding to the request to the information processing device 40 at T14.

[0044] When the information processing device 40 obtains the information necessary to determine the priority, it determines the priority based on the obtained information at T15. The specific determination method is as described above. The information processing device 40 transmits the determined priority to the execution system 20 at T16.

[0045] When the execution system 20 receives the priority, it creates a job at T17. Then, the execution system 20 sorts the jobs based on the received priority at T18. The execution system 20 executes the sorted jobs in order at T19.

[0046] 1-3. Examples of the Actions and Effects of the Program Development Support System 1 The bug occurrence rate varies depending on the skill level of the developer. By determining the priority of the job based on the skill level of the developer, the program development support system 1 can efficiently detect bugs.

[0047] It is assumed that developers with a low skill level have a high defect occurrence rate. The program development support system 1 can efficiently detect bugs by increasing the priority of the jobs of developers who are assumed to have a high defect occurrence rate.

[0048] The program development support system 1 can determine the priority of the job taking into account not only the skill level of the developer but also the due date of the source code.

[0049] <Second Embodiment> In the first embodiment, an example in which level information is pre-stored in the information processing apparatus has been described. In the second embodiment, an example in which the information processing apparatus creates and updates level information will be described. In the second embodiment, the same components as those in the first embodiment are denoted by the same reference numerals, and detailed descriptions thereof are omitted.

[0050] 2-1. Configuration of Program Development Support System 201 As shown in FIG. 6, the program development support system 1 according to the second embodiment includes a source code management system 10, an execution system 20, a server 30, an information processing apparatus 240, a node 50, and hardware 60.

[0051] The information processing apparatus 240 includes a priority determination unit 41, a creation unit 42, and an update unit 43.

[0052] The creation unit 42 creates level information based on the result of the job execution by the execution unit 22. The “result of job execution” includes “success” and “failure”. The creation unit 42 may create the skill level of each developer based on the results of a predetermined number of times (for example, 10 times) for each developer. For example, the creation unit 42 may set the skill level of a developer who has succeeded 10 times to 3, the skill level of a developer who has succeeded 8 to 9 times to 2, and the skill level of a developer who has succeeded 7 times or less to 1. The above-mentioned predetermined number of times may be 1 time.

[0053] The update unit 43 updates the level information based on the result of the job execution by the execution unit 22. The "result of the job execution" includes "success" and "failure". The update unit 43 may update the skill level of each developer based on the results of a predetermined number of times (e.g., 10 times) for each developer. The above-mentioned predetermined number of times may be 1 time. The creation unit 42 may, for example, set the skill level of a developer who has succeeded 10 times to 3, the skill level of a developer who has succeeded 8 to 9 times to 2, and the skill level of a developer who has succeeded 7 times or less to 1. Alternatively, the update unit 43 may increase the skill level of a developer who has succeeded more than a predetermined number of level-up times and decrease the skill level of a developer who has failed more than a predetermined number of level-down times. The increase range of the skill level may vary according to the number of successful times. The decrease range of the skill level may vary according to the number of failed times.

[0054] 2-2. Processing Flow of Program Development Support System 1 The program development support system 1 performs the processing shown in FIG. 7. The processing of T10 to T19 in FIG. 7 is the same as the content described in the first embodiment. Each time the execution system 20 executes a job, at T20, it transmits the execution result of the job to the information processing device 40. The information processing device 40 that has received the execution result of the job creates or updates the level information based on the received execution result at T21. The specific creation method and update method are as described above. When the information processing device 40 creates the level information and when it updates the level information, it transmits the level information to the server 30. Thereby, the level information of the server 30 is updated.

[0055] 2-3. Examples of the Operation and Effects of Program Development Support System 1 The program development support system 201 can create level information based on the result of job execution. Therefore, the program development support system 201 does not need to prepare the level information in advance.

[0056] The program development support system 201 can update the level information based on the results of job execution. Therefore, the program development support system 201 can respond to changes in the developer's skill level.

[0057] <Third Embodiment> There are cases where the developer's skill level varies depending on the technical field. In the third embodiment, an example that can handle such cases will be described. In the third embodiment, the same components as those in the first embodiment are denoted by the same reference numerals, and detailed descriptions thereof are omitted.

[0058] In the third embodiment, the level information management unit 32 manages level information indicating the skill level for each technical field of each developer. FIG. 8 shows an example of the skill information in the third embodiment. The technical fields defined by the level information include, for example, programming languages such as Python and C++, and troubleshooting.

[0059] The priority determination unit 41 determines the priority of a job based on the technical field corresponding to the source code and the level information. The information indicating the technical field is included in, for example, the ticket information. In this case, the priority determination unit 41 identifies the developer and the technical field from the ticket information obtained at T14 in FIG. 5, and based on the identified technical field, developer, and level information, identifies the skill level of the developer in that technical field. For example, when the developer is Developer A and the technical field is Python, the priority determination unit 41 identifies the skill level as 3. Then, the priority determination unit 41 determines the priority of the job based on the identified skill level.

[0060] In the example shown in FIG. 8, the technical field defined by the level information includes a plurality of technical fields that can overlap and correspond to the committed source code. For example, if the programming language is C++, two technical fields, C++ and trouble shooting, overlap and correspond to the source code for trouble shooting. In this case, the priority determination unit 41 determines the priority of the job based on each technical field corresponding to the source code and the level information. For example, for a job corresponding to source code where a plurality of technical fields overlap and correspond, the priority determination unit 41 specifies the priority for each technical field from the skill levels of the technical fields corresponding to the source code, and determines the priority using the average value of the priorities for each technical field. The priority determination unit 41 may determine the average value of the priorities for each technical field as the priority, or may determine the average value of the priorities for each technical field as the first provisional priority described in the first embodiment.

[0061] The program development support system 1 according to the third embodiment can determine the priority of a job in consideration of the skill level according to the technical field.

[0062] The program development support system 1 according to the third embodiment can determine the priority of a job in consideration of the skill level according to each technical field for a job corresponding to source code where a plurality of technical fields overlap and correspond.

[0063] In the situation where the program development support system 1 according to the third embodiment has a mixture of jobs corresponding to source code where a plurality of technical fields overlap and correspond and jobs corresponding to source code where only one technical field corresponds, it is easy to avoid one of the jobs being easily prioritized.

[0064] <Other Embodiments> The present disclosure is not limited to the embodiments described by the above description and drawings. For example, the features of the embodiments described above or below can be combined in any combination without contradiction. Also, any of the features of the embodiments described above or below can be omitted if not explicitly specified as essential. Furthermore, the embodiments described above may be modified as follows.

[0065] In each of the above embodiments, an example has been described in which the information processing apparatus 40 acquires all the information for determining the priority from the server 30. On the other hand, when part or all of the information for determining the priority is managed by the source code management system 10, the information processing apparatus 40 may acquire part or all of the information for determining the priority directly from the source code management system 10 or via the execution system 20.

[0066] In each of the above embodiments, the ticket information management unit 31 and the level information management unit 32 are provided in the same server, but they may be provided in separate servers.

[0067] The level information of the third embodiment may be created or updated as described in the second embodiment.

[0068] The level information stored in advance as in the first embodiment may be updated as in the second embodiment.

[0069] It should be considered that the embodiments disclosed this time are illustrative in all respects and not restrictive. The scope of the present invention is not limited to the embodiments disclosed this time, but is indicated by the claims, and is intended to include all modifications within the meaning and scope equivalent to the claims.

Explanation of Reference Numerals

[0070] 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... Level Information Management Unit 40... Information Processing Apparatus 41... Priority Determination Unit 42... Creation Unit 43…Update section 50…Node 60…Hardware 201…Program development support system 240…Information processing device

Claims

1. A storage unit for storing jobs that test source code committed to the source code management system, An execution unit that executes the jobs stored in the storage unit, A level information management unit manages level information indicating the skill level of each developer of the aforementioned source code, The system includes a priority determination unit that determines the priority of the jobs stored in the storage unit based on the level information managed by the level information management unit, The execution unit prioritizes executing the jobs with the highest priority determined by the priority determination unit. Program development support system.

2. The priority determination unit determines the priority so that jobs with lower developer skill levels have a higher priority. The program development support system according to claim 1.

3. The execution unit includes a creation unit that creates the level information based on the results of the job execution. A program development support system according to claim 1 or claim 2.

4. The update unit updates the level information based on the result of the execution unit executing the job. A program development support system according to claim 1 or claim 2.

5. The level information management unit manages the level information indicating the skill level of each developer in each technical field, The priority determination unit determines the priority of the job based on the technical field corresponding to the source code and the level information. A program development support system according to claim 1 or claim 2.

6. The technical fields defined in the aforementioned level information include multiple technical fields that may overlap with the committed source code, The priority determination unit determines the priority of a job corresponding to a source code where multiple technical fields overlap, based on the respective technical fields corresponding to the source code and the level information. The program development support system according to claim 5.

7. The priority determination unit, for jobs corresponding to source code where multiple technical fields overlap, identifies technical field priorities from the skill levels of each technical field corresponding to the source code, and determines the priority using the average value of the technical field priorities. The program development support system according to claim 5.

8. The priority determination unit determines the priority based on the level information and the date of the source code. A program development support system according to claim 1 or claim 2.

9. The process involves storing the source code committed to the source code management system in a storage unit that stores the jobs for testing the source code, The process of executing the job stored in the storage unit, The process includes: using a level information management unit that manages level information indicating the skill level of each developer of the source code, and determining the priority of the job stored in the storage unit using a priority determination unit based on the level information managed by the level information management unit, The priority determination unit will prioritize the execution of the jobs with the highest priority determined by that unit. Program development support methods.

10. An information processing device included in a program development support system, comprising: a storage unit for storing jobs to test source code committed to a source code management system; an execution unit for executing the jobs stored in the storage unit in order of priority; and a level information management unit for managing level information indicating the skill level of each developer of the source code, The system includes a priority determination unit that determines the priority of the jobs stored in the storage unit based on the level information managed by the level information management unit. Information processing device.

11. A computer in an information processing device included in a program development support system comprises: a storage unit for storing jobs to test source code committed to a source code management system; an execution unit for executing the jobs stored in the storage unit in order of priority; and a level information management unit for managing level information indicating the skill level of each developer of the source code. A program that causes the Level Information Management Unit to determine the priority of the jobs stored in the Storage Unit based on the level information managed by the Level Information Management Unit.