Information processing apparatus, information processing method, and program
The integration of a bug management, test code generation, and code management system automates test code creation from bug tickets, addressing inefficiencies in software development by enhancing bug resolution and quality assurance.
Patent Information
- Application Number
- JP2024125717
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-08-01
- Publication Date
- 2026-02-13
AI Technical Summary
Existing software development processes face inefficiencies in generating appropriate test code for bug resolution, particularly due to manual methods that consume time and resources, hindering faster development cycles and improved quality.
An information processing system that integrates a bug management device, a test code generation device, and a code management device, utilizing natural language processing and AI to automate the generation of test code from bug tickets, and efficiently registering it in a code management system.
This system streamlines the software development process by automating test code generation, reducing developer burden, and enabling more efficient bug resolution and quality assurance, thereby accelerating development cycles and improving software quality.
Smart Images

Figure 2026023643000001_ABST
Abstract
Description
[Technical Field]
[0001] An embodiment of the present invention relates to an information processing device, an information processing method, and a program. [Background technology]
[0002] Identifying, cataloging, and addressing bugs in software development is an essential process for delivering reliable products. Bug management systems (bug trackers) play a central role in this process. Bug management systems act as a central repository for managing bugs and other issues that arise, helping development teams work efficiently. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Laid-Open No. 2006-309316 [Patent Document 2] Patent Publication No. 2021-105866 [Patent Document 3] Japanese Patent Application Publication No. 2018-018267 Summary of the Invention [Problem to be solved by the invention]
[0004] An object of the present invention is to provide an information processing device, an information processing method, and a program that enable software development to be carried out more efficiently. [Means for solving the problem]
[0005] According to an embodiment, an information processing device includes a processing unit that acquires bug information representing information about a bug in software, generates generation request information for requesting generation of test code for testing the bug based on the bug information, controls a process of transmitting the generation request information to a test code generation device that generates the test code, and controls a process of receiving, from the test code generation device, the test code that is generated by the test code generation device in response to the generation request information. [Brief explanation of the drawings]
[0006] [Figure 1] FIG. 1 is a block diagram of an information processing system according to an embodiment. [Figure 2] A diagram showing an example of a bug ticket. [Figure 3] A diagram showing an example of a prompt template. [Figure 4] FIG. 10 is a diagram showing an example of a response including a test code. [Figure 5] FIG. 10 is a diagram showing an example of modified test code. [Figure 6] FIG. 10 is a diagram showing an example of test code before modification. [Figure 7] FIG. 10 is a diagram showing an example of modified test code. [Figure 8] FIG. 4 is a sequence diagram of a development support process according to an embodiment. [Figure 9] A diagram showing an example of a bug ticket. [Figure 10] FIG. 10 shows an example of a screenshot. [Figure 11] A diagram showing an example of a prompt template. [Figure 12] FIG. 10 is a diagram showing an example of a response including a test code. [Figure 13] FIG. 10 is a block diagram of an information processing system according to a first modified example. [Figure 14] FIG. 10 is a block diagram of an information processing system according to a second modification. [Figure 15] FIG. 1 is a hardware configuration diagram of an information processing device. DETAILED DESCRIPTION OF THE INVENTION
[0007] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments of an information processing apparatus according to the present invention will be described in detail below with reference to the accompanying drawings.
[0008] As described above, a bug management device has been proposed as one of the devices (systems) for improving the efficiency of software development.
[0009] A bug report is registered in a bug management system as a bug ticket containing detailed information about the bug. Each bug ticket contains information necessary for problem resolution, such as steps to reproduce the bug, the expected system response (expected result), the actual system response, and the bug status. The bug ticket provides basic data for identifying the cause of the bug and considering how to fix it.
[0010] To change the status of a bug ticket to "resolved," the software must be modified and the bug must be verified to be resolved. During this verification process, for example, test code that reproduces the bug is generated and used to verify that the fix is effective. In many development projects, test results after the fix are kept as evidence, and the test results are required as a condition for approval of the status change.
[0011] Test automation is also becoming increasingly important in modern software development. Test automation is a process that enables repeatable and consistent test execution by having a device execute test code without requiring manual intervention from developers. Test automation allows developers to devote more time to fixing bugs and developing new features, and also makes it possible to efficiently perform tedious tasks such as pre-release regression testing. Furthermore, test automation makes it easier to detect bugs at an early stage of development, accelerating the quality assurance process. Test automation requires the generation of test code (test scripts). Generating appropriate test code for bugs that occur contributes to improving work efficiency and software quality.
[0012] Traditionally, test code generation has been primarily performed manually by developers, with little consideration given to efficiently generating appropriate test code for specific bugs. Dealing with unexpected bugs by assembling test code requires both time and resources in the development process. Simplifying the process of generating test code for bugs that occur and exploring more effective methods will directly lead to faster development cycles and improved quality.
[0013] Therefore, the following embodiment efficiently executes at least the software development process from software bug detection to test code generation, thereby reducing the burden on developers and enabling more efficient software development.
[0014] The software to be developed can be any type of software. Below, we will mainly explain an example of software development using a Web API (Application Programming Interface) (Web API development).
[0015] In the information processing system according to the embodiment, test code is generated when a user (software developer) registers a bug ticket in the bug management device, and the generated test code is registered in the code management device.
[0016] 1 is a block diagram showing an example of a configuration of an information processing system 10 according to an embodiment. As shown in FIG. 1, the information processing system 10 includes a bug management device 200, an information processing device 100, a test code generation device 300, and a code management device 400.
[0017] The devices (the bug management device 200, the information processing device 100, the test code generation device 300, and the code management device 400) may be connected in any manner, for example, via a network such as the Internet. The network may be a wired network, a wireless network, or a mixed network of wired and wireless networks.
[0018] The bug management device 200 is a device used for tracking, managing, and resolving bugs that occur in the software development process. The bug management device 200 includes a storage unit 221 and a bug management unit 201.
[0019] The storage unit 221 stores various types of information used by the bug management device 200. For example, the storage unit 221 stores one or more bug tickets 222a, 222b, etc. in response to a registration instruction from a user. Hereinafter, when there is no need to distinguish between the bug tickets 222a, 222b, etc., they may be simply referred to as bug tickets 222.
[0020] A bug ticket represents information (documents) created to record and track problems such as bugs and defects discovered during software development. A bug ticket corresponds to bug information that represents information about software bugs. A bug ticket is generated and managed within the bug management device 200 in response to a user's instruction.
[0021] The bug ticket includes, for example, the following information: Bug ticket number: Identification information for identifying the bug ticket Bug Summary (Title): A brief description of the bug Description: The circumstances under which the bug occurs and the specific problems caused by the bug Reproduction steps: Steps to reproduce the bug Version: The version of the software where the bug occurred. Expected results: The expected results (expected behavior) when performing the reproduction steps Actual Results: Results when reproducing the steps Impact range: The range of impact caused by the bug Screenshots / Logs: Screenshots and logs of the bug that occurred · Reporter: The user who reported the bug Severity: The importance of the bug Priority: Bug fix priority Status: The current state of the bug (e.g. new, in progress, resolved, etc.) ·Assigned to: User responsible for fixing the bug
[0022] Fig. 2 is a diagram showing an example of a bug ticket 222. Fig. 2 is an example of a bug ticket 222 that reports a bug related to the RESTful Web API endpoint "POST / pet." The bug ticket 222 in Fig. 2 is an example and is not limited to this. A bug ticket that includes only some of the multiple pieces of information shown in Fig. 2 may be used, or a bug ticket that further includes other information may be used.
[0023] Returning to the explanation of Figure 1, the bug management unit 201 provides functions such as reporting, categorizing, prioritizing, assigning, and tracking bugs. For example, the bug management unit 201 registers bug tickets reported by users in the storage unit 221. With the support of these functions, the development team (users) can systematically resolve bugs.
[0024] For example, a user reports a bug to the bug management device 200 via a web interface or API. The bug management device 200 (bug management unit 201) generates a bug ticket for the reported bug and stores it in the storage unit 221. The user assigns the bug (bug ticket) to an appropriate developer (development team) and manages it via the bug management unit 201. Furthermore, the user can use the functions of the bug management unit 201 to update the bug status, add comments, confirm corrections, and so on. All changes can be tracked in real time.
[0025] The bug management device 200 (bug management unit 201) may be realized by any method, but for example, it can be realized by using the following commercial products or open source software. Jira (registered trademark) Bugzilla ·MantisBT(Mantis Bug Tracker) Trac Redmine
[0026] The test code generation device 300 is a device that generates test code in response to a request from the information processing device 100. For example, the test code generation device 300 utilizes natural language processing technology to provide a service for generating responses in natural language in response to text input. The test code generation device 300 utilizes a pre-trained large-scale language model to provide appropriate answers to questions (prompts) in a variety of contexts.
[0027] The test code generation device 300 can be accessed via an API. For example, a user sends text data to the test code generation device 300 through an HTTP (Hypertext Transfer Protocol) request that accesses the API. The test code generation device 300 inputs the text data into an AI (Artificial Intelligence) model for analysis, and outputs text-formatted output data that is the analysis result. The user can receive this output data as a response (a response including test code) from the test code generation device 300.
[0028] The test code generation device 300 can be realized by an API server of a generation AI such as ChatGPT (registered trademark).
[0029] The code management device 400 is a device that manages generated test code. The code management device 400 may be realized as a test management device or as a source code management device. The following mainly describes an example in which the code management device 400 is realized as a source code management device.
[0030] A test management device is a device that supports the generation and management of test code (test cases). For example, a user can input and edit test code through a web interface or an API. The test management device may be implemented in any manner, but can be implemented using, for example, commercial products or open source software such as the following: TestRail Zephyr TestLink
[0031] The source code management device is a device that supports the management of source code, including test code. The source code management device may be realized by any method, but can be realized, for example, by using commercial products or open source software such as the following: GitLab (registered trademark) Subversion Mercurial
[0032] The code management device 400 includes a storage unit 421 and a code management unit 401. The storage unit 421 stores various information used by the code management device 400. For example, the storage unit 421 stores codes 422a, 422b, etc. that are the objects of management. Hereinafter, when there is no need to distinguish between the codes 422a, 422b, etc., they may be simply referred to as code 422. The code 422 may include a test code transmitted from the information processing device 100.
[0033] Each unit of the above devices (e.g., bug management unit 201 of bug management device 200, code management unit 401 of code management device 400) is realized by at least one processing device, which executes the processing of each device. This processing device includes, for example, a control device or an arithmetic unit, and is realized by analog or digital circuits, etc. The processing device may be a central processing unit (CPU), a graphics processing unit (GPU), a general-purpose processor, a microprocessor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a combination thereof. As an example, at least a portion of each unit may have a functional configuration realized by the CPU executing a program.
[0034] The information processing device 100 includes a processing unit 110, a storage unit 121, and a communication I / F (interface) 122. The processing unit 110 includes an acquisition unit 101, a prompt generation unit 102, a prompt transmission control unit 103, a code reception control unit 104, a modification unit 105, a request generation unit 106, and a request transmission control unit 107.
[0035] Each unit of the processing unit 110 (acquisition unit 101, prompt generation unit 102, prompt transmission control unit 103, code reception control unit 104, modification unit 105, request generation unit 106, and request transmission control unit 107) is realized by at least one processing device, and executes the processing of the information processing device 100. This processing device includes, for example, a control device and an arithmetic unit, and is realized by analog or digital circuits, etc. The processing device may be a central processing unit, a GPU, a general-purpose processor, a microprocessor, a digital signal processor, an ASIC, an FPGA, or a combination thereof. As an example, at least a portion of the processing unit 110 may have a functional configuration realized by a CPU executing a program.
[0036] The information processing device 100 may be physically configured as one device or may be physically configured as multiple devices. For example, the information processing device 100 may be built in a cloud environment. Furthermore, each unit within the information processing device 100 may be distributed across multiple devices.
[0037] The storage unit 121 stores various types of information used in the information processing device 100. For example, the storage unit 121 stores bug tickets received from the bug management device 200, processing results of each unit, and the like.
[0038] The memory unit of each device (memory unit 121, 221, 421) can be configured using any commonly used memory medium such as a flash memory, a memory card, a RAM (Random Access Memory), an HDD (Hard Disk Drive), and an optical disk.
[0039] The communication I / F 122 is an interface for communicating with other devices (such as the bug management device 200, the test code generation device 300, and the code management device 400) connected via a network. The communication I / F 122 receives and transmits instructed information, for example, under the control of the processing unit 110 (the acquisition unit 101, the prompt transmission control unit 103, the code reception control unit 104, and the request transmission control unit 107). Note that, although arrows indicating the transmission and reception of information are drawn between the processing unit 110 and other devices in FIG. 1, the information is transmitted and received via the communication I / F 122.
[0040] The acquisition unit 101 acquires various types of information used in the information processing device 100. For example, the acquisition unit 101 acquires a newly registered bug ticket from the bug management device 200. The acquisition unit 101 may acquire the bug ticket by any method. For example, when the acquisition unit 101 receives a notification from the bug management device 200 indicating that a new bug ticket has been registered, the acquisition unit 101 may acquire the bug ticket from the bug management device 200 in response to the notification.
[0041] For example, the bug management device 200 notifies the information processing device 100 that a new bug ticket has been registered. Any method of notification may be used, but for example, the following method may be applied.
[0042] Webhook method: For example, when a new bug ticket is registered, the bug management device 200 issues an HTTP request as a notification to a pre-specified URL (Uniform Resource Locator). The URL of the information processing device 100 is pre-specified as the destination to which the HTTP request is issued.
[0043] Method using a Web API: For example, the bug management device 200 provides a Web API for checking the registration of a bug ticket. The information processing device 100 (acquisition unit 101) acquires a notification indicating that a bug ticket has been registered through this Web API. For example, the acquisition unit 101 periodically polls the Web API to check bug tickets that have been registered since the previous polling. The acquisition unit 101 may perform polling in response to an instruction from a user or the like.
[0044] Method using email notification: For example, if the bug management device 200 has a function for sending email notifications for specific events, this function is used to send an email regarding an event such as the registration of a new bug ticket. The email address of the information processing device 100 or the like is specified in advance as the destination of the email. The acquisition unit 101 of the information processing device 100 can detect the notification by monitoring the email address specified in advance.
[0045] In any case (web hook, web API, email notification), the bug management device 200 can notify the acquisition unit 101 of the bug ticket's identification information (e.g., the bug ticket URL) in addition to notifying the acquisition unit 101 that the bug ticket has been registered. The acquisition unit 101 can acquire the bug ticket from the bug management device 200 using the bug ticket's identification information, for example. The acquisition unit 101 passes the acquired bug ticket information to the prompt generation unit 102.
[0046] The bug management device 200 may send a notification each time a new bug ticket is registered (e.g., in real time), or may send a notification each time a certain condition is met, such as a condition indicating the passage of a certain period of time, or a condition indicating that a certain amount (data size, number, etc.) of bug tickets have been registered.
[0047] The prompt generation unit 102 generates a prompt using a bug ticket. The prompt corresponds to generation request information requesting the generation of test code that tests the bug represented by the bug ticket. The test code is, for example, test code that reproduces the bug, and more specifically, test code that tests whether an expected result is obtained when the bug reproduction procedure is executed. For example, the prompt is a prompt that requests the generation of test code that reproduces the bug.
[0048] The prompt generation unit 102 extracts information such as a reproduction procedure, a result (expected result) when the reproduction procedure is executed, and a screenshot / log from the bug ticket, and generates a prompt including the extracted information. The prompt generation unit 102 may generate a prompt using a prompt template.
[0049] 3 is a diagram showing an example of a prompt template 350. The prompt generator 102 can generate a prompt by replacing elements enclosed in the symbols "<<" and ">>" in the template 350 with specific information. For example, the prompt generator 102 replaces the "bug report" part with information contained in the bug ticket.
[0050] Figure 3 shows an example of a template that requests test code to be output in a format (YAML format) that can be executed by tavern, an open source API testing tool. The test tool that forms the basis of the output format is not limited to tavern, and can be any other tool such as the following: Postman (registered trademark) SoapUI Insomnia
[0051] The prompt generator 102 may generate a prompt that includes information indicating software-related documentation. The software-related documentation may be, for example, specifications and implementation code. FIG. 3 illustrates an example of a template that includes a section for describing an API specification and a section for describing API implementation code.
[0052] Prompt generation unit 102 acquires, for example, specifications written in the OpenAPI (formerly known as Swagger) format, which is a description specification for API specifications, and describes information indicating the acquired specifications in the section where the API specifications are to be described. Prompt generation unit 102 acquires information about the API specifications by, for example, referring to the API specifications stored in advance in storage unit 121 or the like, and a link to the API specifications that is set in advance.
[0053] For example, the prompt generation unit 102 obtains source code for API implementation and enters information indicating the obtained source code in the location where the API implementation code should be entered. The prompt generation unit 102 can obtain the API implementation code from a source code management device (code management device 400) such as GitLab. In this case, the prompt generation unit 102 may obtain source code corresponding to the version from the code management device 400, using the version of the software in which the bug described in the bug ticket occurred as a tag.
[0054] By including information from software-related documents such as API specifications and API implementation code in the prompt, the test code generator 300 can accurately guess how to use the API to reproduce the bug.
[0055] The software-related documentation is not limited to the above, but may also include any other information such as: Database documentation User interface specifications ·Design document Program code
[0056] The prompt generator 102 passes the generated prompt to the prompt transmission controller 103 .
[0057] The prompt transmission control unit 103 controls the process of transmitting the generated prompt to the test code generation device 300 via the communication I / F 122. For example, the prompt transmission control unit 103 controls the process of generating an HTTP request including a prompt and transmitting the generated HTTP request to the test code generation device 300 via the communication I / F 122. The prompt transmission control unit 103 may also control the process of generating an HTTP request to which information such as an access key required for using the test code generation device 300 is added and transmitting the HTTP request to the test code generation device 300 via the communication I / F 122.
[0058] The code reception control unit 104 controls the process of receiving the test code generated by the test code generation device 300 in response to the prompt from the test code generation device 300 via the communication I / F 122 .
[0059] FIG. 4 is a diagram showing an example of a response 450 including test code transmitted from the test code generation device 300. In the response 450, the part enclosed by "``yaml" and "``" corresponds to the test code. The code reception control unit 104 extracts the part corresponding to the test code and passes the extracted test code to the modification unit 105. The response 450 may be configured to include only the test code.
[0060] Returning to the description of FIG. 1 , the modifying unit 105 modifies the test code received from the test code generation device 300 as necessary. For example, a precondition such as authentication may be required to execute the test code. In such a case, the modifying unit 105 may modify the test code to include information for satisfying the precondition. The precondition may be determined in advance or may be estimated by analyzing the test code.
[0061] The following describes an example of modifying test code to include information required for authentication. For example, the modifying unit 105 modifies the test code by adding a required authorization header to the HTTP request of the test code. The access token to be written in the authorization header can be obtained using, for example, OAuth 2.0 client credentials.
[0062] 5 is a diagram showing an example of modified test code 550. The modifying unit 105 adds a test stage 551 for acquiring an access token to the test code. A client ID and a client secret required to acquire an access token are stored in advance in, for example, the storage unit 121. The modifying unit 105 writes the value of the access token acquired in the test stage 551 in an authentication header 552 included in a subsequent API call.
[0063] Another example of the correction process by the correction unit 105 is shown below. This example is an example of operation for test code that verifies that the endpoint "GET / user / {username}" operates normally (returns status code 200). FIG. 6 is a diagram showing an example of test code 650 before correction. FIG. 7 is a diagram showing an example of test code 750 after test code 650 has been corrected.
[0064] 6 includes the parameter {username} in the path. Therefore, in order to execute the test code 650, the value of the parameter {username} needs to be determined in advance. In such a case, the correction unit 105 determines, based on the API specification, that it is sufficient to execute in advance the API "POST / user" that creates the resource "user."
[0065] 7, the modifying unit 105 adds a test stage 751 that calls this API, thereby generating modified test code 750. The username value saved in the test stage 751 ("smith" in the example of FIG. 7) is set as the value of the parameter {username} of the subsequent stage, and the test code 750 is executed.
[0066] The correction unit 105 passes the corrected test code to the request generation unit 106. If no correction is required, the test code received from the test code generation device 300 may be passed directly to the request generation unit 106. If no correction of the test code is required, the correction unit 105 may not be provided.
[0067] The request generating unit 106 generates a request for registering the generated test code in the code management device 400. This request corresponds to registration request information requesting that the test code be registered.
[0068] As described above, the code management device 400 is a source code management device such as GitLab. The code management device 400 provides an API endpoint for creating a new branch of source code (hereinafter, API endpoint EP1) and an API endpoint for adding a file to the newly created branch (hereinafter, API endpoint EP2).
[0069] The API endpoint EP1 is, for example, " / projects / :id / repository / branches." The request generation unit 106 uses the POST method to generate a request to the API endpoint EP1, specifying the ID of the project for which a branch is to be created, the new branch name, and the name of the original branch. Project ID: A pre-registered ID (e.g., an ID assigned to the software for which bugs are being managed) New branch name: "bug_{bug ticket identification information}" Original branch name: "main"
[0070] The API endpoint EP2 is, for example, “ / projects / :id / repository / commits.” The request generation unit 106 generates a request to the API endpoint EP2 that specifies the branch name, file contents, file path, commit message, and the like. Branch name: the new branch name above File contents: Test code contents File path: The path where the file is stored Commit message: Includes the identification information of the bug ticket, the URL of the bug ticket in the bug management device 200, and the title of the bug ticket, and describes that this is a commit that adds test code that reproduces the bug (test code for the bug).
[0071] The request transmission control unit 107 controls the process of transmitting the request generated by the request generation unit 106 to the code management device 400 via the communication I / F 122 and requesting registration of the test code. The request transmission control unit 107 may also control the process of generating an HTTP request for each API end point of the code management device 400 and transmitting the request to the code management device 400 via the communication I / F 122. In this case, the request transmission control unit 107 may add authentication information (such as an API key) for accessing the code management device 400 to the HTTP request as necessary.
[0072] The code management device 400 executes branch creation and file addition in response to the transmitted request. If the processing is successful, the code management device 400 transmits a response indicating success to the information processing device 100.
[0073] Next, a description will be given of a development support process performed by the information processing apparatus 100 according to the embodiment. Fig. 8 is a sequence diagram illustrating an example of the development support process according to the embodiment.
[0074] The bug management device 200 (bug management unit 201) transmits a notification indicating that a new bug ticket has been registered to the information processing device 100 (step S101).
[0075] In response to the notification, the acquisition unit 101 of the information processing device 100 acquires the bug ticket from the bug management device 200 (step S102). The prompt generation unit 102 generates a prompt including the acquired bug ticket (step S103). The prompt transmission control unit 103 controls the process of transmitting the generated prompt to the test code generation device 300 via the communication I / F 122 (step S104).
[0076] In response to the prompt, the test code generation device 300 generates test code (step S105), and transmits the generated test code to the information processing device 100 (step S106).
[0077] The code reception control unit 104 of the information processing device 100 controls the reception process of the transmitted test code, and the test code is passed to the correction unit 105. The correction unit 105 corrects the test code (step S107). The request generation unit 106 generates a request for registering the test code in the code management device 400 (step S108). The request transmission control unit 107 controls the process of transmitting the generated request to the code management device 400 via the communication I / F 122 (step S109).
[0078] In response to the transmitted request, the code management device 400 registers the test code in, for example, the storage unit 421 (step S110).
[0079] The registered test code can be used, for example, for a user to perform a bug reproduction test, modify the software based on the results of the reproduction test, and check the operation of the modified software. In this way, according to this embodiment, software development can be carried out more efficiently.
[0080] So far, we have explained an example of how to utilize the generated test code by registering it (creating a branch and committing) in the code management device 400. However, the method of utilizing the test code is not limited to registering it in the code management device 400. For example, the test code itself may be posted on a browser or the like, a link indicating the download destination of the test code may be posted, or the test code may be notified to the user by email or the like.
[0081] Depending on the code management device 400, a procedure may be adopted in which a new branch of source code is created and then the created branch is integrated (merged) with an already created branch (e.g., the main branch). Taking such a case into consideration, the request generation unit 106 may further include a function for generating a request for merging branches (hereinafter, a merge request).
[0082] For example, the request generation unit 106 generates a merge request (integration request information) that requests the code management device 400 to integrate a branch that manages test code into a branch (an example of information that manages software) that has already been created. The request transmission control unit 107 controls the process of transmitting the merge request to the code management device 400 via the communication I / F 122.
[0083] The information processing device 100 may further include a function of executing registered test code and a function of transmitting the execution results of the executed test code.
[0084] For example, the request generation unit 106 generates a request (execution request information) requesting execution of the registered test code. The request transmission control unit 107 controls the process of transmitting the request requesting execution of the test code to the code management device 400 via the communication I / F 122. The code management device 400 (code management unit 401) executes the test code in response to this request.
[0085] Furthermore, the request generation unit 106 generates a request (transmission request information) requesting transmission of the execution results of the executed test code. The request transmission control unit 107 controls the process of transmitting the request requesting transmission of the execution results to the code management device 400 via the communication I / F 122. For example, the user (the terminal used by the user) may be specified as the destination of the execution results. In response to this request, the code management device 400 (code management unit 401) transmits the execution results of the test code to the specified destination.
[0086] So far, we have explained an example of generating test code in Web API development. As described above, this embodiment can also be applied to software development other than Web API development. Below, we will explain an example of application to user interface development of web applications and desktop applications.
[0087] In the development of user interfaces for web applications, Selenium and Cypress (registered trademark) are sometimes used as test automation frameworks. In the development of user interfaces for desktop applications, WinAppDriver and Renorex are sometimes used as test automation frameworks.
[0088] 9 is a diagram showing an example of a bug ticket 900 when applied to user interface development. In addition to the same information as in FIG. 2, the bug ticket 900 includes the following information: Environment: Information about the environment used, such as the browser and OS
[0089] The bug ticket 900 also includes information indicating the operating procedure for screen transitions on a browser as a reproduction procedure. Furthermore, bug tickets 900 for user interface development often include information on screenshots (screen captures) of screens used as the user interface. FIG. 10 is a diagram showing an example of a screenshot 1000. For example, a screenshot 1000 such as that shown in FIG. 10 is attached to the screenshot field of the bug ticket 900.
[0090] The prompt generation unit 102 generates a prompt using, for example, the bug ticket 900. FIG. 11 is a diagram showing an example of a prompt template 1100 that can be used in this example. For example, the prompt generation unit 102 generates a prompt in which the screenshot 1000 of FIG. 10 is entered in the screenshot field of the template 1100. The screenshot field may contain the screenshot 1000 as is, or may contain an image generated based on the screenshot 1000 (such as a partial image of the screenshot 1000). Note that the template 1100 of FIG. 11 includes a section for entering UI implementation code instead of the API implementation code in the template 350 (FIG. 3) used in Web API development.
[0091] FIG. 12 is a diagram showing an example of a response 1200 including test code generated by the test code generation device 300 using a prompt generated based on the template 1100 of FIG.
[0092] Up until now, only the generation of test code has been requested of the test code generation device 300. The information processing device 100 may also be requested to generate information other than test code.
[0093] For example, the prompt generation unit 102 may generate a prompt including a request to modify the test code, similar to the modification unit 105. The prompt generation unit 102 may request that the cause of the bug be estimated and a suggestion of a method of repair be made by generating a prompt including the source code. The request generation unit 106 may generate a request to register the information thus obtained in the code management device 400 as supplementary information for the test code.
[0094] In this manner, in the embodiment, test code is generated when a bug ticket is registered. The generated test code can be registered in the code management device 400. This enables software development to be carried out more efficiently.
[0095] In the above embodiment, the information processing device 100 operates independently of the bug management device 200 and the code management device 400, but this is not necessarily limited to this. Below, a modified example will be described in which some of these devices are integrated and operate together.
[0096] (Variation 1) The first modification is an example in which the information processing device 100 and the bug management device 200 are integrated. For example, the information processing device 100 (processing unit 110) may be realized in the form of a plug-in of the bug management device 200, or the like.
[0097] 13 is a block diagram showing an example of the configuration of an information processing system 10-2 of Modification 1. As shown in FIG. 13, the information processing system 10-2 includes an information processing device 100-2, a test code generation device 300, and a code management device 400.
[0098] The information processing device 100-2 corresponds to a device in which the information processing device 100 of the above embodiment and the bug management device 200 are integrated. The information processing device 100-2 includes a processing unit 110-2, a storage unit 121-2, and a communication I / F 122.
[0099] The processing unit 110-2 differs from the processing unit 110 of the above embodiment in that a bug management unit 201 is added. The storage unit 121-2 differs from the storage unit 121 of the above embodiment in that it stores a bug ticket 222. Other configurations and functions are the same as those in FIG. 1, which is the block diagram of the information processing device 100 of the above embodiment, so the same reference numerals are used and descriptions thereof will be omitted here.
[0100] In this modification, the bug management unit 201 in the processing unit 110-2 registers a new bug ticket in the storage unit 121-2. The acquisition unit 101 in the processing unit 110-2 acquires the bug ticket by reading the bug ticket to be registered from the storage unit 121-2.
[0101] (Variation 2) The second modification is an example in which the information processing device 100 and the code management device 400 are integrated. For example, the information processing device 100 (the processing unit 110) may be realized in the form of a plug-in of the code management device 400, or the like.
[0102] 14 is a block diagram showing an example of the configuration of an information processing system 10-3 of Modification 2. As shown in FIG. 14, the information processing system 10-3 includes a bug management device 200, an information processing device 100-3, and a test code generation device 300.
[0103] The information processing device 100-3 corresponds to a device in which the information processing device 100 of the above embodiment and the code management device 400 are integrated. The information processing device 100-3 includes a processing unit 110-3, a storage unit 121-3, and a communication I / F 122.
[0104] Processing unit 110-3 differs from processing unit 110 of the above embodiment in that it additionally includes a code management unit 401. Storage unit 121-3 differs from storage unit 121 of the above embodiment in that it stores code 422. Other configurations and functions are similar to those in FIG. 1, which is the block diagram of information processing device 100 of the above embodiment, and therefore the same reference numerals are used and description thereof will be omitted here.
[0105] In this modification, the code management unit 401 in the processing unit 110-3 registers the test code received from the test code generation device 300 in the storage unit 121-3.
[0106] As described above, according to the embodiment and the modified examples, software development can be carried out more efficiently.
[0107] Next, the hardware configuration of the information processing apparatus of the embodiment (and the modified example) will be described with reference to Fig. 15. Fig. 15 is an explanatory diagram showing an example of the hardware configuration of the information processing apparatus of the embodiment.
[0108] The information processing device of the embodiment includes a control device such as a CPU (Central Processing Unit) 51, a storage device such as a ROM (Read Only Memory) 52 and a RAM (Random Access Memory) 53, a communication I / F 54 (corresponding to the above-mentioned communication I / F 122) that connects to a network and communicates, and a bus 61 that connects each part.
[0109] The programs executed by the information processing apparatus according to the embodiment are provided in advance in the ROM 52 or the like.
[0110] The program executed by the information processing device of the embodiment may be configured to be provided as a computer program product by being recorded in an installable or executable format on a computer-readable recording medium such as a CD-ROM (Compact Disk Read Only Memory), a flexible disk (FD), a CD-R (Compact Disk Recordable), or a DVD (Digital Versatile Disk).
[0111] Furthermore, the program executed by the information processing apparatus of the embodiment may be stored on a computer connected to a network such as the Internet and provided by being downloaded via the network. Also, the program executed by the information processing apparatus of the embodiment may be provided or distributed via a network such as the Internet.
[0112] The programs executed by the information processing device of the embodiment can cause a computer to function as each of the above-mentioned parts of the information processing device. In this computer, the CPU 51 can read the programs from a computer-readable storage medium onto a main storage device and execute them.
[0113] A configuration example of the embodiment will be described below. (Configuration example 1) Obtain bug information representing software bug information; generating generation request information for requesting generation of test code for testing the bug based on the bug information; Controlling a process of transmitting the generation request information to a test code generation device that generates the test code; controlling a process of receiving, from the test code generation device, the test code generated by the test code generation device in response to the generation request information; Processing section An information processing device comprising: (Configuration example 2) the processing unit generates the generation request information requesting generation of the test code that tests whether an expected result is obtained when the procedure for reproducing the bug is executed. The information processing device according to configuration example 1. (Configuration example 3) The bug information includes a procedure for reproducing the bug and an expected result when the procedure for reproducing the bug is executed; the processing unit generates the generation request information including information indicating the reproduction procedure and the result. The information processing device according to configuration example 1. (Configuration example 4) the processing unit generates the generation request information including information indicating a document related to the software. The information processing device according to any one of configuration examples 1 to 3. (Configuration Example 5) the bug information includes information indicating a screen when the bug occurred, the processing unit generates the generation request information based on the information indicating the screen. The information processing device according to any one of configuration examples 1 to 4. (Configuration Example 6) the processing unit modifies the test code received from the test code generation device based on a precondition for executing the test code. 6. The information processing device according to any one of configuration examples 1 to 5. (Configuration Example 7) The processing unit generating registration request information requesting registration of the generated test code; Controlling a process of transmitting the registration request information to a code management device that manages the test code. The information processing device according to any one of configuration examples 1 to 6. (Configuration Example 8) the processing unit generates the registration request information including identification information that identifies the bug information. The information processing device according to configuration example 7. (Configuration Example 9) the processing unit generates the registration request information including information indicating that the registration request information is the test code for the bug. The information processing device according to configuration example 7. (Configuration Example 10) The processing unit generating integration request information requesting that information for managing the test code be integrated with information already created by the code management device as information for managing the software; Controlling a process of transmitting the integration request information to the code management device. The information processing device according to configuration example 7. (Configuration Example 11) The processing unit generating execution request information requesting execution of the registered test code; Controlling a process of transmitting the execution request information to the code management device. The information processing device according to configuration example 7. (Configuration Example 12) The processing unit generating transmission request information for requesting transmission of an execution result of the test code executed in response to the execution request information; Controlling a process of transmitting the transmission request information to the code management device. The information processing device according to configuration example 11. (Configuration Example 13) The processing unit acquiring the bug information from a bug management device that stores and manages the bug information in a storage unit; 13. The information processing device according to any one of configuration examples 1 to 12. (Configuration Example 14) The processing unit Controlling a process of receiving a notification from the bug management device indicating that the bug information has been registered; In response to the notification, the bug information is acquired from the bug management device. The information processing device according to configuration example 13. (Configuration Example 15) The processing unit registering the bug information in a storage unit; acquiring the bug information by reading the registered bug information from the storage unit; The information processing device according to any one of configuration examples 1 to 14. (Configuration Example 16) The processing unit registering the test code received from the test code generation device in a storage unit; The information processing device according to any one of configuration examples 1 to 14. (Configuration Example 17) Obtain bug information representing software bug information; generating generation request information for requesting generation of test code for testing the bug based on the bug information; Controlling a process of transmitting the generation request information to a test code generation device that generates the test code; controlling a process of receiving, from the test code generation device, the test code generated by the test code generation device in response to the generation request information; Information processing methods. (Configuration Example 18) On the computer, Obtain bug information representing software bug information, generating, based on the bug information, generation request information for requesting generation of test code for testing the bug; controlling a process of transmitting the generation request information to a test code generation device that generates the test code; controlling a process of receiving, from the test code generation device, the test code that is generated by the test code generation device in response to the generation request information; program.
[0114] Although several embodiments of the present invention have been described, these embodiments are presented as examples and are not intended to limit the scope of the invention. These novel embodiments can be embodied in various other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their modifications are included within the scope and spirit of the invention, and are also included in the scope of the invention and its equivalents as defined in the claims. [Explanation of symbols]
[0115] 10, 10-2, 10-3 Information Processing Systems 100, 100-2, 100-3 Information processing device 101 Acquisition Department 102 Prompt Generation Unit 103 Prompt sending control section 104 Code reception control unit 105 Correction section 106 Request Generation Unit 107 Request transmission control section 110, 110-2, 110-3 Processing section 121, 121-2, 121-3 Storage section 200 Bug Management Device 201 Bug Management Department 221 Storage section 300 Test Code Generator 400 Code Management Device 401 Code Management Department 421 Storage section
Claims
1. Obtain bug information representing software bug information; generating generation request information for requesting generation of test code for testing the bug based on the bug information; Controlling a process of transmitting the generation request information to a test code generation device that generates the test code; controlling a process of receiving, from the test code generation device, the test code generated by the test code generation device in response to the generation request information; Processing section An information processing device comprising:
2. the processing unit generates the generation request information requesting generation of the test code that tests whether an expected result is obtained when the procedure for reproducing the bug is executed. The information processing device according to claim 1 .
3. The bug information includes a procedure for reproducing the bug and an expected result when the procedure for reproducing the bug is executed; the processing unit generates the generation request information including information indicating the reproduction procedure and the result. The information processing device according to claim 1 .
4. the processing unit generates the generation request information including information indicating a document related to the software. The information processing device according to claim 1 .
5. the bug information includes information indicating a screen when the bug occurred, the processing unit generates the generation request information based on the information indicating the screen. The information processing device according to claim 1 .
6. the processing unit modifies the test code received from the test code generation device based on a precondition for executing the test code. The information processing device according to claim 1 .
7. The processing unit generating registration request information requesting registration of the generated test code; Controlling a process of transmitting the registration request information to a code management device that manages the test code. The information processing device according to claim 1 .
8. the processing unit generates the registration request information including identification information that identifies the bug information. The information processing device according to claim 7 .
9. the processing unit generates the registration request information including information indicating that the registration request information is the test code for the bug. The information processing device according to claim 7 .
10. The processing unit generating integration request information requesting that information for managing the test code be integrated with information already created by the code management device as information for managing the software; Controlling a process of transmitting the integration request information to the code management device. The information processing device according to claim 7 .
11. The processing unit generating execution request information requesting execution of the registered test code; Controlling a process of transmitting the execution request information to the code management device. The information processing device according to claim 7 .
12. The processing unit generating transmission request information for requesting transmission of an execution result of the test code executed in response to the execution request information; Controlling a process of transmitting the transmission request information to the code management device. The information processing device according to claim 11.
13. The processing unit acquiring the bug information from a bug management device that stores and manages the bug information in a storage unit; The information processing device according to claim 1 .
14. The processing unit Controlling a process of receiving a notification from the bug management device indicating that the bug information has been registered; In response to the notification, the bug information is acquired from the bug management device. The information processing device according to claim 13.
15. The processing unit registering the bug information in a storage unit; acquiring the bug information by reading the registered bug information from the storage unit; The information processing device according to claim 1 .
16. The processing unit registering the test code received from the test code generation device in a storage unit; The information processing device according to claim 1 .
17. Obtain bug information representing software bug information; generating generation request information for requesting generation of test code for testing the bug based on the bug information; Controlling a process of transmitting the generation request information to a test code generation device that generates the test code; controlling a process of receiving, from the test code generation device, the test code generated by the test code generation device in response to the generation request information; Information processing methods.
18. On the computer, Obtain bug information representing software bug information, generating, based on the bug information, generation request information for requesting generation of test code for testing the bug; controlling a process of transmitting the generation request information to a test code generation device that generates the test code; controlling a process of receiving, from the test code generation device, the test code that is generated by the test code generation device in response to the generation request information; program.
Citation Information
Patent Citations
Bug management server, bug tracking method and bug tracking program
JP2006309316A
Software development support apparatus, software development support method, and program
JP2018018267A
Program development support system and program development support method
JP2021105866A